:doc:`APIGateway <../../apigateway>` / Client / update_usage

************
update_usage
************



.. py:method:: APIGateway.Client.update_usage(**kwargs)

  

  Grants a temporary extension to the remaining quota of a usage plan associated with a specified API key.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/apigateway-2015-07-09/UpdateUsage>`_  


  **Request Syntax**
  ::

    response = client.update_usage(
        usagePlanId='string',
        keyId='string',
        patchOperations=[
            {
                'op': 'add'|'remove'|'replace'|'move'|'copy'|'test',
                'path': 'string',
                'value': 'string',
                'from': 'string'
            },
        ]
    )
    
  :type usagePlanId: string
  :param usagePlanId: **[REQUIRED]** 

    The Id of the usage plan associated with the usage data.

    

  
  :type keyId: string
  :param keyId: **[REQUIRED]** 

    The identifier of the API key associated with the usage plan in which a temporary extension is granted to the remaining quota.

    

  
  :type patchOperations: list
  :param patchOperations: 

    For more information about supported patch operations, see `Patch Operations <https://docs.aws.amazon.com/apigateway/latest/api/patch-operations.html>`__.

    

  
    - *(dict) --* 

      For more information about supported patch operations, see `Patch Operations <https://docs.aws.amazon.com/apigateway/latest/api/patch-operations.html>`__.

      

    
      - **op** *(string) --* 

        An update operation to be performed with this PATCH request. The valid value can be add, remove, replace or copy. Not all valid operations are supported for a given resource. Support of the operations depends on specific operational contexts. Attempts to apply an unsupported operation on a resource will return an error message..

        

      
      - **path** *(string) --* 

        The op operation's target, as identified by a JSON Pointer value that references a location within the targeted resource. For example, if the target resource has an updateable property of {"name":"value"}, the path for this property is /name. If the name property value is a JSON object (e.g., {"name": {"child/name": "child-value"}}), the path for the child/name property will be /name/child~1name. Any slash ("/") character appearing in path names must be escaped with "~1", as shown in the example above. Each op operation can have only one path associated with it.

        

      
      - **value** *(string) --* 

        The new target value of the update operation. It is applicable for the add or replace operation. When using AWS CLI to update a property of a JSON value, enclose the JSON object with a pair of single quotes in a Linux shell, e.g., '{"a": ...}'.

        

      
      - **from** *(string) --* 

        The copy update operation's source as identified by a JSON-Pointer value referencing the location within the targeted resource to copy the value from. For example, to promote a canary deployment, you copy the canary deployment ID to the affiliated deployment ID by calling a PATCH request on a Stage resource with "op":"copy", "from":"/canarySettings/deploymentId" and "path":"/deploymentId".

        

      
    

  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'usagePlanId': 'string',
          'startDate': 'string',
          'endDate': 'string',
          'position': 'string',
          'items': {
              'string': [
                  [
                      123,
                  ],
              ]
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 

      Represents the usage data of a usage plan.

      
      

      - **usagePlanId** *(string) --* 

        The plan Id associated with this usage data.

        
      

      - **startDate** *(string) --* 

        The starting date of the usage data.

        
      

      - **endDate** *(string) --* 

        The ending date of the usage data.

        
      

      - **position** *(string) --* 
      

      - **items** *(dict) --* 

        The usage data, as daily logs of used and remaining quotas, over the specified time interval indexed over the API keys in a usage plan. For example, ``{..., "values" : { "{api_key}" : [ [0, 100], [10, 90], [100, 10]]}``, where ``{api_key}`` stands for an API key value and the daily log entry is of the format ``[used quota, remaining quota]``.

        
        

        - *(string) --* 
          

          - *(list) --* 
            

            - *(list) --* 
              

              - *(integer) --* 
          
        
    
  
  
  **Exceptions**
  
  *   :py:class:`APIGateway.Client.exceptions.BadRequestException`

  
  *   :py:class:`APIGateway.Client.exceptions.ConflictException`

  
  *   :py:class:`APIGateway.Client.exceptions.LimitExceededException`

  
  *   :py:class:`APIGateway.Client.exceptions.NotFoundException`

  
  *   :py:class:`APIGateway.Client.exceptions.UnauthorizedException`

  
  *   :py:class:`APIGateway.Client.exceptions.TooManyRequestsException`

  