github.com/launchdarkly/api-client-go@v5.3.0+incompatible/api_users.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 UsersApiService service
    30  
    31  /*
    32  UsersApiService Delete a user by ID.
    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 userKey The user's key.
    37  
    38  
    39  */
    40  func (a *UsersApiService) DeleteUser(ctx context.Context, projectKey string, environmentKey string, userKey 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 + "/users/{projectKey}/{environmentKey}/{userKey}"
    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, "{"+"userKey"+"}", fmt.Sprintf("%v", userKey), -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  UsersApiService Search users in LaunchDarkly based on their last active date, or a search query. It should not be used to enumerate all users in LaunchDarkly-- use the List users API resource.
   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 optional nil or *UsersApiGetSearchUsersOpts - Optional Parameters:
   124       * @param "Q" (optional.String) -  Search query.
   125       * @param "Limit" (optional.Int32) -  Pagination limit.
   126       * @param "Offset" (optional.Int32) -  Specifies the first item to return in the collection.
   127       * @param "After" (optional.Int64) -  A timestamp filter, expressed as a Unix epoch time in milliseconds. All entries returned will have occurred after this timestamp.
   128  
   129  @return Users
   130  */
   131  
   132  type UsersApiGetSearchUsersOpts struct { 
   133  	Q optional.String
   134  	Limit optional.Int32
   135  	Offset optional.Int32
   136  	After optional.Int64
   137  }
   138  
   139  func (a *UsersApiService) GetSearchUsers(ctx context.Context, projectKey string, environmentKey string, localVarOptionals *UsersApiGetSearchUsersOpts) (Users, *http.Response, error) {
   140  	var (
   141  		localVarHttpMethod = strings.ToUpper("Get")
   142  		localVarPostBody   interface{}
   143  		localVarFileName   string
   144  		localVarFileBytes  []byte
   145  		localVarReturnValue Users
   146  	)
   147  
   148  	// create path and map variables
   149  	localVarPath := a.client.cfg.BasePath + "/user-search/{projectKey}/{environmentKey}"
   150  	localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1)
   151  	localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1)
   152  
   153  	localVarHeaderParams := make(map[string]string)
   154  	localVarQueryParams := url.Values{}
   155  	localVarFormParams := url.Values{}
   156  
   157  	if localVarOptionals != nil && localVarOptionals.Q.IsSet() {
   158  		localVarQueryParams.Add("q", parameterToString(localVarOptionals.Q.Value(), ""))
   159  	}
   160  	if localVarOptionals != nil && localVarOptionals.Limit.IsSet() {
   161  		localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), ""))
   162  	}
   163  	if localVarOptionals != nil && localVarOptionals.Offset.IsSet() {
   164  		localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), ""))
   165  	}
   166  	if localVarOptionals != nil && localVarOptionals.After.IsSet() {
   167  		localVarQueryParams.Add("after", parameterToString(localVarOptionals.After.Value(), ""))
   168  	}
   169  	// to determine the Content-Type header
   170  	localVarHttpContentTypes := []string{"application/json"}
   171  
   172  	// set Content-Type header
   173  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   174  	if localVarHttpContentType != "" {
   175  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   176  	}
   177  
   178  	// to determine the Accept header
   179  	localVarHttpHeaderAccepts := []string{"application/json"}
   180  
   181  	// set Accept header
   182  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   183  	if localVarHttpHeaderAccept != "" {
   184  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   185  	}
   186  	if ctx != nil {
   187  		// API Key Authentication
   188  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   189  			var key string
   190  			if auth.Prefix != "" {
   191  				key = auth.Prefix + " " + auth.Key
   192  			} else {
   193  				key = auth.Key
   194  			}
   195  			localVarHeaderParams["Authorization"] = key
   196  			
   197  		}
   198  	}
   199  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   200  	if err != nil {
   201  		return localVarReturnValue, nil, err
   202  	}
   203  
   204  	localVarHttpResponse, err := a.client.callAPI(r)
   205  	if err != nil || localVarHttpResponse == nil {
   206  		return localVarReturnValue, localVarHttpResponse, err
   207  	}
   208  
   209  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   210  	localVarHttpResponse.Body.Close()
   211  	if err != nil {
   212  		return localVarReturnValue, localVarHttpResponse, err
   213  	}
   214  
   215  	if localVarHttpResponse.StatusCode < 300 {
   216  		// If we succeed, return the data, otherwise pass on to decode error.
   217  		err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   218  		return localVarReturnValue, localVarHttpResponse, err
   219  	}
   220  
   221  	if localVarHttpResponse.StatusCode >= 300 {
   222  		newErr := GenericSwaggerError{
   223  			body: localVarBody,
   224  			error: localVarHttpResponse.Status,
   225  		}
   226  		
   227  		if localVarHttpResponse.StatusCode == 200 {
   228  			var v Users
   229  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   230  				if err != nil {
   231  					newErr.error = err.Error()
   232  					return localVarReturnValue, localVarHttpResponse, newErr
   233  				}
   234  				newErr.model = v
   235  				return localVarReturnValue, localVarHttpResponse, newErr
   236  		}
   237  		
   238  		return localVarReturnValue, localVarHttpResponse, newErr
   239  	}
   240  
   241  	return localVarReturnValue, localVarHttpResponse, nil
   242  }
   243  
   244  /*
   245  UsersApiService Get a user by key.
   246   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   247   * @param projectKey The project key, used to tie the flags together under one project so they can be managed together.
   248   * @param environmentKey The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
   249   * @param userKey The user&#39;s key.
   250  
   251  @return UserRecord
   252  */
   253  func (a *UsersApiService) GetUser(ctx context.Context, projectKey string, environmentKey string, userKey string) (UserRecord, *http.Response, error) {
   254  	var (
   255  		localVarHttpMethod = strings.ToUpper("Get")
   256  		localVarPostBody   interface{}
   257  		localVarFileName   string
   258  		localVarFileBytes  []byte
   259  		localVarReturnValue UserRecord
   260  	)
   261  
   262  	// create path and map variables
   263  	localVarPath := a.client.cfg.BasePath + "/users/{projectKey}/{environmentKey}/{userKey}"
   264  	localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1)
   265  	localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1)
   266  	localVarPath = strings.Replace(localVarPath, "{"+"userKey"+"}", fmt.Sprintf("%v", userKey), -1)
   267  
   268  	localVarHeaderParams := make(map[string]string)
   269  	localVarQueryParams := url.Values{}
   270  	localVarFormParams := url.Values{}
   271  
   272  	// to determine the Content-Type header
   273  	localVarHttpContentTypes := []string{"application/json"}
   274  
   275  	// set Content-Type header
   276  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   277  	if localVarHttpContentType != "" {
   278  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   279  	}
   280  
   281  	// to determine the Accept header
   282  	localVarHttpHeaderAccepts := []string{"application/json"}
   283  
   284  	// set Accept header
   285  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   286  	if localVarHttpHeaderAccept != "" {
   287  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   288  	}
   289  	if ctx != nil {
   290  		// API Key Authentication
   291  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   292  			var key string
   293  			if auth.Prefix != "" {
   294  				key = auth.Prefix + " " + auth.Key
   295  			} else {
   296  				key = auth.Key
   297  			}
   298  			localVarHeaderParams["Authorization"] = key
   299  			
   300  		}
   301  	}
   302  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   303  	if err != nil {
   304  		return localVarReturnValue, nil, err
   305  	}
   306  
   307  	localVarHttpResponse, err := a.client.callAPI(r)
   308  	if err != nil || localVarHttpResponse == nil {
   309  		return localVarReturnValue, localVarHttpResponse, err
   310  	}
   311  
   312  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   313  	localVarHttpResponse.Body.Close()
   314  	if err != nil {
   315  		return localVarReturnValue, localVarHttpResponse, err
   316  	}
   317  
   318  	if localVarHttpResponse.StatusCode < 300 {
   319  		// If we succeed, return the data, otherwise pass on to decode error.
   320  		err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   321  		return localVarReturnValue, localVarHttpResponse, err
   322  	}
   323  
   324  	if localVarHttpResponse.StatusCode >= 300 {
   325  		newErr := GenericSwaggerError{
   326  			body: localVarBody,
   327  			error: localVarHttpResponse.Status,
   328  		}
   329  		
   330  		if localVarHttpResponse.StatusCode == 200 {
   331  			var v UserRecord
   332  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   333  				if err != nil {
   334  					newErr.error = err.Error()
   335  					return localVarReturnValue, localVarHttpResponse, newErr
   336  				}
   337  				newErr.model = v
   338  				return localVarReturnValue, localVarHttpResponse, newErr
   339  		}
   340  		
   341  		return localVarReturnValue, localVarHttpResponse, newErr
   342  	}
   343  
   344  	return localVarReturnValue, localVarHttpResponse, nil
   345  }
   346  
   347  /*
   348  UsersApiService List all users in the environment. Includes the total count of users. In each page, there will be up to &#39;limit&#39; users returned (default 20). This is useful for exporting all users in the system for further analysis. Paginated collections will include a next link containing a URL with the next set of elements in the collection.
   349   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   350   * @param projectKey The project key, used to tie the flags together under one project so they can be managed together.
   351   * @param environmentKey The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
   352   * @param optional nil or *UsersApiGetUsersOpts - Optional Parameters:
   353       * @param "Limit" (optional.Int32) -  Pagination limit.
   354       * @param "H" (optional.String) -  This parameter is required when following \&quot;next\&quot; links.
   355       * @param "ScrollId" (optional.String) -  This parameter is required when following \&quot;next\&quot; links.
   356  
   357  @return Users
   358  */
   359  
   360  type UsersApiGetUsersOpts struct { 
   361  	Limit optional.Int32
   362  	H optional.String
   363  	ScrollId optional.String
   364  }
   365  
   366  func (a *UsersApiService) GetUsers(ctx context.Context, projectKey string, environmentKey string, localVarOptionals *UsersApiGetUsersOpts) (Users, *http.Response, error) {
   367  	var (
   368  		localVarHttpMethod = strings.ToUpper("Get")
   369  		localVarPostBody   interface{}
   370  		localVarFileName   string
   371  		localVarFileBytes  []byte
   372  		localVarReturnValue Users
   373  	)
   374  
   375  	// create path and map variables
   376  	localVarPath := a.client.cfg.BasePath + "/users/{projectKey}/{environmentKey}"
   377  	localVarPath = strings.Replace(localVarPath, "{"+"projectKey"+"}", fmt.Sprintf("%v", projectKey), -1)
   378  	localVarPath = strings.Replace(localVarPath, "{"+"environmentKey"+"}", fmt.Sprintf("%v", environmentKey), -1)
   379  
   380  	localVarHeaderParams := make(map[string]string)
   381  	localVarQueryParams := url.Values{}
   382  	localVarFormParams := url.Values{}
   383  
   384  	if localVarOptionals != nil && localVarOptionals.Limit.IsSet() {
   385  		localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), ""))
   386  	}
   387  	if localVarOptionals != nil && localVarOptionals.H.IsSet() {
   388  		localVarQueryParams.Add("h", parameterToString(localVarOptionals.H.Value(), ""))
   389  	}
   390  	if localVarOptionals != nil && localVarOptionals.ScrollId.IsSet() {
   391  		localVarQueryParams.Add("scrollId", parameterToString(localVarOptionals.ScrollId.Value(), ""))
   392  	}
   393  	// to determine the Content-Type header
   394  	localVarHttpContentTypes := []string{"application/json"}
   395  
   396  	// set Content-Type header
   397  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   398  	if localVarHttpContentType != "" {
   399  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   400  	}
   401  
   402  	// to determine the Accept header
   403  	localVarHttpHeaderAccepts := []string{"application/json"}
   404  
   405  	// set Accept header
   406  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   407  	if localVarHttpHeaderAccept != "" {
   408  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   409  	}
   410  	if ctx != nil {
   411  		// API Key Authentication
   412  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   413  			var key string
   414  			if auth.Prefix != "" {
   415  				key = auth.Prefix + " " + auth.Key
   416  			} else {
   417  				key = auth.Key
   418  			}
   419  			localVarHeaderParams["Authorization"] = key
   420  			
   421  		}
   422  	}
   423  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   424  	if err != nil {
   425  		return localVarReturnValue, nil, err
   426  	}
   427  
   428  	localVarHttpResponse, err := a.client.callAPI(r)
   429  	if err != nil || localVarHttpResponse == nil {
   430  		return localVarReturnValue, localVarHttpResponse, err
   431  	}
   432  
   433  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   434  	localVarHttpResponse.Body.Close()
   435  	if err != nil {
   436  		return localVarReturnValue, localVarHttpResponse, err
   437  	}
   438  
   439  	if localVarHttpResponse.StatusCode < 300 {
   440  		// If we succeed, return the data, otherwise pass on to decode error.
   441  		err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   442  		return localVarReturnValue, localVarHttpResponse, err
   443  	}
   444  
   445  	if localVarHttpResponse.StatusCode >= 300 {
   446  		newErr := GenericSwaggerError{
   447  			body: localVarBody,
   448  			error: localVarHttpResponse.Status,
   449  		}
   450  		
   451  		if localVarHttpResponse.StatusCode == 200 {
   452  			var v Users
   453  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   454  				if err != nil {
   455  					newErr.error = err.Error()
   456  					return localVarReturnValue, localVarHttpResponse, newErr
   457  				}
   458  				newErr.model = v
   459  				return localVarReturnValue, localVarHttpResponse, newErr
   460  		}
   461  		
   462  		return localVarReturnValue, localVarHttpResponse, newErr
   463  	}
   464  
   465  	return localVarReturnValue, localVarHttpResponse, nil
   466  }
   467