github.com/grokify/go-ringcentral-client@v0.3.31/office/v1/client/api_scim.go (about)

     1  /*
     2   * RingCentral Connect Platform API Explorer
     3   *
     4   * <p>This is a beta interactive API explorer for the RingCentral Connect Platform. To use this service, you will need to have an account with the proper credentials to generate an OAuth2 access token.</p><p><h2>Quick Start</h2></p><ol><li>1) Go to <b>Authentication > /oauth/token</b></li><li>2) Enter <b>app_key, app_secret, username, password</b> fields and then click \"Try it out!\"</li><li>3) Upon success, your access_token is loaded and you can access any form requiring authorization.</li></ol><h2>Links</h2><ul><li><a href=\"https://github.com/ringcentral\" target=\"_blank\">RingCentral SDKs on Github</a></li><li><a href=\"mailto:devsupport@ringcentral.com\">RingCentral Developer Support Email</a></li></ul>
     5   *
     6   * API version: 1.0
     7   * Generated by: OpenAPI Generator (https://openapi-generator.tech)
     8   */
     9  
    10  package ringcentral
    11  
    12  import (
    13  	"context"
    14  	"fmt"
    15  	"github.com/antihax/optional"
    16  	"io/ioutil"
    17  	"net/http"
    18  	"net/url"
    19  	"strings"
    20  )
    21  
    22  // Linger please
    23  var (
    24  	_ context.Context
    25  )
    26  
    27  type SCIMApiService service
    28  
    29  /*
    30  SCIMApiService Create User
    31  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.31 (Release 9.2)&lt;/p&gt;&lt;p&gt;Creates a user.&lt;/p&gt;&lt;h4&gt;Required Permissions&lt;/h4&gt;&lt;table class&#x3D;&#39;fullwidth&#39;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Permission&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class&#x3D;&#39;code&#39;&gt;EditAccounts&lt;/td&gt;&lt;td&gt;Viewing and updating user account info (including name, business name, address and phone number/account number)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;API Group&lt;/h4&gt;&lt;p&gt;Medium&lt;/p&gt;
    32   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    33   * @param userCreationRequest a new user without 'id'
    34  @return UserInfo
    35  */
    36  func (a *SCIMApiService) CreateUser(ctx context.Context, userCreationRequest UserCreationRequest) (UserInfo, *http.Response, error) {
    37  	var (
    38  		localVarHttpMethod   = strings.ToUpper("Post")
    39  		localVarPostBody     interface{}
    40  		localVarFormFileName string
    41  		localVarFileName     string
    42  		localVarFileBytes    []byte
    43  		localVarReturnValue  UserInfo
    44  	)
    45  
    46  	// create path and map variables
    47  	localVarPath := a.client.cfg.BasePath + "/scim/v2/Users"
    48  
    49  	localVarHeaderParams := make(map[string]string)
    50  	localVarQueryParams := url.Values{}
    51  	localVarFormParams := url.Values{}
    52  
    53  	// to determine the Content-Type header
    54  	localVarHttpContentTypes := []string{"application/json", "application/scim+json"}
    55  
    56  	// set Content-Type header
    57  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
    58  	if localVarHttpContentType != "" {
    59  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
    60  	}
    61  
    62  	// to determine the Accept header
    63  	localVarHttpHeaderAccepts := []string{"application/json", "application/scim+json"}
    64  
    65  	// set Accept header
    66  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
    67  	if localVarHttpHeaderAccept != "" {
    68  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    69  	}
    70  	// body params
    71  	localVarPostBody = &userCreationRequest
    72  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
    73  	if err != nil {
    74  		return localVarReturnValue, nil, err
    75  	}
    76  
    77  	localVarHttpResponse, err := a.client.callAPI(r)
    78  	if err != nil || localVarHttpResponse == nil {
    79  		return localVarReturnValue, localVarHttpResponse, err
    80  	}
    81  
    82  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
    83  	localVarHttpResponse.Body.Close()
    84  	if err != nil {
    85  		return localVarReturnValue, localVarHttpResponse, err
    86  	}
    87  
    88  	if localVarHttpResponse.StatusCode >= 300 {
    89  		newErr := GenericOpenAPIError{
    90  			body:  localVarBody,
    91  			error: localVarHttpResponse.Status,
    92  		}
    93  		if localVarHttpResponse.StatusCode == 400 {
    94  			var v ScimErrorResponse
    95  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
    96  			if err != nil {
    97  				newErr.error = err.Error()
    98  				return localVarReturnValue, localVarHttpResponse, newErr
    99  			}
   100  			newErr.model = v
   101  			return localVarReturnValue, localVarHttpResponse, newErr
   102  		}
   103  		if localVarHttpResponse.StatusCode == 401 {
   104  			var v ScimErrorResponse
   105  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   106  			if err != nil {
   107  				newErr.error = err.Error()
   108  				return localVarReturnValue, localVarHttpResponse, newErr
   109  			}
   110  			newErr.model = v
   111  			return localVarReturnValue, localVarHttpResponse, newErr
   112  		}
   113  		if localVarHttpResponse.StatusCode == 403 {
   114  			var v ScimErrorResponse
   115  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   116  			if err != nil {
   117  				newErr.error = err.Error()
   118  				return localVarReturnValue, localVarHttpResponse, newErr
   119  			}
   120  			newErr.model = v
   121  			return localVarReturnValue, localVarHttpResponse, newErr
   122  		}
   123  		if localVarHttpResponse.StatusCode == 404 {
   124  			var v ScimErrorResponse
   125  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   126  			if err != nil {
   127  				newErr.error = err.Error()
   128  				return localVarReturnValue, localVarHttpResponse, newErr
   129  			}
   130  			newErr.model = v
   131  			return localVarReturnValue, localVarHttpResponse, newErr
   132  		}
   133  		if localVarHttpResponse.StatusCode == 409 {
   134  			var v ScimErrorResponse
   135  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   136  			if err != nil {
   137  				newErr.error = err.Error()
   138  				return localVarReturnValue, localVarHttpResponse, newErr
   139  			}
   140  			newErr.model = v
   141  			return localVarReturnValue, localVarHttpResponse, newErr
   142  		}
   143  		if localVarHttpResponse.StatusCode == 429 {
   144  			var v ScimErrorResponse
   145  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   146  			if err != nil {
   147  				newErr.error = err.Error()
   148  				return localVarReturnValue, localVarHttpResponse, newErr
   149  			}
   150  			newErr.model = v
   151  			return localVarReturnValue, localVarHttpResponse, newErr
   152  		}
   153  		if localVarHttpResponse.StatusCode == 500 {
   154  			var v ScimErrorResponse
   155  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   156  			if err != nil {
   157  				newErr.error = err.Error()
   158  				return localVarReturnValue, localVarHttpResponse, newErr
   159  			}
   160  			newErr.model = v
   161  			return localVarReturnValue, localVarHttpResponse, newErr
   162  		}
   163  		if localVarHttpResponse.StatusCode == 0 {
   164  			var v UserInfo
   165  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   166  			if err != nil {
   167  				newErr.error = err.Error()
   168  				return localVarReturnValue, localVarHttpResponse, newErr
   169  			}
   170  			newErr.model = v
   171  			return localVarReturnValue, localVarHttpResponse, newErr
   172  		}
   173  		return localVarReturnValue, localVarHttpResponse, newErr
   174  	}
   175  
   176  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   177  	if err != nil {
   178  		newErr := GenericOpenAPIError{
   179  			body:  localVarBody,
   180  			error: err.Error(),
   181  		}
   182  		return localVarReturnValue, localVarHttpResponse, newErr
   183  	}
   184  
   185  	return localVarReturnValue, localVarHttpResponse, nil
   186  }
   187  
   188  /*
   189  SCIMApiService Delete User
   190  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.31 (Release 9.2)&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;Required Permissions&lt;/h4&gt;&lt;table class&#x3D;&#39;fullwidth&#39;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Permission&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class&#x3D;&#39;code&#39;&gt;EditAccounts&lt;/td&gt;&lt;td&gt;Deleting User using scim&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;API Group&lt;/h4&gt;&lt;p&gt;Medium&lt;/p&gt;
   191   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   192   * @param id Internal identifier of a user
   193  */
   194  func (a *SCIMApiService) DeleteUser(ctx context.Context, id string) (*http.Response, error) {
   195  	var (
   196  		localVarHttpMethod   = strings.ToUpper("Delete")
   197  		localVarPostBody     interface{}
   198  		localVarFormFileName string
   199  		localVarFileName     string
   200  		localVarFileBytes    []byte
   201  	)
   202  
   203  	// create path and map variables
   204  	localVarPath := a.client.cfg.BasePath + "/scim/v2/Users/{id}"
   205  	localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", fmt.Sprintf("%v", id), -1)
   206  
   207  	localVarHeaderParams := make(map[string]string)
   208  	localVarQueryParams := url.Values{}
   209  	localVarFormParams := url.Values{}
   210  
   211  	// to determine the Content-Type header
   212  	localVarHttpContentTypes := []string{}
   213  
   214  	// set Content-Type header
   215  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   216  	if localVarHttpContentType != "" {
   217  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   218  	}
   219  
   220  	// to determine the Accept header
   221  	localVarHttpHeaderAccepts := []string{"application/json", "application/scim+json"}
   222  
   223  	// set Accept header
   224  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   225  	if localVarHttpHeaderAccept != "" {
   226  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   227  	}
   228  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   229  	if err != nil {
   230  		return nil, err
   231  	}
   232  
   233  	localVarHttpResponse, err := a.client.callAPI(r)
   234  	if err != nil || localVarHttpResponse == nil {
   235  		return localVarHttpResponse, err
   236  	}
   237  
   238  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   239  	localVarHttpResponse.Body.Close()
   240  	if err != nil {
   241  		return localVarHttpResponse, err
   242  	}
   243  
   244  	if localVarHttpResponse.StatusCode >= 300 {
   245  		newErr := GenericOpenAPIError{
   246  			body:  localVarBody,
   247  			error: localVarHttpResponse.Status,
   248  		}
   249  		if localVarHttpResponse.StatusCode == 401 {
   250  			var v ScimErrorResponse
   251  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   252  			if err != nil {
   253  				newErr.error = err.Error()
   254  				return localVarHttpResponse, newErr
   255  			}
   256  			newErr.model = v
   257  			return localVarHttpResponse, newErr
   258  		}
   259  		if localVarHttpResponse.StatusCode == 403 {
   260  			var v ScimErrorResponse
   261  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   262  			if err != nil {
   263  				newErr.error = err.Error()
   264  				return localVarHttpResponse, newErr
   265  			}
   266  			newErr.model = v
   267  			return localVarHttpResponse, newErr
   268  		}
   269  		if localVarHttpResponse.StatusCode == 404 {
   270  			var v ScimErrorResponse
   271  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   272  			if err != nil {
   273  				newErr.error = err.Error()
   274  				return localVarHttpResponse, newErr
   275  			}
   276  			newErr.model = v
   277  			return localVarHttpResponse, newErr
   278  		}
   279  		if localVarHttpResponse.StatusCode == 429 {
   280  			var v ScimErrorResponse
   281  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   282  			if err != nil {
   283  				newErr.error = err.Error()
   284  				return localVarHttpResponse, newErr
   285  			}
   286  			newErr.model = v
   287  			return localVarHttpResponse, newErr
   288  		}
   289  		if localVarHttpResponse.StatusCode == 500 {
   290  			var v ScimErrorResponse
   291  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   292  			if err != nil {
   293  				newErr.error = err.Error()
   294  				return localVarHttpResponse, newErr
   295  			}
   296  			newErr.model = v
   297  			return localVarHttpResponse, newErr
   298  		}
   299  		return localVarHttpResponse, newErr
   300  	}
   301  
   302  	return localVarHttpResponse, nil
   303  }
   304  
   305  /*
   306  SCIMApiService Get Service Provider Config
   307  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.31 (Release 9.2)&lt;/p&gt;&lt;p&gt;Returns the list of users requested.&lt;/p&gt;&lt;h4&gt;Required Permissions&lt;/h4&gt;&lt;table class&#x3D;&#39;fullwidth&#39;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Permission&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class&#x3D;&#39;code&#39;&gt;ReadAccounts&lt;/td&gt;&lt;td&gt;Viewing Service Provider confiog&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;API Group&lt;/h4&gt;&lt;p&gt;Medium&lt;/p&gt;
   308   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   309  @return ServiceProviderConfig
   310  */
   311  func (a *SCIMApiService) GetServiceProviderConfig(ctx context.Context) (ServiceProviderConfig, *http.Response, error) {
   312  	var (
   313  		localVarHttpMethod   = strings.ToUpper("Get")
   314  		localVarPostBody     interface{}
   315  		localVarFormFileName string
   316  		localVarFileName     string
   317  		localVarFileBytes    []byte
   318  		localVarReturnValue  ServiceProviderConfig
   319  	)
   320  
   321  	// create path and map variables
   322  	localVarPath := a.client.cfg.BasePath + "/scim/v2/ServiceProviderConfig"
   323  
   324  	localVarHeaderParams := make(map[string]string)
   325  	localVarQueryParams := url.Values{}
   326  	localVarFormParams := url.Values{}
   327  
   328  	// to determine the Content-Type header
   329  	localVarHttpContentTypes := []string{}
   330  
   331  	// set Content-Type header
   332  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   333  	if localVarHttpContentType != "" {
   334  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   335  	}
   336  
   337  	// to determine the Accept header
   338  	localVarHttpHeaderAccepts := []string{"application/json", "application/scim+json"}
   339  
   340  	// set Accept header
   341  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   342  	if localVarHttpHeaderAccept != "" {
   343  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   344  	}
   345  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   346  	if err != nil {
   347  		return localVarReturnValue, nil, err
   348  	}
   349  
   350  	localVarHttpResponse, err := a.client.callAPI(r)
   351  	if err != nil || localVarHttpResponse == nil {
   352  		return localVarReturnValue, localVarHttpResponse, err
   353  	}
   354  
   355  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   356  	localVarHttpResponse.Body.Close()
   357  	if err != nil {
   358  		return localVarReturnValue, localVarHttpResponse, err
   359  	}
   360  
   361  	if localVarHttpResponse.StatusCode >= 300 {
   362  		newErr := GenericOpenAPIError{
   363  			body:  localVarBody,
   364  			error: localVarHttpResponse.Status,
   365  		}
   366  		if localVarHttpResponse.StatusCode == 0 {
   367  			var v ServiceProviderConfig
   368  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   369  			if err != nil {
   370  				newErr.error = err.Error()
   371  				return localVarReturnValue, localVarHttpResponse, newErr
   372  			}
   373  			newErr.model = v
   374  			return localVarReturnValue, localVarHttpResponse, newErr
   375  		}
   376  		return localVarReturnValue, localVarHttpResponse, newErr
   377  	}
   378  
   379  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   380  	if err != nil {
   381  		newErr := GenericOpenAPIError{
   382  			body:  localVarBody,
   383  			error: err.Error(),
   384  		}
   385  		return localVarReturnValue, localVarHttpResponse, newErr
   386  	}
   387  
   388  	return localVarReturnValue, localVarHttpResponse, nil
   389  }
   390  
   391  /*
   392  SCIMApiService Get User
   393  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.31 (Release 9.2)&lt;/p&gt;&lt;p&gt;Returns a user by ID.&lt;/p&gt;&lt;h4&gt;Required Permissions&lt;/h4&gt;&lt;table class&#x3D;&#39;fullwidth&#39;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Permission&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class&#x3D;&#39;code&#39;&gt;ReadAccounts&lt;/td&gt;&lt;td&gt;Viewing user account info (including name, business name, address and phone number/account number)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;API Group&lt;/h4&gt;&lt;p&gt;Light&lt;/p&gt;
   394   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   395   * @param id Internal identifier of a user
   396  @return UserInfo
   397  */
   398  func (a *SCIMApiService) GetUserById(ctx context.Context, id string) (UserInfo, *http.Response, error) {
   399  	var (
   400  		localVarHttpMethod   = strings.ToUpper("Get")
   401  		localVarPostBody     interface{}
   402  		localVarFormFileName string
   403  		localVarFileName     string
   404  		localVarFileBytes    []byte
   405  		localVarReturnValue  UserInfo
   406  	)
   407  
   408  	// create path and map variables
   409  	localVarPath := a.client.cfg.BasePath + "/scim/v2/Users/{id}"
   410  	localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", fmt.Sprintf("%v", id), -1)
   411  
   412  	localVarHeaderParams := make(map[string]string)
   413  	localVarQueryParams := url.Values{}
   414  	localVarFormParams := url.Values{}
   415  
   416  	// to determine the Content-Type header
   417  	localVarHttpContentTypes := []string{}
   418  
   419  	// set Content-Type header
   420  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   421  	if localVarHttpContentType != "" {
   422  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   423  	}
   424  
   425  	// to determine the Accept header
   426  	localVarHttpHeaderAccepts := []string{"application/json", "application/scim+json"}
   427  
   428  	// set Accept header
   429  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   430  	if localVarHttpHeaderAccept != "" {
   431  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   432  	}
   433  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   434  	if err != nil {
   435  		return localVarReturnValue, nil, err
   436  	}
   437  
   438  	localVarHttpResponse, err := a.client.callAPI(r)
   439  	if err != nil || localVarHttpResponse == nil {
   440  		return localVarReturnValue, localVarHttpResponse, err
   441  	}
   442  
   443  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   444  	localVarHttpResponse.Body.Close()
   445  	if err != nil {
   446  		return localVarReturnValue, localVarHttpResponse, err
   447  	}
   448  
   449  	if localVarHttpResponse.StatusCode >= 300 {
   450  		newErr := GenericOpenAPIError{
   451  			body:  localVarBody,
   452  			error: localVarHttpResponse.Status,
   453  		}
   454  		if localVarHttpResponse.StatusCode == 400 {
   455  			var v ScimErrorResponse
   456  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   457  			if err != nil {
   458  				newErr.error = err.Error()
   459  				return localVarReturnValue, localVarHttpResponse, newErr
   460  			}
   461  			newErr.model = v
   462  			return localVarReturnValue, localVarHttpResponse, newErr
   463  		}
   464  		if localVarHttpResponse.StatusCode == 401 {
   465  			var v ScimErrorResponse
   466  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   467  			if err != nil {
   468  				newErr.error = err.Error()
   469  				return localVarReturnValue, localVarHttpResponse, newErr
   470  			}
   471  			newErr.model = v
   472  			return localVarReturnValue, localVarHttpResponse, newErr
   473  		}
   474  		if localVarHttpResponse.StatusCode == 403 {
   475  			var v ScimErrorResponse
   476  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   477  			if err != nil {
   478  				newErr.error = err.Error()
   479  				return localVarReturnValue, localVarHttpResponse, newErr
   480  			}
   481  			newErr.model = v
   482  			return localVarReturnValue, localVarHttpResponse, newErr
   483  		}
   484  		if localVarHttpResponse.StatusCode == 429 {
   485  			var v ScimErrorResponse
   486  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   487  			if err != nil {
   488  				newErr.error = err.Error()
   489  				return localVarReturnValue, localVarHttpResponse, newErr
   490  			}
   491  			newErr.model = v
   492  			return localVarReturnValue, localVarHttpResponse, newErr
   493  		}
   494  		if localVarHttpResponse.StatusCode == 500 {
   495  			var v ScimErrorResponse
   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  		if localVarHttpResponse.StatusCode == 0 {
   505  			var v UserInfo
   506  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   507  			if err != nil {
   508  				newErr.error = err.Error()
   509  				return localVarReturnValue, localVarHttpResponse, newErr
   510  			}
   511  			newErr.model = v
   512  			return localVarReturnValue, localVarHttpResponse, newErr
   513  		}
   514  		return localVarReturnValue, localVarHttpResponse, newErr
   515  	}
   516  
   517  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   518  	if err != nil {
   519  		newErr := GenericOpenAPIError{
   520  			body:  localVarBody,
   521  			error: err.Error(),
   522  		}
   523  		return localVarReturnValue, localVarHttpResponse, newErr
   524  	}
   525  
   526  	return localVarReturnValue, localVarHttpResponse, nil
   527  }
   528  
   529  /*
   530  SCIMApiService Get User List
   531  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.31 (Release 9.2)&lt;/p&gt;&lt;p&gt;Returns the list of users requested.&lt;/p&gt;&lt;h4&gt;Required Permissions&lt;/h4&gt;&lt;table class&#x3D;&#39;fullwidth&#39;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Permission&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class&#x3D;&#39;code&#39;&gt;ReadAccounts&lt;/td&gt;&lt;td&gt;Viewing user account info (including name, business name, address and phone number/account number)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;API Group&lt;/h4&gt;&lt;p&gt;Medium&lt;/p&gt;
   532   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   533   * @param optional nil or *ListUsersOpts - Optional Parameters:
   534   * @param "Filter" (optional.String) -  only support 'userName' or 'email' filter expressions for now
   535   * @param "Count" (optional.Int32) -  page size
   536   * @param "StartIndex" (optional.Int32) -  start index (1-based)
   537  @return GetUserListResponse
   538  */
   539  
   540  type ListUsersOpts struct {
   541  	Filter     optional.String
   542  	Count      optional.Int32
   543  	StartIndex optional.Int32
   544  }
   545  
   546  func (a *SCIMApiService) ListUsers(ctx context.Context, localVarOptionals *ListUsersOpts) (GetUserListResponse, *http.Response, error) {
   547  	var (
   548  		localVarHttpMethod   = strings.ToUpper("Get")
   549  		localVarPostBody     interface{}
   550  		localVarFormFileName string
   551  		localVarFileName     string
   552  		localVarFileBytes    []byte
   553  		localVarReturnValue  GetUserListResponse
   554  	)
   555  
   556  	// create path and map variables
   557  	localVarPath := a.client.cfg.BasePath + "/scim/v2/Users"
   558  
   559  	localVarHeaderParams := make(map[string]string)
   560  	localVarQueryParams := url.Values{}
   561  	localVarFormParams := url.Values{}
   562  
   563  	if localVarOptionals != nil && localVarOptionals.Filter.IsSet() {
   564  		localVarQueryParams.Add("filter", parameterToString(localVarOptionals.Filter.Value(), ""))
   565  	}
   566  	if localVarOptionals != nil && localVarOptionals.Count.IsSet() {
   567  		localVarQueryParams.Add("count", parameterToString(localVarOptionals.Count.Value(), ""))
   568  	}
   569  	if localVarOptionals != nil && localVarOptionals.StartIndex.IsSet() {
   570  		localVarQueryParams.Add("startIndex", parameterToString(localVarOptionals.StartIndex.Value(), ""))
   571  	}
   572  	// to determine the Content-Type header
   573  	localVarHttpContentTypes := []string{}
   574  
   575  	// set Content-Type header
   576  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   577  	if localVarHttpContentType != "" {
   578  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   579  	}
   580  
   581  	// to determine the Accept header
   582  	localVarHttpHeaderAccepts := []string{"application/json", "application/scim+json"}
   583  
   584  	// set Accept header
   585  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   586  	if localVarHttpHeaderAccept != "" {
   587  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   588  	}
   589  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   590  	if err != nil {
   591  		return localVarReturnValue, nil, err
   592  	}
   593  
   594  	localVarHttpResponse, err := a.client.callAPI(r)
   595  	if err != nil || localVarHttpResponse == nil {
   596  		return localVarReturnValue, localVarHttpResponse, err
   597  	}
   598  
   599  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   600  	localVarHttpResponse.Body.Close()
   601  	if err != nil {
   602  		return localVarReturnValue, localVarHttpResponse, err
   603  	}
   604  
   605  	if localVarHttpResponse.StatusCode >= 300 {
   606  		newErr := GenericOpenAPIError{
   607  			body:  localVarBody,
   608  			error: localVarHttpResponse.Status,
   609  		}
   610  		if localVarHttpResponse.StatusCode == 400 {
   611  			var v ScimErrorResponse
   612  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   613  			if err != nil {
   614  				newErr.error = err.Error()
   615  				return localVarReturnValue, localVarHttpResponse, newErr
   616  			}
   617  			newErr.model = v
   618  			return localVarReturnValue, localVarHttpResponse, newErr
   619  		}
   620  		if localVarHttpResponse.StatusCode == 401 {
   621  			var v ScimErrorResponse
   622  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   623  			if err != nil {
   624  				newErr.error = err.Error()
   625  				return localVarReturnValue, localVarHttpResponse, newErr
   626  			}
   627  			newErr.model = v
   628  			return localVarReturnValue, localVarHttpResponse, newErr
   629  		}
   630  		if localVarHttpResponse.StatusCode == 403 {
   631  			var v ScimErrorResponse
   632  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   633  			if err != nil {
   634  				newErr.error = err.Error()
   635  				return localVarReturnValue, localVarHttpResponse, newErr
   636  			}
   637  			newErr.model = v
   638  			return localVarReturnValue, localVarHttpResponse, newErr
   639  		}
   640  		if localVarHttpResponse.StatusCode == 429 {
   641  			var v ScimErrorResponse
   642  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   643  			if err != nil {
   644  				newErr.error = err.Error()
   645  				return localVarReturnValue, localVarHttpResponse, newErr
   646  			}
   647  			newErr.model = v
   648  			return localVarReturnValue, localVarHttpResponse, newErr
   649  		}
   650  		if localVarHttpResponse.StatusCode == 500 {
   651  			var v ScimErrorResponse
   652  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   653  			if err != nil {
   654  				newErr.error = err.Error()
   655  				return localVarReturnValue, localVarHttpResponse, newErr
   656  			}
   657  			newErr.model = v
   658  			return localVarReturnValue, localVarHttpResponse, newErr
   659  		}
   660  		if localVarHttpResponse.StatusCode == 0 {
   661  			var v GetUserListResponse
   662  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   663  			if err != nil {
   664  				newErr.error = err.Error()
   665  				return localVarReturnValue, localVarHttpResponse, newErr
   666  			}
   667  			newErr.model = v
   668  			return localVarReturnValue, localVarHttpResponse, newErr
   669  		}
   670  		return localVarReturnValue, localVarHttpResponse, newErr
   671  	}
   672  
   673  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   674  	if err != nil {
   675  		newErr := GenericOpenAPIError{
   676  			body:  localVarBody,
   677  			error: err.Error(),
   678  		}
   679  		return localVarReturnValue, localVarHttpResponse, newErr
   680  	}
   681  
   682  	return localVarReturnValue, localVarHttpResponse, nil
   683  }
   684  
   685  /*
   686  SCIMApiService Partially update/patch a user
   687  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.31 (Release 9.2)&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;Required Permissions&lt;/h4&gt;&lt;table class&#x3D;&#39;fullwidth&#39;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Permission&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class&#x3D;&#39;code&#39;&gt;EditAccounts&lt;/td&gt;&lt;td&gt;Partially update/patch a user&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;API Group&lt;/h4&gt;&lt;p&gt;Medium&lt;/p&gt;
   688   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   689   * @param id Internal identifier of a user
   690   * @param optional nil or *PatchUserOpts - Optional Parameters:
   691   * @param "ScimUserPatch" (optional.Interface of ScimUserPatch) -  patch operations list
   692  @return UserInfo
   693  */
   694  
   695  type PatchUserOpts struct {
   696  	ScimUserPatch optional.Interface
   697  }
   698  
   699  func (a *SCIMApiService) PatchUser(ctx context.Context, id string, localVarOptionals *PatchUserOpts) (UserInfo, *http.Response, error) {
   700  	var (
   701  		localVarHttpMethod   = strings.ToUpper("Patch")
   702  		localVarPostBody     interface{}
   703  		localVarFormFileName string
   704  		localVarFileName     string
   705  		localVarFileBytes    []byte
   706  		localVarReturnValue  UserInfo
   707  	)
   708  
   709  	// create path and map variables
   710  	localVarPath := a.client.cfg.BasePath + "/scim/v2/Users/{id}"
   711  	localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", fmt.Sprintf("%v", id), -1)
   712  
   713  	localVarHeaderParams := make(map[string]string)
   714  	localVarQueryParams := url.Values{}
   715  	localVarFormParams := url.Values{}
   716  
   717  	// to determine the Content-Type header
   718  	localVarHttpContentTypes := []string{"application/json", "application/scim+json"}
   719  
   720  	// set Content-Type header
   721  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   722  	if localVarHttpContentType != "" {
   723  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   724  	}
   725  
   726  	// to determine the Accept header
   727  	localVarHttpHeaderAccepts := []string{"application/json", "application/scim+json"}
   728  
   729  	// set Accept header
   730  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   731  	if localVarHttpHeaderAccept != "" {
   732  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   733  	}
   734  	// body params
   735  	if localVarOptionals != nil && localVarOptionals.ScimUserPatch.IsSet() {
   736  		localVarOptionalScimUserPatch, localVarOptionalScimUserPatchok := localVarOptionals.ScimUserPatch.Value().(ScimUserPatch)
   737  		if !localVarOptionalScimUserPatchok {
   738  			return localVarReturnValue, nil, reportError("scimUserPatch should be ScimUserPatch")
   739  		}
   740  		localVarPostBody = &localVarOptionalScimUserPatch
   741  	}
   742  
   743  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   744  	if err != nil {
   745  		return localVarReturnValue, nil, err
   746  	}
   747  
   748  	localVarHttpResponse, err := a.client.callAPI(r)
   749  	if err != nil || localVarHttpResponse == nil {
   750  		return localVarReturnValue, localVarHttpResponse, err
   751  	}
   752  
   753  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   754  	localVarHttpResponse.Body.Close()
   755  	if err != nil {
   756  		return localVarReturnValue, localVarHttpResponse, err
   757  	}
   758  
   759  	if localVarHttpResponse.StatusCode >= 300 {
   760  		newErr := GenericOpenAPIError{
   761  			body:  localVarBody,
   762  			error: localVarHttpResponse.Status,
   763  		}
   764  		if localVarHttpResponse.StatusCode == 400 {
   765  			var v ScimErrorResponse
   766  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   767  			if err != nil {
   768  				newErr.error = err.Error()
   769  				return localVarReturnValue, localVarHttpResponse, newErr
   770  			}
   771  			newErr.model = v
   772  			return localVarReturnValue, localVarHttpResponse, newErr
   773  		}
   774  		if localVarHttpResponse.StatusCode == 401 {
   775  			var v ScimErrorResponse
   776  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   777  			if err != nil {
   778  				newErr.error = err.Error()
   779  				return localVarReturnValue, localVarHttpResponse, newErr
   780  			}
   781  			newErr.model = v
   782  			return localVarReturnValue, localVarHttpResponse, newErr
   783  		}
   784  		if localVarHttpResponse.StatusCode == 403 {
   785  			var v ScimErrorResponse
   786  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   787  			if err != nil {
   788  				newErr.error = err.Error()
   789  				return localVarReturnValue, localVarHttpResponse, newErr
   790  			}
   791  			newErr.model = v
   792  			return localVarReturnValue, localVarHttpResponse, newErr
   793  		}
   794  		if localVarHttpResponse.StatusCode == 404 {
   795  			var v ScimErrorResponse
   796  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   797  			if err != nil {
   798  				newErr.error = err.Error()
   799  				return localVarReturnValue, localVarHttpResponse, newErr
   800  			}
   801  			newErr.model = v
   802  			return localVarReturnValue, localVarHttpResponse, newErr
   803  		}
   804  		if localVarHttpResponse.StatusCode == 429 {
   805  			var v ScimErrorResponse
   806  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   807  			if err != nil {
   808  				newErr.error = err.Error()
   809  				return localVarReturnValue, localVarHttpResponse, newErr
   810  			}
   811  			newErr.model = v
   812  			return localVarReturnValue, localVarHttpResponse, newErr
   813  		}
   814  		if localVarHttpResponse.StatusCode == 500 {
   815  			var v ScimErrorResponse
   816  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   817  			if err != nil {
   818  				newErr.error = err.Error()
   819  				return localVarReturnValue, localVarHttpResponse, newErr
   820  			}
   821  			newErr.model = v
   822  			return localVarReturnValue, localVarHttpResponse, newErr
   823  		}
   824  		if localVarHttpResponse.StatusCode == 0 {
   825  			var v UserInfo
   826  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   827  			if err != nil {
   828  				newErr.error = err.Error()
   829  				return localVarReturnValue, localVarHttpResponse, newErr
   830  			}
   831  			newErr.model = v
   832  			return localVarReturnValue, localVarHttpResponse, newErr
   833  		}
   834  		return localVarReturnValue, localVarHttpResponse, newErr
   835  	}
   836  
   837  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   838  	if err != nil {
   839  		newErr := GenericOpenAPIError{
   840  			body:  localVarBody,
   841  			error: err.Error(),
   842  		}
   843  		return localVarReturnValue, localVarHttpResponse, newErr
   844  	}
   845  
   846  	return localVarReturnValue, localVarHttpResponse, nil
   847  }
   848  
   849  /*
   850  SCIMApiService search or list users
   851  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.31 (Release 9.2)&lt;/p&gt;&lt;p&gt;Returns the list of users requested.&lt;/p&gt;&lt;h4&gt;Required Permissions&lt;/h4&gt;&lt;table class&#x3D;&#39;fullwidth&#39;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Permission&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class&#x3D;&#39;code&#39;&gt;ReadAccounts&lt;/td&gt;&lt;td&gt;Searching SCIM Users&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;API Group&lt;/h4&gt;&lt;p&gt;Medium&lt;/p&gt;
   852   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   853   * @param optional nil or *SearchUsersViaPostOpts - Optional Parameters:
   854   * @param "ScimSearchRequestInfo" (optional.Interface of ScimSearchRequestInfo) -  search parameters
   855  @return GetUserListResponse
   856  */
   857  
   858  type SearchUsersViaPostOpts struct {
   859  	ScimSearchRequestInfo optional.Interface
   860  }
   861  
   862  func (a *SCIMApiService) SearchUsersViaPost(ctx context.Context, localVarOptionals *SearchUsersViaPostOpts) (GetUserListResponse, *http.Response, error) {
   863  	var (
   864  		localVarHttpMethod   = strings.ToUpper("Post")
   865  		localVarPostBody     interface{}
   866  		localVarFormFileName string
   867  		localVarFileName     string
   868  		localVarFileBytes    []byte
   869  		localVarReturnValue  GetUserListResponse
   870  	)
   871  
   872  	// create path and map variables
   873  	localVarPath := a.client.cfg.BasePath + "/scim/v2/Users/.search"
   874  
   875  	localVarHeaderParams := make(map[string]string)
   876  	localVarQueryParams := url.Values{}
   877  	localVarFormParams := url.Values{}
   878  
   879  	// to determine the Content-Type header
   880  	localVarHttpContentTypes := []string{"application/json", "application/scim+json"}
   881  
   882  	// set Content-Type header
   883  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   884  	if localVarHttpContentType != "" {
   885  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   886  	}
   887  
   888  	// to determine the Accept header
   889  	localVarHttpHeaderAccepts := []string{"application/json", "application/scim+json"}
   890  
   891  	// set Accept header
   892  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   893  	if localVarHttpHeaderAccept != "" {
   894  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   895  	}
   896  	// body params
   897  	if localVarOptionals != nil && localVarOptionals.ScimSearchRequestInfo.IsSet() {
   898  		localVarOptionalScimSearchRequestInfo, localVarOptionalScimSearchRequestInfook := localVarOptionals.ScimSearchRequestInfo.Value().(ScimSearchRequestInfo)
   899  		if !localVarOptionalScimSearchRequestInfook {
   900  			return localVarReturnValue, nil, reportError("scimSearchRequestInfo should be ScimSearchRequestInfo")
   901  		}
   902  		localVarPostBody = &localVarOptionalScimSearchRequestInfo
   903  	}
   904  
   905  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   906  	if err != nil {
   907  		return localVarReturnValue, nil, err
   908  	}
   909  
   910  	localVarHttpResponse, err := a.client.callAPI(r)
   911  	if err != nil || localVarHttpResponse == nil {
   912  		return localVarReturnValue, localVarHttpResponse, err
   913  	}
   914  
   915  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   916  	localVarHttpResponse.Body.Close()
   917  	if err != nil {
   918  		return localVarReturnValue, localVarHttpResponse, err
   919  	}
   920  
   921  	if localVarHttpResponse.StatusCode >= 300 {
   922  		newErr := GenericOpenAPIError{
   923  			body:  localVarBody,
   924  			error: localVarHttpResponse.Status,
   925  		}
   926  		if localVarHttpResponse.StatusCode == 400 {
   927  			var v ScimErrorResponse
   928  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   929  			if err != nil {
   930  				newErr.error = err.Error()
   931  				return localVarReturnValue, localVarHttpResponse, newErr
   932  			}
   933  			newErr.model = v
   934  			return localVarReturnValue, localVarHttpResponse, newErr
   935  		}
   936  		if localVarHttpResponse.StatusCode == 401 {
   937  			var v ScimErrorResponse
   938  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   939  			if err != nil {
   940  				newErr.error = err.Error()
   941  				return localVarReturnValue, localVarHttpResponse, newErr
   942  			}
   943  			newErr.model = v
   944  			return localVarReturnValue, localVarHttpResponse, newErr
   945  		}
   946  		if localVarHttpResponse.StatusCode == 403 {
   947  			var v ScimErrorResponse
   948  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   949  			if err != nil {
   950  				newErr.error = err.Error()
   951  				return localVarReturnValue, localVarHttpResponse, newErr
   952  			}
   953  			newErr.model = v
   954  			return localVarReturnValue, localVarHttpResponse, newErr
   955  		}
   956  		if localVarHttpResponse.StatusCode == 429 {
   957  			var v ScimErrorResponse
   958  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   959  			if err != nil {
   960  				newErr.error = err.Error()
   961  				return localVarReturnValue, localVarHttpResponse, newErr
   962  			}
   963  			newErr.model = v
   964  			return localVarReturnValue, localVarHttpResponse, newErr
   965  		}
   966  		if localVarHttpResponse.StatusCode == 500 {
   967  			var v ScimErrorResponse
   968  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   969  			if err != nil {
   970  				newErr.error = err.Error()
   971  				return localVarReturnValue, localVarHttpResponse, newErr
   972  			}
   973  			newErr.model = v
   974  			return localVarReturnValue, localVarHttpResponse, newErr
   975  		}
   976  		if localVarHttpResponse.StatusCode == 0 {
   977  			var v GetUserListResponse
   978  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   979  			if err != nil {
   980  				newErr.error = err.Error()
   981  				return localVarReturnValue, localVarHttpResponse, newErr
   982  			}
   983  			newErr.model = v
   984  			return localVarReturnValue, localVarHttpResponse, newErr
   985  		}
   986  		return localVarReturnValue, localVarHttpResponse, newErr
   987  	}
   988  
   989  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   990  	if err != nil {
   991  		newErr := GenericOpenAPIError{
   992  			body:  localVarBody,
   993  			error: err.Error(),
   994  		}
   995  		return localVarReturnValue, localVarHttpResponse, newErr
   996  	}
   997  
   998  	return localVarReturnValue, localVarHttpResponse, nil
   999  }
  1000  
  1001  /*
  1002  SCIMApiService Update or replace user
  1003  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.31 (Release 9.2)&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;Required Permissions&lt;/h4&gt;&lt;table class&#x3D;&#39;fullwidth&#39;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Permission&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class&#x3D;&#39;code&#39;&gt;EditExtensions&lt;/td&gt;&lt;td&gt;Updating User using SCIM&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;API Group&lt;/h4&gt;&lt;p&gt;Medium&lt;/p&gt;
  1004   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  1005   * @param id Internal identifier of a user
  1006   * @param userUpdateRequest An Exisiting User
  1007  @return UserInfo
  1008  */
  1009  func (a *SCIMApiService) UpdateUser(ctx context.Context, id string, userUpdateRequest UserUpdateRequest) (UserInfo, *http.Response, error) {
  1010  	var (
  1011  		localVarHttpMethod   = strings.ToUpper("Put")
  1012  		localVarPostBody     interface{}
  1013  		localVarFormFileName string
  1014  		localVarFileName     string
  1015  		localVarFileBytes    []byte
  1016  		localVarReturnValue  UserInfo
  1017  	)
  1018  
  1019  	// create path and map variables
  1020  	localVarPath := a.client.cfg.BasePath + "/scim/v2/Users/{id}"
  1021  	localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", fmt.Sprintf("%v", id), -1)
  1022  
  1023  	localVarHeaderParams := make(map[string]string)
  1024  	localVarQueryParams := url.Values{}
  1025  	localVarFormParams := url.Values{}
  1026  
  1027  	// to determine the Content-Type header
  1028  	localVarHttpContentTypes := []string{"application/json", "application/scim+json"}
  1029  
  1030  	// set Content-Type header
  1031  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
  1032  	if localVarHttpContentType != "" {
  1033  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
  1034  	}
  1035  
  1036  	// to determine the Accept header
  1037  	localVarHttpHeaderAccepts := []string{"application/json", "application/scim+json"}
  1038  
  1039  	// set Accept header
  1040  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
  1041  	if localVarHttpHeaderAccept != "" {
  1042  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
  1043  	}
  1044  	// body params
  1045  	localVarPostBody = &userUpdateRequest
  1046  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
  1047  	if err != nil {
  1048  		return localVarReturnValue, nil, err
  1049  	}
  1050  
  1051  	localVarHttpResponse, err := a.client.callAPI(r)
  1052  	if err != nil || localVarHttpResponse == nil {
  1053  		return localVarReturnValue, localVarHttpResponse, err
  1054  	}
  1055  
  1056  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
  1057  	localVarHttpResponse.Body.Close()
  1058  	if err != nil {
  1059  		return localVarReturnValue, localVarHttpResponse, err
  1060  	}
  1061  
  1062  	if localVarHttpResponse.StatusCode >= 300 {
  1063  		newErr := GenericOpenAPIError{
  1064  			body:  localVarBody,
  1065  			error: localVarHttpResponse.Status,
  1066  		}
  1067  		if localVarHttpResponse.StatusCode == 400 {
  1068  			var v ScimErrorResponse
  1069  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1070  			if err != nil {
  1071  				newErr.error = err.Error()
  1072  				return localVarReturnValue, localVarHttpResponse, newErr
  1073  			}
  1074  			newErr.model = v
  1075  			return localVarReturnValue, localVarHttpResponse, newErr
  1076  		}
  1077  		if localVarHttpResponse.StatusCode == 401 {
  1078  			var v ScimErrorResponse
  1079  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1080  			if err != nil {
  1081  				newErr.error = err.Error()
  1082  				return localVarReturnValue, localVarHttpResponse, newErr
  1083  			}
  1084  			newErr.model = v
  1085  			return localVarReturnValue, localVarHttpResponse, newErr
  1086  		}
  1087  		if localVarHttpResponse.StatusCode == 403 {
  1088  			var v ScimErrorResponse
  1089  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1090  			if err != nil {
  1091  				newErr.error = err.Error()
  1092  				return localVarReturnValue, localVarHttpResponse, newErr
  1093  			}
  1094  			newErr.model = v
  1095  			return localVarReturnValue, localVarHttpResponse, newErr
  1096  		}
  1097  		if localVarHttpResponse.StatusCode == 404 {
  1098  			var v ScimErrorResponse
  1099  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1100  			if err != nil {
  1101  				newErr.error = err.Error()
  1102  				return localVarReturnValue, localVarHttpResponse, newErr
  1103  			}
  1104  			newErr.model = v
  1105  			return localVarReturnValue, localVarHttpResponse, newErr
  1106  		}
  1107  		if localVarHttpResponse.StatusCode == 409 {
  1108  			var v ScimErrorResponse
  1109  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1110  			if err != nil {
  1111  				newErr.error = err.Error()
  1112  				return localVarReturnValue, localVarHttpResponse, newErr
  1113  			}
  1114  			newErr.model = v
  1115  			return localVarReturnValue, localVarHttpResponse, newErr
  1116  		}
  1117  		if localVarHttpResponse.StatusCode == 429 {
  1118  			var v ScimErrorResponse
  1119  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1120  			if err != nil {
  1121  				newErr.error = err.Error()
  1122  				return localVarReturnValue, localVarHttpResponse, newErr
  1123  			}
  1124  			newErr.model = v
  1125  			return localVarReturnValue, localVarHttpResponse, newErr
  1126  		}
  1127  		if localVarHttpResponse.StatusCode == 500 {
  1128  			var v ScimErrorResponse
  1129  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1130  			if err != nil {
  1131  				newErr.error = err.Error()
  1132  				return localVarReturnValue, localVarHttpResponse, newErr
  1133  			}
  1134  			newErr.model = v
  1135  			return localVarReturnValue, localVarHttpResponse, newErr
  1136  		}
  1137  		if localVarHttpResponse.StatusCode == 0 {
  1138  			var v UserInfo
  1139  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1140  			if err != nil {
  1141  				newErr.error = err.Error()
  1142  				return localVarReturnValue, localVarHttpResponse, newErr
  1143  			}
  1144  			newErr.model = v
  1145  			return localVarReturnValue, localVarHttpResponse, newErr
  1146  		}
  1147  		return localVarReturnValue, localVarHttpResponse, newErr
  1148  	}
  1149  
  1150  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1151  	if err != nil {
  1152  		newErr := GenericOpenAPIError{
  1153  			body:  localVarBody,
  1154  			error: err.Error(),
  1155  		}
  1156  		return localVarReturnValue, localVarHttpResponse, newErr
  1157  	}
  1158  
  1159  	return localVarReturnValue, localVarHttpResponse, nil
  1160  }