Skip to content

/AWS1/CL_DYS=>DESCRIBESTREAM()

About DescribeStream

Returns information about a stream, including the current status of the stream, its Amazon Resource Name (ARN), the composition of its shards, and its corresponding DynamoDB table.

You can call DescribeStream at a maximum rate of 10 times per second.

Each shard in the stream has a SequenceNumberRange associated with it. If the SequenceNumberRange has a StartingSequenceNumber but no EndingSequenceNumber, then the shard is still open (able to receive more stream records). If both StartingSequenceNumber and EndingSequenceNumber are present, then that shard is closed and can no longer receive more data.

Method Signature

IMPORTING

Required arguments:

iv_streamarn TYPE /AWS1/DYSSTREAMARN /AWS1/DYSSTREAMARN

The Amazon Resource Name (ARN) for the stream.

Optional arguments:

iv_limit TYPE /AWS1/DYSPOSITIVEINTEGEROBJECT /AWS1/DYSPOSITIVEINTEGEROBJECT

The maximum number of shard objects to return. The upper limit is 100.

iv_exclusivestartshardid TYPE /AWS1/DYSSHARDID /AWS1/DYSSHARDID

The shard ID of the first item that this operation will evaluate. Use the value that was returned for LastEvaluatedShardId in the previous operation.

io_shardfilter TYPE REF TO /AWS1/CL_DYSSHARDFILTER /AWS1/CL_DYSSHARDFILTER

This optional field contains the filter definition for the DescribeStream API.

RETURNING

oo_output TYPE REF TO /aws1/cl_dysdescrstreamoutput /AWS1/CL_DYSDESCRSTREAMOUTPUT

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->/aws1/if_dys~describestream(
  io_shardfilter = new /aws1/cl_dysshardfilter(
    iv_shardid = |string|
    iv_type = |string|
  )
  iv_exclusivestartshardid = |string|
  iv_limit = 123
  iv_streamarn = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lo_streamdescription = lo_result->get_streamdescription( ).
  IF lo_streamdescription IS NOT INITIAL.
    lv_streamarn = lo_streamdescription->get_streamarn( ).
    lv_string = lo_streamdescription->get_streamlabel( ).
    lv_streamstatus = lo_streamdescription->get_streamstatus( ).
    lv_streamviewtype = lo_streamdescription->get_streamviewtype( ).
    lv_date = lo_streamdescription->get_creationrequestdatetime( ).
    lv_tablename = lo_streamdescription->get_tablename( ).
    LOOP AT lo_streamdescription->get_keyschema( ) into lo_row.
      lo_row_1 = lo_row.
      IF lo_row_1 IS NOT INITIAL.
        lv_keyschemaattributename = lo_row_1->get_attributename( ).
        lv_keytype = lo_row_1->get_keytype( ).
      ENDIF.
    ENDLOOP.
    LOOP AT lo_streamdescription->get_shards( ) into lo_row_2.
      lo_row_3 = lo_row_2.
      IF lo_row_3 IS NOT INITIAL.
        lv_shardid = lo_row_3->get_shardid( ).
        lo_sequencenumberrange = lo_row_3->get_sequencenumberrange( ).
        IF lo_sequencenumberrange IS NOT INITIAL.
          lv_sequencenumber = lo_sequencenumberrange->get_startingsequencenumber( ).
          lv_sequencenumber = lo_sequencenumberrange->get_endingsequencenumber( ).
        ENDIF.
        lv_shardid = lo_row_3->get_parentshardid( ).
      ENDIF.
    ENDLOOP.
    lv_shardid = lo_streamdescription->get_lastevaluatedshardid( ).
  ENDIF.
ENDIF.