github.com/launchdarkly/api-client-go@v5.3.0+incompatible/api_user_segments.go (about) 1 2 /* 3 * LaunchDarkly REST API 4 * 5 * Build custom integrations with the LaunchDarkly REST API 6 * 7 * API version: 5.3.0 8 * Contact: support@launchdarkly.com 9 * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) 10 */ 11 12 package ldapi 13 14 import ( 15 "context" 16 "io/ioutil" 17 "net/http" 18 "net/url" 19 "strings" 20 "fmt" 21 "github.com/antihax/optional" 22 ) 23 24 // Linger please 25 var ( 26 _ context.Context 27 ) 28 29 type UserSegmentsApiService service 30 31 /* 32 UserSegmentsApiService Delete a user segment. 33 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 34 * @param projectKey The project key, used to tie the flags together under one project so they can be managed together. 35 * @param environmentKey The environment key, used to tie together flag configuration and users under one environment so they can be managed together. 36 * @param userSegmentKey The user segment's key. The key identifies the user segment in your code. 37 38 39 */ 40 func (a *UserSegmentsApiService) DeleteUserSegment(ctx context.Context, projectKey string, environmentKey string, userSegmentKey string) (*http.Response, error) { 41 var ( 42 localVarHttpMethod = strings.ToUpper("Delete") 43 localVarPostBody interface{} 44 localVarFileName string 45 localVarFileBytes []byte 46 47 ) 48 49 // create path and map variables 50 localVarPath := a.client.cfg.BasePath + "/segments/{projectKey}/{environmentKey}/{userSegmentKey}" 51 localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1) 52 localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1) 53 localVarPath = strings.Replace(localVarPath, "{"+"userSegmentKey"+"}", fmt.Sprintf("%v", userSegmentKey), -1) 54 55 localVarHeaderParams := make(map[string]string) 56 localVarQueryParams := url.Values{} 57 localVarFormParams := url.Values{} 58 59 // to determine the Content-Type header 60 localVarHttpContentTypes := []string{"application/json"} 61 62 // set Content-Type header 63 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 64 if localVarHttpContentType != "" { 65 localVarHeaderParams["Content-Type"] = localVarHttpContentType 66 } 67 68 // to determine the Accept header 69 localVarHttpHeaderAccepts := []string{"application/json"} 70 71 // set Accept header 72 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 73 if localVarHttpHeaderAccept != "" { 74 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 75 } 76 if ctx != nil { 77 // API Key Authentication 78 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 79 var key string 80 if auth.Prefix != "" { 81 key = auth.Prefix + " " + auth.Key 82 } else { 83 key = auth.Key 84 } 85 localVarHeaderParams["Authorization"] = key 86 87 } 88 } 89 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 90 if err != nil { 91 return nil, err 92 } 93 94 localVarHttpResponse, err := a.client.callAPI(r) 95 if err != nil || localVarHttpResponse == nil { 96 return localVarHttpResponse, err 97 } 98 99 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 100 localVarHttpResponse.Body.Close() 101 if err != nil { 102 return localVarHttpResponse, err 103 } 104 105 106 if localVarHttpResponse.StatusCode >= 300 { 107 newErr := GenericSwaggerError{ 108 body: localVarBody, 109 error: localVarHttpResponse.Status, 110 } 111 112 return localVarHttpResponse, newErr 113 } 114 115 return localVarHttpResponse, nil 116 } 117 118 /* 119 UserSegmentsApiService Get expiring user targets for user segment 120 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 121 * @param projectKey The project key, used to tie the flags together under one project so they can be managed together. 122 * @param environmentKey The environment key, used to tie together flag configuration and users under one environment so they can be managed together. 123 * @param userSegmentKey The user segment's key. The key identifies the user segment in your code. 124 125 @return UserTargetingExpirationForSegment 126 */ 127 func (a *UserSegmentsApiService) GetExpiringUserTargetsOnSegment(ctx context.Context, projectKey string, environmentKey string, userSegmentKey string) (UserTargetingExpirationForSegment, *http.Response, error) { 128 var ( 129 localVarHttpMethod = strings.ToUpper("Get") 130 localVarPostBody interface{} 131 localVarFileName string 132 localVarFileBytes []byte 133 localVarReturnValue UserTargetingExpirationForSegment 134 ) 135 136 // create path and map variables 137 localVarPath := a.client.cfg.BasePath + "/segments/{projectKey}/{userSegmentKey}/expiring-user-targets/{environmentKey}" 138 localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1) 139 localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1) 140 localVarPath = strings.Replace(localVarPath, "{"+"userSegmentKey"+"}", fmt.Sprintf("%v", userSegmentKey), -1) 141 142 localVarHeaderParams := make(map[string]string) 143 localVarQueryParams := url.Values{} 144 localVarFormParams := url.Values{} 145 146 // to determine the Content-Type header 147 localVarHttpContentTypes := []string{"application/json"} 148 149 // set Content-Type header 150 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 151 if localVarHttpContentType != "" { 152 localVarHeaderParams["Content-Type"] = localVarHttpContentType 153 } 154 155 // to determine the Accept header 156 localVarHttpHeaderAccepts := []string{"application/json"} 157 158 // set Accept header 159 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 160 if localVarHttpHeaderAccept != "" { 161 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 162 } 163 if ctx != nil { 164 // API Key Authentication 165 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 166 var key string 167 if auth.Prefix != "" { 168 key = auth.Prefix + " " + auth.Key 169 } else { 170 key = auth.Key 171 } 172 localVarHeaderParams["Authorization"] = key 173 174 } 175 } 176 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 177 if err != nil { 178 return localVarReturnValue, nil, err 179 } 180 181 localVarHttpResponse, err := a.client.callAPI(r) 182 if err != nil || localVarHttpResponse == nil { 183 return localVarReturnValue, localVarHttpResponse, err 184 } 185 186 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 187 localVarHttpResponse.Body.Close() 188 if err != nil { 189 return localVarReturnValue, localVarHttpResponse, err 190 } 191 192 if localVarHttpResponse.StatusCode < 300 { 193 // If we succeed, return the data, otherwise pass on to decode error. 194 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); 195 return localVarReturnValue, localVarHttpResponse, err 196 } 197 198 if localVarHttpResponse.StatusCode >= 300 { 199 newErr := GenericSwaggerError{ 200 body: localVarBody, 201 error: localVarHttpResponse.Status, 202 } 203 204 if localVarHttpResponse.StatusCode == 200 { 205 var v UserTargetingExpirationForSegment 206 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); 207 if err != nil { 208 newErr.error = err.Error() 209 return localVarReturnValue, localVarHttpResponse, newErr 210 } 211 newErr.model = v 212 return localVarReturnValue, localVarHttpResponse, newErr 213 } 214 215 return localVarReturnValue, localVarHttpResponse, newErr 216 } 217 218 return localVarReturnValue, localVarHttpResponse, nil 219 } 220 221 /* 222 UserSegmentsApiService Get a single user segment by key. 223 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 224 * @param projectKey The project key, used to tie the flags together under one project so they can be managed together. 225 * @param environmentKey The environment key, used to tie together flag configuration and users under one environment so they can be managed together. 226 * @param userSegmentKey The user segment's key. The key identifies the user segment in your code. 227 228 @return UserSegment 229 */ 230 func (a *UserSegmentsApiService) GetUserSegment(ctx context.Context, projectKey string, environmentKey string, userSegmentKey string) (UserSegment, *http.Response, error) { 231 var ( 232 localVarHttpMethod = strings.ToUpper("Get") 233 localVarPostBody interface{} 234 localVarFileName string 235 localVarFileBytes []byte 236 localVarReturnValue UserSegment 237 ) 238 239 // create path and map variables 240 localVarPath := a.client.cfg.BasePath + "/segments/{projectKey}/{environmentKey}/{userSegmentKey}" 241 localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1) 242 localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1) 243 localVarPath = strings.Replace(localVarPath, "{"+"userSegmentKey"+"}", fmt.Sprintf("%v", userSegmentKey), -1) 244 245 localVarHeaderParams := make(map[string]string) 246 localVarQueryParams := url.Values{} 247 localVarFormParams := url.Values{} 248 249 // to determine the Content-Type header 250 localVarHttpContentTypes := []string{"application/json"} 251 252 // set Content-Type header 253 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 254 if localVarHttpContentType != "" { 255 localVarHeaderParams["Content-Type"] = localVarHttpContentType 256 } 257 258 // to determine the Accept header 259 localVarHttpHeaderAccepts := []string{"application/json"} 260 261 // set Accept header 262 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 263 if localVarHttpHeaderAccept != "" { 264 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 265 } 266 if ctx != nil { 267 // API Key Authentication 268 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 269 var key string 270 if auth.Prefix != "" { 271 key = auth.Prefix + " " + auth.Key 272 } else { 273 key = auth.Key 274 } 275 localVarHeaderParams["Authorization"] = key 276 277 } 278 } 279 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 280 if err != nil { 281 return localVarReturnValue, nil, err 282 } 283 284 localVarHttpResponse, err := a.client.callAPI(r) 285 if err != nil || localVarHttpResponse == nil { 286 return localVarReturnValue, localVarHttpResponse, err 287 } 288 289 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 290 localVarHttpResponse.Body.Close() 291 if err != nil { 292 return localVarReturnValue, localVarHttpResponse, err 293 } 294 295 if localVarHttpResponse.StatusCode < 300 { 296 // If we succeed, return the data, otherwise pass on to decode error. 297 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); 298 return localVarReturnValue, localVarHttpResponse, err 299 } 300 301 if localVarHttpResponse.StatusCode >= 300 { 302 newErr := GenericSwaggerError{ 303 body: localVarBody, 304 error: localVarHttpResponse.Status, 305 } 306 307 if localVarHttpResponse.StatusCode == 200 { 308 var v UserSegment 309 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); 310 if err != nil { 311 newErr.error = err.Error() 312 return localVarReturnValue, localVarHttpResponse, newErr 313 } 314 newErr.model = v 315 return localVarReturnValue, localVarHttpResponse, newErr 316 } 317 318 return localVarReturnValue, localVarHttpResponse, newErr 319 } 320 321 return localVarReturnValue, localVarHttpResponse, nil 322 } 323 324 /* 325 UserSegmentsApiService Get a list of all user segments in the given project. 326 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 327 * @param projectKey The project key, used to tie the flags together under one project so they can be managed together. 328 * @param environmentKey The environment key, used to tie together flag configuration and users under one environment so they can be managed together. 329 * @param optional nil or *UserSegmentsApiGetUserSegmentsOpts - Optional Parameters: 330 * @param "Tag" (optional.String) - Filter by tag. A tag can be used to group flags across projects. 331 332 @return UserSegments 333 */ 334 335 type UserSegmentsApiGetUserSegmentsOpts struct { 336 Tag optional.String 337 } 338 339 func (a *UserSegmentsApiService) GetUserSegments(ctx context.Context, projectKey string, environmentKey string, localVarOptionals *UserSegmentsApiGetUserSegmentsOpts) (UserSegments, *http.Response, error) { 340 var ( 341 localVarHttpMethod = strings.ToUpper("Get") 342 localVarPostBody interface{} 343 localVarFileName string 344 localVarFileBytes []byte 345 localVarReturnValue UserSegments 346 ) 347 348 // create path and map variables 349 localVarPath := a.client.cfg.BasePath + "/segments/{projectKey}/{environmentKey}" 350 localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1) 351 localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1) 352 353 localVarHeaderParams := make(map[string]string) 354 localVarQueryParams := url.Values{} 355 localVarFormParams := url.Values{} 356 357 if localVarOptionals != nil && localVarOptionals.Tag.IsSet() { 358 localVarQueryParams.Add("tag", parameterToString(localVarOptionals.Tag.Value(), "")) 359 } 360 // to determine the Content-Type header 361 localVarHttpContentTypes := []string{"application/json"} 362 363 // set Content-Type header 364 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 365 if localVarHttpContentType != "" { 366 localVarHeaderParams["Content-Type"] = localVarHttpContentType 367 } 368 369 // to determine the Accept header 370 localVarHttpHeaderAccepts := []string{"application/json"} 371 372 // set Accept header 373 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 374 if localVarHttpHeaderAccept != "" { 375 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 376 } 377 if ctx != nil { 378 // API Key Authentication 379 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 380 var key string 381 if auth.Prefix != "" { 382 key = auth.Prefix + " " + auth.Key 383 } else { 384 key = auth.Key 385 } 386 localVarHeaderParams["Authorization"] = key 387 388 } 389 } 390 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 391 if err != nil { 392 return localVarReturnValue, nil, err 393 } 394 395 localVarHttpResponse, err := a.client.callAPI(r) 396 if err != nil || localVarHttpResponse == nil { 397 return localVarReturnValue, localVarHttpResponse, err 398 } 399 400 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 401 localVarHttpResponse.Body.Close() 402 if err != nil { 403 return localVarReturnValue, localVarHttpResponse, err 404 } 405 406 if localVarHttpResponse.StatusCode < 300 { 407 // If we succeed, return the data, otherwise pass on to decode error. 408 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); 409 return localVarReturnValue, localVarHttpResponse, err 410 } 411 412 if localVarHttpResponse.StatusCode >= 300 { 413 newErr := GenericSwaggerError{ 414 body: localVarBody, 415 error: localVarHttpResponse.Status, 416 } 417 418 if localVarHttpResponse.StatusCode == 200 { 419 var v UserSegments 420 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); 421 if err != nil { 422 newErr.error = err.Error() 423 return localVarReturnValue, localVarHttpResponse, newErr 424 } 425 newErr.model = v 426 return localVarReturnValue, localVarHttpResponse, newErr 427 } 428 429 return localVarReturnValue, localVarHttpResponse, newErr 430 } 431 432 return localVarReturnValue, localVarHttpResponse, nil 433 } 434 435 /* 436 UserSegmentsApiService Update, add, or delete expiring user targets on user segment 437 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 438 * @param projectKey The project key, used to tie the flags together under one project so they can be managed together. 439 * @param environmentKey The environment key, used to tie together flag configuration and users under one environment so they can be managed together. 440 * @param userSegmentKey The user segment's key. The key identifies the user segment in your code. 441 * @param semanticPatchWithComment Requires a Semantic Patch representation of the desired changes to the resource. 'https://apidocs.launchdarkly.com/reference#updates-via-semantic-patches'. The addition of comments is also supported. 442 443 @return UserTargetingExpirationForSegment 444 */ 445 func (a *UserSegmentsApiService) PatchExpiringUserTargetsOnSegment(ctx context.Context, projectKey string, environmentKey string, userSegmentKey string, semanticPatchWithComment interface{}) (UserTargetingExpirationForSegment, *http.Response, error) { 446 var ( 447 localVarHttpMethod = strings.ToUpper("Patch") 448 localVarPostBody interface{} 449 localVarFileName string 450 localVarFileBytes []byte 451 localVarReturnValue UserTargetingExpirationForSegment 452 ) 453 454 // create path and map variables 455 localVarPath := a.client.cfg.BasePath + "/segments/{projectKey}/{userSegmentKey}/expiring-user-targets/{environmentKey}" 456 localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1) 457 localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1) 458 localVarPath = strings.Replace(localVarPath, "{"+"userSegmentKey"+"}", fmt.Sprintf("%v", userSegmentKey), -1) 459 460 localVarHeaderParams := make(map[string]string) 461 localVarQueryParams := url.Values{} 462 localVarFormParams := url.Values{} 463 464 // to determine the Content-Type header 465 localVarHttpContentTypes := []string{"application/json"} 466 467 // set Content-Type header 468 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 469 if localVarHttpContentType != "" { 470 localVarHeaderParams["Content-Type"] = localVarHttpContentType 471 } 472 473 // to determine the Accept header 474 localVarHttpHeaderAccepts := []string{"application/json"} 475 476 // set Accept header 477 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 478 if localVarHttpHeaderAccept != "" { 479 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 480 } 481 // body params 482 localVarPostBody = &semanticPatchWithComment 483 if ctx != nil { 484 // API Key Authentication 485 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 486 var key string 487 if auth.Prefix != "" { 488 key = auth.Prefix + " " + auth.Key 489 } else { 490 key = auth.Key 491 } 492 localVarHeaderParams["Authorization"] = key 493 494 } 495 } 496 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 497 if err != nil { 498 return localVarReturnValue, nil, err 499 } 500 501 localVarHttpResponse, err := a.client.callAPI(r) 502 if err != nil || localVarHttpResponse == nil { 503 return localVarReturnValue, localVarHttpResponse, err 504 } 505 506 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 507 localVarHttpResponse.Body.Close() 508 if err != nil { 509 return localVarReturnValue, localVarHttpResponse, err 510 } 511 512 if localVarHttpResponse.StatusCode < 300 { 513 // If we succeed, return the data, otherwise pass on to decode error. 514 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); 515 return localVarReturnValue, localVarHttpResponse, err 516 } 517 518 if localVarHttpResponse.StatusCode >= 300 { 519 newErr := GenericSwaggerError{ 520 body: localVarBody, 521 error: localVarHttpResponse.Status, 522 } 523 524 if localVarHttpResponse.StatusCode == 200 { 525 var v UserTargetingExpirationForSegment 526 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); 527 if err != nil { 528 newErr.error = err.Error() 529 return localVarReturnValue, localVarHttpResponse, newErr 530 } 531 newErr.model = v 532 return localVarReturnValue, localVarHttpResponse, newErr 533 } 534 535 return localVarReturnValue, localVarHttpResponse, newErr 536 } 537 538 return localVarReturnValue, localVarHttpResponse, nil 539 } 540 541 /* 542 UserSegmentsApiService Perform a partial update to a user segment. 543 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 544 * @param projectKey The project key, used to tie the flags together under one project so they can be managed together. 545 * @param environmentKey The environment key, used to tie together flag configuration and users under one environment so they can be managed together. 546 * @param userSegmentKey The user segment's key. The key identifies the user segment in your code. 547 * @param patchOnly Requires a JSON Patch representation of the desired changes to the project. 'http://jsonpatch.com/' Feature flag patches also support JSON Merge Patch format. 'https://tools.ietf.org/html/rfc7386' The addition of comments is also supported. 548 549 @return UserSegment 550 */ 551 func (a *UserSegmentsApiService) PatchUserSegment(ctx context.Context, projectKey string, environmentKey string, userSegmentKey string, patchOnly []PatchOperation) (UserSegment, *http.Response, error) { 552 var ( 553 localVarHttpMethod = strings.ToUpper("Patch") 554 localVarPostBody interface{} 555 localVarFileName string 556 localVarFileBytes []byte 557 localVarReturnValue UserSegment 558 ) 559 560 // create path and map variables 561 localVarPath := a.client.cfg.BasePath + "/segments/{projectKey}/{environmentKey}/{userSegmentKey}" 562 localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1) 563 localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1) 564 localVarPath = strings.Replace(localVarPath, "{"+"userSegmentKey"+"}", fmt.Sprintf("%v", userSegmentKey), -1) 565 566 localVarHeaderParams := make(map[string]string) 567 localVarQueryParams := url.Values{} 568 localVarFormParams := url.Values{} 569 570 // to determine the Content-Type header 571 localVarHttpContentTypes := []string{"application/json"} 572 573 // set Content-Type header 574 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 575 if localVarHttpContentType != "" { 576 localVarHeaderParams["Content-Type"] = localVarHttpContentType 577 } 578 579 // to determine the Accept header 580 localVarHttpHeaderAccepts := []string{"application/json"} 581 582 // set Accept header 583 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 584 if localVarHttpHeaderAccept != "" { 585 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 586 } 587 // body params 588 localVarPostBody = &patchOnly 589 if ctx != nil { 590 // API Key Authentication 591 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 592 var key string 593 if auth.Prefix != "" { 594 key = auth.Prefix + " " + auth.Key 595 } else { 596 key = auth.Key 597 } 598 localVarHeaderParams["Authorization"] = key 599 600 } 601 } 602 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 603 if err != nil { 604 return localVarReturnValue, nil, err 605 } 606 607 localVarHttpResponse, err := a.client.callAPI(r) 608 if err != nil || localVarHttpResponse == nil { 609 return localVarReturnValue, localVarHttpResponse, err 610 } 611 612 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 613 localVarHttpResponse.Body.Close() 614 if err != nil { 615 return localVarReturnValue, localVarHttpResponse, err 616 } 617 618 if localVarHttpResponse.StatusCode < 300 { 619 // If we succeed, return the data, otherwise pass on to decode error. 620 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); 621 return localVarReturnValue, localVarHttpResponse, err 622 } 623 624 if localVarHttpResponse.StatusCode >= 300 { 625 newErr := GenericSwaggerError{ 626 body: localVarBody, 627 error: localVarHttpResponse.Status, 628 } 629 630 if localVarHttpResponse.StatusCode == 200 { 631 var v UserSegment 632 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); 633 if err != nil { 634 newErr.error = err.Error() 635 return localVarReturnValue, localVarHttpResponse, newErr 636 } 637 newErr.model = v 638 return localVarReturnValue, localVarHttpResponse, newErr 639 } 640 641 return localVarReturnValue, localVarHttpResponse, newErr 642 } 643 644 return localVarReturnValue, localVarHttpResponse, nil 645 } 646 647 /* 648 UserSegmentsApiService Creates a new user segment. 649 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 650 * @param projectKey The project key, used to tie the flags together under one project so they can be managed together. 651 * @param environmentKey The environment key, used to tie together flag configuration and users under one environment so they can be managed together. 652 * @param userSegmentBody Create a new user segment. 653 654 @return UserSegment 655 */ 656 func (a *UserSegmentsApiService) PostUserSegment(ctx context.Context, projectKey string, environmentKey string, userSegmentBody UserSegmentBody) (UserSegment, *http.Response, error) { 657 var ( 658 localVarHttpMethod = strings.ToUpper("Post") 659 localVarPostBody interface{} 660 localVarFileName string 661 localVarFileBytes []byte 662 localVarReturnValue UserSegment 663 ) 664 665 // create path and map variables 666 localVarPath := a.client.cfg.BasePath + "/segments/{projectKey}/{environmentKey}" 667 localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1) 668 localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1) 669 670 localVarHeaderParams := make(map[string]string) 671 localVarQueryParams := url.Values{} 672 localVarFormParams := url.Values{} 673 674 // to determine the Content-Type header 675 localVarHttpContentTypes := []string{"application/json"} 676 677 // set Content-Type header 678 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 679 if localVarHttpContentType != "" { 680 localVarHeaderParams["Content-Type"] = localVarHttpContentType 681 } 682 683 // to determine the Accept header 684 localVarHttpHeaderAccepts := []string{"application/json"} 685 686 // set Accept header 687 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 688 if localVarHttpHeaderAccept != "" { 689 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 690 } 691 // body params 692 localVarPostBody = &userSegmentBody 693 if ctx != nil { 694 // API Key Authentication 695 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 696 var key string 697 if auth.Prefix != "" { 698 key = auth.Prefix + " " + auth.Key 699 } else { 700 key = auth.Key 701 } 702 localVarHeaderParams["Authorization"] = key 703 704 } 705 } 706 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 707 if err != nil { 708 return localVarReturnValue, nil, err 709 } 710 711 localVarHttpResponse, err := a.client.callAPI(r) 712 if err != nil || localVarHttpResponse == nil { 713 return localVarReturnValue, localVarHttpResponse, err 714 } 715 716 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 717 localVarHttpResponse.Body.Close() 718 if err != nil { 719 return localVarReturnValue, localVarHttpResponse, err 720 } 721 722 if localVarHttpResponse.StatusCode < 300 { 723 // If we succeed, return the data, otherwise pass on to decode error. 724 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); 725 return localVarReturnValue, localVarHttpResponse, err 726 } 727 728 if localVarHttpResponse.StatusCode >= 300 { 729 newErr := GenericSwaggerError{ 730 body: localVarBody, 731 error: localVarHttpResponse.Status, 732 } 733 734 if localVarHttpResponse.StatusCode == 201 { 735 var v UserSegment 736 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); 737 if err != nil { 738 newErr.error = err.Error() 739 return localVarReturnValue, localVarHttpResponse, newErr 740 } 741 newErr.model = v 742 return localVarReturnValue, localVarHttpResponse, newErr 743 } 744 745 return localVarReturnValue, localVarHttpResponse, newErr 746 } 747 748 return localVarReturnValue, localVarHttpResponse, nil 749 } 750 751 /* 752 UserSegmentsApiService Update targets included or excluded in a big segment 753 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 754 * @param projectKey The project key, used to tie the flags together under one project so they can be managed together. 755 * @param environmentKey The environment key, used to tie together flag configuration and users under one environment so they can be managed together. 756 * @param userSegmentKey The user segment's key. The key identifies the user segment in your code. 757 * @param bigSegmentTargetsBody Add or remove user targets to the included or excluded lists on a big segment. Contact your account manager for early access to this feature. 758 759 760 */ 761 func (a *UserSegmentsApiService) UpdateBigSegmentTargets(ctx context.Context, projectKey string, environmentKey string, userSegmentKey string, bigSegmentTargetsBody BigSegmentTargetsBody) (*http.Response, error) { 762 var ( 763 localVarHttpMethod = strings.ToUpper("Post") 764 localVarPostBody interface{} 765 localVarFileName string 766 localVarFileBytes []byte 767 768 ) 769 770 // create path and map variables 771 localVarPath := a.client.cfg.BasePath + "/segments/{projectKey}/{environmentKey}/{userSegmentKey}/users" 772 localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1) 773 localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1) 774 localVarPath = strings.Replace(localVarPath, "{"+"userSegmentKey"+"}", fmt.Sprintf("%v", userSegmentKey), -1) 775 776 localVarHeaderParams := make(map[string]string) 777 localVarQueryParams := url.Values{} 778 localVarFormParams := url.Values{} 779 780 // to determine the Content-Type header 781 localVarHttpContentTypes := []string{"application/json"} 782 783 // set Content-Type header 784 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 785 if localVarHttpContentType != "" { 786 localVarHeaderParams["Content-Type"] = localVarHttpContentType 787 } 788 789 // to determine the Accept header 790 localVarHttpHeaderAccepts := []string{"application/json"} 791 792 // set Accept header 793 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 794 if localVarHttpHeaderAccept != "" { 795 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 796 } 797 // body params 798 localVarPostBody = &bigSegmentTargetsBody 799 if ctx != nil { 800 // API Key Authentication 801 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 802 var key string 803 if auth.Prefix != "" { 804 key = auth.Prefix + " " + auth.Key 805 } else { 806 key = auth.Key 807 } 808 localVarHeaderParams["Authorization"] = key 809 810 } 811 } 812 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 813 if err != nil { 814 return nil, err 815 } 816 817 localVarHttpResponse, err := a.client.callAPI(r) 818 if err != nil || localVarHttpResponse == nil { 819 return localVarHttpResponse, err 820 } 821 822 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 823 localVarHttpResponse.Body.Close() 824 if err != nil { 825 return localVarHttpResponse, err 826 } 827 828 829 if localVarHttpResponse.StatusCode >= 300 { 830 newErr := GenericSwaggerError{ 831 body: localVarBody, 832 error: localVarHttpResponse.Status, 833 } 834 835 return localVarHttpResponse, newErr 836 } 837 838 return localVarHttpResponse, nil 839 } 840