// Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2019-Present Datadog, Inc. package datadogV1 import ( _context "context" _nethttp "net/http" _neturl "net/url" "strings" "github.com/DataDog/datadog-api-client-go/v2/api/datadog" ) // UsersApi service type type UsersApi datadog.Service // CreateUser Create a user. // Create a user for your organization. // // **Note**: Users can only be created with the admin access role // if application keys belong to administrators. func (a *UsersApi) CreateUser(ctx _context.Context, body User) (UserResponse, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodPost localVarPostBody interface{} localVarReturnValue UserResponse ) localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v1.UsersApi.CreateUser") if err != nil { return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()} } localVarPath := localBasePath + "/api/v1/user" localVarHeaderParams := make(map[string]string) localVarQueryParams := _neturl.Values{} localVarFormParams := _neturl.Values{} localVarHeaderParams["Content-Type"] = "application/json" localVarHeaderParams["Accept"] = "application/json" // body params localVarPostBody = &body datadog.SetAuthKeys( ctx, &localVarHeaderParams, [2]string{"apiKeyAuth", "DD-API-KEY"}, [2]string{"appKeyAuth", "DD-APPLICATION-KEY"}, ) req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.Client.CallAPI(req) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := datadog.ReadBody(localVarHTTPResponse) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := datadog.GenericOpenAPIError{ ErrorBody: localVarBody, ErrorMessage: localVarHTTPResponse.Status, } if localVarHTTPResponse.StatusCode == 400 || localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 409 || localVarHTTPResponse.StatusCode == 429 { var v APIErrorResponse err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { return localVarReturnValue, localVarHTTPResponse, newErr } newErr.ErrorModel = v } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := datadog.GenericOpenAPIError{ ErrorBody: localVarBody, ErrorMessage: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // DisableUser Disable a user. // Delete a user from an organization. // // **Note**: This endpoint can only be used with application keys belonging to // administrators. func (a *UsersApi) DisableUser(ctx _context.Context, userHandle string) (UserDisableResponse, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodDelete localVarPostBody interface{} localVarReturnValue UserDisableResponse ) localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v1.UsersApi.DisableUser") if err != nil { return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()} } localVarPath := localBasePath + "/api/v1/user/{user_handle}" localVarPath = strings.Replace(localVarPath, "{"+"user_handle"+"}", _neturl.PathEscape(datadog.ParameterToString(userHandle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := _neturl.Values{} localVarFormParams := _neturl.Values{} localVarHeaderParams["Accept"] = "application/json" datadog.SetAuthKeys( ctx, &localVarHeaderParams, [2]string{"apiKeyAuth", "DD-API-KEY"}, [2]string{"appKeyAuth", "DD-APPLICATION-KEY"}, ) req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.Client.CallAPI(req) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := datadog.ReadBody(localVarHTTPResponse) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := datadog.GenericOpenAPIError{ ErrorBody: localVarBody, ErrorMessage: localVarHTTPResponse.Status, } if localVarHTTPResponse.StatusCode == 400 || localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 404 || localVarHTTPResponse.StatusCode == 429 { var v APIErrorResponse err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { return localVarReturnValue, localVarHTTPResponse, newErr } newErr.ErrorModel = v } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := datadog.GenericOpenAPIError{ ErrorBody: localVarBody, ErrorMessage: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // GetUser Get user details. // Get a user's details. func (a *UsersApi) GetUser(ctx _context.Context, userHandle string) (UserResponse, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodGet localVarPostBody interface{} localVarReturnValue UserResponse ) localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v1.UsersApi.GetUser") if err != nil { return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()} } localVarPath := localBasePath + "/api/v1/user/{user_handle}" localVarPath = strings.Replace(localVarPath, "{"+"user_handle"+"}", _neturl.PathEscape(datadog.ParameterToString(userHandle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := _neturl.Values{} localVarFormParams := _neturl.Values{} localVarHeaderParams["Accept"] = "application/json" datadog.SetAuthKeys( ctx, &localVarHeaderParams, [2]string{"apiKeyAuth", "DD-API-KEY"}, [2]string{"appKeyAuth", "DD-APPLICATION-KEY"}, ) req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.Client.CallAPI(req) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := datadog.ReadBody(localVarHTTPResponse) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := datadog.GenericOpenAPIError{ ErrorBody: localVarBody, ErrorMessage: localVarHTTPResponse.Status, } if localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 404 || localVarHTTPResponse.StatusCode == 429 { var v APIErrorResponse err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { return localVarReturnValue, localVarHTTPResponse, newErr } newErr.ErrorModel = v } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := datadog.GenericOpenAPIError{ ErrorBody: localVarBody, ErrorMessage: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // ListUsers List all users. // List all users for your organization. func (a *UsersApi) ListUsers(ctx _context.Context) (UserListResponse, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodGet localVarPostBody interface{} localVarReturnValue UserListResponse ) localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v1.UsersApi.ListUsers") if err != nil { return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()} } localVarPath := localBasePath + "/api/v1/user" localVarHeaderParams := make(map[string]string) localVarQueryParams := _neturl.Values{} localVarFormParams := _neturl.Values{} localVarHeaderParams["Accept"] = "application/json" datadog.SetAuthKeys( ctx, &localVarHeaderParams, [2]string{"apiKeyAuth", "DD-API-KEY"}, [2]string{"appKeyAuth", "DD-APPLICATION-KEY"}, ) req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.Client.CallAPI(req) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := datadog.ReadBody(localVarHTTPResponse) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := datadog.GenericOpenAPIError{ ErrorBody: localVarBody, ErrorMessage: localVarHTTPResponse.Status, } if localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 429 { var v APIErrorResponse err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { return localVarReturnValue, localVarHTTPResponse, newErr } newErr.ErrorModel = v } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := datadog.GenericOpenAPIError{ ErrorBody: localVarBody, ErrorMessage: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // UpdateUser Update a user. // Update a user information. // // **Note**: It can only be used with application keys belonging to administrators. func (a *UsersApi) UpdateUser(ctx _context.Context, userHandle string, body User) (UserResponse, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodPut localVarPostBody interface{} localVarReturnValue UserResponse ) localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v1.UsersApi.UpdateUser") if err != nil { return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()} } localVarPath := localBasePath + "/api/v1/user/{user_handle}" localVarPath = strings.Replace(localVarPath, "{"+"user_handle"+"}", _neturl.PathEscape(datadog.ParameterToString(userHandle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := _neturl.Values{} localVarFormParams := _neturl.Values{} localVarHeaderParams["Content-Type"] = "application/json" localVarHeaderParams["Accept"] = "application/json" // body params localVarPostBody = &body datadog.SetAuthKeys( ctx, &localVarHeaderParams, [2]string{"apiKeyAuth", "DD-API-KEY"}, [2]string{"appKeyAuth", "DD-APPLICATION-KEY"}, ) req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.Client.CallAPI(req) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := datadog.ReadBody(localVarHTTPResponse) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := datadog.GenericOpenAPIError{ ErrorBody: localVarBody, ErrorMessage: localVarHTTPResponse.Status, } if localVarHTTPResponse.StatusCode == 400 || localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 404 || localVarHTTPResponse.StatusCode == 429 { var v APIErrorResponse err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { return localVarReturnValue, localVarHTTPResponse, newErr } newErr.ErrorModel = v } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := datadog.GenericOpenAPIError{ ErrorBody: localVarBody, ErrorMessage: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // NewUsersApi Returns NewUsersApi. func NewUsersApi(client *datadog.APIClient) *UsersApi { return &UsersApi{ Client: client, } }