github.com/grokify/go-ringcentral-client@v0.3.31/office/v1/client/api_call_log.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 CallLogApiService service
    28  
    29  /*
    30  CallLogApiService Delete Call Log Records by Filter
    31  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;&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;EditCallLog&lt;/td&gt;&lt;td&gt;Viewing and updating user call logs&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class&#x3D;&#39;code&#39;&gt;ReadCallLog&lt;/td&gt;&lt;td&gt;Viewing user call logs&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;Usage Plan Group&lt;/h4&gt;&lt;p&gt;Heavy&lt;/p&gt;
    32   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    33   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
    34   * @param optional nil or *DeleteAccountCallLogOpts - Optional Parameters:
    35   * @param "DateTo" (optional.String) -  The end datetime for records deletion in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is current time
    36  */
    37  
    38  type DeleteAccountCallLogOpts struct {
    39  	DateTo optional.String
    40  }
    41  
    42  func (a *CallLogApiService) DeleteAccountCallLog(ctx context.Context, accountId string, localVarOptionals *DeleteAccountCallLogOpts) (*http.Response, error) {
    43  	var (
    44  		localVarHttpMethod   = strings.ToUpper("Delete")
    45  		localVarPostBody     interface{}
    46  		localVarFormFileName string
    47  		localVarFileName     string
    48  		localVarFileBytes    []byte
    49  	)
    50  
    51  	// create path and map variables
    52  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/call-log"
    53  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
    54  
    55  	localVarHeaderParams := make(map[string]string)
    56  	localVarQueryParams := url.Values{}
    57  	localVarFormParams := url.Values{}
    58  
    59  	if localVarOptionals != nil && localVarOptionals.DateTo.IsSet() {
    60  		localVarQueryParams.Add("dateTo", parameterToString(localVarOptionals.DateTo.Value(), ""))
    61  	}
    62  	// to determine the Content-Type header
    63  	localVarHttpContentTypes := []string{}
    64  
    65  	// set Content-Type header
    66  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
    67  	if localVarHttpContentType != "" {
    68  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
    69  	}
    70  
    71  	// to determine the Accept header
    72  	localVarHttpHeaderAccepts := []string{}
    73  
    74  	// set Accept header
    75  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
    76  	if localVarHttpHeaderAccept != "" {
    77  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    78  	}
    79  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
    80  	if err != nil {
    81  		return nil, err
    82  	}
    83  
    84  	localVarHttpResponse, err := a.client.callAPI(r)
    85  	if err != nil || localVarHttpResponse == nil {
    86  		return localVarHttpResponse, err
    87  	}
    88  
    89  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
    90  	localVarHttpResponse.Body.Close()
    91  	if err != nil {
    92  		return localVarHttpResponse, err
    93  	}
    94  
    95  	if localVarHttpResponse.StatusCode >= 300 {
    96  		newErr := GenericOpenAPIError{
    97  			body:  localVarBody,
    98  			error: localVarHttpResponse.Status,
    99  		}
   100  		return localVarHttpResponse, newErr
   101  	}
   102  
   103  	return localVarHttpResponse, nil
   104  }
   105  
   106  /*
   107  CallLogApiService Delete Account Call Log Record(s) by ID
   108   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   109   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
   110   * @param callRecordId Internal identifier of a call log record
   111  */
   112  func (a *CallLogApiService) DeleteAccountCallLogRecord(ctx context.Context, accountId string, callRecordId int32) (*http.Response, error) {
   113  	var (
   114  		localVarHttpMethod   = strings.ToUpper("Delete")
   115  		localVarPostBody     interface{}
   116  		localVarFormFileName string
   117  		localVarFileName     string
   118  		localVarFileBytes    []byte
   119  	)
   120  
   121  	// create path and map variables
   122  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/call-log/{callRecordId}"
   123  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   124  	localVarPath = strings.Replace(localVarPath, "{"+"callRecordId"+"}", fmt.Sprintf("%v", callRecordId), -1)
   125  
   126  	localVarHeaderParams := make(map[string]string)
   127  	localVarQueryParams := url.Values{}
   128  	localVarFormParams := url.Values{}
   129  
   130  	// to determine the Content-Type header
   131  	localVarHttpContentTypes := []string{}
   132  
   133  	// set Content-Type header
   134  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   135  	if localVarHttpContentType != "" {
   136  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   137  	}
   138  
   139  	// to determine the Accept header
   140  	localVarHttpHeaderAccepts := []string{}
   141  
   142  	// set Accept header
   143  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   144  	if localVarHttpHeaderAccept != "" {
   145  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   146  	}
   147  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   148  	if err != nil {
   149  		return nil, err
   150  	}
   151  
   152  	localVarHttpResponse, err := a.client.callAPI(r)
   153  	if err != nil || localVarHttpResponse == nil {
   154  		return localVarHttpResponse, err
   155  	}
   156  
   157  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   158  	localVarHttpResponse.Body.Close()
   159  	if err != nil {
   160  		return localVarHttpResponse, err
   161  	}
   162  
   163  	if localVarHttpResponse.StatusCode >= 300 {
   164  		newErr := GenericOpenAPIError{
   165  			body:  localVarBody,
   166  			error: localVarHttpResponse.Status,
   167  		}
   168  		return localVarHttpResponse, newErr
   169  	}
   170  
   171  	return localVarHttpResponse, nil
   172  }
   173  
   174  /*
   175  CallLogApiService Delete Call Log Records by Filter
   176  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;&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;EditCallLog&lt;/td&gt;&lt;td&gt;Viewing and updating user call logs&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class&#x3D;&#39;code&#39;&gt;ReadCallLog&lt;/td&gt;&lt;td&gt;Viewing user call logs&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;Usage Plan Group&lt;/h4&gt;&lt;p&gt;Heavy&lt;/p&gt;
   177   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   178   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
   179   * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session
   180   * @param optional nil or *DeleteExtensionCallLogOpts - Optional Parameters:
   181   * @param "DateTo" (optional.String) -  The end datetime for records deletion in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is current time
   182   * @param "PhoneNumber" (optional.String) -
   183   * @param "ExtensionNumber" (optional.String) -
   184   * @param "Type_" (optional.Interface of []string) -
   185   * @param "Direction" (optional.Interface of []string) -
   186   * @param "DateFrom" (optional.Time) -
   187  */
   188  
   189  type DeleteExtensionCallLogOpts struct {
   190  	DateTo          optional.String
   191  	PhoneNumber     optional.String
   192  	ExtensionNumber optional.String
   193  	Type_           optional.Interface
   194  	Direction       optional.Interface
   195  	DateFrom        optional.Time
   196  }
   197  
   198  func (a *CallLogApiService) DeleteExtensionCallLog(ctx context.Context, accountId string, extensionId string, localVarOptionals *DeleteExtensionCallLogOpts) (*http.Response, error) {
   199  	var (
   200  		localVarHttpMethod   = strings.ToUpper("Delete")
   201  		localVarPostBody     interface{}
   202  		localVarFormFileName string
   203  		localVarFileName     string
   204  		localVarFileBytes    []byte
   205  	)
   206  
   207  	// create path and map variables
   208  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/call-log"
   209  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   210  	localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1)
   211  
   212  	localVarHeaderParams := make(map[string]string)
   213  	localVarQueryParams := url.Values{}
   214  	localVarFormParams := url.Values{}
   215  
   216  	if localVarOptionals != nil && localVarOptionals.DateTo.IsSet() {
   217  		localVarQueryParams.Add("dateTo", parameterToString(localVarOptionals.DateTo.Value(), ""))
   218  	}
   219  	if localVarOptionals != nil && localVarOptionals.PhoneNumber.IsSet() {
   220  		localVarQueryParams.Add("phoneNumber", parameterToString(localVarOptionals.PhoneNumber.Value(), ""))
   221  	}
   222  	if localVarOptionals != nil && localVarOptionals.ExtensionNumber.IsSet() {
   223  		localVarQueryParams.Add("extensionNumber", parameterToString(localVarOptionals.ExtensionNumber.Value(), ""))
   224  	}
   225  	if localVarOptionals != nil && localVarOptionals.Type_.IsSet() {
   226  		localVarQueryParams.Add("type", parameterToString(localVarOptionals.Type_.Value(), "multi"))
   227  	}
   228  	if localVarOptionals != nil && localVarOptionals.Direction.IsSet() {
   229  		localVarQueryParams.Add("direction", parameterToString(localVarOptionals.Direction.Value(), "multi"))
   230  	}
   231  	if localVarOptionals != nil && localVarOptionals.DateFrom.IsSet() {
   232  		localVarQueryParams.Add("dateFrom", parameterToString(localVarOptionals.DateFrom.Value(), ""))
   233  	}
   234  	// to determine the Content-Type header
   235  	localVarHttpContentTypes := []string{}
   236  
   237  	// set Content-Type header
   238  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   239  	if localVarHttpContentType != "" {
   240  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   241  	}
   242  
   243  	// to determine the Accept header
   244  	localVarHttpHeaderAccepts := []string{}
   245  
   246  	// set Accept header
   247  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   248  	if localVarHttpHeaderAccept != "" {
   249  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   250  	}
   251  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   252  	if err != nil {
   253  		return nil, err
   254  	}
   255  
   256  	localVarHttpResponse, err := a.client.callAPI(r)
   257  	if err != nil || localVarHttpResponse == nil {
   258  		return localVarHttpResponse, err
   259  	}
   260  
   261  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   262  	localVarHttpResponse.Body.Close()
   263  	if err != nil {
   264  		return localVarHttpResponse, err
   265  	}
   266  
   267  	if localVarHttpResponse.StatusCode >= 300 {
   268  		newErr := GenericOpenAPIError{
   269  			body:  localVarBody,
   270  			error: localVarHttpResponse.Status,
   271  		}
   272  		return localVarHttpResponse, newErr
   273  	}
   274  
   275  	return localVarHttpResponse, nil
   276  }
   277  
   278  /*
   279  CallLogApiService Get Call Records by ID
   280   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   281   * @param callRecordId
   282   * @param extensionId
   283   * @param accountId
   284   * @param optional nil or *GetCallRecordsOpts - Optional Parameters:
   285   * @param "View" (optional.String) -
   286  @return UserCallLogRecord
   287  */
   288  
   289  type GetCallRecordsOpts struct {
   290  	View optional.String
   291  }
   292  
   293  func (a *CallLogApiService) GetCallRecords(ctx context.Context, callRecordId []string, extensionId string, accountId string, localVarOptionals *GetCallRecordsOpts) (UserCallLogRecord, *http.Response, error) {
   294  	var (
   295  		localVarHttpMethod   = strings.ToUpper("Get")
   296  		localVarPostBody     interface{}
   297  		localVarFormFileName string
   298  		localVarFileName     string
   299  		localVarFileBytes    []byte
   300  		localVarReturnValue  UserCallLogRecord
   301  	)
   302  
   303  	// create path and map variables
   304  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/call-log/{callRecordId}"
   305  	localVarPath = strings.Replace(localVarPath, "{"+"callRecordId"+"}", fmt.Sprintf("%v", callRecordId), -1)
   306  	localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1)
   307  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   308  
   309  	localVarHeaderParams := make(map[string]string)
   310  	localVarQueryParams := url.Values{}
   311  	localVarFormParams := url.Values{}
   312  
   313  	if localVarOptionals != nil && localVarOptionals.View.IsSet() {
   314  		localVarQueryParams.Add("view", parameterToString(localVarOptionals.View.Value(), ""))
   315  	}
   316  	// to determine the Content-Type header
   317  	localVarHttpContentTypes := []string{}
   318  
   319  	// set Content-Type header
   320  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   321  	if localVarHttpContentType != "" {
   322  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   323  	}
   324  
   325  	// to determine the Accept header
   326  	localVarHttpHeaderAccepts := []string{"application/json"}
   327  
   328  	// set Accept header
   329  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   330  	if localVarHttpHeaderAccept != "" {
   331  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   332  	}
   333  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   334  	if err != nil {
   335  		return localVarReturnValue, nil, err
   336  	}
   337  
   338  	localVarHttpResponse, err := a.client.callAPI(r)
   339  	if err != nil || localVarHttpResponse == nil {
   340  		return localVarReturnValue, localVarHttpResponse, err
   341  	}
   342  
   343  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   344  	localVarHttpResponse.Body.Close()
   345  	if err != nil {
   346  		return localVarReturnValue, localVarHttpResponse, err
   347  	}
   348  
   349  	if localVarHttpResponse.StatusCode >= 300 {
   350  		newErr := GenericOpenAPIError{
   351  			body:  localVarBody,
   352  			error: localVarHttpResponse.Status,
   353  		}
   354  		if localVarHttpResponse.StatusCode == 0 {
   355  			var v UserCallLogRecord
   356  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   357  			if err != nil {
   358  				newErr.error = err.Error()
   359  				return localVarReturnValue, localVarHttpResponse, newErr
   360  			}
   361  			newErr.model = v
   362  			return localVarReturnValue, localVarHttpResponse, newErr
   363  		}
   364  		return localVarReturnValue, localVarHttpResponse, newErr
   365  	}
   366  
   367  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   368  	if err != nil {
   369  		newErr := GenericOpenAPIError{
   370  			body:  localVarBody,
   371  			error: err.Error(),
   372  		}
   373  		return localVarReturnValue, localVarHttpResponse, newErr
   374  	}
   375  
   376  	return localVarReturnValue, localVarHttpResponse, nil
   377  }
   378  
   379  /*
   380  CallLogApiService Get Call Recordings Data
   381  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.16 (Release 7.1)&lt;/p&gt;&lt;p&gt;Returns call recording metadata.&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;ReadCallRecording&lt;/td&gt;&lt;td&gt;Downloading call recording content&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;Usage Plan Group&lt;/h4&gt;&lt;p&gt;Heavy&lt;/p&gt;
   382   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   383   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
   384   * @param recordingId Internal identifier of a recording (returned in Call Log)
   385  @return Binary
   386  */
   387  func (a *CallLogApiService) ListCallRecordingData(ctx context.Context, accountId string, recordingId string) (Binary, *http.Response, error) {
   388  	var (
   389  		localVarHttpMethod   = strings.ToUpper("Get")
   390  		localVarPostBody     interface{}
   391  		localVarFormFileName string
   392  		localVarFileName     string
   393  		localVarFileBytes    []byte
   394  		localVarReturnValue  Binary
   395  	)
   396  
   397  	// create path and map variables
   398  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/recording/{recordingId}/content"
   399  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   400  	localVarPath = strings.Replace(localVarPath, "{"+"recordingId"+"}", fmt.Sprintf("%v", recordingId), -1)
   401  
   402  	localVarHeaderParams := make(map[string]string)
   403  	localVarQueryParams := url.Values{}
   404  	localVarFormParams := url.Values{}
   405  
   406  	// to determine the Content-Type header
   407  	localVarHttpContentTypes := []string{}
   408  
   409  	// set Content-Type header
   410  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   411  	if localVarHttpContentType != "" {
   412  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   413  	}
   414  
   415  	// to determine the Accept header
   416  	localVarHttpHeaderAccepts := []string{"application/json"}
   417  
   418  	// set Accept header
   419  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   420  	if localVarHttpHeaderAccept != "" {
   421  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   422  	}
   423  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   424  	if err != nil {
   425  		return localVarReturnValue, nil, err
   426  	}
   427  
   428  	localVarHttpResponse, err := a.client.callAPI(r)
   429  	if err != nil || localVarHttpResponse == nil {
   430  		return localVarReturnValue, localVarHttpResponse, err
   431  	}
   432  
   433  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   434  	localVarHttpResponse.Body.Close()
   435  	if err != nil {
   436  		return localVarReturnValue, localVarHttpResponse, err
   437  	}
   438  
   439  	if localVarHttpResponse.StatusCode >= 300 {
   440  		newErr := GenericOpenAPIError{
   441  			body:  localVarBody,
   442  			error: localVarHttpResponse.Status,
   443  		}
   444  		if localVarHttpResponse.StatusCode == 0 {
   445  			var v Binary
   446  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   447  			if err != nil {
   448  				newErr.error = err.Error()
   449  				return localVarReturnValue, localVarHttpResponse, newErr
   450  			}
   451  			newErr.model = v
   452  			return localVarReturnValue, localVarHttpResponse, newErr
   453  		}
   454  		return localVarReturnValue, localVarHttpResponse, newErr
   455  	}
   456  
   457  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   458  	if err != nil {
   459  		newErr := GenericOpenAPIError{
   460  			body:  localVarBody,
   461  			error: err.Error(),
   462  		}
   463  		return localVarReturnValue, localVarHttpResponse, newErr
   464  	}
   465  
   466  	return localVarReturnValue, localVarHttpResponse, nil
   467  }
   468  
   469  /*
   470  CallLogApiService Get Call Recordings
   471  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.18 (Release 6.5)&lt;/p&gt;&lt;p&gt;Returns call recording metadata.&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;ReadCallRecording&lt;/td&gt;&lt;td&gt;Downloading call recording content&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;Usage Plan Group&lt;/h4&gt;&lt;p&gt;Heavy&lt;/p&gt;
   472   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   473   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
   474   * @param recordingId Internal identifier of a recording (returned in Call Log)
   475  @return GetCallRecordingResponse
   476  */
   477  func (a *CallLogApiService) ListCallRecordings(ctx context.Context, accountId string, recordingId string) (GetCallRecordingResponse, *http.Response, error) {
   478  	var (
   479  		localVarHttpMethod   = strings.ToUpper("Get")
   480  		localVarPostBody     interface{}
   481  		localVarFormFileName string
   482  		localVarFileName     string
   483  		localVarFileBytes    []byte
   484  		localVarReturnValue  GetCallRecordingResponse
   485  	)
   486  
   487  	// create path and map variables
   488  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/recording/{recordingId}"
   489  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   490  	localVarPath = strings.Replace(localVarPath, "{"+"recordingId"+"}", fmt.Sprintf("%v", recordingId), -1)
   491  
   492  	localVarHeaderParams := make(map[string]string)
   493  	localVarQueryParams := url.Values{}
   494  	localVarFormParams := url.Values{}
   495  
   496  	// to determine the Content-Type header
   497  	localVarHttpContentTypes := []string{}
   498  
   499  	// set Content-Type header
   500  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   501  	if localVarHttpContentType != "" {
   502  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   503  	}
   504  
   505  	// to determine the Accept header
   506  	localVarHttpHeaderAccepts := []string{"application/json"}
   507  
   508  	// set Accept header
   509  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   510  	if localVarHttpHeaderAccept != "" {
   511  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   512  	}
   513  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   514  	if err != nil {
   515  		return localVarReturnValue, nil, err
   516  	}
   517  
   518  	localVarHttpResponse, err := a.client.callAPI(r)
   519  	if err != nil || localVarHttpResponse == nil {
   520  		return localVarReturnValue, localVarHttpResponse, err
   521  	}
   522  
   523  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   524  	localVarHttpResponse.Body.Close()
   525  	if err != nil {
   526  		return localVarReturnValue, localVarHttpResponse, err
   527  	}
   528  
   529  	if localVarHttpResponse.StatusCode >= 300 {
   530  		newErr := GenericOpenAPIError{
   531  			body:  localVarBody,
   532  			error: localVarHttpResponse.Status,
   533  		}
   534  		if localVarHttpResponse.StatusCode == 0 {
   535  			var v GetCallRecordingResponse
   536  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   537  			if err != nil {
   538  				newErr.error = err.Error()
   539  				return localVarReturnValue, localVarHttpResponse, newErr
   540  			}
   541  			newErr.model = v
   542  			return localVarReturnValue, localVarHttpResponse, newErr
   543  		}
   544  		return localVarReturnValue, localVarHttpResponse, newErr
   545  	}
   546  
   547  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   548  	if err != nil {
   549  		newErr := GenericOpenAPIError{
   550  			body:  localVarBody,
   551  			error: err.Error(),
   552  		}
   553  		return localVarReturnValue, localVarHttpResponse, newErr
   554  	}
   555  
   556  	return localVarReturnValue, localVarHttpResponse, nil
   557  }
   558  
   559  /*
   560  CallLogApiService Get User Active Calls
   561  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.13 (Release 6.5)&lt;/p&gt;&lt;p&gt;Returns records of all calls that are in progress, ordered by start time in descending order&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;ReadCallLog&lt;/td&gt;&lt;td&gt;Viewing user call logs&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;Usage Plan Group&lt;/h4&gt;&lt;p&gt;Heavy&lt;/p&gt;
   562   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   563   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
   564   * @param optional nil or *ListCompanyActiveCallsOpts - Optional Parameters:
   565   * @param "Direction" (optional.Interface of []string) -  The direction for the result records. It is allowed to specify more than one direction. If not specified, both inbound and outbound records are returned. Multiple values are accepted
   566   * @param "Type_" (optional.Interface of []string) -  Call type of a record. It is allowed to specify more than one type. If not specified, all call types are returned. Multiple values are accepted
   567   * @param "Transport" (optional.Interface of []string) -  Call transport type. 'PSTN' specifies that a call leg is initiated from the PSTN network provider; 'VoIP' - from an RC phone. By default this filter is disabled
   568   * @param "Page" (optional.Int32) -  Indicates the page number to retrieve. Only positive number values are allowed. Default value is '1'
   569   * @param "PerPage" (optional.Int32) -  Indicates the page size (number of items). If not specified, the value is '100' by default
   570  @return ExtensionActiveCallsResponse
   571  */
   572  
   573  type ListCompanyActiveCallsOpts struct {
   574  	Direction optional.Interface
   575  	Type_     optional.Interface
   576  	Transport optional.Interface
   577  	Page      optional.Int32
   578  	PerPage   optional.Int32
   579  }
   580  
   581  func (a *CallLogApiService) ListCompanyActiveCalls(ctx context.Context, accountId string, localVarOptionals *ListCompanyActiveCallsOpts) (ExtensionActiveCallsResponse, *http.Response, error) {
   582  	var (
   583  		localVarHttpMethod   = strings.ToUpper("Get")
   584  		localVarPostBody     interface{}
   585  		localVarFormFileName string
   586  		localVarFileName     string
   587  		localVarFileBytes    []byte
   588  		localVarReturnValue  ExtensionActiveCallsResponse
   589  	)
   590  
   591  	// create path and map variables
   592  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/active-calls"
   593  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   594  
   595  	localVarHeaderParams := make(map[string]string)
   596  	localVarQueryParams := url.Values{}
   597  	localVarFormParams := url.Values{}
   598  
   599  	if localVarOptionals != nil && localVarOptionals.Direction.IsSet() {
   600  		localVarQueryParams.Add("direction", parameterToString(localVarOptionals.Direction.Value(), "multi"))
   601  	}
   602  	if localVarOptionals != nil && localVarOptionals.Type_.IsSet() {
   603  		localVarQueryParams.Add("type", parameterToString(localVarOptionals.Type_.Value(), "multi"))
   604  	}
   605  	if localVarOptionals != nil && localVarOptionals.Transport.IsSet() {
   606  		localVarQueryParams.Add("transport", parameterToString(localVarOptionals.Transport.Value(), "multi"))
   607  	}
   608  	if localVarOptionals != nil && localVarOptionals.Page.IsSet() {
   609  		localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), ""))
   610  	}
   611  	if localVarOptionals != nil && localVarOptionals.PerPage.IsSet() {
   612  		localVarQueryParams.Add("perPage", parameterToString(localVarOptionals.PerPage.Value(), ""))
   613  	}
   614  	// to determine the Content-Type header
   615  	localVarHttpContentTypes := []string{}
   616  
   617  	// set Content-Type header
   618  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   619  	if localVarHttpContentType != "" {
   620  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   621  	}
   622  
   623  	// to determine the Accept header
   624  	localVarHttpHeaderAccepts := []string{"application/json"}
   625  
   626  	// set Accept header
   627  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   628  	if localVarHttpHeaderAccept != "" {
   629  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   630  	}
   631  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   632  	if err != nil {
   633  		return localVarReturnValue, nil, err
   634  	}
   635  
   636  	localVarHttpResponse, err := a.client.callAPI(r)
   637  	if err != nil || localVarHttpResponse == nil {
   638  		return localVarReturnValue, localVarHttpResponse, err
   639  	}
   640  
   641  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   642  	localVarHttpResponse.Body.Close()
   643  	if err != nil {
   644  		return localVarReturnValue, localVarHttpResponse, err
   645  	}
   646  
   647  	if localVarHttpResponse.StatusCode >= 300 {
   648  		newErr := GenericOpenAPIError{
   649  			body:  localVarBody,
   650  			error: localVarHttpResponse.Status,
   651  		}
   652  		if localVarHttpResponse.StatusCode == 0 {
   653  			var v ExtensionActiveCallsResponse
   654  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   655  			if err != nil {
   656  				newErr.error = err.Error()
   657  				return localVarReturnValue, localVarHttpResponse, newErr
   658  			}
   659  			newErr.model = v
   660  			return localVarReturnValue, localVarHttpResponse, newErr
   661  		}
   662  		return localVarReturnValue, localVarHttpResponse, newErr
   663  	}
   664  
   665  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   666  	if err != nil {
   667  		newErr := GenericOpenAPIError{
   668  			body:  localVarBody,
   669  			error: err.Error(),
   670  		}
   671  		return localVarReturnValue, localVarHttpResponse, newErr
   672  	}
   673  
   674  	return localVarReturnValue, localVarHttpResponse, nil
   675  }
   676  
   677  /*
   678  CallLogApiService Get User Active Calls
   679  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.13 (Release 6.5)&lt;/p&gt;&lt;p&gt;Returns records of all extension calls that are in progress, ordered by start time in descending order.&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;ReadCallLog&lt;/td&gt;&lt;td&gt;Viewing user call logs&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;Usage Plan Group&lt;/h4&gt;&lt;p&gt;Heavy&lt;/p&gt;
   680   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   681   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
   682   * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session
   683   * @param optional nil or *ListExtensionActiveCallsOpts - Optional Parameters:
   684   * @param "Direction" (optional.Interface of []string) -  The direction for the result records. It is allowed to specify more than one direction. If not specified, both inbound and outbound records are returned. Multiple values are accepted
   685   * @param "Type_" (optional.Interface of []string) -  Call type of a record. It is allowed to specify more than one type. If not specified, all call types are returned. Multiple values are accepted
   686   * @param "Page" (optional.Int32) -  Indicates the page number to retrieve. Only positive number values are allowed. Default value is '1'
   687   * @param "PerPage" (optional.Int32) -  Indicates the page size (number of items). If not specified, the value is '100' by default
   688  @return ExtensionActiveCallsResponse
   689  */
   690  
   691  type ListExtensionActiveCallsOpts struct {
   692  	Direction optional.Interface
   693  	Type_     optional.Interface
   694  	Page      optional.Int32
   695  	PerPage   optional.Int32
   696  }
   697  
   698  func (a *CallLogApiService) ListExtensionActiveCalls(ctx context.Context, accountId string, extensionId string, localVarOptionals *ListExtensionActiveCallsOpts) (ExtensionActiveCallsResponse, *http.Response, error) {
   699  	var (
   700  		localVarHttpMethod   = strings.ToUpper("Get")
   701  		localVarPostBody     interface{}
   702  		localVarFormFileName string
   703  		localVarFileName     string
   704  		localVarFileBytes    []byte
   705  		localVarReturnValue  ExtensionActiveCallsResponse
   706  	)
   707  
   708  	// create path and map variables
   709  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/active-calls"
   710  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   711  	localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1)
   712  
   713  	localVarHeaderParams := make(map[string]string)
   714  	localVarQueryParams := url.Values{}
   715  	localVarFormParams := url.Values{}
   716  
   717  	if localVarOptionals != nil && localVarOptionals.Direction.IsSet() {
   718  		localVarQueryParams.Add("direction", parameterToString(localVarOptionals.Direction.Value(), "multi"))
   719  	}
   720  	if localVarOptionals != nil && localVarOptionals.Type_.IsSet() {
   721  		localVarQueryParams.Add("type", parameterToString(localVarOptionals.Type_.Value(), "multi"))
   722  	}
   723  	if localVarOptionals != nil && localVarOptionals.Page.IsSet() {
   724  		localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), ""))
   725  	}
   726  	if localVarOptionals != nil && localVarOptionals.PerPage.IsSet() {
   727  		localVarQueryParams.Add("perPage", parameterToString(localVarOptionals.PerPage.Value(), ""))
   728  	}
   729  	// to determine the Content-Type header
   730  	localVarHttpContentTypes := []string{}
   731  
   732  	// set Content-Type header
   733  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   734  	if localVarHttpContentType != "" {
   735  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   736  	}
   737  
   738  	// to determine the Accept header
   739  	localVarHttpHeaderAccepts := []string{"application/json"}
   740  
   741  	// set Accept header
   742  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   743  	if localVarHttpHeaderAccept != "" {
   744  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   745  	}
   746  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   747  	if err != nil {
   748  		return localVarReturnValue, nil, err
   749  	}
   750  
   751  	localVarHttpResponse, err := a.client.callAPI(r)
   752  	if err != nil || localVarHttpResponse == nil {
   753  		return localVarReturnValue, localVarHttpResponse, err
   754  	}
   755  
   756  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   757  	localVarHttpResponse.Body.Close()
   758  	if err != nil {
   759  		return localVarReturnValue, localVarHttpResponse, err
   760  	}
   761  
   762  	if localVarHttpResponse.StatusCode >= 300 {
   763  		newErr := GenericOpenAPIError{
   764  			body:  localVarBody,
   765  			error: localVarHttpResponse.Status,
   766  		}
   767  		if localVarHttpResponse.StatusCode == 0 {
   768  			var v ExtensionActiveCallsResponse
   769  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   770  			if err != nil {
   771  				newErr.error = err.Error()
   772  				return localVarReturnValue, localVarHttpResponse, newErr
   773  			}
   774  			newErr.model = v
   775  			return localVarReturnValue, localVarHttpResponse, newErr
   776  		}
   777  		return localVarReturnValue, localVarHttpResponse, newErr
   778  	}
   779  
   780  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   781  	if err != nil {
   782  		newErr := GenericOpenAPIError{
   783  			body:  localVarBody,
   784  			error: err.Error(),
   785  		}
   786  		return localVarReturnValue, localVarHttpResponse, newErr
   787  	}
   788  
   789  	return localVarReturnValue, localVarHttpResponse, nil
   790  }
   791  
   792  /*
   793  CallLogApiService Get Call Log Records by Filter
   794  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.3 (Release 5.11)&lt;/p&gt;&lt;p&gt;Returns call log records filtered by the specified parameters.&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;ReadCallLog&lt;/td&gt;&lt;td&gt;Viewing user call logs&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;Usage Plan Group&lt;/h4&gt;&lt;p&gt;Heavy&lt;/p&gt;
   795   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   796   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
   797   * @param optional nil or *LoadAccountCallLogOpts - Optional Parameters:
   798   * @param "ExtensionNumber" (optional.String) -  Extension number of a user. If specified, returns call log for a particular extension only. Cannot be specified together with the phoneNumber filter
   799   * @param "PhoneNumber" (optional.String) -  Phone number of a caller/call recipient. If specified, returns all calls (both incoming and outcoming) with the mentioned phone number. Cannot be specified together with the extensionNumber filter
   800   * @param "Direction" (optional.Interface of []string) -  The direction for the result records. It is allowed to specify more than one direction. If not specified, both inbound and outbound records are returned. Multiple values are accepted
   801   * @param "Type_" (optional.Interface of []string) -  Call type of a record. It is allowed to specify more than one type. If not specified, all call types are returned. Multiple values are accepted
   802   * @param "View" (optional.Interface of []string) -  The default value is 'Simple' for both account and extension call log
   803   * @param "WithRecording" (optional.Bool) -  'True' if only recorded calls have to be returned
   804   * @param "DateFrom" (optional.Time) -  The start datetime for resulting records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is dateTo minus 24 hours
   805   * @param "DateTo" (optional.Time) -  The end datetime for resulting records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is current time
   806   * @param "Page" (optional.Int32) -  Indicates the page number to retrieve. Only positive number values are allowed. The default value is '1'
   807   * @param "PerPage" (optional.Int32) -  Indicates the page size (number of items). If not specified, the value is '100' by default.
   808   * @param "SessionId" (optional.String) -
   809  @return AccountCallLogResponse
   810  */
   811  
   812  type LoadAccountCallLogOpts struct {
   813  	ExtensionNumber optional.String
   814  	PhoneNumber     optional.String
   815  	Direction       optional.Interface
   816  	Type_           optional.Interface
   817  	View            optional.Interface
   818  	WithRecording   optional.Bool
   819  	DateFrom        optional.Time
   820  	DateTo          optional.Time
   821  	Page            optional.Int32
   822  	PerPage         optional.Int32
   823  	SessionId       optional.String
   824  }
   825  
   826  func (a *CallLogApiService) LoadAccountCallLog(ctx context.Context, accountId string, localVarOptionals *LoadAccountCallLogOpts) (AccountCallLogResponse, *http.Response, error) {
   827  	var (
   828  		localVarHttpMethod   = strings.ToUpper("Get")
   829  		localVarPostBody     interface{}
   830  		localVarFormFileName string
   831  		localVarFileName     string
   832  		localVarFileBytes    []byte
   833  		localVarReturnValue  AccountCallLogResponse
   834  	)
   835  
   836  	// create path and map variables
   837  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/call-log"
   838  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   839  
   840  	localVarHeaderParams := make(map[string]string)
   841  	localVarQueryParams := url.Values{}
   842  	localVarFormParams := url.Values{}
   843  
   844  	if localVarOptionals != nil && localVarOptionals.ExtensionNumber.IsSet() {
   845  		localVarQueryParams.Add("extensionNumber", parameterToString(localVarOptionals.ExtensionNumber.Value(), ""))
   846  	}
   847  	if localVarOptionals != nil && localVarOptionals.PhoneNumber.IsSet() {
   848  		localVarQueryParams.Add("phoneNumber", parameterToString(localVarOptionals.PhoneNumber.Value(), ""))
   849  	}
   850  	if localVarOptionals != nil && localVarOptionals.Direction.IsSet() {
   851  		localVarQueryParams.Add("direction", parameterToString(localVarOptionals.Direction.Value(), "multi"))
   852  	}
   853  	if localVarOptionals != nil && localVarOptionals.Type_.IsSet() {
   854  		localVarQueryParams.Add("type", parameterToString(localVarOptionals.Type_.Value(), "multi"))
   855  	}
   856  	if localVarOptionals != nil && localVarOptionals.View.IsSet() {
   857  		localVarQueryParams.Add("view", parameterToString(localVarOptionals.View.Value(), "multi"))
   858  	}
   859  	if localVarOptionals != nil && localVarOptionals.WithRecording.IsSet() {
   860  		localVarQueryParams.Add("withRecording", parameterToString(localVarOptionals.WithRecording.Value(), ""))
   861  	}
   862  	if localVarOptionals != nil && localVarOptionals.DateFrom.IsSet() {
   863  		localVarQueryParams.Add("dateFrom", parameterToString(localVarOptionals.DateFrom.Value(), ""))
   864  	}
   865  	if localVarOptionals != nil && localVarOptionals.DateTo.IsSet() {
   866  		localVarQueryParams.Add("dateTo", parameterToString(localVarOptionals.DateTo.Value(), ""))
   867  	}
   868  	if localVarOptionals != nil && localVarOptionals.Page.IsSet() {
   869  		localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), ""))
   870  	}
   871  	if localVarOptionals != nil && localVarOptionals.PerPage.IsSet() {
   872  		localVarQueryParams.Add("perPage", parameterToString(localVarOptionals.PerPage.Value(), ""))
   873  	}
   874  	if localVarOptionals != nil && localVarOptionals.SessionId.IsSet() {
   875  		localVarQueryParams.Add("sessionId", parameterToString(localVarOptionals.SessionId.Value(), ""))
   876  	}
   877  	// to determine the Content-Type header
   878  	localVarHttpContentTypes := []string{}
   879  
   880  	// set Content-Type header
   881  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   882  	if localVarHttpContentType != "" {
   883  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   884  	}
   885  
   886  	// to determine the Accept header
   887  	localVarHttpHeaderAccepts := []string{"application/json"}
   888  
   889  	// set Accept header
   890  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   891  	if localVarHttpHeaderAccept != "" {
   892  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   893  	}
   894  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   895  	if err != nil {
   896  		return localVarReturnValue, nil, err
   897  	}
   898  
   899  	localVarHttpResponse, err := a.client.callAPI(r)
   900  	if err != nil || localVarHttpResponse == nil {
   901  		return localVarReturnValue, localVarHttpResponse, err
   902  	}
   903  
   904  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   905  	localVarHttpResponse.Body.Close()
   906  	if err != nil {
   907  		return localVarReturnValue, localVarHttpResponse, err
   908  	}
   909  
   910  	if localVarHttpResponse.StatusCode >= 300 {
   911  		newErr := GenericOpenAPIError{
   912  			body:  localVarBody,
   913  			error: localVarHttpResponse.Status,
   914  		}
   915  		if localVarHttpResponse.StatusCode == 0 {
   916  			var v AccountCallLogResponse
   917  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   918  			if err != nil {
   919  				newErr.error = err.Error()
   920  				return localVarReturnValue, localVarHttpResponse, newErr
   921  			}
   922  			newErr.model = v
   923  			return localVarReturnValue, localVarHttpResponse, newErr
   924  		}
   925  		return localVarReturnValue, localVarHttpResponse, newErr
   926  	}
   927  
   928  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   929  	if err != nil {
   930  		newErr := GenericOpenAPIError{
   931  			body:  localVarBody,
   932  			error: err.Error(),
   933  		}
   934  		return localVarReturnValue, localVarHttpResponse, newErr
   935  	}
   936  
   937  	return localVarReturnValue, localVarHttpResponse, nil
   938  }
   939  
   940  /*
   941  CallLogApiService Get Account Call Log Record(s) by ID
   942  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.3 (Release 5.11)&lt;/p&gt;&lt;p&gt;Returns individual call log record(s) by ID(s). Batch request is supported, see Batch Requests for details.&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;ReadCallLog&lt;/td&gt;&lt;td&gt;Viewing user call logs&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;Usage Plan Group&lt;/h4&gt;&lt;p&gt;Heavy&lt;/p&gt;
   943   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   944   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
   945   * @param callRecordId Internal identifier of a call log record
   946  @return GetAccountCallLogRecordResponse
   947  */
   948  func (a *CallLogApiService) LoadAccountCallLogRecord(ctx context.Context, accountId string, callRecordId int32) (GetAccountCallLogRecordResponse, *http.Response, error) {
   949  	var (
   950  		localVarHttpMethod   = strings.ToUpper("Get")
   951  		localVarPostBody     interface{}
   952  		localVarFormFileName string
   953  		localVarFileName     string
   954  		localVarFileBytes    []byte
   955  		localVarReturnValue  GetAccountCallLogRecordResponse
   956  	)
   957  
   958  	// create path and map variables
   959  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/call-log/{callRecordId}"
   960  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   961  	localVarPath = strings.Replace(localVarPath, "{"+"callRecordId"+"}", fmt.Sprintf("%v", callRecordId), -1)
   962  
   963  	localVarHeaderParams := make(map[string]string)
   964  	localVarQueryParams := url.Values{}
   965  	localVarFormParams := url.Values{}
   966  
   967  	// to determine the Content-Type header
   968  	localVarHttpContentTypes := []string{}
   969  
   970  	// set Content-Type header
   971  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   972  	if localVarHttpContentType != "" {
   973  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   974  	}
   975  
   976  	// to determine the Accept header
   977  	localVarHttpHeaderAccepts := []string{"application/json"}
   978  
   979  	// set Accept header
   980  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   981  	if localVarHttpHeaderAccept != "" {
   982  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   983  	}
   984  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   985  	if err != nil {
   986  		return localVarReturnValue, nil, err
   987  	}
   988  
   989  	localVarHttpResponse, err := a.client.callAPI(r)
   990  	if err != nil || localVarHttpResponse == nil {
   991  		return localVarReturnValue, localVarHttpResponse, err
   992  	}
   993  
   994  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   995  	localVarHttpResponse.Body.Close()
   996  	if err != nil {
   997  		return localVarReturnValue, localVarHttpResponse, err
   998  	}
   999  
  1000  	if localVarHttpResponse.StatusCode >= 300 {
  1001  		newErr := GenericOpenAPIError{
  1002  			body:  localVarBody,
  1003  			error: localVarHttpResponse.Status,
  1004  		}
  1005  		if localVarHttpResponse.StatusCode == 0 {
  1006  			var v GetAccountCallLogRecordResponse
  1007  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1008  			if err != nil {
  1009  				newErr.error = err.Error()
  1010  				return localVarReturnValue, localVarHttpResponse, newErr
  1011  			}
  1012  			newErr.model = v
  1013  			return localVarReturnValue, localVarHttpResponse, newErr
  1014  		}
  1015  		return localVarReturnValue, localVarHttpResponse, newErr
  1016  	}
  1017  
  1018  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1019  	if err != nil {
  1020  		newErr := GenericOpenAPIError{
  1021  			body:  localVarBody,
  1022  			error: err.Error(),
  1023  		}
  1024  		return localVarReturnValue, localVarHttpResponse, newErr
  1025  	}
  1026  
  1027  	return localVarReturnValue, localVarHttpResponse, nil
  1028  }
  1029  
  1030  /*
  1031  CallLogApiService Get Call Log Records by Filter
  1032  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.3 (Release 5.11)&lt;/p&gt;&lt;p&gt;Returns call log records filtered by the specified parameters.&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;ReadCallLog&lt;/td&gt;&lt;td&gt;Viewing user call logs&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;Usage Plan Group&lt;/h4&gt;&lt;p&gt;Heavy&lt;/p&gt;
  1033   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  1034   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
  1035   * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session
  1036   * @param optional nil or *LoadExtensionCallLogOpts - Optional Parameters:
  1037   * @param "ExtensionNumber" (optional.String) -  Extension number of a user. If specified, returns call log for a particular extension only. Cannot be specified together with the phoneNumber filter
  1038   * @param "ShowBlocked" (optional.Bool) -  If 'True' then calls from/to blocked numbers are returned. The default value is 'True'
  1039   * @param "PhoneNumber" (optional.String) -  Phone number of a caller/call recipient. If specified, returns all calls (both incoming and outcoming) with the mentioned phone number. Cannot be specified together with the extensionNumber filter
  1040   * @param "Direction" (optional.Interface of []string) -  The direction for the result records. It is allowed to specify more than one direction. If not specified, both inbound and outbound records are returned. Multiple values are accepted
  1041   * @param "SessionId" (optional.String) -
  1042   * @param "Type_" (optional.Interface of []string) -  Call type of a record. It is allowed to specify more than one type. If not specified, all call types are returned. Multiple values are accepted
  1043   * @param "Transport" (optional.Interface of []string) -  Call transport type. 'PSTN' specifies that a call leg is initiated from the PSTN network provider; 'VoIP' - from an RC phone. By default this filter is disabled
  1044   * @param "View" (optional.Interface of []string) -  The default value is 'Simple' for both account and extension call log
  1045   * @param "WithRecording" (optional.Bool) -  'True' if only recorded calls have to be returned
  1046   * @param "DateTo" (optional.Time) -  The end datetime for resulting records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is current time
  1047   * @param "DateFrom" (optional.Time) -  The start datetime for resulting records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is dateTo minus 24 hours
  1048   * @param "Page" (optional.Int32) -  Indicates the page number to retrieve. Only positive number values are allowed. Default value is '1'
  1049   * @param "PerPage" (optional.Int32) -  Indicates the page size (number of items). If not specified, the value is '100' by default
  1050  @return ExtensionCallLogResponse
  1051  */
  1052  
  1053  type LoadExtensionCallLogOpts struct {
  1054  	ExtensionNumber optional.String
  1055  	ShowBlocked     optional.Bool
  1056  	PhoneNumber     optional.String
  1057  	Direction       optional.Interface
  1058  	SessionId       optional.String
  1059  	Type_           optional.Interface
  1060  	Transport       optional.Interface
  1061  	View            optional.Interface
  1062  	WithRecording   optional.Bool
  1063  	DateTo          optional.Time
  1064  	DateFrom        optional.Time
  1065  	Page            optional.Int32
  1066  	PerPage         optional.Int32
  1067  }
  1068  
  1069  func (a *CallLogApiService) LoadExtensionCallLog(ctx context.Context, accountId string, extensionId string, localVarOptionals *LoadExtensionCallLogOpts) (ExtensionCallLogResponse, *http.Response, error) {
  1070  	var (
  1071  		localVarHttpMethod   = strings.ToUpper("Get")
  1072  		localVarPostBody     interface{}
  1073  		localVarFormFileName string
  1074  		localVarFileName     string
  1075  		localVarFileBytes    []byte
  1076  		localVarReturnValue  ExtensionCallLogResponse
  1077  	)
  1078  
  1079  	// create path and map variables
  1080  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/call-log"
  1081  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
  1082  	localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1)
  1083  
  1084  	localVarHeaderParams := make(map[string]string)
  1085  	localVarQueryParams := url.Values{}
  1086  	localVarFormParams := url.Values{}
  1087  
  1088  	if localVarOptionals != nil && localVarOptionals.ExtensionNumber.IsSet() {
  1089  		localVarQueryParams.Add("extensionNumber", parameterToString(localVarOptionals.ExtensionNumber.Value(), ""))
  1090  	}
  1091  	if localVarOptionals != nil && localVarOptionals.ShowBlocked.IsSet() {
  1092  		localVarQueryParams.Add("showBlocked", parameterToString(localVarOptionals.ShowBlocked.Value(), ""))
  1093  	}
  1094  	if localVarOptionals != nil && localVarOptionals.PhoneNumber.IsSet() {
  1095  		localVarQueryParams.Add("phoneNumber", parameterToString(localVarOptionals.PhoneNumber.Value(), ""))
  1096  	}
  1097  	if localVarOptionals != nil && localVarOptionals.Direction.IsSet() {
  1098  		localVarQueryParams.Add("direction", parameterToString(localVarOptionals.Direction.Value(), "multi"))
  1099  	}
  1100  	if localVarOptionals != nil && localVarOptionals.SessionId.IsSet() {
  1101  		localVarQueryParams.Add("sessionId", parameterToString(localVarOptionals.SessionId.Value(), ""))
  1102  	}
  1103  	if localVarOptionals != nil && localVarOptionals.Type_.IsSet() {
  1104  		localVarQueryParams.Add("type", parameterToString(localVarOptionals.Type_.Value(), "multi"))
  1105  	}
  1106  	if localVarOptionals != nil && localVarOptionals.Transport.IsSet() {
  1107  		localVarQueryParams.Add("transport", parameterToString(localVarOptionals.Transport.Value(), "multi"))
  1108  	}
  1109  	if localVarOptionals != nil && localVarOptionals.View.IsSet() {
  1110  		localVarQueryParams.Add("view", parameterToString(localVarOptionals.View.Value(), "multi"))
  1111  	}
  1112  	if localVarOptionals != nil && localVarOptionals.WithRecording.IsSet() {
  1113  		localVarQueryParams.Add("withRecording", parameterToString(localVarOptionals.WithRecording.Value(), ""))
  1114  	}
  1115  	if localVarOptionals != nil && localVarOptionals.DateTo.IsSet() {
  1116  		localVarQueryParams.Add("dateTo", parameterToString(localVarOptionals.DateTo.Value(), ""))
  1117  	}
  1118  	if localVarOptionals != nil && localVarOptionals.DateFrom.IsSet() {
  1119  		localVarQueryParams.Add("dateFrom", parameterToString(localVarOptionals.DateFrom.Value(), ""))
  1120  	}
  1121  	if localVarOptionals != nil && localVarOptionals.Page.IsSet() {
  1122  		localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), ""))
  1123  	}
  1124  	if localVarOptionals != nil && localVarOptionals.PerPage.IsSet() {
  1125  		localVarQueryParams.Add("perPage", parameterToString(localVarOptionals.PerPage.Value(), ""))
  1126  	}
  1127  	// to determine the Content-Type header
  1128  	localVarHttpContentTypes := []string{}
  1129  
  1130  	// set Content-Type header
  1131  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
  1132  	if localVarHttpContentType != "" {
  1133  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
  1134  	}
  1135  
  1136  	// to determine the Accept header
  1137  	localVarHttpHeaderAccepts := []string{"application/json"}
  1138  
  1139  	// set Accept header
  1140  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
  1141  	if localVarHttpHeaderAccept != "" {
  1142  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
  1143  	}
  1144  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
  1145  	if err != nil {
  1146  		return localVarReturnValue, nil, err
  1147  	}
  1148  
  1149  	localVarHttpResponse, err := a.client.callAPI(r)
  1150  	if err != nil || localVarHttpResponse == nil {
  1151  		return localVarReturnValue, localVarHttpResponse, err
  1152  	}
  1153  
  1154  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
  1155  	localVarHttpResponse.Body.Close()
  1156  	if err != nil {
  1157  		return localVarReturnValue, localVarHttpResponse, err
  1158  	}
  1159  
  1160  	if localVarHttpResponse.StatusCode >= 300 {
  1161  		newErr := GenericOpenAPIError{
  1162  			body:  localVarBody,
  1163  			error: localVarHttpResponse.Status,
  1164  		}
  1165  		if localVarHttpResponse.StatusCode == 0 {
  1166  			var v ExtensionCallLogResponse
  1167  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1168  			if err != nil {
  1169  				newErr.error = err.Error()
  1170  				return localVarReturnValue, localVarHttpResponse, newErr
  1171  			}
  1172  			newErr.model = v
  1173  			return localVarReturnValue, localVarHttpResponse, newErr
  1174  		}
  1175  		return localVarReturnValue, localVarHttpResponse, newErr
  1176  	}
  1177  
  1178  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1179  	if err != nil {
  1180  		newErr := GenericOpenAPIError{
  1181  			body:  localVarBody,
  1182  			error: err.Error(),
  1183  		}
  1184  		return localVarReturnValue, localVarHttpResponse, newErr
  1185  	}
  1186  
  1187  	return localVarReturnValue, localVarHttpResponse, nil
  1188  }
  1189  
  1190  /*
  1191  CallLogApiService Call Log Synchronization
  1192   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  1193   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
  1194   * @param optional nil or *SyncAccountCallLogOpts - Optional Parameters:
  1195   * @param "SyncType" (optional.Interface of []string) -  Type of synchronization. 'FSync' is a default value
  1196   * @param "SyncToken" (optional.String) -  Value of syncToken property of last sync request response
  1197   * @param "DateFrom" (optional.String) -  The start datetime for resulting records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is the current moment
  1198   * @param "RecordCount" (optional.Int32) -  ForT?FSync the parameter is mandatory, it limits the number of records to be returned in response. For ISync it specifies with how many records to extend sync Frame to the past, the maximum number of records is 250
  1199   * @param "StatusGroup" (optional.Interface of []string) -  Type of calls to be returned. The default value is 'All'
  1200  */
  1201  
  1202  type SyncAccountCallLogOpts struct {
  1203  	SyncType    optional.Interface
  1204  	SyncToken   optional.String
  1205  	DateFrom    optional.String
  1206  	RecordCount optional.Int32
  1207  	StatusGroup optional.Interface
  1208  }
  1209  
  1210  func (a *CallLogApiService) SyncAccountCallLog(ctx context.Context, accountId string, localVarOptionals *SyncAccountCallLogOpts) (*http.Response, error) {
  1211  	var (
  1212  		localVarHttpMethod   = strings.ToUpper("Get")
  1213  		localVarPostBody     interface{}
  1214  		localVarFormFileName string
  1215  		localVarFileName     string
  1216  		localVarFileBytes    []byte
  1217  	)
  1218  
  1219  	// create path and map variables
  1220  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/call-log-sync"
  1221  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
  1222  
  1223  	localVarHeaderParams := make(map[string]string)
  1224  	localVarQueryParams := url.Values{}
  1225  	localVarFormParams := url.Values{}
  1226  
  1227  	if localVarOptionals != nil && localVarOptionals.SyncType.IsSet() {
  1228  		localVarQueryParams.Add("syncType", parameterToString(localVarOptionals.SyncType.Value(), "multi"))
  1229  	}
  1230  	if localVarOptionals != nil && localVarOptionals.SyncToken.IsSet() {
  1231  		localVarQueryParams.Add("syncToken", parameterToString(localVarOptionals.SyncToken.Value(), ""))
  1232  	}
  1233  	if localVarOptionals != nil && localVarOptionals.DateFrom.IsSet() {
  1234  		localVarQueryParams.Add("dateFrom", parameterToString(localVarOptionals.DateFrom.Value(), ""))
  1235  	}
  1236  	if localVarOptionals != nil && localVarOptionals.RecordCount.IsSet() {
  1237  		localVarQueryParams.Add("recordCount", parameterToString(localVarOptionals.RecordCount.Value(), ""))
  1238  	}
  1239  	if localVarOptionals != nil && localVarOptionals.StatusGroup.IsSet() {
  1240  		localVarQueryParams.Add("statusGroup", parameterToString(localVarOptionals.StatusGroup.Value(), "multi"))
  1241  	}
  1242  	// to determine the Content-Type header
  1243  	localVarHttpContentTypes := []string{}
  1244  
  1245  	// set Content-Type header
  1246  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
  1247  	if localVarHttpContentType != "" {
  1248  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
  1249  	}
  1250  
  1251  	// to determine the Accept header
  1252  	localVarHttpHeaderAccepts := []string{}
  1253  
  1254  	// set Accept header
  1255  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
  1256  	if localVarHttpHeaderAccept != "" {
  1257  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
  1258  	}
  1259  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
  1260  	if err != nil {
  1261  		return nil, err
  1262  	}
  1263  
  1264  	localVarHttpResponse, err := a.client.callAPI(r)
  1265  	if err != nil || localVarHttpResponse == nil {
  1266  		return localVarHttpResponse, err
  1267  	}
  1268  
  1269  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
  1270  	localVarHttpResponse.Body.Close()
  1271  	if err != nil {
  1272  		return localVarHttpResponse, err
  1273  	}
  1274  
  1275  	if localVarHttpResponse.StatusCode >= 300 {
  1276  		newErr := GenericOpenAPIError{
  1277  			body:  localVarBody,
  1278  			error: localVarHttpResponse.Status,
  1279  		}
  1280  		return localVarHttpResponse, newErr
  1281  	}
  1282  
  1283  	return localVarHttpResponse, nil
  1284  }
  1285  
  1286  /*
  1287  CallLogApiService Call Log Synchronization
  1288  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;&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;ReadCallLog&lt;/td&gt;&lt;td&gt;Viewing user call logs&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;Usage Plan Group&lt;/h4&gt;&lt;p&gt;Heavy&lt;/p&gt;
  1289   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  1290   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
  1291   * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session
  1292   * @param optional nil or *SyncExtensionCallLogOpts - Optional Parameters:
  1293   * @param "SyncType" (optional.Interface of []string) -  Type of synchronization. 'FSync' is a default value
  1294   * @param "SyncToken" (optional.String) -  Value of syncToken property of last sync request response
  1295   * @param "DateFrom" (optional.String) -  The start datetime for resulting records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is the current moment
  1296   * @param "RecordCount" (optional.Int32) -  ForT?FSync the parameter is mandatory, it limits the number of records to be returned in response. For ISync it specifies with how many records to extend sync Frame to the past, the maximum number of records is 250
  1297   * @param "StatusGroup" (optional.Interface of []string) -  Type of calls to be returned. The default value is 'All'
  1298  @return CallLogSync
  1299  */
  1300  
  1301  type SyncExtensionCallLogOpts struct {
  1302  	SyncType    optional.Interface
  1303  	SyncToken   optional.String
  1304  	DateFrom    optional.String
  1305  	RecordCount optional.Int32
  1306  	StatusGroup optional.Interface
  1307  }
  1308  
  1309  func (a *CallLogApiService) SyncExtensionCallLog(ctx context.Context, accountId string, extensionId string, localVarOptionals *SyncExtensionCallLogOpts) (CallLogSync, *http.Response, error) {
  1310  	var (
  1311  		localVarHttpMethod   = strings.ToUpper("Get")
  1312  		localVarPostBody     interface{}
  1313  		localVarFormFileName string
  1314  		localVarFileName     string
  1315  		localVarFileBytes    []byte
  1316  		localVarReturnValue  CallLogSync
  1317  	)
  1318  
  1319  	// create path and map variables
  1320  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/call-log-sync"
  1321  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
  1322  	localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1)
  1323  
  1324  	localVarHeaderParams := make(map[string]string)
  1325  	localVarQueryParams := url.Values{}
  1326  	localVarFormParams := url.Values{}
  1327  
  1328  	if localVarOptionals != nil && localVarOptionals.SyncType.IsSet() {
  1329  		localVarQueryParams.Add("syncType", parameterToString(localVarOptionals.SyncType.Value(), "multi"))
  1330  	}
  1331  	if localVarOptionals != nil && localVarOptionals.SyncToken.IsSet() {
  1332  		localVarQueryParams.Add("syncToken", parameterToString(localVarOptionals.SyncToken.Value(), ""))
  1333  	}
  1334  	if localVarOptionals != nil && localVarOptionals.DateFrom.IsSet() {
  1335  		localVarQueryParams.Add("dateFrom", parameterToString(localVarOptionals.DateFrom.Value(), ""))
  1336  	}
  1337  	if localVarOptionals != nil && localVarOptionals.RecordCount.IsSet() {
  1338  		localVarQueryParams.Add("recordCount", parameterToString(localVarOptionals.RecordCount.Value(), ""))
  1339  	}
  1340  	if localVarOptionals != nil && localVarOptionals.StatusGroup.IsSet() {
  1341  		localVarQueryParams.Add("statusGroup", parameterToString(localVarOptionals.StatusGroup.Value(), "multi"))
  1342  	}
  1343  	// to determine the Content-Type header
  1344  	localVarHttpContentTypes := []string{}
  1345  
  1346  	// set Content-Type header
  1347  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
  1348  	if localVarHttpContentType != "" {
  1349  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
  1350  	}
  1351  
  1352  	// to determine the Accept header
  1353  	localVarHttpHeaderAccepts := []string{"application/json"}
  1354  
  1355  	// set Accept header
  1356  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
  1357  	if localVarHttpHeaderAccept != "" {
  1358  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
  1359  	}
  1360  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
  1361  	if err != nil {
  1362  		return localVarReturnValue, nil, err
  1363  	}
  1364  
  1365  	localVarHttpResponse, err := a.client.callAPI(r)
  1366  	if err != nil || localVarHttpResponse == nil {
  1367  		return localVarReturnValue, localVarHttpResponse, err
  1368  	}
  1369  
  1370  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
  1371  	localVarHttpResponse.Body.Close()
  1372  	if err != nil {
  1373  		return localVarReturnValue, localVarHttpResponse, err
  1374  	}
  1375  
  1376  	if localVarHttpResponse.StatusCode >= 300 {
  1377  		newErr := GenericOpenAPIError{
  1378  			body:  localVarBody,
  1379  			error: localVarHttpResponse.Status,
  1380  		}
  1381  		if localVarHttpResponse.StatusCode == 0 {
  1382  			var v CallLogSync
  1383  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1384  			if err != nil {
  1385  				newErr.error = err.Error()
  1386  				return localVarReturnValue, localVarHttpResponse, newErr
  1387  			}
  1388  			newErr.model = v
  1389  			return localVarReturnValue, localVarHttpResponse, newErr
  1390  		}
  1391  		return localVarReturnValue, localVarHttpResponse, newErr
  1392  	}
  1393  
  1394  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
  1395  	if err != nil {
  1396  		newErr := GenericOpenAPIError{
  1397  			body:  localVarBody,
  1398  			error: err.Error(),
  1399  		}
  1400  		return localVarReturnValue, localVarHttpResponse, newErr
  1401  	}
  1402  
  1403  	return localVarReturnValue, localVarHttpResponse, nil
  1404  }