/AWS1/IF_EC2=>CREATEVPC()¶
About CreateVpc¶
Creates a VPC with the specified CIDR blocks.
A VPC must have an associated IPv4 CIDR block. You can choose an IPv4 CIDR block or an IPAM-allocated IPv4 CIDR block. You can optionally associate an IPv6 CIDR block with a VPC. You can choose an IPv6 CIDR block, an Amazon-provided IPv6 CIDR block, an IPAM-allocated IPv6 CIDR block, or an IPv6 CIDR block that you brought to Amazon Web Services. For more information, see IP addressing for your VPCs and subnets in the Amazon VPC User Guide.
By default, each instance that you launch in the VPC has the default DHCP options, which include only a default DNS server that we provide (AmazonProvidedDNS). For more information, see DHCP option sets in the Amazon VPC User Guide.
You can specify DNS options and tenancy for a VPC when you create it. You can't change the tenancy of a VPC after you create it. For more information, see VPC configuration options in the Amazon VPC User Guide.
Method Signature¶
METHODS /AWS1/IF_EC2~CREATEVPC
IMPORTING
!IV_CIDRBLOCK TYPE /AWS1/EC2STRING OPTIONAL
!IV_IPV6POOL TYPE /AWS1/EC2IPV6POOLEC2ID OPTIONAL
!IV_IPV6CIDRBLOCK TYPE /AWS1/EC2STRING OPTIONAL
!IV_IPV4IPAMPOOLID TYPE /AWS1/EC2IPAMPOOLID OPTIONAL
!IV_IPV4NETMASKLENGTH TYPE /AWS1/EC2NETMASKLENGTH OPTIONAL
!IV_IPV6IPAMPOOLID TYPE /AWS1/EC2IPAMPOOLID OPTIONAL
!IV_IPV6NETMASKLENGTH TYPE /AWS1/EC2NETMASKLENGTH OPTIONAL
!IV_IPV6CIDRBLKNETWORKBORDE00 TYPE /AWS1/EC2STRING OPTIONAL
!IT_TAGSPECIFICATIONS TYPE /AWS1/CL_EC2TAGSPECIFICATION=>TT_TAGSPECIFICATIONLIST OPTIONAL
!IV_DRYRUN TYPE /AWS1/EC2BOOLEAN OPTIONAL
!IV_INSTANCETENANCY TYPE /AWS1/EC2TENANCY OPTIONAL
!IV_AMAZONPROVIDEDIPV6CIDRBLK TYPE /AWS1/EC2BOOLEAN OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_ec2createvpcresult
RAISING
/AWS1/CX_EC2CLIENTEXC
/AWS1/CX_EC2SERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Optional arguments:¶
iv_cidrblock TYPE /AWS1/EC2STRING /AWS1/EC2STRING¶
The IPv4 network range for the VPC, in CIDR notation. For example,
10.0.0.0/16. We modify the specified CIDR block to its canonical form; for example, if you specify100.68.0.18/18, we modify it to100.68.0.0/18.
iv_ipv6pool TYPE /AWS1/EC2IPV6POOLEC2ID /AWS1/EC2IPV6POOLEC2ID¶
The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.
iv_ipv6cidrblock TYPE /AWS1/EC2STRING /AWS1/EC2STRING¶
The IPv6 CIDR block from the IPv6 address pool. You must also specify
Ipv6Poolin the request.To let Amazon choose the IPv6 CIDR block for you, omit this parameter.
iv_ipv4ipampoolid TYPE /AWS1/EC2IPAMPOOLID /AWS1/EC2IPAMPOOLID¶
The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.
iv_ipv4netmasklength TYPE /AWS1/EC2NETMASKLENGTH /AWS1/EC2NETMASKLENGTH¶
The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.
iv_ipv6ipampoolid TYPE /AWS1/EC2IPAMPOOLID /AWS1/EC2IPAMPOOLID¶
The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization. For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.
iv_ipv6netmasklength TYPE /AWS1/EC2NETMASKLENGTH /AWS1/EC2NETMASKLENGTH¶
The netmask length of the IPv6 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.
iv_ipv6cidrblknetworkborde00 TYPE /AWS1/EC2STRING /AWS1/EC2STRING¶
The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the address to this location.
You must set
AmazonProvidedIpv6CidrBlocktotrueto use this parameter.
it_tagspecifications TYPE /AWS1/CL_EC2TAGSPECIFICATION=>TT_TAGSPECIFICATIONLIST TT_TAGSPECIFICATIONLIST¶
The tags to assign to the VPC.
iv_dryrun TYPE /AWS1/EC2BOOLEAN /AWS1/EC2BOOLEAN¶
Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is
DryRunOperation. Otherwise, it isUnauthorizedOperation.
iv_instancetenancy TYPE /AWS1/EC2TENANCY /AWS1/EC2TENANCY¶
The tenancy options for instances launched into the VPC. For
default, instances are launched with shared tenancy by default. You can launch instances with any tenancy into a shared tenancy VPC. Fordedicated, instances are launched as dedicated tenancy instances by default. You can only launch instances with a tenancy ofdedicatedorhostinto a dedicated tenancy VPC.Important: The
hostvalue cannot be used with this parameter. Use thedefaultordedicatedvalues only.Default:
default
iv_amazonprovidedipv6cidrblk TYPE /AWS1/EC2BOOLEAN /AWS1/EC2BOOLEAN¶
Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_ec2createvpcresult /AWS1/CL_EC2CREATEVPCRESULT¶
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->createvpc(
it_tagspecifications = VALUE /aws1/cl_ec2tagspecification=>tt_tagspecificationlist(
(
new /aws1/cl_ec2tagspecification(
it_tags = VALUE /aws1/cl_ec2tag=>tt_taglist(
(
new /aws1/cl_ec2tag(
iv_key = |string|
iv_value = |string|
)
)
)
iv_resourcetype = |string|
)
)
)
iv_amazonprovidedipv6cidrblk = ABAP_TRUE
iv_cidrblock = |string|
iv_dryrun = ABAP_TRUE
iv_instancetenancy = |string|
iv_ipv4ipampoolid = |string|
iv_ipv4netmasklength = 123
iv_ipv6cidrblknetworkborde00 = |string|
iv_ipv6cidrblock = |string|
iv_ipv6ipampoolid = |string|
iv_ipv6netmasklength = 123
iv_ipv6pool = |string|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lo_vpc = lo_result->get_vpc( ).
IF lo_vpc IS NOT INITIAL.
lv_string = lo_vpc->get_ownerid( ).
lv_tenancy = lo_vpc->get_instancetenancy( ).
LOOP AT lo_vpc->get_ipv6cidrblkassociation00( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lv_string = lo_row_1->get_associationid( ).
lv_string = lo_row_1->get_ipv6cidrblock( ).
lo_vpccidrblockstate = lo_row_1->get_ipv6cidrblockstate( ).
IF lo_vpccidrblockstate IS NOT INITIAL.
lv_vpccidrblockstatecode = lo_vpccidrblockstate->get_state( ).
lv_string = lo_vpccidrblockstate->get_statusmessage( ).
ENDIF.
lv_string = lo_row_1->get_networkbordergroup( ).
lv_string = lo_row_1->get_ipv6pool( ).
lv_ipv6addressattribute = lo_row_1->get_ipv6addressattribute( ).
lv_ipsource = lo_row_1->get_ipsource( ).
ENDIF.
ENDLOOP.
LOOP AT lo_vpc->get_cidrblockassociationset( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_string = lo_row_3->get_associationid( ).
lv_string = lo_row_3->get_cidrblock( ).
lo_vpccidrblockstate = lo_row_3->get_cidrblockstate( ).
IF lo_vpccidrblockstate IS NOT INITIAL.
lv_vpccidrblockstatecode = lo_vpccidrblockstate->get_state( ).
lv_string = lo_vpccidrblockstate->get_statusmessage( ).
ENDIF.
ENDIF.
ENDLOOP.
lv_boolean = lo_vpc->get_isdefault( ).
lo_vpcencryptioncontrol = lo_vpc->get_encryptioncontrol( ).
IF lo_vpcencryptioncontrol IS NOT INITIAL.
lv_vpcid = lo_vpcencryptioncontrol->get_vpcid( ).
lv_vpcencryptioncontrolid = lo_vpcencryptioncontrol->get_vpcencryptioncontrolid( ).
lv_vpcencryptioncontrolmod = lo_vpcencryptioncontrol->get_mode( ).
lv_vpcencryptioncontrolsta = lo_vpcencryptioncontrol->get_state( ).
lv_string = lo_vpcencryptioncontrol->get_statemessage( ).
lo_vpcencryptioncontrolexc = lo_vpcencryptioncontrol->get_resourceexclusions( ).
IF lo_vpcencryptioncontrolexc IS NOT INITIAL.
lo_vpcencryptioncontrolexc_1 = lo_vpcencryptioncontrolexc->get_internetgateway( ).
IF lo_vpcencryptioncontrolexc_1 IS NOT INITIAL.
lv_vpcencryptioncontrolexc_2 = lo_vpcencryptioncontrolexc_1->get_state( ).
lv_string = lo_vpcencryptioncontrolexc_1->get_statemessage( ).
ENDIF.
lo_vpcencryptioncontrolexc_1 = lo_vpcencryptioncontrolexc->get_egressonlyinternetgw( ).
IF lo_vpcencryptioncontrolexc_1 IS NOT INITIAL.
lv_vpcencryptioncontrolexc_2 = lo_vpcencryptioncontrolexc_1->get_state( ).
lv_string = lo_vpcencryptioncontrolexc_1->get_statemessage( ).
ENDIF.
lo_vpcencryptioncontrolexc_1 = lo_vpcencryptioncontrolexc->get_natgateway( ).
IF lo_vpcencryptioncontrolexc_1 IS NOT INITIAL.
lv_vpcencryptioncontrolexc_2 = lo_vpcencryptioncontrolexc_1->get_state( ).
lv_string = lo_vpcencryptioncontrolexc_1->get_statemessage( ).
ENDIF.
lo_vpcencryptioncontrolexc_1 = lo_vpcencryptioncontrolexc->get_virtualprivategateway( ).
IF lo_vpcencryptioncontrolexc_1 IS NOT INITIAL.
lv_vpcencryptioncontrolexc_2 = lo_vpcencryptioncontrolexc_1->get_state( ).
lv_string = lo_vpcencryptioncontrolexc_1->get_statemessage( ).
ENDIF.
lo_vpcencryptioncontrolexc_1 = lo_vpcencryptioncontrolexc->get_vpcpeering( ).
IF lo_vpcencryptioncontrolexc_1 IS NOT INITIAL.
lv_vpcencryptioncontrolexc_2 = lo_vpcencryptioncontrolexc_1->get_state( ).
lv_string = lo_vpcencryptioncontrolexc_1->get_statemessage( ).
ENDIF.
lo_vpcencryptioncontrolexc_1 = lo_vpcencryptioncontrolexc->get_lambda( ).
IF lo_vpcencryptioncontrolexc_1 IS NOT INITIAL.
lv_vpcencryptioncontrolexc_2 = lo_vpcencryptioncontrolexc_1->get_state( ).
lv_string = lo_vpcencryptioncontrolexc_1->get_statemessage( ).
ENDIF.
lo_vpcencryptioncontrolexc_1 = lo_vpcencryptioncontrolexc->get_vpclattice( ).
IF lo_vpcencryptioncontrolexc_1 IS NOT INITIAL.
lv_vpcencryptioncontrolexc_2 = lo_vpcencryptioncontrolexc_1->get_state( ).
lv_string = lo_vpcencryptioncontrolexc_1->get_statemessage( ).
ENDIF.
lo_vpcencryptioncontrolexc_1 = lo_vpcencryptioncontrolexc->get_elasticfilesystem( ).
IF lo_vpcencryptioncontrolexc_1 IS NOT INITIAL.
lv_vpcencryptioncontrolexc_2 = lo_vpcencryptioncontrolexc_1->get_state( ).
lv_string = lo_vpcencryptioncontrolexc_1->get_statemessage( ).
ENDIF.
ENDIF.
LOOP AT lo_vpcencryptioncontrol->get_tags( ) into lo_row_4.
lo_row_5 = lo_row_4.
IF lo_row_5 IS NOT INITIAL.
lv_string = lo_row_5->get_key( ).
lv_string = lo_row_5->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
LOOP AT lo_vpc->get_tags( ) into lo_row_4.
lo_row_5 = lo_row_4.
IF lo_row_5 IS NOT INITIAL.
lv_string = lo_row_5->get_key( ).
lv_string = lo_row_5->get_value( ).
ENDIF.
ENDLOOP.
lo_blockpublicaccessstates = lo_vpc->get_blockpublicaccessstates( ).
IF lo_blockpublicaccessstates IS NOT INITIAL.
lv_blockpublicaccessmode = lo_blockpublicaccessstates->get_internetgatewayblockmode( ).
ENDIF.
lv_string = lo_vpc->get_vpcid( ).
lv_vpcstate = lo_vpc->get_state( ).
lv_string = lo_vpc->get_cidrblock( ).
lv_string = lo_vpc->get_dhcpoptionsid( ).
ENDIF.
ENDIF.
To create a VPC¶
This example creates a VPC with the specified CIDR block.
DATA(lo_result) = lo_client->createvpc( iv_cidrblock = |10.0.0.0/16| ) .