/AWS1/IF_MEM=>CREATECLUSTER()¶
About CreateCluster¶
Creates a cluster. All nodes in the cluster run the same protocol-compliant engine software.
Method Signature¶
METHODS /AWS1/IF_MEM~CREATECLUSTER
IMPORTING
!IV_CLUSTERNAME TYPE /AWS1/MEMSTRING OPTIONAL
!IV_NODETYPE TYPE /AWS1/MEMSTRING OPTIONAL
!IV_MULTIREGIONCLUSTERNAME TYPE /AWS1/MEMSTRING OPTIONAL
!IV_PARAMETERGROUPNAME TYPE /AWS1/MEMSTRING OPTIONAL
!IV_DESCRIPTION TYPE /AWS1/MEMSTRING OPTIONAL
!IV_NUMSHARDS TYPE /AWS1/MEMINTEGEROPTIONAL OPTIONAL
!IV_NUMREPLICASPERSHARD TYPE /AWS1/MEMINTEGEROPTIONAL OPTIONAL
!IV_SUBNETGROUPNAME TYPE /AWS1/MEMSTRING OPTIONAL
!IT_SECURITYGROUPIDS TYPE /AWS1/CL_MEMSECGROUPIDSLIST_W=>TT_SECURITYGROUPIDSLIST OPTIONAL
!IV_MAINTENANCEWINDOW TYPE /AWS1/MEMSTRING OPTIONAL
!IV_PORT TYPE /AWS1/MEMINTEGEROPTIONAL OPTIONAL
!IV_SNSTOPICARN TYPE /AWS1/MEMSTRING OPTIONAL
!IV_TLSENABLED TYPE /AWS1/MEMBOOLEANOPTIONAL OPTIONAL
!IV_KMSKEYID TYPE /AWS1/MEMSTRING OPTIONAL
!IT_SNAPSHOTARNS TYPE /AWS1/CL_MEMSNAPSHOTARNSLIST_W=>TT_SNAPSHOTARNSLIST OPTIONAL
!IV_SNAPSHOTNAME TYPE /AWS1/MEMSTRING OPTIONAL
!IV_SNAPSHOTRETENTIONLIMIT TYPE /AWS1/MEMINTEGEROPTIONAL OPTIONAL
!IT_TAGS TYPE /AWS1/CL_MEMTAG=>TT_TAGLIST OPTIONAL
!IV_SNAPSHOTWINDOW TYPE /AWS1/MEMSTRING OPTIONAL
!IV_ACLNAME TYPE /AWS1/MEMACLNAME OPTIONAL
!IV_ENGINE TYPE /AWS1/MEMSTRING OPTIONAL
!IV_ENGINEVERSION TYPE /AWS1/MEMSTRING OPTIONAL
!IV_AUTOMINORVERSIONUPGRADE TYPE /AWS1/MEMBOOLEANOPTIONAL OPTIONAL
!IV_DATATIERING TYPE /AWS1/MEMBOOLEANOPTIONAL OPTIONAL
!IV_NETWORKTYPE TYPE /AWS1/MEMNETWORKTYPE OPTIONAL
!IV_IPDISCOVERY TYPE /AWS1/MEMIPDISCOVERY OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_memcreateclusterrsp
RAISING
/AWS1/CX_MEMACLNOTFOUNDFAULT
/AWS1/CX_MEMCLUSTALRDYEXFAULT
/AWS1/CX_MEMCLSTQUOTAFORCUSE00
/AWS1/CX_MEMINSUFFICIENTCLST00
/AWS1/CX_MEMINVACLSTATEFAULT
/AWS1/CX_MEMINVALIDCREDSEX
/AWS1/CX_MEMINVMULTIREGIONCL00
/AWS1/CX_MEMINVPRMCOMBINATIO00
/AWS1/CX_MEMINVPARAMVALUEEX
/AWS1/CX_MEMINVVPCNETWORKSTA00
/AWS1/CX_MEMMULTIREGIONCLSTN00
/AWS1/CX_MEMNODEQUOTAFORCLST00
/AWS1/CX_MEMNODEQUOTAFORCUSE00
/AWS1/CX_MEMPARMGRNOTFNDFAULT
/AWS1/CX_MEMSVCLNKROLENOTFND00
/AWS1/CX_MEMSHARDSPERCLSTQUO00
/AWS1/CX_MEMSNETGRPNOTFNDFAULT
/AWS1/CX_MEMTAGQUOTAPERRESRC00
/AWS1/CX_MEMCLIENTEXC
/AWS1/CX_MEMSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
iv_clustername TYPE /AWS1/MEMSTRING /AWS1/MEMSTRING¶
The name of the cluster. This value must be unique as it also serves as the cluster identifier.
iv_nodetype TYPE /AWS1/MEMSTRING /AWS1/MEMSTRING¶
The compute and memory capacity of the nodes in the cluster.
iv_aclname TYPE /AWS1/MEMACLNAME /AWS1/MEMACLNAME¶
The name of the Access Control List to associate with the cluster.
Optional arguments:¶
iv_multiregionclustername TYPE /AWS1/MEMSTRING /AWS1/MEMSTRING¶
The name of the multi-Region cluster to be created.
iv_parametergroupname TYPE /AWS1/MEMSTRING /AWS1/MEMSTRING¶
The name of the parameter group associated with the cluster.
iv_description TYPE /AWS1/MEMSTRING /AWS1/MEMSTRING¶
An optional description of the cluster.
iv_numshards TYPE /AWS1/MEMINTEGEROPTIONAL /AWS1/MEMINTEGEROPTIONAL¶
The number of shards the cluster will contain. The default value is 1.
iv_numreplicaspershard TYPE /AWS1/MEMINTEGEROPTIONAL /AWS1/MEMINTEGEROPTIONAL¶
The number of replicas to apply to each shard. The default value is 1. The maximum is 5.
iv_subnetgroupname TYPE /AWS1/MEMSTRING /AWS1/MEMSTRING¶
The name of the subnet group to be used for the cluster.
it_securitygroupids TYPE /AWS1/CL_MEMSECGROUPIDSLIST_W=>TT_SECURITYGROUPIDSLIST TT_SECURITYGROUPIDSLIST¶
A list of security group names to associate with this cluster.
iv_maintenancewindow TYPE /AWS1/MEMSTRING /AWS1/MEMSTRING¶
Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.
Valid values for
dddare:
sun
mon
tue
wed
thu
fri
satExample:
sun:23:00-mon:01:30
iv_port TYPE /AWS1/MEMINTEGEROPTIONAL /AWS1/MEMINTEGEROPTIONAL¶
The port number on which each of the nodes accepts connections.
iv_snstopicarn TYPE /AWS1/MEMSTRING /AWS1/MEMSTRING¶
The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.
iv_tlsenabled TYPE /AWS1/MEMBOOLEANOPTIONAL /AWS1/MEMBOOLEANOPTIONAL¶
A flag to enable in-transit encryption on the cluster.
iv_kmskeyid TYPE /AWS1/MEMSTRING /AWS1/MEMSTRING¶
The ID of the KMS key used to encrypt the cluster.
it_snapshotarns TYPE /AWS1/CL_MEMSNAPSHOTARNSLIST_W=>TT_SNAPSHOTARNSLIST TT_SNAPSHOTARNSLIST¶
A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the new cluster. The Amazon S3 object name in the ARN cannot contain any commas.
iv_snapshotname TYPE /AWS1/MEMSTRING /AWS1/MEMSTRING¶
The name of a snapshot from which to restore data into the new cluster. The snapshot status changes to restoring while the new cluster is being created.
iv_snapshotretentionlimit TYPE /AWS1/MEMINTEGEROPTIONAL /AWS1/MEMINTEGEROPTIONAL¶
The number of days for which MemoryDB retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.
it_tags TYPE /AWS1/CL_MEMTAG=>TT_TAGLIST TT_TAGLIST¶
A list of tags to be added to this resource. Tags are comma-separated key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags as shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, Value=mySecondKeyValue.
iv_snapshotwindow TYPE /AWS1/MEMSTRING /AWS1/MEMSTRING¶
The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard.
Example: 05:00-09:00
If you do not specify this parameter, MemoryDB automatically chooses an appropriate time range.
iv_engine TYPE /AWS1/MEMSTRING /AWS1/MEMSTRING¶
The name of the engine to be used for the cluster.
iv_engineversion TYPE /AWS1/MEMSTRING /AWS1/MEMSTRING¶
The version number of the Redis OSS engine to be used for the cluster.
iv_autominorversionupgrade TYPE /AWS1/MEMBOOLEANOPTIONAL /AWS1/MEMBOOLEANOPTIONAL¶
When set to true, the cluster will automatically receive minor engine version upgrades after launch.
iv_datatiering TYPE /AWS1/MEMBOOLEANOPTIONAL /AWS1/MEMBOOLEANOPTIONAL¶
Enables data tiering. Data tiering is only supported for clusters using the r6gd node type. This parameter must be set when using r6gd nodes. For more information, see Data tiering.
iv_networktype TYPE /AWS1/MEMNETWORKTYPE /AWS1/MEMNETWORKTYPE¶
Specifies the IP address type for the cluster. Valid values are 'ipv4', 'ipv6', or 'dual_stack'. When set to 'ipv4', the cluster will only be accessible via IPv4 addresses. When set to 'ipv6', the cluster will only be accessible via IPv6 addresses. When set to 'dual_stack', the cluster will be accessible via both IPv4 and IPv6 addresses. If not specified, the default is 'ipv4'.
iv_ipdiscovery TYPE /AWS1/MEMIPDISCOVERY /AWS1/MEMIPDISCOVERY¶
The mechanism for discovering IP addresses for the cluster discovery protocol. Valid values are 'ipv4' or 'ipv6'. When set to 'ipv4', cluster discovery functions such as cluster slots, cluster shards, and cluster nodes return IPv4 addresses for cluster nodes. When set to 'ipv6', the cluster discovery functions return IPv6 addresses for cluster nodes. The value must be compatible with the NetworkType parameter. If not specified, the default is 'ipv4'.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_memcreateclusterrsp /AWS1/CL_MEMCREATECLUSTERRSP¶
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->createcluster(
it_securitygroupids = VALUE /aws1/cl_memsecgroupidslist_w=>tt_securitygroupidslist(
( new /aws1/cl_memsecgroupidslist_w( |string| ) )
)
it_snapshotarns = VALUE /aws1/cl_memsnapshotarnslist_w=>tt_snapshotarnslist(
( new /aws1/cl_memsnapshotarnslist_w( |string| ) )
)
it_tags = VALUE /aws1/cl_memtag=>tt_taglist(
(
new /aws1/cl_memtag(
iv_key = |string|
iv_value = |string|
)
)
)
iv_aclname = |string|
iv_autominorversionupgrade = ABAP_TRUE
iv_clustername = |string|
iv_datatiering = ABAP_TRUE
iv_description = |string|
iv_engine = |string|
iv_engineversion = |string|
iv_ipdiscovery = |string|
iv_kmskeyid = |string|
iv_maintenancewindow = |string|
iv_multiregionclustername = |string|
iv_networktype = |string|
iv_nodetype = |string|
iv_numreplicaspershard = 123
iv_numshards = 123
iv_parametergroupname = |string|
iv_port = 123
iv_snapshotname = |string|
iv_snapshotretentionlimit = 123
iv_snapshotwindow = |string|
iv_snstopicarn = |string|
iv_subnetgroupname = |string|
iv_tlsenabled = ABAP_TRUE
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lo_cluster = lo_result->get_cluster( ).
IF lo_cluster IS NOT INITIAL.
lv_string = lo_cluster->get_name( ).
lv_string = lo_cluster->get_description( ).
lv_string = lo_cluster->get_status( ).
lo_clusterpendingupdates = lo_cluster->get_pendingupdates( ).
IF lo_clusterpendingupdates IS NOT INITIAL.
lo_reshardingstatus = lo_clusterpendingupdates->get_resharding( ).
IF lo_reshardingstatus IS NOT INITIAL.
lo_slotmigration = lo_reshardingstatus->get_slotmigration( ).
IF lo_slotmigration IS NOT INITIAL.
lv_double = lo_slotmigration->get_progresspercentage( ).
ENDIF.
ENDIF.
lo_aclsupdatestatus = lo_clusterpendingupdates->get_acls( ).
IF lo_aclsupdatestatus IS NOT INITIAL.
lv_aclname = lo_aclsupdatestatus->get_acltoapply( ).
ENDIF.
LOOP AT lo_clusterpendingupdates->get_serviceupdates( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lv_string = lo_row_1->get_serviceupdatename( ).
lv_serviceupdatestatus = lo_row_1->get_status( ).
ENDIF.
ENDLOOP.
ENDIF.
lv_string = lo_cluster->get_multiregionclustername( ).
lv_integeroptional = lo_cluster->get_numberofshards( ).
LOOP AT lo_cluster->get_shards( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_string = lo_row_3->get_name( ).
lv_string = lo_row_3->get_status( ).
lv_string = lo_row_3->get_slots( ).
LOOP AT lo_row_3->get_nodes( ) into lo_row_4.
lo_row_5 = lo_row_4.
IF lo_row_5 IS NOT INITIAL.
lv_string = lo_row_5->get_name( ).
lv_string = lo_row_5->get_status( ).
lv_string = lo_row_5->get_availabilityzone( ).
lv_tstamp = lo_row_5->get_createtime( ).
lo_endpoint = lo_row_5->get_endpoint( ).
IF lo_endpoint IS NOT INITIAL.
lv_string = lo_endpoint->get_address( ).
lv_integer = lo_endpoint->get_port( ).
ENDIF.
ENDIF.
ENDLOOP.
lv_integeroptional = lo_row_3->get_numberofnodes( ).
ENDIF.
ENDLOOP.
lv_azstatus = lo_cluster->get_availabilitymode( ).
lo_endpoint = lo_cluster->get_clusterendpoint( ).
IF lo_endpoint IS NOT INITIAL.
lv_string = lo_endpoint->get_address( ).
lv_integer = lo_endpoint->get_port( ).
ENDIF.
lv_string = lo_cluster->get_nodetype( ).
lv_string = lo_cluster->get_engine( ).
lv_string = lo_cluster->get_engineversion( ).
lv_string = lo_cluster->get_enginepatchversion( ).
lv_string = lo_cluster->get_parametergroupname( ).
lv_string = lo_cluster->get_parametergroupstatus( ).
LOOP AT lo_cluster->get_securitygroups( ) into lo_row_6.
lo_row_7 = lo_row_6.
IF lo_row_7 IS NOT INITIAL.
lv_string = lo_row_7->get_securitygroupid( ).
lv_string = lo_row_7->get_status( ).
ENDIF.
ENDLOOP.
lv_string = lo_cluster->get_subnetgroupname( ).
lv_booleanoptional = lo_cluster->get_tlsenabled( ).
lv_string = lo_cluster->get_kmskeyid( ).
lv_string = lo_cluster->get_arn( ).
lv_string = lo_cluster->get_snstopicarn( ).
lv_string = lo_cluster->get_snstopicstatus( ).
lv_integeroptional = lo_cluster->get_snapshotretentionlimit( ).
lv_string = lo_cluster->get_maintenancewindow( ).
lv_string = lo_cluster->get_snapshotwindow( ).
lv_aclname = lo_cluster->get_aclname( ).
lv_booleanoptional = lo_cluster->get_autominorversionupgrade( ).
lv_datatieringstatus = lo_cluster->get_datatiering( ).
lv_networktype = lo_cluster->get_networktype( ).
lv_ipdiscovery = lo_cluster->get_ipdiscovery( ).
ENDIF.
ENDIF.