/AWS1/IF_RDS=>CREATETENANTDATABASE()¶
About CreateTenantDatabase¶
Creates a tenant database in a DB instance that uses the multi-tenant configuration. Only RDS for Oracle container database (CDB) instances are supported.
Method Signature¶
METHODS /AWS1/IF_RDS~CREATETENANTDATABASE
IMPORTING
!IV_DBINSTANCEIDENTIFIER TYPE /AWS1/RDSSTRING OPTIONAL
!IV_TENANTDBNAME TYPE /AWS1/RDSSTRING OPTIONAL
!IV_MASTERUSERNAME TYPE /AWS1/RDSSTRING OPTIONAL
!IV_MASTERUSERPASSWORD TYPE /AWS1/RDSSENSITIVESTRING OPTIONAL
!IV_CHARACTERSETNAME TYPE /AWS1/RDSSTRING OPTIONAL
!IV_NCHARCHARACTERSETNAME TYPE /AWS1/RDSSTRING OPTIONAL
!IV_MANAGEMASTERUSERPASSWORD TYPE /AWS1/RDSBOOLEANOPTIONAL OPTIONAL
!IV_MASTERUSERSECRETKMSKEYID TYPE /AWS1/RDSSTRING OPTIONAL
!IT_TAGS TYPE /AWS1/CL_RDSTAG=>TT_TAGLIST OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_rdscretenantdatabas01
RAISING
/AWS1/CX_RDSDBINSTNOTFNDFAULT
/AWS1/CX_RDSINVDBINSTSTATEFA00
/AWS1/CX_RDSKMSKEYNOTACCIBLE00
/AWS1/CX_RDSTENANTDATABASEAL00
/AWS1/CX_RDSTENANTDATABASEQU00
/AWS1/CX_RDSCLIENTEXC
/AWS1/CX_RDSSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
iv_dbinstanceidentifier TYPE /AWS1/RDSSTRING /AWS1/RDSSTRING¶
The user-supplied DB instance identifier. RDS creates your tenant database in this DB instance. This parameter isn't case-sensitive.
iv_tenantdbname TYPE /AWS1/RDSSTRING /AWS1/RDSSTRING¶
The user-supplied name of the tenant database that you want to create in your DB instance. This parameter has the same constraints as
DBNameinCreateDBInstance.
iv_masterusername TYPE /AWS1/RDSSTRING /AWS1/RDSSTRING¶
The name for the master user account in your tenant database. RDS creates this user account in the tenant database and grants privileges to the master user. This parameter is case-sensitive.
Constraints:
Must be 1 to 16 letters, numbers, or underscores.
First character must be a letter.
Can't be a reserved word for the chosen database engine.
Optional arguments:¶
iv_masteruserpassword TYPE /AWS1/RDSSENSITIVESTRING /AWS1/RDSSENSITIVESTRING¶
The password for the master user in your tenant database.
Constraints:
Must be 8 to 30 characters.
Can include any printable ASCII character except forward slash (
/), double quote ("), at symbol (@), ampersand (&), or single quote (').Can't be specified when
ManageMasterUserPasswordis enabled.
iv_charactersetname TYPE /AWS1/RDSSTRING /AWS1/RDSSTRING¶
The character set for your tenant database. If you don't specify a value, the character set name defaults to
AL32UTF8.
iv_ncharcharactersetname TYPE /AWS1/RDSSTRING /AWS1/RDSSTRING¶
The
NCHARvalue for the tenant database.
iv_managemasteruserpassword TYPE /AWS1/RDSBOOLEANOPTIONAL /AWS1/RDSBOOLEANOPTIONAL¶
Specifies whether to manage the master user password with Amazon Web Services Secrets Manager.
For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide.
Constraints:
Can't manage the master user password with Amazon Web Services Secrets Manager if
MasterUserPasswordis specified.
iv_masterusersecretkmskeyid TYPE /AWS1/RDSSTRING /AWS1/RDSSTRING¶
The Amazon Web Services KMS key identifier to encrypt a secret that is automatically generated and managed in Amazon Web Services Secrets Manager.
This setting is valid only if the master user password is managed by RDS in Amazon Web Services Secrets Manager for the DB instance.
The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.
If you don't specify
MasterUserSecretKmsKeyId, then theaws/secretsmanagerKMS key is used to encrypt the secret. If the secret is in a different Amazon Web Services account, then you can't use theaws/secretsmanagerKMS key to encrypt the secret, and you must use a customer managed KMS key.There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.
it_tags TYPE /AWS1/CL_RDSTAG=>TT_TAGLIST TT_TAGLIST¶
A list of tags.
For more information, see Tagging Amazon RDS resources in the Amazon RDS User Guide or Tagging Amazon Aurora and Amazon RDS resources in the Amazon Aurora User Guide.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_rdscretenantdatabas01 /AWS1/CL_RDSCRETENANTDATABAS01¶
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->createtenantdatabase(
it_tags = VALUE /aws1/cl_rdstag=>tt_taglist(
(
new /aws1/cl_rdstag(
iv_key = |string|
iv_value = |string|
)
)
)
iv_charactersetname = |string|
iv_dbinstanceidentifier = |string|
iv_managemasteruserpassword = ABAP_TRUE
iv_masterusername = |string|
iv_masteruserpassword = |string|
iv_masterusersecretkmskeyid = |string|
iv_ncharcharactersetname = |string|
iv_tenantdbname = |string|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lo_tenantdatabase = lo_result->get_tenantdatabase( ).
IF lo_tenantdatabase IS NOT INITIAL.
lv_tstamp = lo_tenantdatabase->get_tenantdatabasecreatetime( ).
lv_string = lo_tenantdatabase->get_dbinstanceidentifier( ).
lv_string = lo_tenantdatabase->get_tenantdbname( ).
lv_string = lo_tenantdatabase->get_status( ).
lv_string = lo_tenantdatabase->get_masterusername( ).
lv_string = lo_tenantdatabase->get_dbiresourceid( ).
lv_string = lo_tenantdatabase->get_tenantdatabaseresourceid( ).
lv_string = lo_tenantdatabase->get_tenantdatabasearn( ).
lv_string = lo_tenantdatabase->get_charactersetname( ).
lv_string = lo_tenantdatabase->get_ncharcharactersetname( ).
lv_boolean = lo_tenantdatabase->get_deletionprotection( ).
lo_tenantdatabasependingmo = lo_tenantdatabase->get_pendingmodifiedvalues( ).
IF lo_tenantdatabasependingmo IS NOT INITIAL.
lv_sensitivestring = lo_tenantdatabasependingmo->get_masteruserpassword( ).
lv_string = lo_tenantdatabasependingmo->get_tenantdbname( ).
ENDIF.
lo_masterusersecret = lo_tenantdatabase->get_masterusersecret( ).
IF lo_masterusersecret IS NOT INITIAL.
lv_string = lo_masterusersecret->get_secretarn( ).
lv_string = lo_masterusersecret->get_secretstatus( ).
lv_string = lo_masterusersecret->get_kmskeyid( ).
ENDIF.
LOOP AT lo_tenantdatabase->get_taglist( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lv_string = lo_row_1->get_key( ).
lv_string = lo_row_1->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.