github.com/launchdarkly/api-client-go@v5.3.0+incompatible/api_environments.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 EnvironmentsApiService service
    30  
    31  /*
    32  EnvironmentsApiService Delete an environment in a specific project.
    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  
    37  
    38  */
    39  func (a *EnvironmentsApiService) DeleteEnvironment(ctx context.Context, projectKey string, environmentKey string) (*http.Response, error) {
    40  	var (
    41  		localVarHttpMethod = strings.ToUpper("Delete")
    42  		localVarPostBody   interface{}
    43  		localVarFileName   string
    44  		localVarFileBytes  []byte
    45  		
    46  	)
    47  
    48  	// create path and map variables
    49  	localVarPath := a.client.cfg.BasePath + "/projects/{projectKey}/environments/{environmentKey}"
    50  	localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1)
    51  	localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1)
    52  
    53  	localVarHeaderParams := make(map[string]string)
    54  	localVarQueryParams := url.Values{}
    55  	localVarFormParams := url.Values{}
    56  
    57  	// to determine the Content-Type header
    58  	localVarHttpContentTypes := []string{"application/json"}
    59  
    60  	// set Content-Type header
    61  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
    62  	if localVarHttpContentType != "" {
    63  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
    64  	}
    65  
    66  	// to determine the Accept header
    67  	localVarHttpHeaderAccepts := []string{"application/json"}
    68  
    69  	// set Accept header
    70  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
    71  	if localVarHttpHeaderAccept != "" {
    72  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    73  	}
    74  	if ctx != nil {
    75  		// API Key Authentication
    76  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
    77  			var key string
    78  			if auth.Prefix != "" {
    79  				key = auth.Prefix + " " + auth.Key
    80  			} else {
    81  				key = auth.Key
    82  			}
    83  			localVarHeaderParams["Authorization"] = key
    84  			
    85  		}
    86  	}
    87  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
    88  	if err != nil {
    89  		return nil, err
    90  	}
    91  
    92  	localVarHttpResponse, err := a.client.callAPI(r)
    93  	if err != nil || localVarHttpResponse == nil {
    94  		return localVarHttpResponse, err
    95  	}
    96  
    97  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
    98  	localVarHttpResponse.Body.Close()
    99  	if err != nil {
   100  		return localVarHttpResponse, err
   101  	}
   102  
   103  
   104  	if localVarHttpResponse.StatusCode >= 300 {
   105  		newErr := GenericSwaggerError{
   106  			body: localVarBody,
   107  			error: localVarHttpResponse.Status,
   108  		}
   109  		
   110  		return localVarHttpResponse, newErr
   111  	}
   112  
   113  	return localVarHttpResponse, nil
   114  }
   115  
   116  /*
   117  EnvironmentsApiService Get an environment given a project and key.
   118   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   119   * @param projectKey The project key, used to tie the flags together under one project so they can be managed together.
   120   * @param environmentKey The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
   121  
   122  @return Environment
   123  */
   124  func (a *EnvironmentsApiService) GetEnvironment(ctx context.Context, projectKey string, environmentKey string) (Environment, *http.Response, error) {
   125  	var (
   126  		localVarHttpMethod = strings.ToUpper("Get")
   127  		localVarPostBody   interface{}
   128  		localVarFileName   string
   129  		localVarFileBytes  []byte
   130  		localVarReturnValue Environment
   131  	)
   132  
   133  	// create path and map variables
   134  	localVarPath := a.client.cfg.BasePath + "/projects/{projectKey}/environments/{environmentKey}"
   135  	localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1)
   136  	localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1)
   137  
   138  	localVarHeaderParams := make(map[string]string)
   139  	localVarQueryParams := url.Values{}
   140  	localVarFormParams := url.Values{}
   141  
   142  	// to determine the Content-Type header
   143  	localVarHttpContentTypes := []string{"application/json"}
   144  
   145  	// set Content-Type header
   146  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   147  	if localVarHttpContentType != "" {
   148  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   149  	}
   150  
   151  	// to determine the Accept header
   152  	localVarHttpHeaderAccepts := []string{"application/json"}
   153  
   154  	// set Accept header
   155  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   156  	if localVarHttpHeaderAccept != "" {
   157  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   158  	}
   159  	if ctx != nil {
   160  		// API Key Authentication
   161  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   162  			var key string
   163  			if auth.Prefix != "" {
   164  				key = auth.Prefix + " " + auth.Key
   165  			} else {
   166  				key = auth.Key
   167  			}
   168  			localVarHeaderParams["Authorization"] = key
   169  			
   170  		}
   171  	}
   172  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   173  	if err != nil {
   174  		return localVarReturnValue, nil, err
   175  	}
   176  
   177  	localVarHttpResponse, err := a.client.callAPI(r)
   178  	if err != nil || localVarHttpResponse == nil {
   179  		return localVarReturnValue, localVarHttpResponse, err
   180  	}
   181  
   182  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   183  	localVarHttpResponse.Body.Close()
   184  	if err != nil {
   185  		return localVarReturnValue, localVarHttpResponse, err
   186  	}
   187  
   188  	if localVarHttpResponse.StatusCode < 300 {
   189  		// If we succeed, return the data, otherwise pass on to decode error.
   190  		err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   191  		return localVarReturnValue, localVarHttpResponse, err
   192  	}
   193  
   194  	if localVarHttpResponse.StatusCode >= 300 {
   195  		newErr := GenericSwaggerError{
   196  			body: localVarBody,
   197  			error: localVarHttpResponse.Status,
   198  		}
   199  		
   200  		if localVarHttpResponse.StatusCode == 200 {
   201  			var v Environment
   202  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   203  				if err != nil {
   204  					newErr.error = err.Error()
   205  					return localVarReturnValue, localVarHttpResponse, newErr
   206  				}
   207  				newErr.model = v
   208  				return localVarReturnValue, localVarHttpResponse, newErr
   209  		}
   210  		
   211  		return localVarReturnValue, localVarHttpResponse, newErr
   212  	}
   213  
   214  	return localVarReturnValue, localVarHttpResponse, nil
   215  }
   216  
   217  /*
   218  EnvironmentsApiService Modify an environment by ID. If you try to patch the environment by setting both required and requiredApprovalTags, it will result in an error. Users can specify either required approvals for all flags in an environment or those with specific tags, but not both. Only customers on an Enterprise plan can require approval for flag updates with either mechanism.
   219   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   220   * @param projectKey The project key, used to tie the flags together under one project so they can be managed together.
   221   * @param environmentKey The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
   222   * @param patchDelta Requires a JSON Patch representation of the desired changes to the project. &#39;http://jsonpatch.com/&#39;
   223  
   224  @return Environment
   225  */
   226  func (a *EnvironmentsApiService) PatchEnvironment(ctx context.Context, projectKey string, environmentKey string, patchDelta []PatchOperation) (Environment, *http.Response, error) {
   227  	var (
   228  		localVarHttpMethod = strings.ToUpper("Patch")
   229  		localVarPostBody   interface{}
   230  		localVarFileName   string
   231  		localVarFileBytes  []byte
   232  		localVarReturnValue Environment
   233  	)
   234  
   235  	// create path and map variables
   236  	localVarPath := a.client.cfg.BasePath + "/projects/{projectKey}/environments/{environmentKey}"
   237  	localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1)
   238  	localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1)
   239  
   240  	localVarHeaderParams := make(map[string]string)
   241  	localVarQueryParams := url.Values{}
   242  	localVarFormParams := url.Values{}
   243  
   244  	// to determine the Content-Type header
   245  	localVarHttpContentTypes := []string{"application/json"}
   246  
   247  	// set Content-Type header
   248  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   249  	if localVarHttpContentType != "" {
   250  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   251  	}
   252  
   253  	// to determine the Accept header
   254  	localVarHttpHeaderAccepts := []string{"application/json"}
   255  
   256  	// set Accept header
   257  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   258  	if localVarHttpHeaderAccept != "" {
   259  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   260  	}
   261  	// body params
   262  	localVarPostBody = &patchDelta
   263  	if ctx != nil {
   264  		// API Key Authentication
   265  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   266  			var key string
   267  			if auth.Prefix != "" {
   268  				key = auth.Prefix + " " + auth.Key
   269  			} else {
   270  				key = auth.Key
   271  			}
   272  			localVarHeaderParams["Authorization"] = key
   273  			
   274  		}
   275  	}
   276  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   277  	if err != nil {
   278  		return localVarReturnValue, nil, err
   279  	}
   280  
   281  	localVarHttpResponse, err := a.client.callAPI(r)
   282  	if err != nil || localVarHttpResponse == nil {
   283  		return localVarReturnValue, localVarHttpResponse, err
   284  	}
   285  
   286  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   287  	localVarHttpResponse.Body.Close()
   288  	if err != nil {
   289  		return localVarReturnValue, localVarHttpResponse, err
   290  	}
   291  
   292  	if localVarHttpResponse.StatusCode < 300 {
   293  		// If we succeed, return the data, otherwise pass on to decode error.
   294  		err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   295  		return localVarReturnValue, localVarHttpResponse, err
   296  	}
   297  
   298  	if localVarHttpResponse.StatusCode >= 300 {
   299  		newErr := GenericSwaggerError{
   300  			body: localVarBody,
   301  			error: localVarHttpResponse.Status,
   302  		}
   303  		
   304  		if localVarHttpResponse.StatusCode == 200 {
   305  			var v Environment
   306  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   307  				if err != nil {
   308  					newErr.error = err.Error()
   309  					return localVarReturnValue, localVarHttpResponse, newErr
   310  				}
   311  				newErr.model = v
   312  				return localVarReturnValue, localVarHttpResponse, newErr
   313  		}
   314  		
   315  		return localVarReturnValue, localVarHttpResponse, newErr
   316  	}
   317  
   318  	return localVarReturnValue, localVarHttpResponse, nil
   319  }
   320  
   321  /*
   322  EnvironmentsApiService Create a new environment in a specified project with a given name, key, and swatch color.
   323   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   324   * @param projectKey The project key, used to tie the flags together under one project so they can be managed together.
   325   * @param environmentBody New environment.
   326  
   327  @return Environment
   328  */
   329  func (a *EnvironmentsApiService) PostEnvironment(ctx context.Context, projectKey string, environmentBody EnvironmentPost) (Environment, *http.Response, error) {
   330  	var (
   331  		localVarHttpMethod = strings.ToUpper("Post")
   332  		localVarPostBody   interface{}
   333  		localVarFileName   string
   334  		localVarFileBytes  []byte
   335  		localVarReturnValue Environment
   336  	)
   337  
   338  	// create path and map variables
   339  	localVarPath := a.client.cfg.BasePath + "/projects/{projectKey}/environments"
   340  	localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1)
   341  
   342  	localVarHeaderParams := make(map[string]string)
   343  	localVarQueryParams := url.Values{}
   344  	localVarFormParams := url.Values{}
   345  
   346  	// to determine the Content-Type header
   347  	localVarHttpContentTypes := []string{"application/json"}
   348  
   349  	// set Content-Type header
   350  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   351  	if localVarHttpContentType != "" {
   352  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   353  	}
   354  
   355  	// to determine the Accept header
   356  	localVarHttpHeaderAccepts := []string{"application/json"}
   357  
   358  	// set Accept header
   359  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   360  	if localVarHttpHeaderAccept != "" {
   361  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   362  	}
   363  	// body params
   364  	localVarPostBody = &environmentBody
   365  	if ctx != nil {
   366  		// API Key Authentication
   367  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   368  			var key string
   369  			if auth.Prefix != "" {
   370  				key = auth.Prefix + " " + auth.Key
   371  			} else {
   372  				key = auth.Key
   373  			}
   374  			localVarHeaderParams["Authorization"] = key
   375  			
   376  		}
   377  	}
   378  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   379  	if err != nil {
   380  		return localVarReturnValue, nil, err
   381  	}
   382  
   383  	localVarHttpResponse, err := a.client.callAPI(r)
   384  	if err != nil || localVarHttpResponse == nil {
   385  		return localVarReturnValue, localVarHttpResponse, err
   386  	}
   387  
   388  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   389  	localVarHttpResponse.Body.Close()
   390  	if err != nil {
   391  		return localVarReturnValue, localVarHttpResponse, err
   392  	}
   393  
   394  	if localVarHttpResponse.StatusCode < 300 {
   395  		// If we succeed, return the data, otherwise pass on to decode error.
   396  		err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   397  		return localVarReturnValue, localVarHttpResponse, err
   398  	}
   399  
   400  	if localVarHttpResponse.StatusCode >= 300 {
   401  		newErr := GenericSwaggerError{
   402  			body: localVarBody,
   403  			error: localVarHttpResponse.Status,
   404  		}
   405  		
   406  		if localVarHttpResponse.StatusCode == 201 {
   407  			var v Environment
   408  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   409  				if err != nil {
   410  					newErr.error = err.Error()
   411  					return localVarReturnValue, localVarHttpResponse, newErr
   412  				}
   413  				newErr.model = v
   414  				return localVarReturnValue, localVarHttpResponse, newErr
   415  		}
   416  		
   417  		return localVarReturnValue, localVarHttpResponse, newErr
   418  	}
   419  
   420  	return localVarReturnValue, localVarHttpResponse, nil
   421  }
   422  
   423  /*
   424  EnvironmentsApiService Reset an environment&#39;s mobile key. The optional expiry for the old key is deprecated for this endpoint, so the old key will always expire immediately.
   425   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   426   * @param projectKey The project key, used to tie the flags together under one project so they can be managed together.
   427   * @param environmentKey The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
   428   * @param optional nil or *EnvironmentsApiResetEnvironmentMobileKeyOpts - Optional Parameters:
   429       * @param "Expiry" (optional.Int64) -  The expiry parameter is deprecated for this endpoint, so the old mobile key will always expire immediately. This parameter will be removed in an upcoming major API client version.
   430  
   431  @return Environment
   432  */
   433  
   434  type EnvironmentsApiResetEnvironmentMobileKeyOpts struct { 
   435  	Expiry optional.Int64
   436  }
   437  
   438  func (a *EnvironmentsApiService) ResetEnvironmentMobileKey(ctx context.Context, projectKey string, environmentKey string, localVarOptionals *EnvironmentsApiResetEnvironmentMobileKeyOpts) (Environment, *http.Response, error) {
   439  	var (
   440  		localVarHttpMethod = strings.ToUpper("Post")
   441  		localVarPostBody   interface{}
   442  		localVarFileName   string
   443  		localVarFileBytes  []byte
   444  		localVarReturnValue Environment
   445  	)
   446  
   447  	// create path and map variables
   448  	localVarPath := a.client.cfg.BasePath + "/projects/{projectKey}/environments/{environmentKey}/mobileKey"
   449  	localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1)
   450  	localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1)
   451  
   452  	localVarHeaderParams := make(map[string]string)
   453  	localVarQueryParams := url.Values{}
   454  	localVarFormParams := url.Values{}
   455  
   456  	if localVarOptionals != nil && localVarOptionals.Expiry.IsSet() {
   457  		localVarQueryParams.Add("expiry", parameterToString(localVarOptionals.Expiry.Value(), ""))
   458  	}
   459  	// to determine the Content-Type header
   460  	localVarHttpContentTypes := []string{"application/json"}
   461  
   462  	// set Content-Type header
   463  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   464  	if localVarHttpContentType != "" {
   465  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   466  	}
   467  
   468  	// to determine the Accept header
   469  	localVarHttpHeaderAccepts := []string{"application/json"}
   470  
   471  	// set Accept header
   472  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   473  	if localVarHttpHeaderAccept != "" {
   474  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   475  	}
   476  	if ctx != nil {
   477  		// API Key Authentication
   478  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   479  			var key string
   480  			if auth.Prefix != "" {
   481  				key = auth.Prefix + " " + auth.Key
   482  			} else {
   483  				key = auth.Key
   484  			}
   485  			localVarHeaderParams["Authorization"] = key
   486  			
   487  		}
   488  	}
   489  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   490  	if err != nil {
   491  		return localVarReturnValue, nil, err
   492  	}
   493  
   494  	localVarHttpResponse, err := a.client.callAPI(r)
   495  	if err != nil || localVarHttpResponse == nil {
   496  		return localVarReturnValue, localVarHttpResponse, err
   497  	}
   498  
   499  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   500  	localVarHttpResponse.Body.Close()
   501  	if err != nil {
   502  		return localVarReturnValue, localVarHttpResponse, err
   503  	}
   504  
   505  	if localVarHttpResponse.StatusCode < 300 {
   506  		// If we succeed, return the data, otherwise pass on to decode error.
   507  		err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   508  		return localVarReturnValue, localVarHttpResponse, err
   509  	}
   510  
   511  	if localVarHttpResponse.StatusCode >= 300 {
   512  		newErr := GenericSwaggerError{
   513  			body: localVarBody,
   514  			error: localVarHttpResponse.Status,
   515  		}
   516  		
   517  		if localVarHttpResponse.StatusCode == 200 {
   518  			var v Environment
   519  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   520  				if err != nil {
   521  					newErr.error = err.Error()
   522  					return localVarReturnValue, localVarHttpResponse, newErr
   523  				}
   524  				newErr.model = v
   525  				return localVarReturnValue, localVarHttpResponse, newErr
   526  		}
   527  		
   528  		return localVarReturnValue, localVarHttpResponse, newErr
   529  	}
   530  
   531  	return localVarReturnValue, localVarHttpResponse, nil
   532  }
   533  
   534  /*
   535  EnvironmentsApiService Reset an environment&#39;s SDK key with an optional expiry time for the old key.
   536   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   537   * @param projectKey The project key, used to tie the flags together under one project so they can be managed together.
   538   * @param environmentKey The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
   539   * @param optional nil or *EnvironmentsApiResetEnvironmentSDKKeyOpts - Optional Parameters:
   540       * @param "Expiry" (optional.Int64) -  An expiration time for the old environment SDK key, expressed as a Unix epoch time in milliseconds. By default, the key will expire immediately.
   541  
   542  @return Environment
   543  */
   544  
   545  type EnvironmentsApiResetEnvironmentSDKKeyOpts struct { 
   546  	Expiry optional.Int64
   547  }
   548  
   549  func (a *EnvironmentsApiService) ResetEnvironmentSDKKey(ctx context.Context, projectKey string, environmentKey string, localVarOptionals *EnvironmentsApiResetEnvironmentSDKKeyOpts) (Environment, *http.Response, error) {
   550  	var (
   551  		localVarHttpMethod = strings.ToUpper("Post")
   552  		localVarPostBody   interface{}
   553  		localVarFileName   string
   554  		localVarFileBytes  []byte
   555  		localVarReturnValue Environment
   556  	)
   557  
   558  	// create path and map variables
   559  	localVarPath := a.client.cfg.BasePath + "/projects/{projectKey}/environments/{environmentKey}/apiKey"
   560  	localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1)
   561  	localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1)
   562  
   563  	localVarHeaderParams := make(map[string]string)
   564  	localVarQueryParams := url.Values{}
   565  	localVarFormParams := url.Values{}
   566  
   567  	if localVarOptionals != nil && localVarOptionals.Expiry.IsSet() {
   568  		localVarQueryParams.Add("expiry", parameterToString(localVarOptionals.Expiry.Value(), ""))
   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  	if ctx != nil {
   588  		// API Key Authentication
   589  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   590  			var key string
   591  			if auth.Prefix != "" {
   592  				key = auth.Prefix + " " + auth.Key
   593  			} else {
   594  				key = auth.Key
   595  			}
   596  			localVarHeaderParams["Authorization"] = key
   597  			
   598  		}
   599  	}
   600  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   601  	if err != nil {
   602  		return localVarReturnValue, nil, err
   603  	}
   604  
   605  	localVarHttpResponse, err := a.client.callAPI(r)
   606  	if err != nil || localVarHttpResponse == nil {
   607  		return localVarReturnValue, localVarHttpResponse, err
   608  	}
   609  
   610  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   611  	localVarHttpResponse.Body.Close()
   612  	if err != nil {
   613  		return localVarReturnValue, localVarHttpResponse, err
   614  	}
   615  
   616  	if localVarHttpResponse.StatusCode < 300 {
   617  		// If we succeed, return the data, otherwise pass on to decode error.
   618  		err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   619  		return localVarReturnValue, localVarHttpResponse, err
   620  	}
   621  
   622  	if localVarHttpResponse.StatusCode >= 300 {
   623  		newErr := GenericSwaggerError{
   624  			body: localVarBody,
   625  			error: localVarHttpResponse.Status,
   626  		}
   627  		
   628  		if localVarHttpResponse.StatusCode == 200 {
   629  			var v Environment
   630  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   631  				if err != nil {
   632  					newErr.error = err.Error()
   633  					return localVarReturnValue, localVarHttpResponse, newErr
   634  				}
   635  				newErr.model = v
   636  				return localVarReturnValue, localVarHttpResponse, newErr
   637  		}
   638  		
   639  		return localVarReturnValue, localVarHttpResponse, newErr
   640  	}
   641  
   642  	return localVarReturnValue, localVarHttpResponse, nil
   643  }
   644