github.com/launchdarkly/api-client-go@v5.3.0+incompatible/api_projects.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  )
    22  
    23  // Linger please
    24  var (
    25  	_ context.Context
    26  )
    27  
    28  type ProjectsApiService service
    29  
    30  /*
    31  ProjectsApiService Delete a project by key. Caution-- deleting a project will delete all associated environments and feature flags. You cannot delete the last project in an account.
    32   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    33   * @param projectKey The project key, used to tie the flags together under one project so they can be managed together.
    34  
    35  
    36  */
    37  func (a *ProjectsApiService) DeleteProject(ctx context.Context, projectKey string) (*http.Response, error) {
    38  	var (
    39  		localVarHttpMethod = strings.ToUpper("Delete")
    40  		localVarPostBody   interface{}
    41  		localVarFileName   string
    42  		localVarFileBytes  []byte
    43  		
    44  	)
    45  
    46  	// create path and map variables
    47  	localVarPath := a.client.cfg.BasePath + "/projects/{projectKey}"
    48  	localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1)
    49  
    50  	localVarHeaderParams := make(map[string]string)
    51  	localVarQueryParams := url.Values{}
    52  	localVarFormParams := url.Values{}
    53  
    54  	// to determine the Content-Type header
    55  	localVarHttpContentTypes := []string{"application/json"}
    56  
    57  	// set Content-Type header
    58  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
    59  	if localVarHttpContentType != "" {
    60  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
    61  	}
    62  
    63  	// to determine the Accept header
    64  	localVarHttpHeaderAccepts := []string{"application/json"}
    65  
    66  	// set Accept header
    67  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
    68  	if localVarHttpHeaderAccept != "" {
    69  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    70  	}
    71  	if ctx != nil {
    72  		// API Key Authentication
    73  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
    74  			var key string
    75  			if auth.Prefix != "" {
    76  				key = auth.Prefix + " " + auth.Key
    77  			} else {
    78  				key = auth.Key
    79  			}
    80  			localVarHeaderParams["Authorization"] = key
    81  			
    82  		}
    83  	}
    84  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
    85  	if err != nil {
    86  		return nil, err
    87  	}
    88  
    89  	localVarHttpResponse, err := a.client.callAPI(r)
    90  	if err != nil || localVarHttpResponse == nil {
    91  		return localVarHttpResponse, err
    92  	}
    93  
    94  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
    95  	localVarHttpResponse.Body.Close()
    96  	if err != nil {
    97  		return localVarHttpResponse, err
    98  	}
    99  
   100  
   101  	if localVarHttpResponse.StatusCode >= 300 {
   102  		newErr := GenericSwaggerError{
   103  			body: localVarBody,
   104  			error: localVarHttpResponse.Status,
   105  		}
   106  		
   107  		return localVarHttpResponse, newErr
   108  	}
   109  
   110  	return localVarHttpResponse, nil
   111  }
   112  
   113  /*
   114  ProjectsApiService Fetch a single project by key.
   115   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   116   * @param projectKey The project key, used to tie the flags together under one project so they can be managed together.
   117  
   118  @return Project
   119  */
   120  func (a *ProjectsApiService) GetProject(ctx context.Context, projectKey string) (Project, *http.Response, error) {
   121  	var (
   122  		localVarHttpMethod = strings.ToUpper("Get")
   123  		localVarPostBody   interface{}
   124  		localVarFileName   string
   125  		localVarFileBytes  []byte
   126  		localVarReturnValue Project
   127  	)
   128  
   129  	// create path and map variables
   130  	localVarPath := a.client.cfg.BasePath + "/projects/{projectKey}"
   131  	localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1)
   132  
   133  	localVarHeaderParams := make(map[string]string)
   134  	localVarQueryParams := url.Values{}
   135  	localVarFormParams := url.Values{}
   136  
   137  	// to determine the Content-Type header
   138  	localVarHttpContentTypes := []string{"application/json"}
   139  
   140  	// set Content-Type header
   141  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   142  	if localVarHttpContentType != "" {
   143  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   144  	}
   145  
   146  	// to determine the Accept header
   147  	localVarHttpHeaderAccepts := []string{"application/json"}
   148  
   149  	// set Accept header
   150  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   151  	if localVarHttpHeaderAccept != "" {
   152  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   153  	}
   154  	if ctx != nil {
   155  		// API Key Authentication
   156  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   157  			var key string
   158  			if auth.Prefix != "" {
   159  				key = auth.Prefix + " " + auth.Key
   160  			} else {
   161  				key = auth.Key
   162  			}
   163  			localVarHeaderParams["Authorization"] = key
   164  			
   165  		}
   166  	}
   167  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   168  	if err != nil {
   169  		return localVarReturnValue, nil, err
   170  	}
   171  
   172  	localVarHttpResponse, err := a.client.callAPI(r)
   173  	if err != nil || localVarHttpResponse == nil {
   174  		return localVarReturnValue, localVarHttpResponse, err
   175  	}
   176  
   177  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   178  	localVarHttpResponse.Body.Close()
   179  	if err != nil {
   180  		return localVarReturnValue, localVarHttpResponse, err
   181  	}
   182  
   183  	if localVarHttpResponse.StatusCode < 300 {
   184  		// If we succeed, return the data, otherwise pass on to decode error.
   185  		err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   186  		return localVarReturnValue, localVarHttpResponse, err
   187  	}
   188  
   189  	if localVarHttpResponse.StatusCode >= 300 {
   190  		newErr := GenericSwaggerError{
   191  			body: localVarBody,
   192  			error: localVarHttpResponse.Status,
   193  		}
   194  		
   195  		if localVarHttpResponse.StatusCode == 200 {
   196  			var v Project
   197  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   198  				if err != nil {
   199  					newErr.error = err.Error()
   200  					return localVarReturnValue, localVarHttpResponse, newErr
   201  				}
   202  				newErr.model = v
   203  				return localVarReturnValue, localVarHttpResponse, newErr
   204  		}
   205  		
   206  		return localVarReturnValue, localVarHttpResponse, newErr
   207  	}
   208  
   209  	return localVarReturnValue, localVarHttpResponse, nil
   210  }
   211  
   212  /*
   213  ProjectsApiService Returns a list of all projects in the account.
   214   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   215  
   216  @return Projects
   217  */
   218  func (a *ProjectsApiService) GetProjects(ctx context.Context) (Projects, *http.Response, error) {
   219  	var (
   220  		localVarHttpMethod = strings.ToUpper("Get")
   221  		localVarPostBody   interface{}
   222  		localVarFileName   string
   223  		localVarFileBytes  []byte
   224  		localVarReturnValue Projects
   225  	)
   226  
   227  	// create path and map variables
   228  	localVarPath := a.client.cfg.BasePath + "/projects"
   229  
   230  	localVarHeaderParams := make(map[string]string)
   231  	localVarQueryParams := url.Values{}
   232  	localVarFormParams := url.Values{}
   233  
   234  	// to determine the Content-Type header
   235  	localVarHttpContentTypes := []string{"application/json"}
   236  
   237  	// set Content-Type header
   238  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   239  	if localVarHttpContentType != "" {
   240  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   241  	}
   242  
   243  	// to determine the Accept header
   244  	localVarHttpHeaderAccepts := []string{"application/json"}
   245  
   246  	// set Accept header
   247  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   248  	if localVarHttpHeaderAccept != "" {
   249  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   250  	}
   251  	if ctx != nil {
   252  		// API Key Authentication
   253  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   254  			var key string
   255  			if auth.Prefix != "" {
   256  				key = auth.Prefix + " " + auth.Key
   257  			} else {
   258  				key = auth.Key
   259  			}
   260  			localVarHeaderParams["Authorization"] = key
   261  			
   262  		}
   263  	}
   264  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   265  	if err != nil {
   266  		return localVarReturnValue, nil, err
   267  	}
   268  
   269  	localVarHttpResponse, err := a.client.callAPI(r)
   270  	if err != nil || localVarHttpResponse == nil {
   271  		return localVarReturnValue, localVarHttpResponse, err
   272  	}
   273  
   274  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   275  	localVarHttpResponse.Body.Close()
   276  	if err != nil {
   277  		return localVarReturnValue, localVarHttpResponse, err
   278  	}
   279  
   280  	if localVarHttpResponse.StatusCode < 300 {
   281  		// If we succeed, return the data, otherwise pass on to decode error.
   282  		err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   283  		return localVarReturnValue, localVarHttpResponse, err
   284  	}
   285  
   286  	if localVarHttpResponse.StatusCode >= 300 {
   287  		newErr := GenericSwaggerError{
   288  			body: localVarBody,
   289  			error: localVarHttpResponse.Status,
   290  		}
   291  		
   292  		if localVarHttpResponse.StatusCode == 200 {
   293  			var v Projects
   294  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   295  				if err != nil {
   296  					newErr.error = err.Error()
   297  					return localVarReturnValue, localVarHttpResponse, newErr
   298  				}
   299  				newErr.model = v
   300  				return localVarReturnValue, localVarHttpResponse, newErr
   301  		}
   302  		
   303  		return localVarReturnValue, localVarHttpResponse, newErr
   304  	}
   305  
   306  	return localVarReturnValue, localVarHttpResponse, nil
   307  }
   308  
   309  /*
   310  ProjectsApiService Modify a project by ID.
   311   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   312   * @param projectKey The project key, used to tie the flags together under one project so they can be managed together.
   313   * @param patchDelta Requires a JSON Patch representation of the desired changes to the project. &#39;http://jsonpatch.com/&#39;
   314  
   315  @return Project
   316  */
   317  func (a *ProjectsApiService) PatchProject(ctx context.Context, projectKey string, patchDelta []PatchOperation) (Project, *http.Response, error) {
   318  	var (
   319  		localVarHttpMethod = strings.ToUpper("Patch")
   320  		localVarPostBody   interface{}
   321  		localVarFileName   string
   322  		localVarFileBytes  []byte
   323  		localVarReturnValue Project
   324  	)
   325  
   326  	// create path and map variables
   327  	localVarPath := a.client.cfg.BasePath + "/projects/{projectKey}"
   328  	localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1)
   329  
   330  	localVarHeaderParams := make(map[string]string)
   331  	localVarQueryParams := url.Values{}
   332  	localVarFormParams := url.Values{}
   333  
   334  	// to determine the Content-Type header
   335  	localVarHttpContentTypes := []string{"application/json"}
   336  
   337  	// set Content-Type header
   338  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   339  	if localVarHttpContentType != "" {
   340  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   341  	}
   342  
   343  	// to determine the Accept header
   344  	localVarHttpHeaderAccepts := []string{"application/json"}
   345  
   346  	// set Accept header
   347  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   348  	if localVarHttpHeaderAccept != "" {
   349  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   350  	}
   351  	// body params
   352  	localVarPostBody = &patchDelta
   353  	if ctx != nil {
   354  		// API Key Authentication
   355  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   356  			var key string
   357  			if auth.Prefix != "" {
   358  				key = auth.Prefix + " " + auth.Key
   359  			} else {
   360  				key = auth.Key
   361  			}
   362  			localVarHeaderParams["Authorization"] = key
   363  			
   364  		}
   365  	}
   366  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   367  	if err != nil {
   368  		return localVarReturnValue, nil, err
   369  	}
   370  
   371  	localVarHttpResponse, err := a.client.callAPI(r)
   372  	if err != nil || localVarHttpResponse == nil {
   373  		return localVarReturnValue, localVarHttpResponse, err
   374  	}
   375  
   376  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   377  	localVarHttpResponse.Body.Close()
   378  	if err != nil {
   379  		return localVarReturnValue, localVarHttpResponse, err
   380  	}
   381  
   382  	if localVarHttpResponse.StatusCode < 300 {
   383  		// If we succeed, return the data, otherwise pass on to decode error.
   384  		err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   385  		return localVarReturnValue, localVarHttpResponse, err
   386  	}
   387  
   388  	if localVarHttpResponse.StatusCode >= 300 {
   389  		newErr := GenericSwaggerError{
   390  			body: localVarBody,
   391  			error: localVarHttpResponse.Status,
   392  		}
   393  		
   394  		if localVarHttpResponse.StatusCode == 200 {
   395  			var v Project
   396  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   397  				if err != nil {
   398  					newErr.error = err.Error()
   399  					return localVarReturnValue, localVarHttpResponse, newErr
   400  				}
   401  				newErr.model = v
   402  				return localVarReturnValue, localVarHttpResponse, newErr
   403  		}
   404  		
   405  		return localVarReturnValue, localVarHttpResponse, newErr
   406  	}
   407  
   408  	return localVarReturnValue, localVarHttpResponse, nil
   409  }
   410  
   411  /*
   412  ProjectsApiService Create a new project with the given key and name.
   413   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   414   * @param projectBody Project keys must be unique within an account.
   415  
   416  @return Project
   417  */
   418  func (a *ProjectsApiService) PostProject(ctx context.Context, projectBody ProjectBody) (Project, *http.Response, error) {
   419  	var (
   420  		localVarHttpMethod = strings.ToUpper("Post")
   421  		localVarPostBody   interface{}
   422  		localVarFileName   string
   423  		localVarFileBytes  []byte
   424  		localVarReturnValue Project
   425  	)
   426  
   427  	// create path and map variables
   428  	localVarPath := a.client.cfg.BasePath + "/projects"
   429  
   430  	localVarHeaderParams := make(map[string]string)
   431  	localVarQueryParams := url.Values{}
   432  	localVarFormParams := url.Values{}
   433  
   434  	// to determine the Content-Type header
   435  	localVarHttpContentTypes := []string{"application/json"}
   436  
   437  	// set Content-Type header
   438  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   439  	if localVarHttpContentType != "" {
   440  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   441  	}
   442  
   443  	// to determine the Accept header
   444  	localVarHttpHeaderAccepts := []string{"application/json"}
   445  
   446  	// set Accept header
   447  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   448  	if localVarHttpHeaderAccept != "" {
   449  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   450  	}
   451  	// body params
   452  	localVarPostBody = &projectBody
   453  	if ctx != nil {
   454  		// API Key Authentication
   455  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   456  			var key string
   457  			if auth.Prefix != "" {
   458  				key = auth.Prefix + " " + auth.Key
   459  			} else {
   460  				key = auth.Key
   461  			}
   462  			localVarHeaderParams["Authorization"] = key
   463  			
   464  		}
   465  	}
   466  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   467  	if err != nil {
   468  		return localVarReturnValue, nil, err
   469  	}
   470  
   471  	localVarHttpResponse, err := a.client.callAPI(r)
   472  	if err != nil || localVarHttpResponse == nil {
   473  		return localVarReturnValue, localVarHttpResponse, err
   474  	}
   475  
   476  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   477  	localVarHttpResponse.Body.Close()
   478  	if err != nil {
   479  		return localVarReturnValue, localVarHttpResponse, err
   480  	}
   481  
   482  	if localVarHttpResponse.StatusCode < 300 {
   483  		// If we succeed, return the data, otherwise pass on to decode error.
   484  		err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   485  		return localVarReturnValue, localVarHttpResponse, err
   486  	}
   487  
   488  	if localVarHttpResponse.StatusCode >= 300 {
   489  		newErr := GenericSwaggerError{
   490  			body: localVarBody,
   491  			error: localVarHttpResponse.Status,
   492  		}
   493  		
   494  		if localVarHttpResponse.StatusCode == 201 {
   495  			var v Project
   496  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   497  				if err != nil {
   498  					newErr.error = err.Error()
   499  					return localVarReturnValue, localVarHttpResponse, newErr
   500  				}
   501  				newErr.model = v
   502  				return localVarReturnValue, localVarHttpResponse, newErr
   503  		}
   504  		
   505  		return localVarReturnValue, localVarHttpResponse, newErr
   506  	}
   507  
   508  	return localVarReturnValue, localVarHttpResponse, nil
   509  }
   510