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'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 'limit' 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 \"next\" links. 355 * @param "ScrollId" (optional.String) - This parameter is required when following \"next\" 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