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&#39;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&#39;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. &#39;https://apidocs.launchdarkly.com/reference#updates-via-semantic-patches&#39;. 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&#39;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. &#39;http://jsonpatch.com/&#39; Feature flag patches also support JSON Merge Patch format. &#39;https://tools.ietf.org/html/rfc7386&#39; 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&#39;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