Skip to content

/AWS1/IF_BDO=>BATCHPUTGATEWAYRATELIMITS()

About BatchPutGatewayRateLimits

Atomically creates or updates multiple rate limits for a gateway. The operation updates existing limits with matching keys and creates new limits for new keys. If the operation fails, the service applies no changes. Retry the request after resolving the issue.

Method Signature

METHODS /AWS1/IF_BDO~BATCHPUTGATEWAYRATELIMITS
  IMPORTING
    !IV_GATEWAYIDENTIFIER TYPE /AWS1/BDOGATEWAYIDENTIFIER OPTIONAL
    !IV_CLIENTTOKEN TYPE /AWS1/BDOCLIENTTOKEN OPTIONAL
    !IT_RATELIMITS TYPE /AWS1/CL_BDOBATCHPUTLIMITENTRY=>TT_BATCHPUTLIMITENTRIES OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_bdobatchputgwrlimsrsp
  RAISING
    /AWS1/CX_BDOACCESSDENIEDEX
    /AWS1/CX_BDOCONFLICTEXCEPTION
    /AWS1/CX_BDOINTERNALSERVEREX
    /AWS1/CX_BDORESOURCENOTFOUNDEX
    /AWS1/CX_BDOSERVICEQUOTAEXCDEX
    /AWS1/CX_BDOTHROTTLINGEX
    /AWS1/CX_BDOVALIDATIONEX
    /AWS1/CX_BDOCLIENTEXC
    /AWS1/CX_BDOSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_gatewayidentifier TYPE /AWS1/BDOGATEWAYIDENTIFIER /AWS1/BDOGATEWAYIDENTIFIER

The unique identifier of the gateway.

it_ratelimits TYPE /AWS1/CL_BDOBATCHPUTLIMITENTRY=>TT_BATCHPUTLIMITENTRIES TT_BATCHPUTLIMITENTRIES

The complete set of rate limits for this gateway. This operation replaces all existing rate limits in a single request. If the operation fails, no rate limits are changed.

Optional arguments:

iv_clienttoken TYPE /AWS1/BDOCLIENTTOKEN /AWS1/BDOCLIENTTOKEN

A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see Ensuring idempotency.

RETURNING

oo_output TYPE REF TO /aws1/cl_bdobatchputgwrlimsrsp /AWS1/CL_BDOBATCHPUTGWRLIMSRSP

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->batchputgatewayratelimits(
  it_ratelimits = VALUE /aws1/cl_bdobatchputlimitentry=>tt_batchputlimitentries(
    (
      new /aws1/cl_bdobatchputlimitentry(
        it_dimensionkeys = VALUE /aws1/cl_bdodimensionkeys_w=>tt_dimensionkeys(
          ( new /aws1/cl_bdodimensionkeys_w( |string| ) )
        )
        it_entries = VALUE /aws1/cl_bdolimitentry=>tt_limitentries(
          (
            new /aws1/cl_bdolimitentry(
              it_connections = VALUE /aws1/cl_bdorateconfig=>tt_rateconfigs(
                (
                  new /aws1/cl_bdorateconfig(
                    iv_period = |string|
                    iv_rate = '0.1'
                  )
                )
              )
              it_dimensions = VALUE /aws1/cl_bdodimensions_w=>tt_dimensions(
                (
                  VALUE /aws1/cl_bdodimensions_w=>ts_dimensions_maprow(
                    key = |string|
                    value = new /aws1/cl_bdodimensions_w( |string| )
                  )
                )
              )
              it_requests = VALUE /aws1/cl_bdorateconfig=>tt_rateconfigs(
                (
                  new /aws1/cl_bdorateconfig(
                    iv_period = |string|
                    iv_rate = '0.1'
                  )
                )
              )
              it_tokens = VALUE /aws1/cl_bdorateconfig=>tt_rateconfigs(
                (
                  new /aws1/cl_bdorateconfig(
                    iv_period = |string|
                    iv_rate = '0.1'
                  )
                )
              )
            )
          )
        )
        iv_description = |string|
        iv_ratelimitid = |string|
      )
    )
  )
  iv_clienttoken = |string|
  iv_gatewayidentifier = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  LOOP AT lo_result->get_ratelimits( ) into lo_row.
    lo_row_1 = lo_row.
    IF lo_row_1 IS NOT INITIAL.
      lv_gatewayratelimitid = lo_row_1->get_ratelimitid( ).
      lv_gatewayidentifier = lo_row_1->get_gatewayidentifier( ).
      lv_gatewayratelimitdescrip = lo_row_1->get_description( ).
      LOOP AT lo_row_1->get_dimensionkeys( ) into lo_row_2.
        lo_row_3 = lo_row_2.
        IF lo_row_3 IS NOT INITIAL.
          lv_dimensionkey = lo_row_3->get_value( ).
        ENDIF.
      ENDLOOP.
      LOOP AT lo_row_1->get_entries( ) into lo_row_4.
        lo_row_5 = lo_row_4.
        IF lo_row_5 IS NOT INITIAL.
          LOOP AT lo_row_5->get_dimensions( ) into ls_row_6.
            lv_key = ls_row_6-key.
            lo_value = ls_row_6-value.
            IF lo_value IS NOT INITIAL.
              lv_dimensionvalue = lo_value->get_value( ).
            ENDIF.
          ENDLOOP.
          LOOP AT lo_row_5->get_requests( ) into lo_row_7.
            lo_row_8 = lo_row_7.
            IF lo_row_8 IS NOT INITIAL.
              lv_double = lo_row_8->get_rate( ).
              lv_period = lo_row_8->get_period( ).
            ENDIF.
          ENDLOOP.
          LOOP AT lo_row_5->get_tokens( ) into lo_row_7.
            lo_row_8 = lo_row_7.
            IF lo_row_8 IS NOT INITIAL.
              lv_double = lo_row_8->get_rate( ).
              lv_period = lo_row_8->get_period( ).
            ENDIF.
          ENDLOOP.
          LOOP AT lo_row_5->get_connections( ) into lo_row_7.
            lo_row_8 = lo_row_7.
            IF lo_row_8 IS NOT INITIAL.
              lv_double = lo_row_8->get_rate( ).
              lv_period = lo_row_8->get_period( ).
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDLOOP.
      lv_gatewayratelimitstatus = lo_row_1->get_status( ).
      lv_datetimestamp = lo_row_1->get_createdat( ).
      lv_datetimestamp = lo_row_1->get_updatedat( ).
    ENDIF.
  ENDLOOP.
ENDIF.