Skip to content

/AWS1/IF_KNS=>UPDATESTREAMWARMTHROUGHPUT()

About UpdateStreamWarmThroughput

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.

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 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.

Method Signature

METHODS /AWS1/IF_KNS~UPDATESTREAMWARMTHROUGHPUT
  IMPORTING
    !IV_STREAMARN TYPE /AWS1/KNSSTREAMARN OPTIONAL
    !IV_STREAMNAME TYPE /AWS1/KNSSTREAMNAME OPTIONAL
    !IV_WARMTHROUGHPUTMIBPS TYPE /AWS1/KNSNATURALINTEGEROBJECT OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_knsupstrmwarmtputout
  RAISING
    /AWS1/CX_KNSACCESSDENIEDEX
    /AWS1/CX_KNSINVALIDARGUMENTEX
    /AWS1/CX_KNSLIMITEXCEEDEDEX
    /AWS1/CX_KNSRESOURCEINUSEEX
    /AWS1/CX_KNSRESOURCENOTFOUNDEX
    /AWS1/CX_KNSVALIDATIONEX
    /AWS1/CX_KNSCLIENTEXC
    /AWS1/CX_KNSSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_warmthroughputmibps TYPE /AWS1/KNSNATURALINTEGEROBJECT /AWS1/KNSNATURALINTEGEROBJECT

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.

Optional arguments:

iv_streamarn TYPE /AWS1/KNSSTREAMARN /AWS1/KNSSTREAMARN

The ARN of the stream to be updated.

iv_streamname TYPE /AWS1/KNSSTREAMNAME /AWS1/KNSSTREAMNAME

The name of the stream to be updated.

RETURNING

oo_output TYPE REF TO /aws1/cl_knsupstrmwarmtputout /AWS1/CL_KNSUPSTRMWARMTPUTOUT

Domain /AWS1/RT_ACCOUNT_ID
Primitive Type NUMC

Examples

Syntax Example

This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.

DATA(lo_result) = lo_client->updatestreamwarmthroughput(
  iv_streamarn = |string|
  iv_streamname = |string|
  iv_warmthroughputmibps = 123
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lv_streamarn = lo_result->get_streamarn( ).
  lv_streamname = lo_result->get_streamname( ).
  lo_warmthroughputobject = lo_result->get_warmthroughput( ).
  IF lo_warmthroughputobject IS NOT INITIAL.
    lv_naturalintegerobject = lo_warmthroughputobject->get_targetmibps( ).
    lv_naturalintegerobject = lo_warmthroughputobject->get_currentmibps( ).
  ENDIF.
ENDIF.