Skip to content

/AWS1/IF_XDD=>CREATESTREAM()

About CreateStream

Creates a new change data capture (CDC) stream for a cluster. The stream captures database changes and delivers them to the specified target destination.

Required permissions

dsql:CreateStream

Permission to create a new stream.

Resources: arn:aws:dsql:region:account-id:cluster/cluster-id

iam:PassRole

Permission to pass the IAM role specified in the target definition to the service.

Resources: ARN of the IAM role specified in targetDefinition.kinesis.roleArn

kms:Decrypt

Required when the cluster uses a customer managed KMS key (CMK). Permission to decrypt data using the cluster's CMK.

Resources: ARN of the KMS key used by the cluster

Method Signature

METHODS /AWS1/IF_XDD~CREATESTREAM
  IMPORTING
    !IV_CLUSTERIDENTIFIER TYPE /AWS1/XDDCLUSTERID OPTIONAL
    !IO_TARGETDEFINITION TYPE REF TO /AWS1/CL_XDDTARGETDEFINITION OPTIONAL
    !IV_ORDERING TYPE /AWS1/XDDSTREAMORDERING OPTIONAL
    !IV_FORMAT TYPE /AWS1/XDDSTREAMFORMAT OPTIONAL
    !IT_TAGS TYPE /AWS1/CL_XDDTAGMAP_W=>TT_TAGMAP OPTIONAL
    !IV_CLIENTTOKEN TYPE /AWS1/XDDCLIENTTOKEN OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_xddcreatestreamoutput
  RAISING
    /AWS1/CX_XDDACCESSDENIEDEX
    /AWS1/CX_XDDINTERNALSERVEREX
    /AWS1/CX_XDDTHROTTLINGEX
    /AWS1/CX_XDDVALIDATIONEX
    /AWS1/CX_XDDCONFLICTEXCEPTION
    /AWS1/CX_XDDRESOURCENOTFOUNDEX
    /AWS1/CX_XDDSERVICEQUOTAEXCDEX
    /AWS1/CX_XDDCLIENTEXC
    /AWS1/CX_XDDSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_clusteridentifier TYPE /AWS1/XDDCLUSTERID /AWS1/XDDCLUSTERID

The ID of the cluster for which to create the stream.

io_targetdefinition TYPE REF TO /AWS1/CL_XDDTARGETDEFINITION /AWS1/CL_XDDTARGETDEFINITION

The target destination configuration for the stream. Contains Kinesis stream configuration including stream ARN and IAM role ARN.

iv_ordering TYPE /AWS1/XDDSTREAMORDERING /AWS1/XDDSTREAMORDERING

The ordering mode for the stream. Determines how change events are ordered when delivered to the target.

iv_format TYPE /AWS1/XDDSTREAMFORMAT /AWS1/XDDSTREAMFORMAT

The format of the stream records.

Optional arguments:

it_tags TYPE /AWS1/CL_XDDTAGMAP_W=>TT_TAGMAP TT_TAGMAP

A map of key and value pairs to use to tag your stream.

iv_clienttoken TYPE /AWS1/XDDCLIENTTOKEN /AWS1/XDDCLIENTTOKEN

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect.

If you don't specify a client token, the Amazon Web Services SDK automatically generates one.

RETURNING

oo_output TYPE REF TO /aws1/cl_xddcreatestreamoutput /AWS1/CL_XDDCREATESTREAMOUTPUT

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->createstream(
  io_targetdefinition = new /aws1/cl_xddtargetdefinition(
    io_kinesis = new /aws1/cl_xddkinesistargetdefn(
      iv_rolearn = |string|
      iv_streamarn = |string|
    )
  )
  it_tags = VALUE /aws1/cl_xddtagmap_w=>tt_tagmap(
    (
      VALUE /aws1/cl_xddtagmap_w=>ts_tagmap_maprow(
        key = |string|
        value = new /aws1/cl_xddtagmap_w( |string| )
      )
    )
  )
  iv_clienttoken = |string|
  iv_clusteridentifier = |string|
  iv_format = |string|
  iv_ordering = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lv_clusterid = lo_result->get_clusteridentifier( ).
  lv_streamid = lo_result->get_streamidentifier( ).
  lv_streamarn = lo_result->get_arn( ).
  lv_streamstatus = lo_result->get_status( ).
  lv_streamcreationtime = lo_result->get_creationtime( ).
  lv_streamordering = lo_result->get_ordering( ).
  lv_streamformat = lo_result->get_format( ).
ENDIF.