/**
 * Service Limits APIs
 * APIs that interact with the resource limits of a specific resource type.
 * OpenAPI spec version: 20181025
 *
 *
 * NOTE: This class is auto generated by OracleSDKGenerator.
 * Do not edit the class manually.
 *
 * Copyright (c) 2020, 2022, Oracle and/or its affiliates.  All rights reserved.
 * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
 */ import common = require ( "oci-common" ) ; import * as requests from "./request" ; import * as model from "./model" ; import * as responses from "./response" ; import { paginateRecords , paginateResponses } from "oci-common" ; import { QuotasWaiter } from "./quotas-waiter" ; import { composeResponse , composeRequest , GenericRetrier } from "oci-common" ; export enum LimitsApiKeys { } /**
 * This service client uses  common . CircuitBreaker . DefaultConfiguration for all the operations by default if no circuit breaker configuration is defined by the user.
  export class LimitsClient { protected static serviceEndpointTemplate = "https://limits.{region}.oci.{secondLevelDomain}" ; protected "_endpoint" : string = "" ; protected "_defaultHeaders" : any = { } ; protected "_clientConfiguration" : common . ClientConfiguration ; protected _circuitBreaker = null ; protected _httpClient : common . HttpClient ; constructor ( params , clientConfiguration ? ) { const requestSigner = params . authenticationDetailsProvider ? new common . DefaultRequestSigner ( params . authenticationDetailsProvider ) : null ; if ( clientConfiguration ) { this . _clientConfiguration = clientConfiguration ; this . _circuitBreaker = clientConfiguration . circuitBreaker ? clientConfiguration . circuitBreaker ! . circuit : null ; } const specCircuitBreakerEnabled = true ; if ( ! this . _circuitBreaker && common . utils . isCircuitBreakerSystemEnabled ( clientConfiguration ! ) && ( specCircuitBreakerEnabled || common . CircuitBreaker . DefaultCircuitBreakerOverriden ) ) { this . _circuitBreaker = new common . CircuitBreaker ( ) . circuit ; } this . _httpClient = params . httpClient || new common . FetchHttpClient ( requestSigner , this . _circuitBreaker ) ; if ( params . authenticationDetailsProvider && common . isRegionProvider ( params . authenticationDetailsProvider ) ) { const provider = params . authenticationDetailsProvider ; if ( provider . getRegion ( ) ) { this . region = provider . getRegion ( ) ; } } } /**
     * Get the endpoint that is being used to call (ex, https://www.example.com).
     */ public get endpoint ( ) { return this . _endpoint ; } param endpoint public set endpoint ( endpoint ) { this . _endpoint = endpoint ; if ( this . logger ) this . logger . info ( `LimitsClient endpoint set to ${ this . _endpoint }` ) ; } public get logger ( ) { return common . LOG . logger ; } /**
     * Sets the region to call (ex, Region.US_PHOENIX_1).
     * Note, this will call  {@link #endpoint(String) endpoint} after resolving the endpoint.
     *  param region public set region ( region ) { this . endpoint = common . EndpointBuilder . createEndpointFromRegion ( LimitsClient . serviceEndpointTemplate , region ) ; } /**
     * Sets the regionId to call (ex, 'us-phoenix-1').
     *
     * Note, this will first try to map the region ID to a known Region and call  {@link #region(Region) region} .
     * If no known Region could be determined, it will create an endpoint assuming its in default Realm OC1
     * and then call  {@link #endpoint(String) endpoint} .
     *  param regionId public set regionId ( regionId ) { this . endpoint = common . EndpointBuilder . createEndpointFromRegionId ( LimitsClient . serviceEndpointTemplate , regionId ) ; } param GetResourceAvailabilityRequest return throws example Click  https to see how to use GetResourceAvailability API.
      public async getResourceAvailability ( getResourceAvailabilityRequest ) { if ( this . logger ) this . logger . debug ( "Calling operation LimitsClient#getResourceAvailability." ) ; const pathParams = { "{serviceName}" : getResourceAvailabilityRequest . serviceName , "{limitName}" : getResourceAvailabilityRequest . limitName } ; const queryParams = { "compartmentId" : getResourceAvailabilityRequest . compartmentId , "availabilityDomain" : getResourceAvailabilityRequest . availabilityDomain } ; let headerParams = { "Content-Type" : common . Constants . APPLICATION_JSON , "opc-request-id" : getResourceAvailabilityRequest . opcRequestId } ; const specRetryConfiguration = common . NoRetryConfigurationDetails ; const retrier = GenericRetrier . createPreferredRetrier ( this . _clientConfiguration ? this . _clientConfiguration . retryConfiguration : undefined , getResourceAvailabilityRequest . retryConfiguration , specRetryConfiguration ) ; if ( this . logger ) retrier . logger = this . logger ; const request = await composeRequest ( { baseEndpoint : this . _endpoint , defaultHeaders : this . _defaultHeaders , path : "/20190729/services/{serviceName}/limits/{limitName}/resourceAvailability" , method : "GET" , pathParams : pathParams , headerParams : headerParams , queryParams : queryParams } ) ; try { const response = await retrier . makeServiceCall ( this . _httpClient , request ) ; const sdkResponse = composeResponse ( { responseObject : < responses . GetResourceAvailabilityResponse > { } , body : await response . json ( ) , bodyKey : "resourceAvailability" , bodyModel : model . ResourceAvailability , type : "model.ResourceAvailability" , responseHeaders : [ { value : response . headers . get ( "opc-request-id" ) , key : "opcRequestId" , dataType : "string" } ] } ) ; return sdkResponse ; } catch ( err ) { throw err ; } } param ListLimitDefinitionsRequest return throws example Click  https to see how to use ListLimitDefinitions API.
      public async listLimitDefinitions ( listLimitDefinitionsRequest ) { if ( this . logger ) this . logger . debug ( "Calling operation LimitsClient#listLimitDefinitions." ) ; const pathParams = { } ; const queryParams = { "compartmentId" : listLimitDefinitionsRequest . compartmentId , "serviceName" : listLimitDefinitionsRequest . serviceName , "name" : listLimitDefinitionsRequest . name , "sortBy" : listLimitDefinitionsRequest . sortBy , "sortOrder" : listLimitDefinitionsRequest . sortOrder , "limit" : listLimitDefinitionsRequest . limit , "page" : listLimitDefinitionsRequest . page } ; let headerParams = { "Content-Type" : common . Constants . APPLICATION_JSON , "opc-request-id" : listLimitDefinitionsRequest . opcRequestId } ; const specRetryConfiguration = common . NoRetryConfigurationDetails ; const retrier = GenericRetrier . createPreferredRetrier ( this . _clientConfiguration ? this . _clientConfiguration . retryConfiguration : undefined , listLimitDefinitionsRequest . retryConfiguration , specRetryConfiguration ) ; if ( this . logger ) retrier . logger = this . logger ; const request = await composeRequest ( { baseEndpoint : this . _endpoint , defaultHeaders : this . _defaultHeaders , path : "/20190729/limitDefinitions" , method : "GET" , pathParams : pathParams , headerParams : headerParams , queryParams : queryParams } ) ; try { const response = await retrier . makeServiceCall ( this . _httpClient , request ) ; const sdkResponse = composeResponse ( { responseObject : < responses . ListLimitDefinitionsResponse > { } , body : await response . json ( ) , bodyKey : "items" , bodyModel : model . LimitDefinitionSummary , type : "Array<model.LimitDefinitionSummary>" , responseHeaders : [ { value : response . headers . get ( "opc-next-page" ) , key : "opcNextPage" , dataType : "string" } , { value : response . headers . get ( "opc-request-id" ) , key : "opcRequestId" , dataType : "string" } ] } ) ; return sdkResponse ; } catch ( err ) { throw err ; } } param request public listAllLimitDefinitions ( request ) { return paginateRecords ( request , req => this . listLimitDefinitions ( req ) ) ; } param request public listAllLimitDefinitionsResponses ( request ) { return paginateResponses ( request , req => this . listLimitDefinitions ( req ) ) ; } param request public listLimitDefinitionsRecordIterator ( request ) { return paginateRecords ( request , req => this . listLimitDefinitions ( req ) ) ; } param request public listLimitDefinitionsResponseIterator ( request ) { return paginateResponses ( request , req => this . listLimitDefinitions ( req ) ) ; } param ListLimitValuesRequest return throws example Click  https to see how to use ListLimitValues API.
      public async listLimitValues ( listLimitValuesRequest ) { if ( this . logger ) this . logger . debug ( "Calling operation LimitsClient#listLimitValues." ) ; const pathParams = { } ; const queryParams = { "compartmentId" : listLimitValuesRequest . compartmentId , "serviceName" : listLimitValuesRequest . serviceName , "scopeType" : listLimitValuesRequest . scopeType , "availabilityDomain" : listLimitValuesRequest . availabilityDomain , "name" : listLimitValuesRequest . name , "sortBy" : listLimitValuesRequest . sortBy , "sortOrder" : listLimitValuesRequest . sortOrder , "limit" : listLimitValuesRequest . limit , "page" : listLimitValuesRequest . page } ; let headerParams = { "Content-Type" : common . Constants . APPLICATION_JSON , "opc-request-id" : listLimitValuesRequest . opcRequestId } ; const specRetryConfiguration = common . NoRetryConfigurationDetails ; const retrier = GenericRetrier . createPreferredRetrier ( this . _clientConfiguration ? this . _clientConfiguration . retryConfiguration : undefined , listLimitValuesRequest . retryConfiguration , specRetryConfiguration ) ; if ( this . logger ) retrier . logger = this . logger ; const request = await composeRequest ( { baseEndpoint : this . _endpoint , defaultHeaders : this . _defaultHeaders , path : "/20190729/limitValues" , method : "GET" , pathParams : pathParams , headerParams : headerParams , queryParams : queryParams } ) ; try { const response = await retrier . makeServiceCall ( this . _httpClient , request ) ; const sdkResponse = composeResponse ( { responseObject : < responses . ListLimitValuesResponse > { } , body : await response . json ( ) , bodyKey : "items" , bodyModel : model . LimitValueSummary , type : "Array<model.LimitValueSummary>" , responseHeaders : [ { value : response . headers . get ( "opc-next-page" ) , key : "opcNextPage" , dataType : "string" } , { value : response . headers . get ( "opc-request-id" ) , key : "opcRequestId" , dataType : "string" } ] } ) ; return sdkResponse ; } catch ( err ) { throw err ; } } param request public listAllLimitValues ( request ) { return paginateRecords ( request , req => this . listLimitValues ( req ) ) ; } param request public listAllLimitValuesResponses ( request ) { return paginateResponses ( request , req => this . listLimitValues ( req ) ) ; } param request public listLimitValuesRecordIterator ( request ) { return paginateRecords ( request , req => this . listLimitValues ( req ) ) ; } param request public listLimitValuesResponseIterator ( request ) { return paginateResponses ( request , req => this . listLimitValues ( req ) ) ; } param ListServicesRequest return throws example Click  https to see how to use ListServices API.
      public async listServices ( listServicesRequest ) { if ( this . logger ) this . logger . debug ( "Calling operation LimitsClient#listServices." ) ; const pathParams = { } ; const queryParams = { "compartmentId" : listServicesRequest . compartmentId , "sortBy" : listServicesRequest . sortBy , "sortOrder" : listServicesRequest . sortOrder , "limit" : listServicesRequest . limit , "page" : listServicesRequest . page } ; let headerParams = { "Content-Type" : common . Constants . APPLICATION_JSON , "opc-request-id" : listServicesRequest . opcRequestId } ; const specRetryConfiguration = common . NoRetryConfigurationDetails ; const retrier = GenericRetrier . createPreferredRetrier ( this . _clientConfiguration ? this . _clientConfiguration . retryConfiguration : undefined , listServicesRequest . retryConfiguration , specRetryConfiguration ) ; if ( this . logger ) retrier . logger = this . logger ; const request = await composeRequest ( { baseEndpoint : this . _endpoint , defaultHeaders : this . _defaultHeaders , path : "/20190729/services" , method : "GET" , pathParams : pathParams , headerParams : headerParams , queryParams : queryParams } ) ; try { const response = await retrier . makeServiceCall ( this . _httpClient , request ) ; const sdkResponse = composeResponse ( { responseObject : < responses . ListServicesResponse > { } , body : await response . json ( ) , bodyKey : "items" , bodyModel : model . ServiceSummary , type : "Array<model.ServiceSummary>" , responseHeaders : [ { value : response . headers . get ( "opc-next-page" ) , key : "opcNextPage" , dataType : "string" } , { value : response . headers . get ( "opc-request-id" ) , key : "opcRequestId" , dataType : "string" } ] } ) ; return sdkResponse ; } catch ( err ) { throw err ; } } param request public listAllServices ( request ) { return paginateRecords ( request , req => this . listServices ( req ) ) ; } param request public listAllServicesResponses ( request ) { return paginateResponses ( request , req => this . listServices ( req ) ) ; } param request public listServicesRecordIterator ( request ) { return paginateRecords ( request , req => this . listServices ( req ) ) ; } param request public listServicesResponseIterator ( request ) { return paginateResponses ( request , req => this . listServices ( req ) ) ; } } export enum QuotasApiKeys { } /**
 * This service client uses  common . CircuitBreaker . DefaultConfiguration for all the operations by default if no circuit breaker configuration is defined by the user.
  export class QuotasClient { protected static serviceEndpointTemplate = "https://limits.{region}.oci.{secondLevelDomain}" ; protected "_endpoint" : string = "" ; protected "_defaultHeaders" : any = { } ; protected "_waiters" : QuotasWaiter ; protected "_clientConfiguration" : common . ClientConfiguration ; protected _circuitBreaker = null ; protected _httpClient : common . HttpClient ; constructor ( params , clientConfiguration ? ) { const requestSigner = params . authenticationDetailsProvider ? new common . DefaultRequestSigner ( params . authenticationDetailsProvider ) : null ; if ( clientConfiguration ) { this . _clientConfiguration = clientConfiguration ; this . _circuitBreaker = clientConfiguration . circuitBreaker ? clientConfiguration . circuitBreaker ! . circuit : null ; } const specCircuitBreakerEnabled = true ; if ( ! this . _circuitBreaker && common . utils . isCircuitBreakerSystemEnabled ( clientConfiguration ! ) && ( specCircuitBreakerEnabled || common . CircuitBreaker . DefaultCircuitBreakerOverriden ) ) { this . _circuitBreaker = new common . CircuitBreaker ( ) . circuit ; } this . _httpClient = params . httpClient || new common . FetchHttpClient ( requestSigner , this . _circuitBreaker ) ; if ( params . authenticationDetailsProvider && common . isRegionProvider ( params . authenticationDetailsProvider ) ) { const provider = params . authenticationDetailsProvider ; if ( provider . getRegion ( ) ) { this . region = provider . getRegion ( ) ; } } } /**
     * Get the endpoint that is being used to call (ex, https://www.example.com).
     */ public get endpoint ( ) { return this . _endpoint ; } param endpoint public set endpoint ( endpoint ) { this . _endpoint = endpoint ; if ( this . logger ) this . logger . info ( `QuotasClient endpoint set to ${ this . _endpoint }` ) ; } public get logger ( ) { return common . LOG . logger ; } /**
     * Sets the region to call (ex, Region.US_PHOENIX_1).
     * Note, this will call  {@link #endpoint(String) endpoint} after resolving the endpoint.
     *  param region public set region ( region ) { this . endpoint = common . EndpointBuilder . createEndpointFromRegion ( QuotasClient . serviceEndpointTemplate , region ) ; } /**
     * Sets the regionId to call (ex, 'us-phoenix-1').
     *
     * Note, this will first try to map the region ID to a known Region and call  {@link #region(Region) region} .
     * If no known Region could be determined, it will create an endpoint assuming its in default Realm OC1
     * and then call  {@link #endpoint(String) endpoint} .
     *  param regionId public set regionId ( regionId ) { this . endpoint = common . EndpointBuilder . createEndpointFromRegionId ( QuotasClient . serviceEndpointTemplate , regionId ) ; } param config return public createWaiters ( config ? ) { this . _waiters = new QuotasWaiter ( this , config ) ; return this . _waiters ; } return public getWaiters ( ) { if ( this . _waiters ) { return this . _waiters ; } throw Error ( "Waiters do not exist. Please create waiters." ) ; } param CreateQuotaRequest return throws example Click  https to see how to use CreateQuota API.
      public async createQuota ( createQuotaRequest ) { if ( this . logger ) this . logger . debug ( "Calling operation QuotasClient#createQuota." ) ; const pathParams = { } ; const queryParams = { } ; let headerParams = { "Content-Type" : common . Constants . APPLICATION_JSON , "opc-request-id" : createQuotaRequest . opcRequestId , "opc-retry-token" : createQuotaRequest . opcRetryToken } ; const specRetryConfiguration = common . NoRetryConfigurationDetails ; const retrier = GenericRetrier . createPreferredRetrier ( this . _clientConfiguration ? this . _clientConfiguration . retryConfiguration : undefined , createQuotaRequest . retryConfiguration , specRetryConfiguration ) ; if ( this . logger ) retrier . logger = this . logger ; const request = await composeRequest ( { baseEndpoint : this . _endpoint , defaultHeaders : this . _defaultHeaders , path : "/20181025/quotas" , method : "POST" , bodyContent : common . ObjectSerializer . serialize ( createQuotaRequest . createQuotaDetails , "CreateQuotaDetails" , model . CreateQuotaDetails . getJsonObj ) , pathParams : pathParams , headerParams : headerParams , queryParams : queryParams } ) ; try { const response = await retrier . makeServiceCall ( this . _httpClient , request ) ; const sdkResponse = composeResponse ( { responseObject : < responses . CreateQuotaResponse > { } , body : await response . json ( ) , bodyKey : "quota" , bodyModel : model . Quota , type : "model.Quota" , responseHeaders : [ { value : response . headers . get ( "opc-request-id" ) , key : "opcRequestId" , dataType : "string" } , { value : response . headers . get ( "etag" ) , key : "etag" , dataType : "string" } ] } ) ; return sdkResponse ; } catch ( err ) { throw err ; } } param DeleteQuotaRequest return throws example Click  https to see how to use DeleteQuota API.
      public async deleteQuota ( deleteQuotaRequest ) { if ( this . logger ) this . logger . debug ( "Calling operation QuotasClient#deleteQuota." ) ; const pathParams = { "{quotaId}" : deleteQuotaRequest . quotaId } ; const queryParams = { } ; let headerParams = { "Content-Type" : common . Constants . APPLICATION_JSON , "opc-request-id" : deleteQuotaRequest . opcRequestId , "if-match" : deleteQuotaRequest . ifMatch } ; const specRetryConfiguration = common . NoRetryConfigurationDetails ; const retrier = GenericRetrier . createPreferredRetrier ( this . _clientConfiguration ? this . _clientConfiguration . retryConfiguration : undefined , deleteQuotaRequest . retryConfiguration , specRetryConfiguration ) ; if ( this . logger ) retrier . logger = this . logger ; const request = await composeRequest ( { baseEndpoint : this . _endpoint , defaultHeaders : this . _defaultHeaders , path : "/20181025/quotas/{quotaId}" , method : "DELETE" , pathParams : pathParams , headerParams : headerParams , queryParams : queryParams } ) ; try { const response = await retrier . makeServiceCall ( this . _httpClient , request ) ; const sdkResponse = composeResponse ( { responseObject : < responses . DeleteQuotaResponse > { } , responseHeaders : [ { value : response . headers . get ( "opc-request-id" ) , key : "opcRequestId" , dataType : "string" } ] } ) ; return sdkResponse ; } catch ( err ) { throw err ; } } param GetQuotaRequest return throws example Click  https to see how to use GetQuota API.
      public async getQuota ( getQuotaRequest ) { if ( this . logger ) this . logger . debug ( "Calling operation QuotasClient#getQuota." ) ; const pathParams = { "{quotaId}" : getQuotaRequest . quotaId } ; const queryParams = { } ; let headerParams = { "Content-Type" : common . Constants . APPLICATION_JSON , "opc-request-id" : getQuotaRequest . opcRequestId } ; const specRetryConfiguration = common . NoRetryConfigurationDetails ; const retrier = GenericRetrier . createPreferredRetrier ( this . _clientConfiguration ? this . _clientConfiguration . retryConfiguration : undefined , getQuotaRequest . retryConfiguration , specRetryConfiguration ) ; if ( this . logger ) retrier . logger = this . logger ; const request = await composeRequest ( { baseEndpoint : this . _endpoint , defaultHeaders : this . _defaultHeaders , path : "/20181025/quotas/{quotaId}" , method : "GET" , pathParams : pathParams , headerParams : headerParams , queryParams : queryParams } ) ; try { const response = await retrier . makeServiceCall ( this . _httpClient , request ) ; const sdkResponse = composeResponse ( { responseObject : < responses . GetQuotaResponse > { } , body : await response . json ( ) , bodyKey : "quota" , bodyModel : model . Quota , type : "model.Quota" , responseHeaders : [ { value : response . headers . get ( "opc-request-id" ) , key : "opcRequestId" , dataType : "string" } , { value : response . headers . get ( "etag" ) , key : "etag" , dataType : "string" } ] } ) ; return sdkResponse ; } catch ( err ) { throw err ; } } param ListQuotasRequest return throws example Click  https to see how to use ListQuotas API.
      public async listQuotas ( listQuotasRequest ) { if ( this . logger ) this . logger . debug ( "Calling operation QuotasClient#listQuotas." ) ; const pathParams = { } ; const queryParams = { "compartmentId" : listQuotasRequest . compartmentId , "page" : listQuotasRequest . page , "limit" : listQuotasRequest . limit , "name" : listQuotasRequest . name , "lifecycleState" : listQuotasRequest . lifecycleState , "sortOrder" : listQuotasRequest . sortOrder , "sortBy" : listQuotasRequest . sortBy } ; let headerParams = { "Content-Type" : common . Constants . APPLICATION_JSON , "opc-request-id" : listQuotasRequest . opcRequestId } ; const specRetryConfiguration = common . NoRetryConfigurationDetails ; const retrier = GenericRetrier . createPreferredRetrier ( this . _clientConfiguration ? this . _clientConfiguration . retryConfiguration : undefined , listQuotasRequest . retryConfiguration , specRetryConfiguration ) ; if ( this . logger ) retrier . logger = this . logger ; const request = await composeRequest ( { baseEndpoint : this . _endpoint , defaultHeaders : this . _defaultHeaders , path : "/20181025/quotas" , method : "GET" , pathParams : pathParams , headerParams : headerParams , queryParams : queryParams } ) ; try { const response = await retrier . makeServiceCall ( this . _httpClient , request ) ; const sdkResponse = composeResponse ( { responseObject : < responses . ListQuotasResponse > { } , body : await response . json ( ) , bodyKey : "items" , bodyModel : model . QuotaSummary , type : "Array<model.QuotaSummary>" , responseHeaders : [ { value : response . headers . get ( "opc-next-page" ) , key : "opcNextPage" , dataType : "string" } , { value : response . headers . get ( "opc-request-id" ) , key : "opcRequestId" , dataType : "string" } ] } ) ; return sdkResponse ; } catch ( err ) { throw err ; } } param request public listAllQuotas ( request ) { return paginateRecords ( request , req => this . listQuotas ( req ) ) ; } param request public listAllQuotasResponses ( request ) { return paginateResponses ( request , req => this . listQuotas ( req ) ) ; } param request public listQuotasRecordIterator ( request ) { return paginateRecords ( request , req => this . listQuotas ( req ) ) ; } param request public listQuotasResponseIterator ( request ) { return paginateResponses ( request , req => this . listQuotas ( req ) ) ; } param UpdateQuotaRequest return throws example Click  https to see how to use UpdateQuota API.
      public async updateQuota ( updateQuotaRequest ) { if ( this . logger ) this . logger . debug ( "Calling operation QuotasClient#updateQuota." ) ; const pathParams = { "{quotaId}" : updateQuotaRequest . quotaId } ; const queryParams = { } ; let headerParams = { "Content-Type" : common . Constants . APPLICATION_JSON , "opc-request-id" : updateQuotaRequest . opcRequestId , "if-match" : updateQuotaRequest . ifMatch } ; const specRetryConfiguration = common . NoRetryConfigurationDetails ; const retrier = GenericRetrier . createPreferredRetrier ( this . _clientConfiguration ? this . _clientConfiguration . retryConfiguration : undefined , updateQuotaRequest . retryConfiguration , specRetryConfiguration ) ; if ( this . logger ) retrier . logger = this . logger ; const request = await composeRequest ( { baseEndpoint : this . _endpoint , defaultHeaders : this . _defaultHeaders , path : "/20181025/quotas/{quotaId}" , method : "PUT" , bodyContent : common . ObjectSerializer . serialize ( updateQuotaRequest . updateQuotaDetails , "UpdateQuotaDetails" , model . UpdateQuotaDetails . getJsonObj ) , pathParams : pathParams , headerParams : headerParams , queryParams : queryParams } ) ; try { const response = await retrier . makeServiceCall ( this . _httpClient , request ) ; const sdkResponse = composeResponse ( { responseObject : < responses . UpdateQuotaResponse > { } , body : await response . json ( ) , bodyKey : "quota" , bodyModel : model . Quota , type : "model.Quota" , responseHeaders : [ { value : response . headers . get ( "opc-request-id" ) , key : "opcRequestId" , dataType : "string" } , { value : response . headers . get ( "etag" ) , key : "etag" , dataType : "string" } ] } ) ; return sdkResponse ; } catch ( err ) { throw err ; } } }