:doc:`Kinesis <../../kinesis>` / Client / update_stream_warm_throughput

*****************************
update_stream_warm_throughput
*****************************



.. py:method:: Kinesis.Client.update_stream_warm_throughput(**kwargs)

  

  Updates the warm throughput configuration for the specified Amazon Kinesis Data Streams on-demand data stream. This operation allows you to proactively scale your on-demand data stream to a specified throughput level, enabling better performance for sudden traffic spikes.

   

  .. note::

    

    When invoking this API, you must use either the ``StreamARN`` or the ``StreamName`` parameter, or both. It is recommended that you use the ``StreamARN`` input parameter when you invoke this API.

    

   

  Updating the warm throughput is an asynchronous operation. Upon receiving the request, Kinesis Data Streams returns immediately and sets the status of the stream to ``UPDATING``. After the update is complete, Kinesis Data Streams sets the status of the stream back to ``ACTIVE``. Depending on the size of the stream, the scaling action could take a few minutes to complete. You can continue to read and write data to your stream while its status is ``UPDATING``.

   

  This operation is only supported for data streams with the on-demand capacity mode in accounts that have ``MinimumThroughputBillingCommitment`` enabled. Provisioned capacity mode streams do not support warm throughput configuration.

   

  This operation has the following default limits. By default, you cannot do the following:

   

  
  * Scale to more than 10 GiBps for an on-demand stream.
   
  * This API has a call limit of 5 transactions per second (TPS) for each Amazon Web Services account. TPS over 5 will initiate the ``LimitExceededException``.
  

   

  For the default limits for an Amazon Web Services account, see `Streams Limits <https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html>`__ in the *Amazon Kinesis Data Streams Developer Guide*. To request an increase in the call rate limit, the shard limit for this API, or your overall shard limit, use the `limits form <https://console.aws.amazon.com/support/v1#/case/create?issueType=service-limit-increase&limitType=service-code-kinesis>`__.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/UpdateStreamWarmThroughput>`_  


  **Request Syntax**
  ::

    response = client.update_stream_warm_throughput(
        StreamARN='string',
        StreamName='string',
        StreamId='string',
        WarmThroughputMiBps=123
    )
    
  :type StreamARN: string
  :param StreamARN: 

    The ARN of the stream to be updated.

    

  
  :type StreamName: string
  :param StreamName: 

    The name of the stream to be updated.

    

  
  :type StreamId: string
  :param StreamId: 

    Not Implemented. Reserved for future use.

    

  
  :type WarmThroughputMiBps: integer
  :param WarmThroughputMiBps: **[REQUIRED]** 

    The target warm throughput in MB/s that the stream should be scaled to handle. This represents the throughput capacity that will be immediately available for write operations.

    

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

    
    ::

      {
          'StreamARN': 'string',
          'StreamName': 'string',
          'WarmThroughput': {
              'TargetMiBps': 123,
              'CurrentMiBps': 123
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **StreamARN** *(string) --* 

        The ARN of the stream that was updated.

        
      

      - **StreamName** *(string) --* 

        The name of the stream that was updated.

        
      

      - **WarmThroughput** *(dict) --* 

        Specifies the updated warm throughput configuration for your data stream.

        
        

        - **TargetMiBps** *(integer) --* 

          The target warm throughput value on the stream. This indicates that the stream is currently scaling towards this target value.

          
        

        - **CurrentMiBps** *(integer) --* 

          The current warm throughput value on the stream. This is the write throughput in MiBps that the stream is currently scaled to handle.

          
    
  
  **Exceptions**
  
  *   :py:class:`Kinesis.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`Kinesis.Client.exceptions.ResourceNotFoundException`

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

  
  *   :py:class:`Kinesis.Client.exceptions.InvalidArgumentException`

  
  *   :py:class:`Kinesis.Client.exceptions.ResourceInUseException`

  
  *   :py:class:`Kinesis.Client.exceptions.ValidationException`

  