github.com/grokify/go-ringcentral-client@v0.3.31/office/v1/client/api_presence.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  	"io/ioutil"
    16  	"net/http"
    17  	"net/url"
    18  	"strings"
    19  )
    20  
    21  // Linger please
    22  var (
    23  	_ context.Context
    24  )
    25  
    26  type PresenceApiService service
    27  
    28  /*
    29  PresenceApiService Get all user statuses
    30   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    31   * @param accountId
    32  @return AccountPresenceInfo
    33  */
    34  func (a *PresenceApiService) AccountPresence(ctx context.Context, accountId string) (AccountPresenceInfo, *http.Response, error) {
    35  	var (
    36  		localVarHttpMethod   = strings.ToUpper("Get")
    37  		localVarPostBody     interface{}
    38  		localVarFormFileName string
    39  		localVarFileName     string
    40  		localVarFileBytes    []byte
    41  		localVarReturnValue  AccountPresenceInfo
    42  	)
    43  
    44  	// create path and map variables
    45  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/presence"
    46  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
    47  
    48  	localVarHeaderParams := make(map[string]string)
    49  	localVarQueryParams := url.Values{}
    50  	localVarFormParams := url.Values{}
    51  
    52  	// to determine the Content-Type header
    53  	localVarHttpContentTypes := []string{}
    54  
    55  	// set Content-Type header
    56  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
    57  	if localVarHttpContentType != "" {
    58  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
    59  	}
    60  
    61  	// to determine the Accept header
    62  	localVarHttpHeaderAccepts := []string{"application/json"}
    63  
    64  	// set Accept header
    65  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
    66  	if localVarHttpHeaderAccept != "" {
    67  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    68  	}
    69  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
    70  	if err != nil {
    71  		return localVarReturnValue, nil, err
    72  	}
    73  
    74  	localVarHttpResponse, err := a.client.callAPI(r)
    75  	if err != nil || localVarHttpResponse == nil {
    76  		return localVarReturnValue, localVarHttpResponse, err
    77  	}
    78  
    79  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
    80  	localVarHttpResponse.Body.Close()
    81  	if err != nil {
    82  		return localVarReturnValue, localVarHttpResponse, err
    83  	}
    84  
    85  	if localVarHttpResponse.StatusCode >= 300 {
    86  		newErr := GenericOpenAPIError{
    87  			body:  localVarBody,
    88  			error: localVarHttpResponse.Status,
    89  		}
    90  		if localVarHttpResponse.StatusCode == 0 {
    91  			var v AccountPresenceInfo
    92  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
    93  			if err != nil {
    94  				newErr.error = err.Error()
    95  				return localVarReturnValue, localVarHttpResponse, newErr
    96  			}
    97  			newErr.model = v
    98  			return localVarReturnValue, localVarHttpResponse, newErr
    99  		}
   100  		return localVarReturnValue, localVarHttpResponse, newErr
   101  	}
   102  
   103  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   104  	if err != nil {
   105  		newErr := GenericOpenAPIError{
   106  			body:  localVarBody,
   107  			error: err.Error(),
   108  		}
   109  		return localVarReturnValue, localVarHttpResponse, newErr
   110  	}
   111  
   112  	return localVarReturnValue, localVarHttpResponse, nil
   113  }
   114  
   115  /*
   116  PresenceApiService Get User Presence Permissions
   117   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   118   * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session
   119   * @param accountId
   120  @return MonitoringExtensionsResource
   121  */
   122  func (a *PresenceApiService) GetMonitoringExtensions(ctx context.Context, extensionId string, accountId string) (MonitoringExtensionsResource, *http.Response, error) {
   123  	var (
   124  		localVarHttpMethod   = strings.ToUpper("Get")
   125  		localVarPostBody     interface{}
   126  		localVarFormFileName string
   127  		localVarFileName     string
   128  		localVarFileBytes    []byte
   129  		localVarReturnValue  MonitoringExtensionsResource
   130  	)
   131  
   132  	// create path and map variables
   133  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/presence/permission"
   134  	localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1)
   135  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   136  
   137  	localVarHeaderParams := make(map[string]string)
   138  	localVarQueryParams := url.Values{}
   139  	localVarFormParams := url.Values{}
   140  
   141  	// to determine the Content-Type header
   142  	localVarHttpContentTypes := []string{}
   143  
   144  	// set Content-Type header
   145  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   146  	if localVarHttpContentType != "" {
   147  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   148  	}
   149  
   150  	// to determine the Accept header
   151  	localVarHttpHeaderAccepts := []string{"application/json"}
   152  
   153  	// set Accept header
   154  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   155  	if localVarHttpHeaderAccept != "" {
   156  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   157  	}
   158  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   159  	if err != nil {
   160  		return localVarReturnValue, nil, err
   161  	}
   162  
   163  	localVarHttpResponse, err := a.client.callAPI(r)
   164  	if err != nil || localVarHttpResponse == nil {
   165  		return localVarReturnValue, localVarHttpResponse, err
   166  	}
   167  
   168  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   169  	localVarHttpResponse.Body.Close()
   170  	if err != nil {
   171  		return localVarReturnValue, localVarHttpResponse, err
   172  	}
   173  
   174  	if localVarHttpResponse.StatusCode >= 300 {
   175  		newErr := GenericOpenAPIError{
   176  			body:  localVarBody,
   177  			error: localVarHttpResponse.Status,
   178  		}
   179  		if localVarHttpResponse.StatusCode == 0 {
   180  			var v MonitoringExtensionsResource
   181  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   182  			if err != nil {
   183  				newErr.error = err.Error()
   184  				return localVarReturnValue, localVarHttpResponse, newErr
   185  			}
   186  			newErr.model = v
   187  			return localVarReturnValue, localVarHttpResponse, newErr
   188  		}
   189  		return localVarReturnValue, localVarHttpResponse, newErr
   190  	}
   191  
   192  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   193  	if err != nil {
   194  		newErr := GenericOpenAPIError{
   195  			body:  localVarBody,
   196  			error: err.Error(),
   197  		}
   198  		return localVarReturnValue, localVarHttpResponse, newErr
   199  	}
   200  
   201  	return localVarReturnValue, localVarHttpResponse, nil
   202  }
   203  
   204  /*
   205  PresenceApiService Get Monitored Extensions by Id
   206   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   207   * @param lineId
   208   * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session
   209   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
   210  @return PresenceLineResource
   211  */
   212  func (a *PresenceApiService) GetPresenceLine(ctx context.Context, lineId string, extensionId string, accountId string) (PresenceLineResource, *http.Response, error) {
   213  	var (
   214  		localVarHttpMethod   = strings.ToUpper("Get")
   215  		localVarPostBody     interface{}
   216  		localVarFormFileName string
   217  		localVarFileName     string
   218  		localVarFileBytes    []byte
   219  		localVarReturnValue  PresenceLineResource
   220  	)
   221  
   222  	// create path and map variables
   223  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/presence/line/{lineId}"
   224  	localVarPath = strings.Replace(localVarPath, "{"+"lineId"+"}", fmt.Sprintf("%v", lineId), -1)
   225  	localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1)
   226  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   227  
   228  	localVarHeaderParams := make(map[string]string)
   229  	localVarQueryParams := url.Values{}
   230  	localVarFormParams := url.Values{}
   231  
   232  	// to determine the Content-Type header
   233  	localVarHttpContentTypes := []string{}
   234  
   235  	// set Content-Type header
   236  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   237  	if localVarHttpContentType != "" {
   238  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   239  	}
   240  
   241  	// to determine the Accept header
   242  	localVarHttpHeaderAccepts := []string{"application/json"}
   243  
   244  	// set Accept header
   245  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   246  	if localVarHttpHeaderAccept != "" {
   247  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   248  	}
   249  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   250  	if err != nil {
   251  		return localVarReturnValue, nil, err
   252  	}
   253  
   254  	localVarHttpResponse, err := a.client.callAPI(r)
   255  	if err != nil || localVarHttpResponse == nil {
   256  		return localVarReturnValue, localVarHttpResponse, err
   257  	}
   258  
   259  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   260  	localVarHttpResponse.Body.Close()
   261  	if err != nil {
   262  		return localVarReturnValue, localVarHttpResponse, err
   263  	}
   264  
   265  	if localVarHttpResponse.StatusCode >= 300 {
   266  		newErr := GenericOpenAPIError{
   267  			body:  localVarBody,
   268  			error: localVarHttpResponse.Status,
   269  		}
   270  		if localVarHttpResponse.StatusCode == 0 {
   271  			var v PresenceLineResource
   272  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   273  			if err != nil {
   274  				newErr.error = err.Error()
   275  				return localVarReturnValue, localVarHttpResponse, newErr
   276  			}
   277  			newErr.model = v
   278  			return localVarReturnValue, localVarHttpResponse, newErr
   279  		}
   280  		return localVarReturnValue, localVarHttpResponse, newErr
   281  	}
   282  
   283  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   284  	if err != nil {
   285  		newErr := GenericOpenAPIError{
   286  			body:  localVarBody,
   287  			error: err.Error(),
   288  		}
   289  		return localVarReturnValue, localVarHttpResponse, newErr
   290  	}
   291  
   292  	return localVarReturnValue, localVarHttpResponse, nil
   293  }
   294  
   295  /*
   296  PresenceApiService Get User Status
   297  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.2&lt;/p&gt;&lt;p&gt;Returns presence status of an extension or several extensions by their ID(s). Batch request is supported, see Batch Requests for details.The presenceStatus is returned as Offline (the parameters telephonyStatus, message, userStatus and dndStatus are not returned at all) for the following extension types: Department/Announcement Only/Take Messages Only (Voicemail)/Fax User/Paging Only Group/Shared Lines Group/IVR Menu/Application Extension/Park Location.If the user requests his/her own presence status, the response contains actual presence status even if the status publication is turned off.Batch request is supported. For batch requests the number of extensions in one request is limited to 30. If more extensions are included in the request, the error code 400 Bad Request is returned with the logical error code InvalidMultipartRequest and the corresponding message &#39;Extension Presence Info multipart request is limited to 30 extensions&#39;.&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;ReadPresence&lt;/td&gt;&lt;td&gt;Getting user presence information&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;Usage Plan Group&lt;/h4&gt;&lt;p&gt;Light&lt;/p&gt;
   298   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   299   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
   300   * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session
   301  @return GetPresenceInfo
   302  */
   303  func (a *PresenceApiService) GetPresenceStatus(ctx context.Context, accountId string, extensionId string) (GetPresenceInfo, *http.Response, error) {
   304  	var (
   305  		localVarHttpMethod   = strings.ToUpper("Get")
   306  		localVarPostBody     interface{}
   307  		localVarFormFileName string
   308  		localVarFileName     string
   309  		localVarFileBytes    []byte
   310  		localVarReturnValue  GetPresenceInfo
   311  	)
   312  
   313  	// create path and map variables
   314  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/presence"
   315  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   316  	localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1)
   317  
   318  	localVarHeaderParams := make(map[string]string)
   319  	localVarQueryParams := url.Values{}
   320  	localVarFormParams := url.Values{}
   321  
   322  	// to determine the Content-Type header
   323  	localVarHttpContentTypes := []string{}
   324  
   325  	// set Content-Type header
   326  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   327  	if localVarHttpContentType != "" {
   328  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   329  	}
   330  
   331  	// to determine the Accept header
   332  	localVarHttpHeaderAccepts := []string{"application/json"}
   333  
   334  	// set Accept header
   335  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   336  	if localVarHttpHeaderAccept != "" {
   337  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   338  	}
   339  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   340  	if err != nil {
   341  		return localVarReturnValue, nil, err
   342  	}
   343  
   344  	localVarHttpResponse, err := a.client.callAPI(r)
   345  	if err != nil || localVarHttpResponse == nil {
   346  		return localVarReturnValue, localVarHttpResponse, err
   347  	}
   348  
   349  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   350  	localVarHttpResponse.Body.Close()
   351  	if err != nil {
   352  		return localVarReturnValue, localVarHttpResponse, err
   353  	}
   354  
   355  	if localVarHttpResponse.StatusCode >= 300 {
   356  		newErr := GenericOpenAPIError{
   357  			body:  localVarBody,
   358  			error: localVarHttpResponse.Status,
   359  		}
   360  		if localVarHttpResponse.StatusCode == 0 {
   361  			var v GetPresenceInfo
   362  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   363  			if err != nil {
   364  				newErr.error = err.Error()
   365  				return localVarReturnValue, localVarHttpResponse, newErr
   366  			}
   367  			newErr.model = v
   368  			return localVarReturnValue, localVarHttpResponse, newErr
   369  		}
   370  		return localVarReturnValue, localVarHttpResponse, newErr
   371  	}
   372  
   373  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   374  	if err != nil {
   375  		newErr := GenericOpenAPIError{
   376  			body:  localVarBody,
   377  			error: err.Error(),
   378  		}
   379  		return localVarReturnValue, localVarHttpResponse, newErr
   380  	}
   381  
   382  	return localVarReturnValue, localVarHttpResponse, nil
   383  }
   384  
   385  /*
   386  PresenceApiService Get Monitored Extensions
   387  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.13 (Release 6.5)&lt;/p&gt;&lt;p&gt;Returns list of lines - extensions which presence status can be indicated and monitored on BLF-enabled (Busy Lamp Field) devices.&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;ReadPresence&lt;/td&gt;&lt;td&gt;Getting user presence information&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;Usage Plan Group&lt;/h4&gt;&lt;p&gt;Light&lt;/p&gt;
   388   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   389   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
   390   * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session
   391  @return GetMonitoredExtensionsResponse
   392  */
   393  func (a *PresenceApiService) ListMonitoredExtensions(ctx context.Context, accountId string, extensionId string) (GetMonitoredExtensionsResponse, *http.Response, error) {
   394  	var (
   395  		localVarHttpMethod   = strings.ToUpper("Get")
   396  		localVarPostBody     interface{}
   397  		localVarFormFileName string
   398  		localVarFileName     string
   399  		localVarFileBytes    []byte
   400  		localVarReturnValue  GetMonitoredExtensionsResponse
   401  	)
   402  
   403  	// create path and map variables
   404  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/presence/line"
   405  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   406  	localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1)
   407  
   408  	localVarHeaderParams := make(map[string]string)
   409  	localVarQueryParams := url.Values{}
   410  	localVarFormParams := url.Values{}
   411  
   412  	// to determine the Content-Type header
   413  	localVarHttpContentTypes := []string{}
   414  
   415  	// set Content-Type header
   416  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   417  	if localVarHttpContentType != "" {
   418  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   419  	}
   420  
   421  	// to determine the Accept header
   422  	localVarHttpHeaderAccepts := []string{"application/json"}
   423  
   424  	// set Accept header
   425  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   426  	if localVarHttpHeaderAccept != "" {
   427  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   428  	}
   429  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   430  	if err != nil {
   431  		return localVarReturnValue, nil, err
   432  	}
   433  
   434  	localVarHttpResponse, err := a.client.callAPI(r)
   435  	if err != nil || localVarHttpResponse == nil {
   436  		return localVarReturnValue, localVarHttpResponse, err
   437  	}
   438  
   439  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   440  	localVarHttpResponse.Body.Close()
   441  	if err != nil {
   442  		return localVarReturnValue, localVarHttpResponse, err
   443  	}
   444  
   445  	if localVarHttpResponse.StatusCode >= 300 {
   446  		newErr := GenericOpenAPIError{
   447  			body:  localVarBody,
   448  			error: localVarHttpResponse.Status,
   449  		}
   450  		if localVarHttpResponse.StatusCode == 0 {
   451  			var v GetMonitoredExtensionsResponse
   452  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   453  			if err != nil {
   454  				newErr.error = err.Error()
   455  				return localVarReturnValue, localVarHttpResponse, newErr
   456  			}
   457  			newErr.model = v
   458  			return localVarReturnValue, localVarHttpResponse, newErr
   459  		}
   460  		return localVarReturnValue, localVarHttpResponse, newErr
   461  	}
   462  
   463  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   464  	if err != nil {
   465  		newErr := GenericOpenAPIError{
   466  			body:  localVarBody,
   467  			error: err.Error(),
   468  		}
   469  		return localVarReturnValue, localVarHttpResponse, newErr
   470  	}
   471  
   472  	return localVarReturnValue, localVarHttpResponse, nil
   473  }
   474  
   475  /*
   476  PresenceApiService Update User Presence Permissions
   477   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   478   * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session
   479   * @param accountId
   480   * @param userPresencePermissionsUpdateRequest
   481  @return MonitoringExtensionsResource
   482  */
   483  func (a *PresenceApiService) PutMonitoringExtensions(ctx context.Context, extensionId string, accountId string, userPresencePermissionsUpdateRequest UserPresencePermissionsUpdateRequest) (MonitoringExtensionsResource, *http.Response, error) {
   484  	var (
   485  		localVarHttpMethod   = strings.ToUpper("Put")
   486  		localVarPostBody     interface{}
   487  		localVarFormFileName string
   488  		localVarFileName     string
   489  		localVarFileBytes    []byte
   490  		localVarReturnValue  MonitoringExtensionsResource
   491  	)
   492  
   493  	// create path and map variables
   494  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/presence/permission"
   495  	localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1)
   496  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   497  
   498  	localVarHeaderParams := make(map[string]string)
   499  	localVarQueryParams := url.Values{}
   500  	localVarFormParams := url.Values{}
   501  
   502  	// to determine the Content-Type header
   503  	localVarHttpContentTypes := []string{"application/json"}
   504  
   505  	// set Content-Type header
   506  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   507  	if localVarHttpContentType != "" {
   508  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   509  	}
   510  
   511  	// to determine the Accept header
   512  	localVarHttpHeaderAccepts := []string{"application/json"}
   513  
   514  	// set Accept header
   515  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   516  	if localVarHttpHeaderAccept != "" {
   517  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   518  	}
   519  	// body params
   520  	localVarPostBody = &userPresencePermissionsUpdateRequest
   521  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   522  	if err != nil {
   523  		return localVarReturnValue, nil, err
   524  	}
   525  
   526  	localVarHttpResponse, err := a.client.callAPI(r)
   527  	if err != nil || localVarHttpResponse == nil {
   528  		return localVarReturnValue, localVarHttpResponse, err
   529  	}
   530  
   531  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   532  	localVarHttpResponse.Body.Close()
   533  	if err != nil {
   534  		return localVarReturnValue, localVarHttpResponse, err
   535  	}
   536  
   537  	if localVarHttpResponse.StatusCode >= 300 {
   538  		newErr := GenericOpenAPIError{
   539  			body:  localVarBody,
   540  			error: localVarHttpResponse.Status,
   541  		}
   542  		if localVarHttpResponse.StatusCode == 0 {
   543  			var v MonitoringExtensionsResource
   544  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   545  			if err != nil {
   546  				newErr.error = err.Error()
   547  				return localVarReturnValue, localVarHttpResponse, newErr
   548  			}
   549  			newErr.model = v
   550  			return localVarReturnValue, localVarHttpResponse, newErr
   551  		}
   552  		return localVarReturnValue, localVarHttpResponse, newErr
   553  	}
   554  
   555  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   556  	if err != nil {
   557  		newErr := GenericOpenAPIError{
   558  			body:  localVarBody,
   559  			error: err.Error(),
   560  		}
   561  		return localVarReturnValue, localVarHttpResponse, newErr
   562  	}
   563  
   564  	return localVarReturnValue, localVarHttpResponse, nil
   565  }
   566  
   567  /*
   568  PresenceApiService Update Monitored Extensions
   569   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   570   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
   571   * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session
   572   * @param updatePresenceLinesRequest
   573  @return UpdatePresenceLinesResponse
   574  */
   575  func (a *PresenceApiService) UpdatePresenceLines(ctx context.Context, accountId string, extensionId string, updatePresenceLinesRequest UpdatePresenceLinesRequest) (UpdatePresenceLinesResponse, *http.Response, error) {
   576  	var (
   577  		localVarHttpMethod   = strings.ToUpper("Put")
   578  		localVarPostBody     interface{}
   579  		localVarFormFileName string
   580  		localVarFileName     string
   581  		localVarFileBytes    []byte
   582  		localVarReturnValue  UpdatePresenceLinesResponse
   583  	)
   584  
   585  	// create path and map variables
   586  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/presence/line"
   587  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   588  	localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1)
   589  
   590  	localVarHeaderParams := make(map[string]string)
   591  	localVarQueryParams := url.Values{}
   592  	localVarFormParams := url.Values{}
   593  
   594  	// to determine the Content-Type header
   595  	localVarHttpContentTypes := []string{"application/json"}
   596  
   597  	// set Content-Type header
   598  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   599  	if localVarHttpContentType != "" {
   600  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   601  	}
   602  
   603  	// to determine the Accept header
   604  	localVarHttpHeaderAccepts := []string{"application/json"}
   605  
   606  	// set Accept header
   607  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   608  	if localVarHttpHeaderAccept != "" {
   609  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   610  	}
   611  	// body params
   612  	localVarPostBody = &updatePresenceLinesRequest
   613  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   614  	if err != nil {
   615  		return localVarReturnValue, nil, err
   616  	}
   617  
   618  	localVarHttpResponse, err := a.client.callAPI(r)
   619  	if err != nil || localVarHttpResponse == nil {
   620  		return localVarReturnValue, localVarHttpResponse, err
   621  	}
   622  
   623  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   624  	localVarHttpResponse.Body.Close()
   625  	if err != nil {
   626  		return localVarReturnValue, localVarHttpResponse, err
   627  	}
   628  
   629  	if localVarHttpResponse.StatusCode >= 300 {
   630  		newErr := GenericOpenAPIError{
   631  			body:  localVarBody,
   632  			error: localVarHttpResponse.Status,
   633  		}
   634  		if localVarHttpResponse.StatusCode == 0 {
   635  			var v UpdatePresenceLinesResponse
   636  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   637  			if err != nil {
   638  				newErr.error = err.Error()
   639  				return localVarReturnValue, localVarHttpResponse, newErr
   640  			}
   641  			newErr.model = v
   642  			return localVarReturnValue, localVarHttpResponse, newErr
   643  		}
   644  		return localVarReturnValue, localVarHttpResponse, newErr
   645  	}
   646  
   647  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   648  	if err != nil {
   649  		newErr := GenericOpenAPIError{
   650  			body:  localVarBody,
   651  			error: err.Error(),
   652  		}
   653  		return localVarReturnValue, localVarHttpResponse, newErr
   654  	}
   655  
   656  	return localVarReturnValue, localVarHttpResponse, nil
   657  }
   658  
   659  /*
   660  PresenceApiService Update User Status
   661   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   662   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
   663   * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session
   664   * @param presenceInfoResource
   665  @return PresenceInfoResource
   666  */
   667  func (a *PresenceApiService) UpdatePresenceStatus(ctx context.Context, accountId string, extensionId string, presenceInfoResource PresenceInfoResource) (PresenceInfoResource, *http.Response, error) {
   668  	var (
   669  		localVarHttpMethod   = strings.ToUpper("Put")
   670  		localVarPostBody     interface{}
   671  		localVarFormFileName string
   672  		localVarFileName     string
   673  		localVarFileBytes    []byte
   674  		localVarReturnValue  PresenceInfoResource
   675  	)
   676  
   677  	// create path and map variables
   678  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/presence"
   679  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   680  	localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1)
   681  
   682  	localVarHeaderParams := make(map[string]string)
   683  	localVarQueryParams := url.Values{}
   684  	localVarFormParams := url.Values{}
   685  
   686  	// to determine the Content-Type header
   687  	localVarHttpContentTypes := []string{"multipart/mixed", "application/json"}
   688  
   689  	// set Content-Type header
   690  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   691  	if localVarHttpContentType != "" {
   692  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   693  	}
   694  
   695  	// to determine the Accept header
   696  	localVarHttpHeaderAccepts := []string{"multipart/mixed", "application/json"}
   697  
   698  	// set Accept header
   699  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   700  	if localVarHttpHeaderAccept != "" {
   701  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   702  	}
   703  	// body params
   704  	localVarPostBody = &presenceInfoResource
   705  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   706  	if err != nil {
   707  		return localVarReturnValue, nil, err
   708  	}
   709  
   710  	localVarHttpResponse, err := a.client.callAPI(r)
   711  	if err != nil || localVarHttpResponse == nil {
   712  		return localVarReturnValue, localVarHttpResponse, err
   713  	}
   714  
   715  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   716  	localVarHttpResponse.Body.Close()
   717  	if err != nil {
   718  		return localVarReturnValue, localVarHttpResponse, err
   719  	}
   720  
   721  	if localVarHttpResponse.StatusCode >= 300 {
   722  		newErr := GenericOpenAPIError{
   723  			body:  localVarBody,
   724  			error: localVarHttpResponse.Status,
   725  		}
   726  		if localVarHttpResponse.StatusCode == 0 {
   727  			var v PresenceInfoResource
   728  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   729  			if err != nil {
   730  				newErr.error = err.Error()
   731  				return localVarReturnValue, localVarHttpResponse, newErr
   732  			}
   733  			newErr.model = v
   734  			return localVarReturnValue, localVarHttpResponse, newErr
   735  		}
   736  		return localVarReturnValue, localVarHttpResponse, newErr
   737  	}
   738  
   739  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   740  	if err != nil {
   741  		newErr := GenericOpenAPIError{
   742  			body:  localVarBody,
   743  			error: err.Error(),
   744  		}
   745  		return localVarReturnValue, localVarHttpResponse, newErr
   746  	}
   747  
   748  	return localVarReturnValue, localVarHttpResponse, nil
   749  }