Skip to content

/AWS1/IF_VL=>CREATERESOURCEGATEWAY()

About CreateResourceGateway

A resource gateway is a point of ingress into the VPC where a resource resides. It spans multiple Availability Zones. For your resource to be accessible from all Availability Zones, you should create your resource gateways to span as many Availability Zones as possible. A VPC can have multiple resource gateways.

Method Signature

METHODS /AWS1/IF_VL~CREATERESOURCEGATEWAY
  IMPORTING
    !IV_CLIENTTOKEN TYPE /AWS1/VL_CLIENTTOKEN OPTIONAL
    !IV_NAME TYPE /AWS1/VL_RESOURCEGATEWAYNAME OPTIONAL
    !IV_VPCIDENTIFIER TYPE /AWS1/VL_VPCID OPTIONAL
    !IT_SUBNETIDS TYPE /AWS1/CL_VL_SUBNETLIST_W=>TT_SUBNETLIST OPTIONAL
    !IT_SECURITYGROUPIDS TYPE /AWS1/CL_VL_SECGROUPLIST_W=>TT_SECURITYGROUPLIST OPTIONAL
    !IV_IPADDRESSTYPE TYPE /AWS1/VL_RESRCGWIPADDRESSTYPE OPTIONAL
    !IV_IPV4ADDRESSESPERENI TYPE /AWS1/VL_IPV4ADDRESSESPERENI OPTIONAL
    !IT_TAGS TYPE /AWS1/CL_VL_TAGMAP_W=>TT_TAGMAP OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_vl_createresrcgwrsp
  RAISING
    /AWS1/CX_VL_ACCESSDENIEDEX
    /AWS1/CX_VL_CONFLICTEXCEPTION
    /AWS1/CX_VL_INTERNALSERVEREX
    /AWS1/CX_VL_RESOURCENOTFOUNDEX
    /AWS1/CX_VL_SERVICEQUOTAEXCDEX
    /AWS1/CX_VL_THROTTLINGEX
    /AWS1/CX_VL_VALIDATIONEX
    /AWS1/CX_VL_CLIENTEXC
    /AWS1/CX_VL_SERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_name TYPE /AWS1/VL_RESOURCEGATEWAYNAME /AWS1/VL_RESOURCEGATEWAYNAME

The name of the resource gateway.

Optional arguments:

iv_clienttoken TYPE /AWS1/VL_CLIENTTOKEN /AWS1/VL_CLIENTTOKEN

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry succeeds without performing any actions. If the parameters aren't identical, the retry fails.

iv_vpcidentifier TYPE /AWS1/VL_VPCID /AWS1/VL_VPCID

The ID of the VPC for the resource gateway.

it_subnetids TYPE /AWS1/CL_VL_SUBNETLIST_W=>TT_SUBNETLIST TT_SUBNETLIST

The IDs of the VPC subnets in which to create the resource gateway.

it_securitygroupids TYPE /AWS1/CL_VL_SECGROUPLIST_W=>TT_SECURITYGROUPLIST TT_SECURITYGROUPLIST

The IDs of the security groups to apply to the resource gateway. The security groups must be in the same VPC.

iv_ipaddresstype TYPE /AWS1/VL_RESRCGWIPADDRESSTYPE /AWS1/VL_RESRCGWIPADDRESSTYPE

A resource gateway can have IPv4, IPv6 or dualstack addresses. The IP address type of a resource gateway must be compatible with the subnets of the resource gateway and the IP address type of the resource, as described here:

  • IPv4Assign IPv4 addresses to your resource gateway network interfaces. This option is supported only if all selected subnets have IPv4 address ranges, and the resource also has an IPv4 address.

  • IPv6Assign IPv6 addresses to your resource gateway network interfaces. This option is supported only if all selected subnets are IPv6 only subnets, and the resource also has an IPv6 address.

  • DualstackAssign both IPv4 and IPv6 addresses to your resource gateway network interfaces. This option is supported only if all selected subnets have both IPv4 and IPv6 address ranges, and the resource either has an IPv4 or IPv6 address.

The IP address type of the resource gateway is independent of the IP address type of the client or the VPC endpoint through which the resource is accessed.

iv_ipv4addressespereni TYPE /AWS1/VL_IPV4ADDRESSESPERENI /AWS1/VL_IPV4ADDRESSESPERENI

The number of IPv4 addresses in each ENI for the resource gateway.

it_tags TYPE /AWS1/CL_VL_TAGMAP_W=>TT_TAGMAP TT_TAGMAP

The tags for the resource gateway.

RETURNING

oo_output TYPE REF TO /aws1/cl_vl_createresrcgwrsp /AWS1/CL_VL_CREATERESRCGWRSP

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->createresourcegateway(
  it_securitygroupids = VALUE /aws1/cl_vl_secgrouplist_w=>tt_securitygrouplist(
    ( new /aws1/cl_vl_secgrouplist_w( |string| ) )
  )
  it_subnetids = VALUE /aws1/cl_vl_subnetlist_w=>tt_subnetlist(
    ( new /aws1/cl_vl_subnetlist_w( |string| ) )
  )
  it_tags = VALUE /aws1/cl_vl_tagmap_w=>tt_tagmap(
    (
      VALUE /aws1/cl_vl_tagmap_w=>ts_tagmap_maprow(
        key = |string|
        value = new /aws1/cl_vl_tagmap_w( |string| )
      )
    )
  )
  iv_clienttoken = |string|
  iv_ipaddresstype = |string|
  iv_ipv4addressespereni = 123
  iv_name = |string|
  iv_vpcidentifier = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lv_resourcegatewayname = lo_result->get_name( ).
  lv_resourcegatewayid = lo_result->get_id( ).
  lv_resourcegatewayarn = lo_result->get_arn( ).
  lv_resourcegatewaystatus = lo_result->get_status( ).
  lv_vpcid = lo_result->get_vpcidentifier( ).
  LOOP AT lo_result->get_subnetids( ) into lo_row.
    lo_row_1 = lo_row.
    IF lo_row_1 IS NOT INITIAL.
      lv_subnetid = lo_row_1->get_value( ).
    ENDIF.
  ENDLOOP.
  LOOP AT lo_result->get_securitygroupids( ) into lo_row_2.
    lo_row_3 = lo_row_2.
    IF lo_row_3 IS NOT INITIAL.
      lv_securitygroupid = lo_row_3->get_value( ).
    ENDIF.
  ENDLOOP.
  lv_resourcegatewayipaddres = lo_result->get_ipaddresstype( ).
  lv_ipv4addressespereni = lo_result->get_ipv4addressespereni( ).
ENDIF.