io.cloudshiftdev.awscdk.services.rds.CfnDBClusterProps.kt Maven / Gradle / Ivy
The newest version!
@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION")
package io.cloudshiftdev.awscdk.services.rds
import io.cloudshiftdev.awscdk.CfnTag
import io.cloudshiftdev.awscdk.IResolvable
import io.cloudshiftdev.awscdk.common.CdkDslMarker
import io.cloudshiftdev.awscdk.common.CdkObject
import io.cloudshiftdev.awscdk.common.CdkObjectWrappers
import kotlin.Any
import kotlin.Boolean
import kotlin.Number
import kotlin.String
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* Properties for defining a `CfnDBCluster`.
*
* Example:
*
* ```
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import io.cloudshiftdev.awscdk.services.rds.*;
* CfnDBClusterProps cfnDBClusterProps = CfnDBClusterProps.builder()
* .allocatedStorage(123)
* .associatedRoles(List.of(DBClusterRoleProperty.builder()
* .roleArn("roleArn")
* // the properties below are optional
* .featureName("featureName")
* .build()))
* .autoMinorVersionUpgrade(false)
* .availabilityZones(List.of("availabilityZones"))
* .backtrackWindow(123)
* .backupRetentionPeriod(123)
* .copyTagsToSnapshot(false)
* .databaseName("databaseName")
* .dbClusterIdentifier("dbClusterIdentifier")
* .dbClusterInstanceClass("dbClusterInstanceClass")
* .dbClusterParameterGroupName("dbClusterParameterGroupName")
* .dbInstanceParameterGroupName("dbInstanceParameterGroupName")
* .dbSubnetGroupName("dbSubnetGroupName")
* .dbSystemId("dbSystemId")
* .deletionProtection(false)
* .domain("domain")
* .domainIamRoleName("domainIamRoleName")
* .enableCloudwatchLogsExports(List.of("enableCloudwatchLogsExports"))
* .enableGlobalWriteForwarding(false)
* .enableHttpEndpoint(false)
* .enableIamDatabaseAuthentication(false)
* .enableLocalWriteForwarding(false)
* .engine("engine")
* .engineLifecycleSupport("engineLifecycleSupport")
* .engineMode("engineMode")
* .engineVersion("engineVersion")
* .globalClusterIdentifier("globalClusterIdentifier")
* .iops(123)
* .kmsKeyId("kmsKeyId")
* .manageMasterUserPassword(false)
* .masterUsername("masterUsername")
* .masterUserPassword("masterUserPassword")
* .masterUserSecret(MasterUserSecretProperty.builder()
* .kmsKeyId("kmsKeyId")
* .secretArn("secretArn")
* .build())
* .monitoringInterval(123)
* .monitoringRoleArn("monitoringRoleArn")
* .networkType("networkType")
* .performanceInsightsEnabled(false)
* .performanceInsightsKmsKeyId("performanceInsightsKmsKeyId")
* .performanceInsightsRetentionPeriod(123)
* .port(123)
* .preferredBackupWindow("preferredBackupWindow")
* .preferredMaintenanceWindow("preferredMaintenanceWindow")
* .publiclyAccessible(false)
* .replicationSourceIdentifier("replicationSourceIdentifier")
* .restoreToTime("restoreToTime")
* .restoreType("restoreType")
* .scalingConfiguration(ScalingConfigurationProperty.builder()
* .autoPause(false)
* .maxCapacity(123)
* .minCapacity(123)
* .secondsBeforeTimeout(123)
* .secondsUntilAutoPause(123)
* .timeoutAction("timeoutAction")
* .build())
* .serverlessV2ScalingConfiguration(ServerlessV2ScalingConfigurationProperty.builder()
* .maxCapacity(123)
* .minCapacity(123)
* .build())
* .snapshotIdentifier("snapshotIdentifier")
* .sourceDbClusterIdentifier("sourceDbClusterIdentifier")
* .sourceRegion("sourceRegion")
* .storageEncrypted(false)
* .storageType("storageType")
* .tags(List.of(CfnTag.builder()
* .key("key")
* .value("value")
* .build()))
* .useLatestRestorableTime(false)
* .vpcSecurityGroupIds(List.of("vpcSecurityGroupIds"))
* .build();
* ```
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html)
*/
public interface CfnDBClusterProps {
/**
* The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB
* cluster.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* This setting is required to create a Multi-AZ DB cluster.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-allocatedstorage)
*/
public fun allocatedStorage(): Number? = unwrap(this).getAllocatedStorage()
/**
* Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with
* the DB cluster.
*
* IAM roles that are associated with a DB cluster grant permission for the DB cluster to access
* other Amazon Web Services on your behalf.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-associatedroles)
*/
public fun associatedRoles(): Any? = unwrap(this).getAssociatedRoles()
/**
* Specifies whether minor engine upgrades are applied automatically to the DB cluster during the
* maintenance window.
*
* By default, minor engine upgrades are applied automatically.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-autominorversionupgrade)
*/
public fun autoMinorVersionUpgrade(): Any? = unwrap(this).getAutoMinorVersionUpgrade()
/**
* A list of Availability Zones (AZs) where instances in the DB cluster can be created.
*
* For information on AWS Regions and Availability Zones, see [Choosing the Regions and
* Availability
* Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-availabilityzones)
*/
public fun availabilityZones(): List = unwrap(this).getAvailabilityZones() ?: emptyList()
/**
* The target backtrack window, in seconds. To disable backtracking, set this value to `0` .
*
* Valid for Cluster Type: Aurora MySQL DB clusters only
*
* Default: `0`
*
* Constraints:
*
* * If specified, this value must be set to a number from 0 to 259,200 (72 hours).
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-backtrackwindow)
*/
public fun backtrackWindow(): Number? = unwrap(this).getBacktrackWindow()
/**
* The number of days for which automated backups are retained.
*
* Default: 1
*
* Constraints:
*
* * Must be a value from 1 to 35
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* Default: - 1
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-backupretentionperiod)
*/
public fun backupRetentionPeriod(): Number? = unwrap(this).getBackupRetentionPeriod()
/**
* A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB
* cluster.
*
* The default is not to copy them.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-copytagstosnapshot)
*/
public fun copyTagsToSnapshot(): Any? = unwrap(this).getCopyTagsToSnapshot()
/**
* The name of your database.
*
* If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For
* naming constraints, see [Naming
* Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-databasename)
*/
public fun databaseName(): String? = unwrap(this).getDatabaseName()
/**
* The DB cluster identifier. This parameter is stored as a lowercase string.
*
* Constraints:
*
* * Must contain from 1 to 63 letters, numbers, or hyphens.
* * First character must be a letter.
* * Can't end with a hyphen or contain two consecutive hyphens.
*
* Example: `my-cluster1`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbclusteridentifier)
*/
public fun dbClusterIdentifier(): String? = unwrap(this).getDbClusterIdentifier()
/**
* The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example
* `db.m6gd.xlarge` . Not all DB instance classes are available in all AWS Regions , or for all
* database engines.
*
* For the full list of DB instance classes and availability for your engine, see [DB instance
* class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in
* the *Amazon RDS User Guide* .
*
* This setting is required to create a Multi-AZ DB cluster.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbclusterinstanceclass)
*/
public fun dbClusterInstanceClass(): String? = unwrap(this).getDbClusterInstanceClass()
/**
* The name of the DB cluster parameter group to associate with this DB cluster.
*
*
* If you apply a parameter group to an existing DB cluster, then its DB instances might need to
* reboot. This can result in an outage while the DB instances are rebooting.
*
* If you apply a change to parameter group associated with a stopped DB cluster, then the update
* stack waits until the DB cluster is started.
*
*
* To list all of the available DB cluster parameter group names, use the following command:
*
* `aws rds describe-db-cluster-parameter-groups --query
* "DBClusterParameterGroups[].DBClusterParameterGroupName" --output text`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbclusterparametergroupname)
*/
public fun dbClusterParameterGroupName(): String? = unwrap(this).getDbClusterParameterGroupName()
/**
* The name of the DB parameter group to apply to all instances of the DB cluster.
*
*
* When you apply a parameter group using the `DBInstanceParameterGroupName` parameter, the DB
* cluster isn't rebooted automatically. Also, parameter changes are applied immediately rather than
* during the next maintenance window.
*
*
* Valid for Cluster Type: Aurora DB clusters only
*
* Default: The existing name setting
*
* Constraints:
*
* * The DB parameter group must be in the same DB parameter group family as this DB cluster.
* * The `DBInstanceParameterGroupName` parameter is valid in combination with the
* `AllowMajorVersionUpgrade` parameter for a major version upgrade only.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbinstanceparametergroupname)
*/
public fun dbInstanceParameterGroupName(): String? =
unwrap(this).getDbInstanceParameterGroupName()
/**
* A DB subnet group that you want to associate with this DB cluster.
*
* If you are restoring a DB cluster to a point in time with `RestoreType` set to `copy-on-write`
* , and don't specify a DB subnet group name, then the DB cluster is restored with a default DB
* subnet group.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbsubnetgroupname)
*/
public fun dbSubnetGroupName(): String? = unwrap(this).getDbSubnetGroupName()
/**
* Reserved for future use.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbsystemid)
*/
public fun dbSystemId(): String? = unwrap(this).getDbSystemId()
/**
* A value that indicates whether the DB cluster has deletion protection enabled.
*
* The database can't be deleted when deletion protection is enabled. By default, deletion
* protection is disabled.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-deletionprotection)
*/
public fun deletionProtection(): Any? = unwrap(this).getDeletionProtection()
/**
* Indicates the directory ID of the Active Directory to create the DB cluster.
*
* For Amazon Aurora DB clusters, Amazon RDS can use Kerberos authentication to authenticate users
* that connect to the DB cluster.
*
* For more information, see [Kerberos
* authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/kerberos-authentication.html)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-domain)
*/
public fun domain(): String? = unwrap(this).getDomain()
/**
* Specifies the name of the IAM role to use when making API calls to the Directory Service.
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-domainiamrolename)
*/
public fun domainIamRoleName(): String? = unwrap(this).getDomainIamRoleName()
/**
* The list of log types that need to be enabled for exporting to CloudWatch Logs.
*
* The values in the list depend on the DB engine being used. For more information, see
* [Publishing Database Logs to Amazon CloudWatch
* Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch)
* in the *Amazon Aurora User Guide* .
*
* *Aurora MySQL*
*
* Valid values: `audit` , `error` , `general` , `slowquery`
*
* *Aurora PostgreSQL*
*
* Valid values: `postgresql`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enablecloudwatchlogsexports)
*/
public fun enableCloudwatchLogsExports(): List =
unwrap(this).getEnableCloudwatchLogsExports() ?: emptyList()
/**
* Specifies whether to enable this DB cluster to forward write operations to the primary cluster
* of a global cluster (Aurora global database).
*
* By default, write operations are not allowed on Aurora DB clusters that are secondary clusters
* in an Aurora global database.
*
* You can set this value only on Aurora DB clusters that are members of an Aurora global
* database. With this parameter enabled, a secondary cluster can forward writes to the current
* primary cluster, and the resulting changes are replicated back to this cluster. For the primary DB
* cluster of an Aurora global database, this value is used immediately if the primary is demoted by
* a global cluster API operation, but it does nothing until then.
*
* Valid for Cluster Type: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enableglobalwriteforwarding)
*/
public fun enableGlobalWriteForwarding(): Any? = unwrap(this).getEnableGlobalWriteForwarding()
/**
* Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint
* isn't enabled.
*
* When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for
* running SQL queries on the DB cluster. You can also query your database from inside the RDS
* console with the RDS query editor.
*
* RDS Data API is supported with the following DB clusters:
*
* * Aurora PostgreSQL Serverless v2 and provisioned
* * Aurora PostgreSQL and Aurora MySQL Serverless v1
*
* For more information, see [Using RDS Data
* API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon
* Aurora User Guide* .
*
* Valid for Cluster Type: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enablehttpendpoint)
*/
public fun enableHttpEndpoint(): Any? = unwrap(this).getEnableHttpEndpoint()
/**
* A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM)
* accounts to database accounts.
*
* By default, mapping is disabled.
*
* For more information, see [IAM Database
* Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enableiamdatabaseauthentication)
*/
public fun enableIamDatabaseAuthentication(): Any? =
unwrap(this).getEnableIamDatabaseAuthentication()
/**
* Specifies whether read replicas can forward write operations to the writer DB instance in the
* DB cluster.
*
* By default, write operations aren't allowed on reader DB instances.
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enablelocalwriteforwarding)
*/
public fun enableLocalWriteForwarding(): Any? = unwrap(this).getEnableLocalWriteForwarding()
/**
* The name of the database engine to be used for this DB cluster.
*
* Valid Values:
*
* * `aurora-mysql`
* * `aurora-postgresql`
* * `mysql`
* * `postgres`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-engine)
*/
public fun engine(): String? = unwrap(this).getEngine()
/**
* The life cycle type for this DB cluster.
*
*
* By default, this value is set to `open-source-rds-extended-support` , which enrolls your DB
* cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges
* for Extended Support by setting the value to `open-source-rds-extended-support-disabled` . In this
* case, creating the DB cluster will fail if the DB major version is past its end of standard
* support date.
*
*
* You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS
* Extended Support, you can run the selected major engine version on your DB cluster past the end of
* standard support for that engine version. For more information, see the following sections:
*
* * Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended
* Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in
* the *Amazon Aurora User Guide*
* * Amazon RDS - [Using Amazon RDS Extended
* Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the
* *Amazon RDS User Guide*
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* Valid Values: `open-source-rds-extended-support | open-source-rds-extended-support-disabled`
*
* Default: `open-source-rds-extended-support`
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enginelifecyclesupport)
*/
public fun engineLifecycleSupport(): String? = unwrap(this).getEngineLifecycleSupport()
/**
* The DB engine mode of the DB cluster, either `provisioned` or `serverless` .
*
* The `serverless` engine mode only applies for Aurora Serverless v1 DB clusters. Aurora
* Serverless v2 DB clusters use the `provisioned` engine mode.
*
* For information about limitations and requirements for Serverless DB clusters, see the
* following sections in the *Amazon Aurora User Guide* :
*
* * [Limitations of Aurora Serverless
* v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations)
* * [Requirements for Aurora Serverless
* v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html)
*
* Valid for Cluster Type: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enginemode)
*/
public fun engineMode(): String? = unwrap(this).getEngineMode()
/**
* The version number of the database engine to use.
*
* To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible) and
* version 3 (8.0-compatible), use the following command:
*
* `aws rds describe-db-engine-versions --engine aurora-mysql --query
* "DBEngineVersions[].EngineVersion"`
*
* You can supply either `5.7` or `8.0` to use the default engine version for Aurora MySQL version
* 2 or version 3, respectively.
*
* To list all of the available engine versions for Aurora PostgreSQL, use the following command:
*
* `aws rds describe-db-engine-versions --engine aurora-postgresql --query
* "DBEngineVersions[].EngineVersion"`
*
* To list all of the available engine versions for RDS for MySQL, use the following command:
*
* `aws rds describe-db-engine-versions --engine mysql --query "DBEngineVersions[].EngineVersion"`
*
* To list all of the available engine versions for RDS for PostgreSQL, use the following command:
*
* `aws rds describe-db-engine-versions --engine postgres --query
* "DBEngineVersions[].EngineVersion"`
*
* *Aurora MySQL*
*
* For information, see [Database engine updates for Amazon Aurora
* MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) in
* the *Amazon Aurora User Guide* .
*
* *Aurora PostgreSQL*
*
* For information, see [Amazon Aurora PostgreSQL releases and engine
* versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html)
* in the *Amazon Aurora User Guide* .
*
* *MySQL*
*
* For information, see [Amazon RDS for
* MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt)
* in the *Amazon RDS User Guide* .
*
* *PostgreSQL*
*
* For information, see [Amazon RDS for
* PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts)
* in the *Amazon RDS User Guide* .
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-engineversion)
*/
public fun engineVersion(): String? = unwrap(this).getEngineVersion()
/**
* If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be
* a secondary member in the global database cluster, specify the global cluster ID of the global
* database cluster.
*
* To define the primary database cluster of the global cluster, use the
* [AWS::RDS::GlobalCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html)
* resource.
*
* If you aren't configuring a global database cluster, don't specify this property.
*
*
* To remove the DB cluster from a global database cluster, specify an empty value for the
* `GlobalClusterIdentifier` property.
*
*
* For information about Aurora global databases, see [Working with Amazon Aurora Global
* Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-globalclusteridentifier)
*/
public fun globalClusterIdentifier(): String? = unwrap(this).getGlobalClusterIdentifier()
/**
* The amount of Provisioned IOPS (input/output operations per second) to be initially allocated
* for each DB instance in the Multi-AZ DB cluster.
*
* For information about valid IOPS values, see [Provisioned IOPS
* storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) in
* the *Amazon RDS User Guide* .
*
* This setting is required to create a Multi-AZ DB cluster.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Constraints:
*
* * Must be a multiple between .5 and 50 of the storage amount for the DB cluster.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-iops)
*/
public fun iops(): Number? = unwrap(this).getIops()
/**
* The Amazon Resource Name (ARN) of the AWS KMS key that is used to encrypt the database
* instances in the DB cluster, such as
* `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef` .
*
* If you enable the `StorageEncrypted` property but don't specify this property, the default KMS
* key is used. If you specify this property, you must set the `StorageEncrypted` property to `true`
* .
*
* If you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is
* inherited from the snapshot, and if the DB cluster is encrypted, the specified `KmsKeyId` property
* is used.
*
* If you create a read replica of an encrypted DB cluster in another AWS Region, make sure to set
* `KmsKeyId` to a KMS key identifier that is valid in the destination AWS Region. This KMS key is
* used to encrypt the read replica in that AWS Region.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-kmskeyid)
*/
public fun kmsKeyId(): String? = unwrap(this).getKmsKeyId()
/**
* Specifies whether to manage the master user password with AWS Secrets Manager.
*
* For more information, see [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the
* *Amazon RDS User Guide* and [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in
* the *Amazon Aurora User Guide.*
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* Constraints:
*
* * Can't manage the master user password with AWS Secrets Manager if `MasterUserPassword` is
* specified.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-managemasteruserpassword)
*/
public fun manageMasterUserPassword(): Any? = unwrap(this).getManageMasterUserPassword()
/**
* The master password for the DB instance.
*
*
* If you specify the `SourceDBClusterIdentifier` , `SnapshotIdentifier` , or
* `GlobalClusterIdentifier` property, don't specify this property. The value is inherited from the
* source DB cluster, the snapshot, or the primary DB cluster for the global database cluster,
* respectively.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-masteruserpassword)
*/
public fun masterUserPassword(): String? = unwrap(this).getMasterUserPassword()
/**
* The secret managed by RDS in AWS Secrets Manager for the master user password.
*
* For more information, see [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the
* *Amazon RDS User Guide* and [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in
* the *Amazon Aurora User Guide.*
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-masterusersecret)
*/
public fun masterUserSecret(): Any? = unwrap(this).getMasterUserSecret()
/**
* The name of the master user for the DB cluster.
*
*
* If you specify the `SourceDBClusterIdentifier` , `SnapshotIdentifier` , or
* `GlobalClusterIdentifier` property, don't specify this property. The value is inherited from the
* source DB cluster, the snapshot, or the primary DB cluster for the global database cluster,
* respectively.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-masterusername)
*/
public fun masterUsername(): String? = unwrap(this).getMasterUsername()
/**
* The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the
* DB cluster.
*
* To turn off collecting Enhanced Monitoring metrics, specify `0` .
*
* If `MonitoringRoleArn` is specified, also set `MonitoringInterval` to a value other than `0` .
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Valid Values: `0 | 1 | 5 | 10 | 15 | 30 | 60`
*
* Default: `0`
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-monitoringinterval)
*/
public fun monitoringInterval(): Number? = unwrap(this).getMonitoringInterval()
/**
* The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring
* metrics to Amazon CloudWatch Logs.
*
* An example is `arn:aws:iam:123456789012:role/emaccess` . For information on creating a
* monitoring role, see [Setting up and enabling Enhanced
* Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling)
* in the *Amazon RDS User Guide* .
*
* If `MonitoringInterval` is set to a value other than `0` , supply a `MonitoringRoleArn` value.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-monitoringrolearn)
*/
public fun monitoringRoleArn(): String? = unwrap(this).getMonitoringRoleArn()
/**
* The network type of the DB cluster.
*
* Valid values:
*
* * `IPV4`
* * `DUAL`
*
* The network type is determined by the `DBSubnetGroup` specified for the DB cluster. A
* `DBSubnetGroup` can support only the IPv4 protocol or the IPv4 and IPv6 protocols ( `DUAL` ).
*
* For more information, see [Working with a DB instance in a
* VPC](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-networktype)
*/
public fun networkType(): String? = unwrap(this).getNetworkType()
/**
* Specifies whether to turn on Performance Insights for the DB cluster.
*
* For more information, see [Using Amazon Performance
* Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the
* *Amazon RDS User Guide* .
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-performanceinsightsenabled)
*/
public fun performanceInsightsEnabled(): Any? = unwrap(this).getPerformanceInsightsEnabled()
/**
* The AWS KMS key identifier for encryption of Performance Insights data.
*
* The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.
*
* If you don't specify a value for `PerformanceInsightsKMSKeyId` , then Amazon RDS uses your
* default KMS key. There is a default KMS key for your AWS account . Your AWS account has a
* different default KMS key for each AWS Region .
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-performanceinsightskmskeyid)
*/
public fun performanceInsightsKmsKeyId(): String? = unwrap(this).getPerformanceInsightsKmsKeyId()
/**
* The number of days to retain Performance Insights data.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Valid Values:
*
* * `7`
* * *month* * 31, where *month* is a number of months from 1-23. Examples: `93` (3 months * 31),
* `341` (11 months * 31), `589` (19 months * 31)
* * `731`
*
* Default: `7` days
*
* If you specify a retention period that isn't valid, such as `94` , Amazon RDS issues an error.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-performanceinsightsretentionperiod)
*/
public fun performanceInsightsRetentionPeriod(): Number? =
unwrap(this).getPerformanceInsightsRetentionPeriod()
/**
* The port number on which the DB instances in the DB cluster accept connections.
*
* Default:
*
* * When `EngineMode` is `provisioned` , `3306` (for both Aurora MySQL and Aurora PostgreSQL)
* * When `EngineMode` is `serverless` :
* * `3306` when `Engine` is `aurora` or `aurora-mysql`
* * `5432` when `Engine` is `aurora-postgresql`
*
*
* The `No interruption` on update behavior only applies to DB clusters. If you are updating a DB
* instance, see
* [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port)
* for the AWS::RDS::DBInstance resource.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-port)
*/
public fun port(): Number? = unwrap(this).getPort()
/**
* The daily time range during which automated backups are created.
*
* For more information, see [Backup
* Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow)
* in the *Amazon Aurora User Guide.*
*
* Constraints:
*
* * Must be in the format `hh24:mi-hh24:mi` .
* * Must be in Universal Coordinated Time (UTC).
* * Must not conflict with the preferred maintenance window.
* * Must be at least 30 minutes.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-preferredbackupwindow)
*/
public fun preferredBackupWindow(): String? = unwrap(this).getPreferredBackupWindow()
/**
* The weekly time range during which system maintenance can occur, in Universal Coordinated Time
* (UTC).
*
* Format: `ddd:hh24:mi-ddd:hh24:mi`
*
* The default is a 30-minute window selected at random from an 8-hour block of time for each AWS
* Region, occurring on a random day of the week. To see the time blocks available, see [Adjusting
* the Preferred DB Cluster Maintenance
* Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora)
* in the *Amazon Aurora User Guide.*
*
* Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
*
* Constraints: Minimum 30-minute window.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-preferredmaintenancewindow)
*/
public fun preferredMaintenanceWindow(): String? = unwrap(this).getPreferredMaintenanceWindow()
/**
* Specifies whether the DB cluster is publicly accessible.
*
* When the DB cluster is publicly accessible and you connect from outside of the DB cluster's
* virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP
* address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the
* private IP address. Access to the DB cluster is ultimately controlled by the security group it
* uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't
* permit it.
*
* When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name
* that resolves to a private IP address.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Default: The default behavior varies depending on whether `DBSubnetGroupName` is specified.
*
* If `DBSubnetGroupName` isn't specified, and `PubliclyAccessible` isn't specified, the following
* applies:
*
* * If the default VPC in the target Region doesn’t have an internet gateway attached to it, the
* DB cluster is private.
* * If the default VPC in the target Region has an internet gateway attached to it, the DB
* cluster is public.
*
* If `DBSubnetGroupName` is specified, and `PubliclyAccessible` isn't specified, the following
* applies:
*
* * If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB
* cluster is private.
* * If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster
* is public.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-publiclyaccessible)
*/
public fun publiclyAccessible(): Any? = unwrap(this).getPubliclyAccessible()
/**
* The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is
* created as a read replica.
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-replicationsourceidentifier)
*/
public fun replicationSourceIdentifier(): String? = unwrap(this).getReplicationSourceIdentifier()
/**
* The date and time to restore the DB cluster to.
*
* Valid Values: Value must be a time in Universal Coordinated Time (UTC) format
*
* Constraints:
*
* * Must be before the latest restorable time for the DB instance
* * Must be specified if `UseLatestRestorableTime` parameter isn't provided
* * Can't be specified if the `UseLatestRestorableTime` parameter is enabled
* * Can't be specified if the `RestoreType` parameter is `copy-on-write`
*
* This property must be used with `SourceDBClusterIdentifier` property. The resulting cluster
* will have the identifier that matches the value of the `DBclusterIdentifier` property.
*
* Example: `2015-03-07T23:45:00Z`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-restoretotime)
*/
public fun restoreToTime(): String? = unwrap(this).getRestoreToTime()
/**
* The type of restore to be performed. You can specify one of the following values:.
*
* * `full-copy` - The new DB cluster is restored as a full copy of the source DB cluster.
* * `copy-on-write` - The new DB cluster is restored as a clone of the source DB cluster.
*
* If you don't specify a `RestoreType` value, then the new DB cluster is restored as a full copy
* of the source DB cluster.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-restoretype)
*/
public fun restoreType(): String? = unwrap(this).getRestoreType()
/**
* The scaling configuration of an Aurora Serverless v1 DB cluster.
*
* This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the
* `ServerlessV2ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v1 DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-scalingconfiguration)
*/
public fun scalingConfiguration(): Any? = unwrap(this).getScalingConfiguration()
/**
* The scaling configuration of an Aurora Serverless V2 DB cluster.
*
* This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the
* `ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v2 DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-serverlessv2scalingconfiguration)
*/
public fun serverlessV2ScalingConfiguration(): Any? =
unwrap(this).getServerlessV2ScalingConfiguration()
/**
* The identifier for the DB snapshot or DB cluster snapshot to restore from.
*
* You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot.
* However, you can use only the ARN to specify a DB snapshot.
*
* After you restore a DB cluster with a `SnapshotIdentifier` property, you must specify the same
* `SnapshotIdentifier` property for any future updates to the DB cluster. When you specify this
* property for an update, the DB cluster is not restored from the snapshot again, and the data in
* the database is not changed. However, if you don't specify the `SnapshotIdentifier` property, an
* empty DB cluster is created, and the original DB cluster is deleted. If you specify a property
* that is different from the previous snapshot restore property, a new DB cluster is restored from
* the specified `SnapshotIdentifier` property, and the original DB cluster is deleted.
*
* If you specify the `SnapshotIdentifier` property to restore a DB cluster (as opposed to
* specifying it for DB cluster updates), then don't specify the following properties:
*
* * `GlobalClusterIdentifier`
* * `MasterUsername`
* * `MasterUserPassword`
* * `ReplicationSourceIdentifier`
* * `RestoreType`
* * `SourceDBClusterIdentifier`
* * `SourceRegion`
* * `StorageEncrypted` (for an encrypted snapshot)
* * `UseLatestRestorableTime`
*
* Constraints:
*
* * Must match the identifier of an existing Snapshot.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-snapshotidentifier)
*/
public fun snapshotIdentifier(): String? = unwrap(this).getSnapshotIdentifier()
/**
* When restoring a DB cluster to a point in time, the identifier of the source DB cluster from
* which to restore.
*
* Constraints:
*
* * Must match the identifier of an existing DBCluster.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-sourcedbclusteridentifier)
*/
public fun sourceDbClusterIdentifier(): String? = unwrap(this).getSourceDbClusterIdentifier()
/**
* The AWS Region which contains the source DB cluster when replicating a DB cluster. For example,
* `us-east-1` .
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-sourceregion)
*/
public fun sourceRegion(): String? = unwrap(this).getSourceRegion()
/**
* Indicates whether the DB cluster is encrypted.
*
* If you specify the `KmsKeyId` property, then you must enable encryption.
*
* If you specify the `SourceDBClusterIdentifier` property, don't specify this property. The value
* is inherited from the source DB cluster, and if the DB cluster is encrypted, the specified
* `KmsKeyId` property is used.
*
* If you specify the `SnapshotIdentifier` and the specified snapshot is encrypted, don't specify
* this property. The value is inherited from the snapshot, and the specified `KmsKeyId` property is
* used.
*
* If you specify the `SnapshotIdentifier` and the specified snapshot isn't encrypted, you can use
* this property to specify that the restored DB cluster is encrypted. Specify the `KmsKeyId`
* property for the KMS key to use for encryption. If you don't want the restored DB cluster to be
* encrypted, then don't set this property or set it to `false` .
*
*
* If you specify both the `StorageEncrypted` and `SnapshotIdentifier` properties without
* specifying the `KmsKeyId` property, then the restored DB cluster inherits the encryption settings
* from the DB snapshot that provide.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-storageencrypted)
*/
public fun storageEncrypted(): Any? = unwrap(this).getStorageEncrypted()
/**
* The storage type to associate with the DB cluster.
*
* For information on storage types for Aurora DB clusters, see [Storage configurations for Amazon
* Aurora DB
* clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html#aurora-storage-type)
* . For information on storage types for Multi-AZ DB clusters, see [Settings for creating Multi-AZ
* DB
* clusters](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html#create-multi-az-db-cluster-settings)
* .
*
* This setting is required to create a Multi-AZ DB cluster.
*
* When specified for a Multi-AZ DB cluster, a value for the `Iops` parameter is required.
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* Valid Values:
*
* * Aurora DB clusters - `aurora | aurora-iopt1`
* * Multi-AZ DB clusters - `io1 | io2 | gp3`
*
* Default:
*
* * Aurora DB clusters - `aurora`
* * Multi-AZ DB clusters - `io1`
*
*
* When you create an Aurora DB cluster with the storage type set to `aurora-iopt1` , the storage
* type is returned in the response. The storage type isn't returned when you set it to `aurora` .
*
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-storagetype)
*/
public fun storageType(): String? = unwrap(this).getStorageType()
/**
* Tags to assign to the DB cluster.
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-tags)
*/
public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()
/**
* A value that indicates whether to restore the DB cluster to the latest restorable backup time.
*
* By default, the DB cluster is not restored to the latest restorable backup time.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-uselatestrestorabletime)
*/
public fun useLatestRestorableTime(): Any? = unwrap(this).getUseLatestRestorableTime()
/**
* A list of EC2 VPC security groups to associate with this DB cluster.
*
* If you plan to update the resource, don't specify VPC security groups in a shared VPC.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-vpcsecuritygroupids)
*/
public fun vpcSecurityGroupIds(): List = unwrap(this).getVpcSecurityGroupIds() ?:
emptyList()
/**
* A builder for [CfnDBClusterProps]
*/
@CdkDslMarker
public interface Builder {
/**
* @param allocatedStorage The amount of storage in gibibytes (GiB) to allocate to each DB
* instance in the Multi-AZ DB cluster.
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* This setting is required to create a Multi-AZ DB cluster.
*/
public fun allocatedStorage(allocatedStorage: Number)
/**
* @param associatedRoles Provides a list of the AWS Identity and Access Management (IAM) roles
* that are associated with the DB cluster.
* IAM roles that are associated with a DB cluster grant permission for the DB cluster to access
* other Amazon Web Services on your behalf.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun associatedRoles(associatedRoles: IResolvable)
/**
* @param associatedRoles Provides a list of the AWS Identity and Access Management (IAM) roles
* that are associated with the DB cluster.
* IAM roles that are associated with a DB cluster grant permission for the DB cluster to access
* other Amazon Web Services on your behalf.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun associatedRoles(associatedRoles: List)
/**
* @param associatedRoles Provides a list of the AWS Identity and Access Management (IAM) roles
* that are associated with the DB cluster.
* IAM roles that are associated with a DB cluster grant permission for the DB cluster to access
* other Amazon Web Services on your behalf.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun associatedRoles(vararg associatedRoles: Any)
/**
* @param autoMinorVersionUpgrade Specifies whether minor engine upgrades are applied
* automatically to the DB cluster during the maintenance window.
* By default, minor engine upgrades are applied automatically.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*/
public fun autoMinorVersionUpgrade(autoMinorVersionUpgrade: Boolean)
/**
* @param autoMinorVersionUpgrade Specifies whether minor engine upgrades are applied
* automatically to the DB cluster during the maintenance window.
* By default, minor engine upgrades are applied automatically.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*/
public fun autoMinorVersionUpgrade(autoMinorVersionUpgrade: IResolvable)
/**
* @param availabilityZones A list of Availability Zones (AZs) where instances in the DB cluster
* can be created.
* For information on AWS Regions and Availability Zones, see [Choosing the Regions and
* Availability
* Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters only
*/
public fun availabilityZones(availabilityZones: List)
/**
* @param availabilityZones A list of Availability Zones (AZs) where instances in the DB cluster
* can be created.
* For information on AWS Regions and Availability Zones, see [Choosing the Regions and
* Availability
* Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters only
*/
public fun availabilityZones(vararg availabilityZones: String)
/**
* @param backtrackWindow The target backtrack window, in seconds. To disable backtracking, set
* this value to `0` .
* Valid for Cluster Type: Aurora MySQL DB clusters only
*
* Default: `0`
*
* Constraints:
*
* * If specified, this value must be set to a number from 0 to 259,200 (72 hours).
*/
public fun backtrackWindow(backtrackWindow: Number)
/**
* @param backupRetentionPeriod The number of days for which automated backups are retained.
* Default: 1
*
* Constraints:
*
* * Must be a value from 1 to 35
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun backupRetentionPeriod(backupRetentionPeriod: Number)
/**
* @param copyTagsToSnapshot A value that indicates whether to copy all tags from the DB cluster
* to snapshots of the DB cluster.
* The default is not to copy them.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun copyTagsToSnapshot(copyTagsToSnapshot: Boolean)
/**
* @param copyTagsToSnapshot A value that indicates whether to copy all tags from the DB cluster
* to snapshots of the DB cluster.
* The default is not to copy them.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun copyTagsToSnapshot(copyTagsToSnapshot: IResolvable)
/**
* @param databaseName The name of your database.
* If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For
* naming constraints, see [Naming
* Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun databaseName(databaseName: String)
/**
* @param dbClusterIdentifier The DB cluster identifier. This parameter is stored as a lowercase
* string.
* Constraints:
*
* * Must contain from 1 to 63 letters, numbers, or hyphens.
* * First character must be a letter.
* * Can't end with a hyphen or contain two consecutive hyphens.
*
* Example: `my-cluster1`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun dbClusterIdentifier(dbClusterIdentifier: String)
/**
* @param dbClusterInstanceClass The compute and memory capacity of each DB instance in the
* Multi-AZ DB cluster, for example `db.m6gd.xlarge` . Not all DB instance classes are available in
* all AWS Regions , or for all database engines.
* For the full list of DB instance classes and availability for your engine, see [DB instance
* class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in
* the *Amazon RDS User Guide* .
*
* This setting is required to create a Multi-AZ DB cluster.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*/
public fun dbClusterInstanceClass(dbClusterInstanceClass: String)
/**
* @param dbClusterParameterGroupName The name of the DB cluster parameter group to associate
* with this DB cluster.
*
* If you apply a parameter group to an existing DB cluster, then its DB instances might need to
* reboot. This can result in an outage while the DB instances are rebooting.
*
* If you apply a change to parameter group associated with a stopped DB cluster, then the
* update stack waits until the DB cluster is started.
*
*
* To list all of the available DB cluster parameter group names, use the following command:
*
* `aws rds describe-db-cluster-parameter-groups --query
* "DBClusterParameterGroups[].DBClusterParameterGroupName" --output text`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun dbClusterParameterGroupName(dbClusterParameterGroupName: String)
/**
* @param dbInstanceParameterGroupName The name of the DB parameter group to apply to all
* instances of the DB cluster.
*
* When you apply a parameter group using the `DBInstanceParameterGroupName` parameter, the DB
* cluster isn't rebooted automatically. Also, parameter changes are applied immediately rather
* than during the next maintenance window.
*
*
* Valid for Cluster Type: Aurora DB clusters only
*
* Default: The existing name setting
*
* Constraints:
*
* * The DB parameter group must be in the same DB parameter group family as this DB cluster.
* * The `DBInstanceParameterGroupName` parameter is valid in combination with the
* `AllowMajorVersionUpgrade` parameter for a major version upgrade only.
*/
public fun dbInstanceParameterGroupName(dbInstanceParameterGroupName: String)
/**
* @param dbSubnetGroupName A DB subnet group that you want to associate with this DB cluster.
* If you are restoring a DB cluster to a point in time with `RestoreType` set to
* `copy-on-write` , and don't specify a DB subnet group name, then the DB cluster is restored with
* a default DB subnet group.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun dbSubnetGroupName(dbSubnetGroupName: String)
/**
* @param dbSystemId Reserved for future use.
*/
public fun dbSystemId(dbSystemId: String)
/**
* @param deletionProtection A value that indicates whether the DB cluster has deletion
* protection enabled.
* The database can't be deleted when deletion protection is enabled. By default, deletion
* protection is disabled.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun deletionProtection(deletionProtection: Boolean)
/**
* @param deletionProtection A value that indicates whether the DB cluster has deletion
* protection enabled.
* The database can't be deleted when deletion protection is enabled. By default, deletion
* protection is disabled.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun deletionProtection(deletionProtection: IResolvable)
/**
* @param domain Indicates the directory ID of the Active Directory to create the DB cluster.
* For Amazon Aurora DB clusters, Amazon RDS can use Kerberos authentication to authenticate
* users that connect to the DB cluster.
*
* For more information, see [Kerberos
* authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/kerberos-authentication.html)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters only
*/
public fun domain(domain: String)
/**
* @param domainIamRoleName Specifies the name of the IAM role to use when making API calls to
* the Directory Service.
* Valid for: Aurora DB clusters only
*/
public fun domainIamRoleName(domainIamRoleName: String)
/**
* @param enableCloudwatchLogsExports The list of log types that need to be enabled for
* exporting to CloudWatch Logs.
* The values in the list depend on the DB engine being used. For more information, see
* [Publishing Database Logs to Amazon CloudWatch
* Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch)
* in the *Amazon Aurora User Guide* .
*
* *Aurora MySQL*
*
* Valid values: `audit` , `error` , `general` , `slowquery`
*
* *Aurora PostgreSQL*
*
* Valid values: `postgresql`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun enableCloudwatchLogsExports(enableCloudwatchLogsExports: List)
/**
* @param enableCloudwatchLogsExports The list of log types that need to be enabled for
* exporting to CloudWatch Logs.
* The values in the list depend on the DB engine being used. For more information, see
* [Publishing Database Logs to Amazon CloudWatch
* Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch)
* in the *Amazon Aurora User Guide* .
*
* *Aurora MySQL*
*
* Valid values: `audit` , `error` , `general` , `slowquery`
*
* *Aurora PostgreSQL*
*
* Valid values: `postgresql`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun enableCloudwatchLogsExports(vararg enableCloudwatchLogsExports: String)
/**
* @param enableGlobalWriteForwarding Specifies whether to enable this DB cluster to forward
* write operations to the primary cluster of a global cluster (Aurora global database).
* By default, write operations are not allowed on Aurora DB clusters that are secondary
* clusters in an Aurora global database.
*
* You can set this value only on Aurora DB clusters that are members of an Aurora global
* database. With this parameter enabled, a secondary cluster can forward writes to the current
* primary cluster, and the resulting changes are replicated back to this cluster. For the primary
* DB cluster of an Aurora global database, this value is used immediately if the primary is
* demoted by a global cluster API operation, but it does nothing until then.
*
* Valid for Cluster Type: Aurora DB clusters only
*/
public fun enableGlobalWriteForwarding(enableGlobalWriteForwarding: Boolean)
/**
* @param enableGlobalWriteForwarding Specifies whether to enable this DB cluster to forward
* write operations to the primary cluster of a global cluster (Aurora global database).
* By default, write operations are not allowed on Aurora DB clusters that are secondary
* clusters in an Aurora global database.
*
* You can set this value only on Aurora DB clusters that are members of an Aurora global
* database. With this parameter enabled, a secondary cluster can forward writes to the current
* primary cluster, and the resulting changes are replicated back to this cluster. For the primary
* DB cluster of an Aurora global database, this value is used immediately if the primary is
* demoted by a global cluster API operation, but it does nothing until then.
*
* Valid for Cluster Type: Aurora DB clusters only
*/
public fun enableGlobalWriteForwarding(enableGlobalWriteForwarding: IResolvable)
/**
* @param enableHttpEndpoint Specifies whether to enable the HTTP endpoint for the DB cluster.
* By default, the HTTP endpoint isn't enabled.
* When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for
* running SQL queries on the DB cluster. You can also query your database from inside the RDS
* console with the RDS query editor.
*
* RDS Data API is supported with the following DB clusters:
*
* * Aurora PostgreSQL Serverless v2 and provisioned
* * Aurora PostgreSQL and Aurora MySQL Serverless v1
*
* For more information, see [Using RDS Data
* API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon
* Aurora User Guide* .
*
* Valid for Cluster Type: Aurora DB clusters only
*/
public fun enableHttpEndpoint(enableHttpEndpoint: Boolean)
/**
* @param enableHttpEndpoint Specifies whether to enable the HTTP endpoint for the DB cluster.
* By default, the HTTP endpoint isn't enabled.
* When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for
* running SQL queries on the DB cluster. You can also query your database from inside the RDS
* console with the RDS query editor.
*
* RDS Data API is supported with the following DB clusters:
*
* * Aurora PostgreSQL Serverless v2 and provisioned
* * Aurora PostgreSQL and Aurora MySQL Serverless v1
*
* For more information, see [Using RDS Data
* API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon
* Aurora User Guide* .
*
* Valid for Cluster Type: Aurora DB clusters only
*/
public fun enableHttpEndpoint(enableHttpEndpoint: IResolvable)
/**
* @param enableIamDatabaseAuthentication A value that indicates whether to enable mapping of
* AWS Identity and Access Management (IAM) accounts to database accounts.
* By default, mapping is disabled.
*
* For more information, see [IAM Database
* Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for: Aurora DB clusters only
*/
public fun enableIamDatabaseAuthentication(enableIamDatabaseAuthentication: Boolean)
/**
* @param enableIamDatabaseAuthentication A value that indicates whether to enable mapping of
* AWS Identity and Access Management (IAM) accounts to database accounts.
* By default, mapping is disabled.
*
* For more information, see [IAM Database
* Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for: Aurora DB clusters only
*/
public fun enableIamDatabaseAuthentication(enableIamDatabaseAuthentication: IResolvable)
/**
* @param enableLocalWriteForwarding Specifies whether read replicas can forward write
* operations to the writer DB instance in the DB cluster.
* By default, write operations aren't allowed on reader DB instances.
*
* Valid for: Aurora DB clusters only
*/
public fun enableLocalWriteForwarding(enableLocalWriteForwarding: Boolean)
/**
* @param enableLocalWriteForwarding Specifies whether read replicas can forward write
* operations to the writer DB instance in the DB cluster.
* By default, write operations aren't allowed on reader DB instances.
*
* Valid for: Aurora DB clusters only
*/
public fun enableLocalWriteForwarding(enableLocalWriteForwarding: IResolvable)
/**
* @param engine The name of the database engine to be used for this DB cluster.
* Valid Values:
*
* * `aurora-mysql`
* * `aurora-postgresql`
* * `mysql`
* * `postgres`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun engine(engine: String)
/**
* @param engineLifecycleSupport The life cycle type for this DB cluster.
*
* By default, this value is set to `open-source-rds-extended-support` , which enrolls your DB
* cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges
* for Extended Support by setting the value to `open-source-rds-extended-support-disabled` . In
* this case, creating the DB cluster will fail if the DB major version is past its end of standard
* support date.
*
*
* You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS
* Extended Support, you can run the selected major engine version on your DB cluster past the end
* of standard support for that engine version. For more information, see the following sections:
*
* * Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended
* Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in
* the *Amazon Aurora User Guide*
* * Amazon RDS - [Using Amazon RDS Extended
* Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the
* *Amazon RDS User Guide*
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* Valid Values: `open-source-rds-extended-support | open-source-rds-extended-support-disabled`
*
* Default: `open-source-rds-extended-support`
*/
public fun engineLifecycleSupport(engineLifecycleSupport: String)
/**
* @param engineMode The DB engine mode of the DB cluster, either `provisioned` or `serverless`
* .
* The `serverless` engine mode only applies for Aurora Serverless v1 DB clusters. Aurora
* Serverless v2 DB clusters use the `provisioned` engine mode.
*
* For information about limitations and requirements for Serverless DB clusters, see the
* following sections in the *Amazon Aurora User Guide* :
*
* * [Limitations of Aurora Serverless
* v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations)
* * [Requirements for Aurora Serverless
* v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html)
*
* Valid for Cluster Type: Aurora DB clusters only
*/
public fun engineMode(engineMode: String)
/**
* @param engineVersion The version number of the database engine to use.
* To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible) and
* version 3 (8.0-compatible), use the following command:
*
* `aws rds describe-db-engine-versions --engine aurora-mysql --query
* "DBEngineVersions[].EngineVersion"`
*
* You can supply either `5.7` or `8.0` to use the default engine version for Aurora MySQL
* version 2 or version 3, respectively.
*
* To list all of the available engine versions for Aurora PostgreSQL, use the following
* command:
*
* `aws rds describe-db-engine-versions --engine aurora-postgresql --query
* "DBEngineVersions[].EngineVersion"`
*
* To list all of the available engine versions for RDS for MySQL, use the following command:
*
* `aws rds describe-db-engine-versions --engine mysql --query
* "DBEngineVersions[].EngineVersion"`
*
* To list all of the available engine versions for RDS for PostgreSQL, use the following
* command:
*
* `aws rds describe-db-engine-versions --engine postgres --query
* "DBEngineVersions[].EngineVersion"`
*
* *Aurora MySQL*
*
* For information, see [Database engine updates for Amazon Aurora
* MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) in
* the *Amazon Aurora User Guide* .
*
* *Aurora PostgreSQL*
*
* For information, see [Amazon Aurora PostgreSQL releases and engine
* versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html)
* in the *Amazon Aurora User Guide* .
*
* *MySQL*
*
* For information, see [Amazon RDS for
* MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt)
* in the *Amazon RDS User Guide* .
*
* *PostgreSQL*
*
* For information, see [Amazon RDS for
* PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts)
* in the *Amazon RDS User Guide* .
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun engineVersion(engineVersion: String)
/**
* @param globalClusterIdentifier If you are configuring an Aurora global database cluster and
* want your Aurora DB cluster to be a secondary member in the global database cluster, specify the
* global cluster ID of the global database cluster.
* To define the primary database cluster of the global cluster, use the
* [AWS::RDS::GlobalCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html)
* resource.
*
* If you aren't configuring a global database cluster, don't specify this property.
*
*
* To remove the DB cluster from a global database cluster, specify an empty value for the
* `GlobalClusterIdentifier` property.
*
*
* For information about Aurora global databases, see [Working with Amazon Aurora Global
* Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters only
*/
public fun globalClusterIdentifier(globalClusterIdentifier: String)
/**
* @param iops The amount of Provisioned IOPS (input/output operations per second) to be
* initially allocated for each DB instance in the Multi-AZ DB cluster.
* For information about valid IOPS values, see [Provisioned IOPS
* storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) in
* the *Amazon RDS User Guide* .
*
* This setting is required to create a Multi-AZ DB cluster.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Constraints:
*
* * Must be a multiple between .5 and 50 of the storage amount for the DB cluster.
*/
public fun iops(iops: Number)
/**
* @param kmsKeyId The Amazon Resource Name (ARN) of the AWS KMS key that is used to encrypt the
* database instances in the DB cluster, such as
* `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef` .
* If you enable the `StorageEncrypted` property but don't specify this property, the default
* KMS key is used. If you specify this property, you must set the `StorageEncrypted` property to
* `true` .
*
* If you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is
* inherited from the snapshot, and if the DB cluster is encrypted, the specified `KmsKeyId`
* property is used.
*
* If you create a read replica of an encrypted DB cluster in another AWS Region, make sure to
* set `KmsKeyId` to a KMS key identifier that is valid in the destination AWS Region. This KMS key
* is used to encrypt the read replica in that AWS Region.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun kmsKeyId(kmsKeyId: String)
/**
* @param manageMasterUserPassword Specifies whether to manage the master user password with AWS
* Secrets Manager.
* For more information, see [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the
* *Amazon RDS User Guide* and [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* Constraints:
*
* * Can't manage the master user password with AWS Secrets Manager if `MasterUserPassword` is
* specified.
*/
public fun manageMasterUserPassword(manageMasterUserPassword: Boolean)
/**
* @param manageMasterUserPassword Specifies whether to manage the master user password with AWS
* Secrets Manager.
* For more information, see [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the
* *Amazon RDS User Guide* and [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* Constraints:
*
* * Can't manage the master user password with AWS Secrets Manager if `MasterUserPassword` is
* specified.
*/
public fun manageMasterUserPassword(manageMasterUserPassword: IResolvable)
/**
* @param masterUserPassword The master password for the DB instance.
*
* If you specify the `SourceDBClusterIdentifier` , `SnapshotIdentifier` , or
* `GlobalClusterIdentifier` property, don't specify this property. The value is inherited from the
* source DB cluster, the snapshot, or the primary DB cluster for the global database cluster,
* respectively.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun masterUserPassword(masterUserPassword: String)
/**
* @param masterUserSecret The secret managed by RDS in AWS Secrets Manager for the master user
* password.
* For more information, see [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the
* *Amazon RDS User Guide* and [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html)
* in the *Amazon Aurora User Guide.*
*/
public fun masterUserSecret(masterUserSecret: IResolvable)
/**
* @param masterUserSecret The secret managed by RDS in AWS Secrets Manager for the master user
* password.
* For more information, see [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the
* *Amazon RDS User Guide* and [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html)
* in the *Amazon Aurora User Guide.*
*/
public fun masterUserSecret(masterUserSecret: CfnDBCluster.MasterUserSecretProperty)
/**
* @param masterUserSecret The secret managed by RDS in AWS Secrets Manager for the master user
* password.
* For more information, see [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the
* *Amazon RDS User Guide* and [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html)
* in the *Amazon Aurora User Guide.*
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("0254e2f4dd72b3247f641935d466cdd46104f547d7ae4c2079f9c0da520fbb36")
public
fun masterUserSecret(masterUserSecret: CfnDBCluster.MasterUserSecretProperty.Builder.() -> Unit)
/**
* @param masterUsername The name of the master user for the DB cluster.
*
* If you specify the `SourceDBClusterIdentifier` , `SnapshotIdentifier` , or
* `GlobalClusterIdentifier` property, don't specify this property. The value is inherited from the
* source DB cluster, the snapshot, or the primary DB cluster for the global database cluster,
* respectively.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun masterUsername(masterUsername: String)
/**
* @param monitoringInterval The interval, in seconds, between points when Enhanced Monitoring
* metrics are collected for the DB cluster.
* To turn off collecting Enhanced Monitoring metrics, specify `0` .
*
* If `MonitoringRoleArn` is specified, also set `MonitoringInterval` to a value other than `0`
* .
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Valid Values: `0 | 1 | 5 | 10 | 15 | 30 | 60`
*
* Default: `0`
*/
public fun monitoringInterval(monitoringInterval: Number)
/**
* @param monitoringRoleArn The Amazon Resource Name (ARN) for the IAM role that permits RDS to
* send Enhanced Monitoring metrics to Amazon CloudWatch Logs.
* An example is `arn:aws:iam:123456789012:role/emaccess` . For information on creating a
* monitoring role, see [Setting up and enabling Enhanced
* Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling)
* in the *Amazon RDS User Guide* .
*
* If `MonitoringInterval` is set to a value other than `0` , supply a `MonitoringRoleArn`
* value.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*/
public fun monitoringRoleArn(monitoringRoleArn: String)
/**
* @param networkType The network type of the DB cluster.
* Valid values:
*
* * `IPV4`
* * `DUAL`
*
* The network type is determined by the `DBSubnetGroup` specified for the DB cluster. A
* `DBSubnetGroup` can support only the IPv4 protocol or the IPv4 and IPv6 protocols ( `DUAL` ).
*
* For more information, see [Working with a DB instance in a
* VPC](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for: Aurora DB clusters only
*/
public fun networkType(networkType: String)
/**
* @param performanceInsightsEnabled Specifies whether to turn on Performance Insights for the
* DB cluster.
* For more information, see [Using Amazon Performance
* Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the
* *Amazon RDS User Guide* .
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*/
public fun performanceInsightsEnabled(performanceInsightsEnabled: Boolean)
/**
* @param performanceInsightsEnabled Specifies whether to turn on Performance Insights for the
* DB cluster.
* For more information, see [Using Amazon Performance
* Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the
* *Amazon RDS User Guide* .
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*/
public fun performanceInsightsEnabled(performanceInsightsEnabled: IResolvable)
/**
* @param performanceInsightsKmsKeyId The AWS KMS key identifier for encryption of Performance
* Insights data.
* The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.
*
* If you don't specify a value for `PerformanceInsightsKMSKeyId` , then Amazon RDS uses your
* default KMS key. There is a default KMS key for your AWS account . Your AWS account has a
* different default KMS key for each AWS Region .
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*/
public fun performanceInsightsKmsKeyId(performanceInsightsKmsKeyId: String)
/**
* @param performanceInsightsRetentionPeriod The number of days to retain Performance Insights
* data.
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Valid Values:
*
* * `7`
* * *month* * 31, where *month* is a number of months from 1-23. Examples: `93` (3 months *
* 31), `341` (11 months * 31), `589` (19 months * 31)
* * `731`
*
* Default: `7` days
*
* If you specify a retention period that isn't valid, such as `94` , Amazon RDS issues an
* error.
*/
public fun performanceInsightsRetentionPeriod(performanceInsightsRetentionPeriod: Number)
/**
* @param port The port number on which the DB instances in the DB cluster accept connections.
* Default:
*
* * When `EngineMode` is `provisioned` , `3306` (for both Aurora MySQL and Aurora PostgreSQL)
* * When `EngineMode` is `serverless` :
* * `3306` when `Engine` is `aurora` or `aurora-mysql`
* * `5432` when `Engine` is `aurora-postgresql`
*
*
* The `No interruption` on update behavior only applies to DB clusters. If you are updating a
* DB instance, see
* [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port)
* for the AWS::RDS::DBInstance resource.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun port(port: Number)
/**
* @param preferredBackupWindow The daily time range during which automated backups are created.
* For more information, see [Backup
* Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow)
* in the *Amazon Aurora User Guide.*
*
* Constraints:
*
* * Must be in the format `hh24:mi-hh24:mi` .
* * Must be in Universal Coordinated Time (UTC).
* * Must not conflict with the preferred maintenance window.
* * Must be at least 30 minutes.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun preferredBackupWindow(preferredBackupWindow: String)
/**
* @param preferredMaintenanceWindow The weekly time range during which system maintenance can
* occur, in Universal Coordinated Time (UTC).
* Format: `ddd:hh24:mi-ddd:hh24:mi`
*
* The default is a 30-minute window selected at random from an 8-hour block of time for each
* AWS Region, occurring on a random day of the week. To see the time blocks available, see
* [Adjusting the Preferred DB Cluster Maintenance
* Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora)
* in the *Amazon Aurora User Guide.*
*
* Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
*
* Constraints: Minimum 30-minute window.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun preferredMaintenanceWindow(preferredMaintenanceWindow: String)
/**
* @param publiclyAccessible Specifies whether the DB cluster is publicly accessible.
* When the DB cluster is publicly accessible and you connect from outside of the DB cluster's
* virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP
* address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to
* the private IP address. Access to the DB cluster is ultimately controlled by the security group
* it uses. That public access isn't permitted if the security group assigned to the DB cluster
* doesn't permit it.
*
* When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name
* that resolves to a private IP address.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Default: The default behavior varies depending on whether `DBSubnetGroupName` is specified.
*
* If `DBSubnetGroupName` isn't specified, and `PubliclyAccessible` isn't specified, the
* following applies:
*
* * If the default VPC in the target Region doesn’t have an internet gateway attached to it,
* the DB cluster is private.
* * If the default VPC in the target Region has an internet gateway attached to it, the DB
* cluster is public.
*
* If `DBSubnetGroupName` is specified, and `PubliclyAccessible` isn't specified, the following
* applies:
*
* * If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the
* DB cluster is private.
* * If the subnets are part of a VPC that has an internet gateway attached to it, the DB
* cluster is public.
*/
public fun publiclyAccessible(publiclyAccessible: Boolean)
/**
* @param publiclyAccessible Specifies whether the DB cluster is publicly accessible.
* When the DB cluster is publicly accessible and you connect from outside of the DB cluster's
* virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP
* address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to
* the private IP address. Access to the DB cluster is ultimately controlled by the security group
* it uses. That public access isn't permitted if the security group assigned to the DB cluster
* doesn't permit it.
*
* When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name
* that resolves to a private IP address.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Default: The default behavior varies depending on whether `DBSubnetGroupName` is specified.
*
* If `DBSubnetGroupName` isn't specified, and `PubliclyAccessible` isn't specified, the
* following applies:
*
* * If the default VPC in the target Region doesn’t have an internet gateway attached to it,
* the DB cluster is private.
* * If the default VPC in the target Region has an internet gateway attached to it, the DB
* cluster is public.
*
* If `DBSubnetGroupName` is specified, and `PubliclyAccessible` isn't specified, the following
* applies:
*
* * If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the
* DB cluster is private.
* * If the subnets are part of a VPC that has an internet gateway attached to it, the DB
* cluster is public.
*/
public fun publiclyAccessible(publiclyAccessible: IResolvable)
/**
* @param replicationSourceIdentifier The Amazon Resource Name (ARN) of the source DB instance
* or DB cluster if this DB cluster is created as a read replica.
* Valid for: Aurora DB clusters only
*/
public fun replicationSourceIdentifier(replicationSourceIdentifier: String)
/**
* @param restoreToTime The date and time to restore the DB cluster to.
* Valid Values: Value must be a time in Universal Coordinated Time (UTC) format
*
* Constraints:
*
* * Must be before the latest restorable time for the DB instance
* * Must be specified if `UseLatestRestorableTime` parameter isn't provided
* * Can't be specified if the `UseLatestRestorableTime` parameter is enabled
* * Can't be specified if the `RestoreType` parameter is `copy-on-write`
*
* This property must be used with `SourceDBClusterIdentifier` property. The resulting cluster
* will have the identifier that matches the value of the `DBclusterIdentifier` property.
*
* Example: `2015-03-07T23:45:00Z`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun restoreToTime(restoreToTime: String)
/**
* @param restoreType The type of restore to be performed. You can specify one of the following
* values:.
* * `full-copy` - The new DB cluster is restored as a full copy of the source DB cluster.
* * `copy-on-write` - The new DB cluster is restored as a clone of the source DB cluster.
*
* If you don't specify a `RestoreType` value, then the new DB cluster is restored as a full
* copy of the source DB cluster.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun restoreType(restoreType: String)
/**
* @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster.
* This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the
* `ServerlessV2ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v1 DB clusters only
*/
public fun scalingConfiguration(scalingConfiguration: IResolvable)
/**
* @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster.
* This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the
* `ServerlessV2ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v1 DB clusters only
*/
public fun scalingConfiguration(scalingConfiguration: CfnDBCluster.ScalingConfigurationProperty)
/**
* @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster.
* This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the
* `ServerlessV2ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v1 DB clusters only
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("669faa99f851803fe28a32b25a008dcb1931d2e5b37783cf7d41a878fa8a1319")
public
fun scalingConfiguration(scalingConfiguration: CfnDBCluster.ScalingConfigurationProperty.Builder.() -> Unit)
/**
* @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2
* DB cluster.
* This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the
* `ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v2 DB clusters only
*/
public fun serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration: IResolvable)
/**
* @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2
* DB cluster.
* This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the
* `ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v2 DB clusters only
*/
public
fun serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration: CfnDBCluster.ServerlessV2ScalingConfigurationProperty)
/**
* @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2
* DB cluster.
* This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the
* `ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v2 DB clusters only
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("1a7e00644e444918868049b5781d6f9ccb5826a3d4ffc86dc7538c18aba397e2")
public
fun serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration: CfnDBCluster.ServerlessV2ScalingConfigurationProperty.Builder.() -> Unit)
/**
* @param snapshotIdentifier The identifier for the DB snapshot or DB cluster snapshot to
* restore from.
* You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster
* snapshot. However, you can use only the ARN to specify a DB snapshot.
*
* After you restore a DB cluster with a `SnapshotIdentifier` property, you must specify the
* same `SnapshotIdentifier` property for any future updates to the DB cluster. When you specify
* this property for an update, the DB cluster is not restored from the snapshot again, and the
* data in the database is not changed. However, if you don't specify the `SnapshotIdentifier`
* property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify
* a property that is different from the previous snapshot restore property, a new DB cluster is
* restored from the specified `SnapshotIdentifier` property, and the original DB cluster is
* deleted.
*
* If you specify the `SnapshotIdentifier` property to restore a DB cluster (as opposed to
* specifying it for DB cluster updates), then don't specify the following properties:
*
* * `GlobalClusterIdentifier`
* * `MasterUsername`
* * `MasterUserPassword`
* * `ReplicationSourceIdentifier`
* * `RestoreType`
* * `SourceDBClusterIdentifier`
* * `SourceRegion`
* * `StorageEncrypted` (for an encrypted snapshot)
* * `UseLatestRestorableTime`
*
* Constraints:
*
* * Must match the identifier of an existing Snapshot.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun snapshotIdentifier(snapshotIdentifier: String)
/**
* @param sourceDbClusterIdentifier When restoring a DB cluster to a point in time, the
* identifier of the source DB cluster from which to restore.
* Constraints:
*
* * Must match the identifier of an existing DBCluster.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun sourceDbClusterIdentifier(sourceDbClusterIdentifier: String)
/**
* @param sourceRegion The AWS Region which contains the source DB cluster when replicating a DB
* cluster. For example, `us-east-1` .
* Valid for: Aurora DB clusters only
*/
public fun sourceRegion(sourceRegion: String)
/**
* @param storageEncrypted Indicates whether the DB cluster is encrypted.
* If you specify the `KmsKeyId` property, then you must enable encryption.
*
* If you specify the `SourceDBClusterIdentifier` property, don't specify this property. The
* value is inherited from the source DB cluster, and if the DB cluster is encrypted, the specified
* `KmsKeyId` property is used.
*
* If you specify the `SnapshotIdentifier` and the specified snapshot is encrypted, don't
* specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId`
* property is used.
*
* If you specify the `SnapshotIdentifier` and the specified snapshot isn't encrypted, you can
* use this property to specify that the restored DB cluster is encrypted. Specify the `KmsKeyId`
* property for the KMS key to use for encryption. If you don't want the restored DB cluster to be
* encrypted, then don't set this property or set it to `false` .
*
*
* If you specify both the `StorageEncrypted` and `SnapshotIdentifier` properties without
* specifying the `KmsKeyId` property, then the restored DB cluster inherits the encryption
* settings from the DB snapshot that provide.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun storageEncrypted(storageEncrypted: Boolean)
/**
* @param storageEncrypted Indicates whether the DB cluster is encrypted.
* If you specify the `KmsKeyId` property, then you must enable encryption.
*
* If you specify the `SourceDBClusterIdentifier` property, don't specify this property. The
* value is inherited from the source DB cluster, and if the DB cluster is encrypted, the specified
* `KmsKeyId` property is used.
*
* If you specify the `SnapshotIdentifier` and the specified snapshot is encrypted, don't
* specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId`
* property is used.
*
* If you specify the `SnapshotIdentifier` and the specified snapshot isn't encrypted, you can
* use this property to specify that the restored DB cluster is encrypted. Specify the `KmsKeyId`
* property for the KMS key to use for encryption. If you don't want the restored DB cluster to be
* encrypted, then don't set this property or set it to `false` .
*
*
* If you specify both the `StorageEncrypted` and `SnapshotIdentifier` properties without
* specifying the `KmsKeyId` property, then the restored DB cluster inherits the encryption
* settings from the DB snapshot that provide.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun storageEncrypted(storageEncrypted: IResolvable)
/**
* @param storageType The storage type to associate with the DB cluster.
* For information on storage types for Aurora DB clusters, see [Storage configurations for
* Amazon Aurora DB
* clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html#aurora-storage-type)
* . For information on storage types for Multi-AZ DB clusters, see [Settings for creating Multi-AZ
* DB
* clusters](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html#create-multi-az-db-cluster-settings)
* .
*
* This setting is required to create a Multi-AZ DB cluster.
*
* When specified for a Multi-AZ DB cluster, a value for the `Iops` parameter is required.
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* Valid Values:
*
* * Aurora DB clusters - `aurora | aurora-iopt1`
* * Multi-AZ DB clusters - `io1 | io2 | gp3`
*
* Default:
*
* * Aurora DB clusters - `aurora`
* * Multi-AZ DB clusters - `io1`
*
*
* When you create an Aurora DB cluster with the storage type set to `aurora-iopt1` , the
* storage type is returned in the response. The storage type isn't returned when you set it to
* `aurora` .
*/
public fun storageType(storageType: String)
/**
* @param tags Tags to assign to the DB cluster.
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun tags(tags: List)
/**
* @param tags Tags to assign to the DB cluster.
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun tags(vararg tags: CfnTag)
/**
* @param useLatestRestorableTime A value that indicates whether to restore the DB cluster to
* the latest restorable backup time.
* By default, the DB cluster is not restored to the latest restorable backup time.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun useLatestRestorableTime(useLatestRestorableTime: Boolean)
/**
* @param useLatestRestorableTime A value that indicates whether to restore the DB cluster to
* the latest restorable backup time.
* By default, the DB cluster is not restored to the latest restorable backup time.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun useLatestRestorableTime(useLatestRestorableTime: IResolvable)
/**
* @param vpcSecurityGroupIds A list of EC2 VPC security groups to associate with this DB
* cluster.
* If you plan to update the resource, don't specify VPC security groups in a shared VPC.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun vpcSecurityGroupIds(vpcSecurityGroupIds: List)
/**
* @param vpcSecurityGroupIds A list of EC2 VPC security groups to associate with this DB
* cluster.
* If you plan to update the resource, don't specify VPC security groups in a shared VPC.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
public fun vpcSecurityGroupIds(vararg vpcSecurityGroupIds: String)
}
private class BuilderImpl : Builder {
private val cdkBuilder: software.amazon.awscdk.services.rds.CfnDBClusterProps.Builder =
software.amazon.awscdk.services.rds.CfnDBClusterProps.builder()
/**
* @param allocatedStorage The amount of storage in gibibytes (GiB) to allocate to each DB
* instance in the Multi-AZ DB cluster.
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* This setting is required to create a Multi-AZ DB cluster.
*/
override fun allocatedStorage(allocatedStorage: Number) {
cdkBuilder.allocatedStorage(allocatedStorage)
}
/**
* @param associatedRoles Provides a list of the AWS Identity and Access Management (IAM) roles
* that are associated with the DB cluster.
* IAM roles that are associated with a DB cluster grant permission for the DB cluster to access
* other Amazon Web Services on your behalf.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun associatedRoles(associatedRoles: IResolvable) {
cdkBuilder.associatedRoles(associatedRoles.let(IResolvable.Companion::unwrap))
}
/**
* @param associatedRoles Provides a list of the AWS Identity and Access Management (IAM) roles
* that are associated with the DB cluster.
* IAM roles that are associated with a DB cluster grant permission for the DB cluster to access
* other Amazon Web Services on your behalf.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun associatedRoles(associatedRoles: List) {
cdkBuilder.associatedRoles(associatedRoles.map{CdkObjectWrappers.unwrap(it)})
}
/**
* @param associatedRoles Provides a list of the AWS Identity and Access Management (IAM) roles
* that are associated with the DB cluster.
* IAM roles that are associated with a DB cluster grant permission for the DB cluster to access
* other Amazon Web Services on your behalf.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun associatedRoles(vararg associatedRoles: Any): Unit =
associatedRoles(associatedRoles.toList())
/**
* @param autoMinorVersionUpgrade Specifies whether minor engine upgrades are applied
* automatically to the DB cluster during the maintenance window.
* By default, minor engine upgrades are applied automatically.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*/
override fun autoMinorVersionUpgrade(autoMinorVersionUpgrade: Boolean) {
cdkBuilder.autoMinorVersionUpgrade(autoMinorVersionUpgrade)
}
/**
* @param autoMinorVersionUpgrade Specifies whether minor engine upgrades are applied
* automatically to the DB cluster during the maintenance window.
* By default, minor engine upgrades are applied automatically.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*/
override fun autoMinorVersionUpgrade(autoMinorVersionUpgrade: IResolvable) {
cdkBuilder.autoMinorVersionUpgrade(autoMinorVersionUpgrade.let(IResolvable.Companion::unwrap))
}
/**
* @param availabilityZones A list of Availability Zones (AZs) where instances in the DB cluster
* can be created.
* For information on AWS Regions and Availability Zones, see [Choosing the Regions and
* Availability
* Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters only
*/
override fun availabilityZones(availabilityZones: List) {
cdkBuilder.availabilityZones(availabilityZones)
}
/**
* @param availabilityZones A list of Availability Zones (AZs) where instances in the DB cluster
* can be created.
* For information on AWS Regions and Availability Zones, see [Choosing the Regions and
* Availability
* Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters only
*/
override fun availabilityZones(vararg availabilityZones: String): Unit =
availabilityZones(availabilityZones.toList())
/**
* @param backtrackWindow The target backtrack window, in seconds. To disable backtracking, set
* this value to `0` .
* Valid for Cluster Type: Aurora MySQL DB clusters only
*
* Default: `0`
*
* Constraints:
*
* * If specified, this value must be set to a number from 0 to 259,200 (72 hours).
*/
override fun backtrackWindow(backtrackWindow: Number) {
cdkBuilder.backtrackWindow(backtrackWindow)
}
/**
* @param backupRetentionPeriod The number of days for which automated backups are retained.
* Default: 1
*
* Constraints:
*
* * Must be a value from 1 to 35
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun backupRetentionPeriod(backupRetentionPeriod: Number) {
cdkBuilder.backupRetentionPeriod(backupRetentionPeriod)
}
/**
* @param copyTagsToSnapshot A value that indicates whether to copy all tags from the DB cluster
* to snapshots of the DB cluster.
* The default is not to copy them.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun copyTagsToSnapshot(copyTagsToSnapshot: Boolean) {
cdkBuilder.copyTagsToSnapshot(copyTagsToSnapshot)
}
/**
* @param copyTagsToSnapshot A value that indicates whether to copy all tags from the DB cluster
* to snapshots of the DB cluster.
* The default is not to copy them.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun copyTagsToSnapshot(copyTagsToSnapshot: IResolvable) {
cdkBuilder.copyTagsToSnapshot(copyTagsToSnapshot.let(IResolvable.Companion::unwrap))
}
/**
* @param databaseName The name of your database.
* If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For
* naming constraints, see [Naming
* Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun databaseName(databaseName: String) {
cdkBuilder.databaseName(databaseName)
}
/**
* @param dbClusterIdentifier The DB cluster identifier. This parameter is stored as a lowercase
* string.
* Constraints:
*
* * Must contain from 1 to 63 letters, numbers, or hyphens.
* * First character must be a letter.
* * Can't end with a hyphen or contain two consecutive hyphens.
*
* Example: `my-cluster1`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun dbClusterIdentifier(dbClusterIdentifier: String) {
cdkBuilder.dbClusterIdentifier(dbClusterIdentifier)
}
/**
* @param dbClusterInstanceClass The compute and memory capacity of each DB instance in the
* Multi-AZ DB cluster, for example `db.m6gd.xlarge` . Not all DB instance classes are available in
* all AWS Regions , or for all database engines.
* For the full list of DB instance classes and availability for your engine, see [DB instance
* class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in
* the *Amazon RDS User Guide* .
*
* This setting is required to create a Multi-AZ DB cluster.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*/
override fun dbClusterInstanceClass(dbClusterInstanceClass: String) {
cdkBuilder.dbClusterInstanceClass(dbClusterInstanceClass)
}
/**
* @param dbClusterParameterGroupName The name of the DB cluster parameter group to associate
* with this DB cluster.
*
* If you apply a parameter group to an existing DB cluster, then its DB instances might need to
* reboot. This can result in an outage while the DB instances are rebooting.
*
* If you apply a change to parameter group associated with a stopped DB cluster, then the
* update stack waits until the DB cluster is started.
*
*
* To list all of the available DB cluster parameter group names, use the following command:
*
* `aws rds describe-db-cluster-parameter-groups --query
* "DBClusterParameterGroups[].DBClusterParameterGroupName" --output text`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun dbClusterParameterGroupName(dbClusterParameterGroupName: String) {
cdkBuilder.dbClusterParameterGroupName(dbClusterParameterGroupName)
}
/**
* @param dbInstanceParameterGroupName The name of the DB parameter group to apply to all
* instances of the DB cluster.
*
* When you apply a parameter group using the `DBInstanceParameterGroupName` parameter, the DB
* cluster isn't rebooted automatically. Also, parameter changes are applied immediately rather
* than during the next maintenance window.
*
*
* Valid for Cluster Type: Aurora DB clusters only
*
* Default: The existing name setting
*
* Constraints:
*
* * The DB parameter group must be in the same DB parameter group family as this DB cluster.
* * The `DBInstanceParameterGroupName` parameter is valid in combination with the
* `AllowMajorVersionUpgrade` parameter for a major version upgrade only.
*/
override fun dbInstanceParameterGroupName(dbInstanceParameterGroupName: String) {
cdkBuilder.dbInstanceParameterGroupName(dbInstanceParameterGroupName)
}
/**
* @param dbSubnetGroupName A DB subnet group that you want to associate with this DB cluster.
* If you are restoring a DB cluster to a point in time with `RestoreType` set to
* `copy-on-write` , and don't specify a DB subnet group name, then the DB cluster is restored with
* a default DB subnet group.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun dbSubnetGroupName(dbSubnetGroupName: String) {
cdkBuilder.dbSubnetGroupName(dbSubnetGroupName)
}
/**
* @param dbSystemId Reserved for future use.
*/
override fun dbSystemId(dbSystemId: String) {
cdkBuilder.dbSystemId(dbSystemId)
}
/**
* @param deletionProtection A value that indicates whether the DB cluster has deletion
* protection enabled.
* The database can't be deleted when deletion protection is enabled. By default, deletion
* protection is disabled.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun deletionProtection(deletionProtection: Boolean) {
cdkBuilder.deletionProtection(deletionProtection)
}
/**
* @param deletionProtection A value that indicates whether the DB cluster has deletion
* protection enabled.
* The database can't be deleted when deletion protection is enabled. By default, deletion
* protection is disabled.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun deletionProtection(deletionProtection: IResolvable) {
cdkBuilder.deletionProtection(deletionProtection.let(IResolvable.Companion::unwrap))
}
/**
* @param domain Indicates the directory ID of the Active Directory to create the DB cluster.
* For Amazon Aurora DB clusters, Amazon RDS can use Kerberos authentication to authenticate
* users that connect to the DB cluster.
*
* For more information, see [Kerberos
* authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/kerberos-authentication.html)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters only
*/
override fun domain(domain: String) {
cdkBuilder.domain(domain)
}
/**
* @param domainIamRoleName Specifies the name of the IAM role to use when making API calls to
* the Directory Service.
* Valid for: Aurora DB clusters only
*/
override fun domainIamRoleName(domainIamRoleName: String) {
cdkBuilder.domainIamRoleName(domainIamRoleName)
}
/**
* @param enableCloudwatchLogsExports The list of log types that need to be enabled for
* exporting to CloudWatch Logs.
* The values in the list depend on the DB engine being used. For more information, see
* [Publishing Database Logs to Amazon CloudWatch
* Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch)
* in the *Amazon Aurora User Guide* .
*
* *Aurora MySQL*
*
* Valid values: `audit` , `error` , `general` , `slowquery`
*
* *Aurora PostgreSQL*
*
* Valid values: `postgresql`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun enableCloudwatchLogsExports(enableCloudwatchLogsExports: List) {
cdkBuilder.enableCloudwatchLogsExports(enableCloudwatchLogsExports)
}
/**
* @param enableCloudwatchLogsExports The list of log types that need to be enabled for
* exporting to CloudWatch Logs.
* The values in the list depend on the DB engine being used. For more information, see
* [Publishing Database Logs to Amazon CloudWatch
* Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch)
* in the *Amazon Aurora User Guide* .
*
* *Aurora MySQL*
*
* Valid values: `audit` , `error` , `general` , `slowquery`
*
* *Aurora PostgreSQL*
*
* Valid values: `postgresql`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun enableCloudwatchLogsExports(vararg enableCloudwatchLogsExports: String): Unit =
enableCloudwatchLogsExports(enableCloudwatchLogsExports.toList())
/**
* @param enableGlobalWriteForwarding Specifies whether to enable this DB cluster to forward
* write operations to the primary cluster of a global cluster (Aurora global database).
* By default, write operations are not allowed on Aurora DB clusters that are secondary
* clusters in an Aurora global database.
*
* You can set this value only on Aurora DB clusters that are members of an Aurora global
* database. With this parameter enabled, a secondary cluster can forward writes to the current
* primary cluster, and the resulting changes are replicated back to this cluster. For the primary
* DB cluster of an Aurora global database, this value is used immediately if the primary is
* demoted by a global cluster API operation, but it does nothing until then.
*
* Valid for Cluster Type: Aurora DB clusters only
*/
override fun enableGlobalWriteForwarding(enableGlobalWriteForwarding: Boolean) {
cdkBuilder.enableGlobalWriteForwarding(enableGlobalWriteForwarding)
}
/**
* @param enableGlobalWriteForwarding Specifies whether to enable this DB cluster to forward
* write operations to the primary cluster of a global cluster (Aurora global database).
* By default, write operations are not allowed on Aurora DB clusters that are secondary
* clusters in an Aurora global database.
*
* You can set this value only on Aurora DB clusters that are members of an Aurora global
* database. With this parameter enabled, a secondary cluster can forward writes to the current
* primary cluster, and the resulting changes are replicated back to this cluster. For the primary
* DB cluster of an Aurora global database, this value is used immediately if the primary is
* demoted by a global cluster API operation, but it does nothing until then.
*
* Valid for Cluster Type: Aurora DB clusters only
*/
override fun enableGlobalWriteForwarding(enableGlobalWriteForwarding: IResolvable) {
cdkBuilder.enableGlobalWriteForwarding(enableGlobalWriteForwarding.let(IResolvable.Companion::unwrap))
}
/**
* @param enableHttpEndpoint Specifies whether to enable the HTTP endpoint for the DB cluster.
* By default, the HTTP endpoint isn't enabled.
* When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for
* running SQL queries on the DB cluster. You can also query your database from inside the RDS
* console with the RDS query editor.
*
* RDS Data API is supported with the following DB clusters:
*
* * Aurora PostgreSQL Serverless v2 and provisioned
* * Aurora PostgreSQL and Aurora MySQL Serverless v1
*
* For more information, see [Using RDS Data
* API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon
* Aurora User Guide* .
*
* Valid for Cluster Type: Aurora DB clusters only
*/
override fun enableHttpEndpoint(enableHttpEndpoint: Boolean) {
cdkBuilder.enableHttpEndpoint(enableHttpEndpoint)
}
/**
* @param enableHttpEndpoint Specifies whether to enable the HTTP endpoint for the DB cluster.
* By default, the HTTP endpoint isn't enabled.
* When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for
* running SQL queries on the DB cluster. You can also query your database from inside the RDS
* console with the RDS query editor.
*
* RDS Data API is supported with the following DB clusters:
*
* * Aurora PostgreSQL Serverless v2 and provisioned
* * Aurora PostgreSQL and Aurora MySQL Serverless v1
*
* For more information, see [Using RDS Data
* API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon
* Aurora User Guide* .
*
* Valid for Cluster Type: Aurora DB clusters only
*/
override fun enableHttpEndpoint(enableHttpEndpoint: IResolvable) {
cdkBuilder.enableHttpEndpoint(enableHttpEndpoint.let(IResolvable.Companion::unwrap))
}
/**
* @param enableIamDatabaseAuthentication A value that indicates whether to enable mapping of
* AWS Identity and Access Management (IAM) accounts to database accounts.
* By default, mapping is disabled.
*
* For more information, see [IAM Database
* Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for: Aurora DB clusters only
*/
override fun enableIamDatabaseAuthentication(enableIamDatabaseAuthentication: Boolean) {
cdkBuilder.enableIamDatabaseAuthentication(enableIamDatabaseAuthentication)
}
/**
* @param enableIamDatabaseAuthentication A value that indicates whether to enable mapping of
* AWS Identity and Access Management (IAM) accounts to database accounts.
* By default, mapping is disabled.
*
* For more information, see [IAM Database
* Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for: Aurora DB clusters only
*/
override fun enableIamDatabaseAuthentication(enableIamDatabaseAuthentication: IResolvable) {
cdkBuilder.enableIamDatabaseAuthentication(enableIamDatabaseAuthentication.let(IResolvable.Companion::unwrap))
}
/**
* @param enableLocalWriteForwarding Specifies whether read replicas can forward write
* operations to the writer DB instance in the DB cluster.
* By default, write operations aren't allowed on reader DB instances.
*
* Valid for: Aurora DB clusters only
*/
override fun enableLocalWriteForwarding(enableLocalWriteForwarding: Boolean) {
cdkBuilder.enableLocalWriteForwarding(enableLocalWriteForwarding)
}
/**
* @param enableLocalWriteForwarding Specifies whether read replicas can forward write
* operations to the writer DB instance in the DB cluster.
* By default, write operations aren't allowed on reader DB instances.
*
* Valid for: Aurora DB clusters only
*/
override fun enableLocalWriteForwarding(enableLocalWriteForwarding: IResolvable) {
cdkBuilder.enableLocalWriteForwarding(enableLocalWriteForwarding.let(IResolvable.Companion::unwrap))
}
/**
* @param engine The name of the database engine to be used for this DB cluster.
* Valid Values:
*
* * `aurora-mysql`
* * `aurora-postgresql`
* * `mysql`
* * `postgres`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun engine(engine: String) {
cdkBuilder.engine(engine)
}
/**
* @param engineLifecycleSupport The life cycle type for this DB cluster.
*
* By default, this value is set to `open-source-rds-extended-support` , which enrolls your DB
* cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges
* for Extended Support by setting the value to `open-source-rds-extended-support-disabled` . In
* this case, creating the DB cluster will fail if the DB major version is past its end of standard
* support date.
*
*
* You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS
* Extended Support, you can run the selected major engine version on your DB cluster past the end
* of standard support for that engine version. For more information, see the following sections:
*
* * Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended
* Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in
* the *Amazon Aurora User Guide*
* * Amazon RDS - [Using Amazon RDS Extended
* Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the
* *Amazon RDS User Guide*
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* Valid Values: `open-source-rds-extended-support | open-source-rds-extended-support-disabled`
*
* Default: `open-source-rds-extended-support`
*/
override fun engineLifecycleSupport(engineLifecycleSupport: String) {
cdkBuilder.engineLifecycleSupport(engineLifecycleSupport)
}
/**
* @param engineMode The DB engine mode of the DB cluster, either `provisioned` or `serverless`
* .
* The `serverless` engine mode only applies for Aurora Serverless v1 DB clusters. Aurora
* Serverless v2 DB clusters use the `provisioned` engine mode.
*
* For information about limitations and requirements for Serverless DB clusters, see the
* following sections in the *Amazon Aurora User Guide* :
*
* * [Limitations of Aurora Serverless
* v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations)
* * [Requirements for Aurora Serverless
* v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html)
*
* Valid for Cluster Type: Aurora DB clusters only
*/
override fun engineMode(engineMode: String) {
cdkBuilder.engineMode(engineMode)
}
/**
* @param engineVersion The version number of the database engine to use.
* To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible) and
* version 3 (8.0-compatible), use the following command:
*
* `aws rds describe-db-engine-versions --engine aurora-mysql --query
* "DBEngineVersions[].EngineVersion"`
*
* You can supply either `5.7` or `8.0` to use the default engine version for Aurora MySQL
* version 2 or version 3, respectively.
*
* To list all of the available engine versions for Aurora PostgreSQL, use the following
* command:
*
* `aws rds describe-db-engine-versions --engine aurora-postgresql --query
* "DBEngineVersions[].EngineVersion"`
*
* To list all of the available engine versions for RDS for MySQL, use the following command:
*
* `aws rds describe-db-engine-versions --engine mysql --query
* "DBEngineVersions[].EngineVersion"`
*
* To list all of the available engine versions for RDS for PostgreSQL, use the following
* command:
*
* `aws rds describe-db-engine-versions --engine postgres --query
* "DBEngineVersions[].EngineVersion"`
*
* *Aurora MySQL*
*
* For information, see [Database engine updates for Amazon Aurora
* MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) in
* the *Amazon Aurora User Guide* .
*
* *Aurora PostgreSQL*
*
* For information, see [Amazon Aurora PostgreSQL releases and engine
* versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html)
* in the *Amazon Aurora User Guide* .
*
* *MySQL*
*
* For information, see [Amazon RDS for
* MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt)
* in the *Amazon RDS User Guide* .
*
* *PostgreSQL*
*
* For information, see [Amazon RDS for
* PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts)
* in the *Amazon RDS User Guide* .
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun engineVersion(engineVersion: String) {
cdkBuilder.engineVersion(engineVersion)
}
/**
* @param globalClusterIdentifier If you are configuring an Aurora global database cluster and
* want your Aurora DB cluster to be a secondary member in the global database cluster, specify the
* global cluster ID of the global database cluster.
* To define the primary database cluster of the global cluster, use the
* [AWS::RDS::GlobalCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html)
* resource.
*
* If you aren't configuring a global database cluster, don't specify this property.
*
*
* To remove the DB cluster from a global database cluster, specify an empty value for the
* `GlobalClusterIdentifier` property.
*
*
* For information about Aurora global databases, see [Working with Amazon Aurora Global
* Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters only
*/
override fun globalClusterIdentifier(globalClusterIdentifier: String) {
cdkBuilder.globalClusterIdentifier(globalClusterIdentifier)
}
/**
* @param iops The amount of Provisioned IOPS (input/output operations per second) to be
* initially allocated for each DB instance in the Multi-AZ DB cluster.
* For information about valid IOPS values, see [Provisioned IOPS
* storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) in
* the *Amazon RDS User Guide* .
*
* This setting is required to create a Multi-AZ DB cluster.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Constraints:
*
* * Must be a multiple between .5 and 50 of the storage amount for the DB cluster.
*/
override fun iops(iops: Number) {
cdkBuilder.iops(iops)
}
/**
* @param kmsKeyId The Amazon Resource Name (ARN) of the AWS KMS key that is used to encrypt the
* database instances in the DB cluster, such as
* `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef` .
* If you enable the `StorageEncrypted` property but don't specify this property, the default
* KMS key is used. If you specify this property, you must set the `StorageEncrypted` property to
* `true` .
*
* If you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is
* inherited from the snapshot, and if the DB cluster is encrypted, the specified `KmsKeyId`
* property is used.
*
* If you create a read replica of an encrypted DB cluster in another AWS Region, make sure to
* set `KmsKeyId` to a KMS key identifier that is valid in the destination AWS Region. This KMS key
* is used to encrypt the read replica in that AWS Region.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun kmsKeyId(kmsKeyId: String) {
cdkBuilder.kmsKeyId(kmsKeyId)
}
/**
* @param manageMasterUserPassword Specifies whether to manage the master user password with AWS
* Secrets Manager.
* For more information, see [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the
* *Amazon RDS User Guide* and [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* Constraints:
*
* * Can't manage the master user password with AWS Secrets Manager if `MasterUserPassword` is
* specified.
*/
override fun manageMasterUserPassword(manageMasterUserPassword: Boolean) {
cdkBuilder.manageMasterUserPassword(manageMasterUserPassword)
}
/**
* @param manageMasterUserPassword Specifies whether to manage the master user password with AWS
* Secrets Manager.
* For more information, see [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the
* *Amazon RDS User Guide* and [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* Constraints:
*
* * Can't manage the master user password with AWS Secrets Manager if `MasterUserPassword` is
* specified.
*/
override fun manageMasterUserPassword(manageMasterUserPassword: IResolvable) {
cdkBuilder.manageMasterUserPassword(manageMasterUserPassword.let(IResolvable.Companion::unwrap))
}
/**
* @param masterUserPassword The master password for the DB instance.
*
* If you specify the `SourceDBClusterIdentifier` , `SnapshotIdentifier` , or
* `GlobalClusterIdentifier` property, don't specify this property. The value is inherited from the
* source DB cluster, the snapshot, or the primary DB cluster for the global database cluster,
* respectively.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun masterUserPassword(masterUserPassword: String) {
cdkBuilder.masterUserPassword(masterUserPassword)
}
/**
* @param masterUserSecret The secret managed by RDS in AWS Secrets Manager for the master user
* password.
* For more information, see [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the
* *Amazon RDS User Guide* and [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html)
* in the *Amazon Aurora User Guide.*
*/
override fun masterUserSecret(masterUserSecret: IResolvable) {
cdkBuilder.masterUserSecret(masterUserSecret.let(IResolvable.Companion::unwrap))
}
/**
* @param masterUserSecret The secret managed by RDS in AWS Secrets Manager for the master user
* password.
* For more information, see [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the
* *Amazon RDS User Guide* and [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html)
* in the *Amazon Aurora User Guide.*
*/
override fun masterUserSecret(masterUserSecret: CfnDBCluster.MasterUserSecretProperty) {
cdkBuilder.masterUserSecret(masterUserSecret.let(CfnDBCluster.MasterUserSecretProperty.Companion::unwrap))
}
/**
* @param masterUserSecret The secret managed by RDS in AWS Secrets Manager for the master user
* password.
* For more information, see [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the
* *Amazon RDS User Guide* and [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html)
* in the *Amazon Aurora User Guide.*
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("0254e2f4dd72b3247f641935d466cdd46104f547d7ae4c2079f9c0da520fbb36")
override
fun masterUserSecret(masterUserSecret: CfnDBCluster.MasterUserSecretProperty.Builder.() -> Unit):
Unit = masterUserSecret(CfnDBCluster.MasterUserSecretProperty(masterUserSecret))
/**
* @param masterUsername The name of the master user for the DB cluster.
*
* If you specify the `SourceDBClusterIdentifier` , `SnapshotIdentifier` , or
* `GlobalClusterIdentifier` property, don't specify this property. The value is inherited from the
* source DB cluster, the snapshot, or the primary DB cluster for the global database cluster,
* respectively.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun masterUsername(masterUsername: String) {
cdkBuilder.masterUsername(masterUsername)
}
/**
* @param monitoringInterval The interval, in seconds, between points when Enhanced Monitoring
* metrics are collected for the DB cluster.
* To turn off collecting Enhanced Monitoring metrics, specify `0` .
*
* If `MonitoringRoleArn` is specified, also set `MonitoringInterval` to a value other than `0`
* .
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Valid Values: `0 | 1 | 5 | 10 | 15 | 30 | 60`
*
* Default: `0`
*/
override fun monitoringInterval(monitoringInterval: Number) {
cdkBuilder.monitoringInterval(monitoringInterval)
}
/**
* @param monitoringRoleArn The Amazon Resource Name (ARN) for the IAM role that permits RDS to
* send Enhanced Monitoring metrics to Amazon CloudWatch Logs.
* An example is `arn:aws:iam:123456789012:role/emaccess` . For information on creating a
* monitoring role, see [Setting up and enabling Enhanced
* Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling)
* in the *Amazon RDS User Guide* .
*
* If `MonitoringInterval` is set to a value other than `0` , supply a `MonitoringRoleArn`
* value.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*/
override fun monitoringRoleArn(monitoringRoleArn: String) {
cdkBuilder.monitoringRoleArn(monitoringRoleArn)
}
/**
* @param networkType The network type of the DB cluster.
* Valid values:
*
* * `IPV4`
* * `DUAL`
*
* The network type is determined by the `DBSubnetGroup` specified for the DB cluster. A
* `DBSubnetGroup` can support only the IPv4 protocol or the IPv4 and IPv6 protocols ( `DUAL` ).
*
* For more information, see [Working with a DB instance in a
* VPC](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for: Aurora DB clusters only
*/
override fun networkType(networkType: String) {
cdkBuilder.networkType(networkType)
}
/**
* @param performanceInsightsEnabled Specifies whether to turn on Performance Insights for the
* DB cluster.
* For more information, see [Using Amazon Performance
* Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the
* *Amazon RDS User Guide* .
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*/
override fun performanceInsightsEnabled(performanceInsightsEnabled: Boolean) {
cdkBuilder.performanceInsightsEnabled(performanceInsightsEnabled)
}
/**
* @param performanceInsightsEnabled Specifies whether to turn on Performance Insights for the
* DB cluster.
* For more information, see [Using Amazon Performance
* Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the
* *Amazon RDS User Guide* .
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*/
override fun performanceInsightsEnabled(performanceInsightsEnabled: IResolvable) {
cdkBuilder.performanceInsightsEnabled(performanceInsightsEnabled.let(IResolvable.Companion::unwrap))
}
/**
* @param performanceInsightsKmsKeyId The AWS KMS key identifier for encryption of Performance
* Insights data.
* The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.
*
* If you don't specify a value for `PerformanceInsightsKMSKeyId` , then Amazon RDS uses your
* default KMS key. There is a default KMS key for your AWS account . Your AWS account has a
* different default KMS key for each AWS Region .
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*/
override fun performanceInsightsKmsKeyId(performanceInsightsKmsKeyId: String) {
cdkBuilder.performanceInsightsKmsKeyId(performanceInsightsKmsKeyId)
}
/**
* @param performanceInsightsRetentionPeriod The number of days to retain Performance Insights
* data.
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Valid Values:
*
* * `7`
* * *month* * 31, where *month* is a number of months from 1-23. Examples: `93` (3 months *
* 31), `341` (11 months * 31), `589` (19 months * 31)
* * `731`
*
* Default: `7` days
*
* If you specify a retention period that isn't valid, such as `94` , Amazon RDS issues an
* error.
*/
override fun performanceInsightsRetentionPeriod(performanceInsightsRetentionPeriod: Number) {
cdkBuilder.performanceInsightsRetentionPeriod(performanceInsightsRetentionPeriod)
}
/**
* @param port The port number on which the DB instances in the DB cluster accept connections.
* Default:
*
* * When `EngineMode` is `provisioned` , `3306` (for both Aurora MySQL and Aurora PostgreSQL)
* * When `EngineMode` is `serverless` :
* * `3306` when `Engine` is `aurora` or `aurora-mysql`
* * `5432` when `Engine` is `aurora-postgresql`
*
*
* The `No interruption` on update behavior only applies to DB clusters. If you are updating a
* DB instance, see
* [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port)
* for the AWS::RDS::DBInstance resource.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun port(port: Number) {
cdkBuilder.port(port)
}
/**
* @param preferredBackupWindow The daily time range during which automated backups are created.
* For more information, see [Backup
* Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow)
* in the *Amazon Aurora User Guide.*
*
* Constraints:
*
* * Must be in the format `hh24:mi-hh24:mi` .
* * Must be in Universal Coordinated Time (UTC).
* * Must not conflict with the preferred maintenance window.
* * Must be at least 30 minutes.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun preferredBackupWindow(preferredBackupWindow: String) {
cdkBuilder.preferredBackupWindow(preferredBackupWindow)
}
/**
* @param preferredMaintenanceWindow The weekly time range during which system maintenance can
* occur, in Universal Coordinated Time (UTC).
* Format: `ddd:hh24:mi-ddd:hh24:mi`
*
* The default is a 30-minute window selected at random from an 8-hour block of time for each
* AWS Region, occurring on a random day of the week. To see the time blocks available, see
* [Adjusting the Preferred DB Cluster Maintenance
* Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora)
* in the *Amazon Aurora User Guide.*
*
* Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
*
* Constraints: Minimum 30-minute window.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun preferredMaintenanceWindow(preferredMaintenanceWindow: String) {
cdkBuilder.preferredMaintenanceWindow(preferredMaintenanceWindow)
}
/**
* @param publiclyAccessible Specifies whether the DB cluster is publicly accessible.
* When the DB cluster is publicly accessible and you connect from outside of the DB cluster's
* virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP
* address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to
* the private IP address. Access to the DB cluster is ultimately controlled by the security group
* it uses. That public access isn't permitted if the security group assigned to the DB cluster
* doesn't permit it.
*
* When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name
* that resolves to a private IP address.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Default: The default behavior varies depending on whether `DBSubnetGroupName` is specified.
*
* If `DBSubnetGroupName` isn't specified, and `PubliclyAccessible` isn't specified, the
* following applies:
*
* * If the default VPC in the target Region doesn’t have an internet gateway attached to it,
* the DB cluster is private.
* * If the default VPC in the target Region has an internet gateway attached to it, the DB
* cluster is public.
*
* If `DBSubnetGroupName` is specified, and `PubliclyAccessible` isn't specified, the following
* applies:
*
* * If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the
* DB cluster is private.
* * If the subnets are part of a VPC that has an internet gateway attached to it, the DB
* cluster is public.
*/
override fun publiclyAccessible(publiclyAccessible: Boolean) {
cdkBuilder.publiclyAccessible(publiclyAccessible)
}
/**
* @param publiclyAccessible Specifies whether the DB cluster is publicly accessible.
* When the DB cluster is publicly accessible and you connect from outside of the DB cluster's
* virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP
* address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to
* the private IP address. Access to the DB cluster is ultimately controlled by the security group
* it uses. That public access isn't permitted if the security group assigned to the DB cluster
* doesn't permit it.
*
* When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name
* that resolves to a private IP address.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Default: The default behavior varies depending on whether `DBSubnetGroupName` is specified.
*
* If `DBSubnetGroupName` isn't specified, and `PubliclyAccessible` isn't specified, the
* following applies:
*
* * If the default VPC in the target Region doesn’t have an internet gateway attached to it,
* the DB cluster is private.
* * If the default VPC in the target Region has an internet gateway attached to it, the DB
* cluster is public.
*
* If `DBSubnetGroupName` is specified, and `PubliclyAccessible` isn't specified, the following
* applies:
*
* * If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the
* DB cluster is private.
* * If the subnets are part of a VPC that has an internet gateway attached to it, the DB
* cluster is public.
*/
override fun publiclyAccessible(publiclyAccessible: IResolvable) {
cdkBuilder.publiclyAccessible(publiclyAccessible.let(IResolvable.Companion::unwrap))
}
/**
* @param replicationSourceIdentifier The Amazon Resource Name (ARN) of the source DB instance
* or DB cluster if this DB cluster is created as a read replica.
* Valid for: Aurora DB clusters only
*/
override fun replicationSourceIdentifier(replicationSourceIdentifier: String) {
cdkBuilder.replicationSourceIdentifier(replicationSourceIdentifier)
}
/**
* @param restoreToTime The date and time to restore the DB cluster to.
* Valid Values: Value must be a time in Universal Coordinated Time (UTC) format
*
* Constraints:
*
* * Must be before the latest restorable time for the DB instance
* * Must be specified if `UseLatestRestorableTime` parameter isn't provided
* * Can't be specified if the `UseLatestRestorableTime` parameter is enabled
* * Can't be specified if the `RestoreType` parameter is `copy-on-write`
*
* This property must be used with `SourceDBClusterIdentifier` property. The resulting cluster
* will have the identifier that matches the value of the `DBclusterIdentifier` property.
*
* Example: `2015-03-07T23:45:00Z`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun restoreToTime(restoreToTime: String) {
cdkBuilder.restoreToTime(restoreToTime)
}
/**
* @param restoreType The type of restore to be performed. You can specify one of the following
* values:.
* * `full-copy` - The new DB cluster is restored as a full copy of the source DB cluster.
* * `copy-on-write` - The new DB cluster is restored as a clone of the source DB cluster.
*
* If you don't specify a `RestoreType` value, then the new DB cluster is restored as a full
* copy of the source DB cluster.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun restoreType(restoreType: String) {
cdkBuilder.restoreType(restoreType)
}
/**
* @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster.
* This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the
* `ServerlessV2ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v1 DB clusters only
*/
override fun scalingConfiguration(scalingConfiguration: IResolvable) {
cdkBuilder.scalingConfiguration(scalingConfiguration.let(IResolvable.Companion::unwrap))
}
/**
* @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster.
* This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the
* `ServerlessV2ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v1 DB clusters only
*/
override
fun scalingConfiguration(scalingConfiguration: CfnDBCluster.ScalingConfigurationProperty) {
cdkBuilder.scalingConfiguration(scalingConfiguration.let(CfnDBCluster.ScalingConfigurationProperty.Companion::unwrap))
}
/**
* @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster.
* This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the
* `ServerlessV2ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v1 DB clusters only
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("669faa99f851803fe28a32b25a008dcb1931d2e5b37783cf7d41a878fa8a1319")
override
fun scalingConfiguration(scalingConfiguration: CfnDBCluster.ScalingConfigurationProperty.Builder.() -> Unit):
Unit = scalingConfiguration(CfnDBCluster.ScalingConfigurationProperty(scalingConfiguration))
/**
* @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2
* DB cluster.
* This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the
* `ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v2 DB clusters only
*/
override fun serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration: IResolvable) {
cdkBuilder.serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration.let(IResolvable.Companion::unwrap))
}
/**
* @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2
* DB cluster.
* This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the
* `ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v2 DB clusters only
*/
override
fun serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration: CfnDBCluster.ServerlessV2ScalingConfigurationProperty) {
cdkBuilder.serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration.let(CfnDBCluster.ServerlessV2ScalingConfigurationProperty.Companion::unwrap))
}
/**
* @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2
* DB cluster.
* This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the
* `ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v2 DB clusters only
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("1a7e00644e444918868049b5781d6f9ccb5826a3d4ffc86dc7538c18aba397e2")
override
fun serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration: CfnDBCluster.ServerlessV2ScalingConfigurationProperty.Builder.() -> Unit):
Unit =
serverlessV2ScalingConfiguration(CfnDBCluster.ServerlessV2ScalingConfigurationProperty(serverlessV2ScalingConfiguration))
/**
* @param snapshotIdentifier The identifier for the DB snapshot or DB cluster snapshot to
* restore from.
* You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster
* snapshot. However, you can use only the ARN to specify a DB snapshot.
*
* After you restore a DB cluster with a `SnapshotIdentifier` property, you must specify the
* same `SnapshotIdentifier` property for any future updates to the DB cluster. When you specify
* this property for an update, the DB cluster is not restored from the snapshot again, and the
* data in the database is not changed. However, if you don't specify the `SnapshotIdentifier`
* property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify
* a property that is different from the previous snapshot restore property, a new DB cluster is
* restored from the specified `SnapshotIdentifier` property, and the original DB cluster is
* deleted.
*
* If you specify the `SnapshotIdentifier` property to restore a DB cluster (as opposed to
* specifying it for DB cluster updates), then don't specify the following properties:
*
* * `GlobalClusterIdentifier`
* * `MasterUsername`
* * `MasterUserPassword`
* * `ReplicationSourceIdentifier`
* * `RestoreType`
* * `SourceDBClusterIdentifier`
* * `SourceRegion`
* * `StorageEncrypted` (for an encrypted snapshot)
* * `UseLatestRestorableTime`
*
* Constraints:
*
* * Must match the identifier of an existing Snapshot.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun snapshotIdentifier(snapshotIdentifier: String) {
cdkBuilder.snapshotIdentifier(snapshotIdentifier)
}
/**
* @param sourceDbClusterIdentifier When restoring a DB cluster to a point in time, the
* identifier of the source DB cluster from which to restore.
* Constraints:
*
* * Must match the identifier of an existing DBCluster.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun sourceDbClusterIdentifier(sourceDbClusterIdentifier: String) {
cdkBuilder.sourceDbClusterIdentifier(sourceDbClusterIdentifier)
}
/**
* @param sourceRegion The AWS Region which contains the source DB cluster when replicating a DB
* cluster. For example, `us-east-1` .
* Valid for: Aurora DB clusters only
*/
override fun sourceRegion(sourceRegion: String) {
cdkBuilder.sourceRegion(sourceRegion)
}
/**
* @param storageEncrypted Indicates whether the DB cluster is encrypted.
* If you specify the `KmsKeyId` property, then you must enable encryption.
*
* If you specify the `SourceDBClusterIdentifier` property, don't specify this property. The
* value is inherited from the source DB cluster, and if the DB cluster is encrypted, the specified
* `KmsKeyId` property is used.
*
* If you specify the `SnapshotIdentifier` and the specified snapshot is encrypted, don't
* specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId`
* property is used.
*
* If you specify the `SnapshotIdentifier` and the specified snapshot isn't encrypted, you can
* use this property to specify that the restored DB cluster is encrypted. Specify the `KmsKeyId`
* property for the KMS key to use for encryption. If you don't want the restored DB cluster to be
* encrypted, then don't set this property or set it to `false` .
*
*
* If you specify both the `StorageEncrypted` and `SnapshotIdentifier` properties without
* specifying the `KmsKeyId` property, then the restored DB cluster inherits the encryption
* settings from the DB snapshot that provide.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun storageEncrypted(storageEncrypted: Boolean) {
cdkBuilder.storageEncrypted(storageEncrypted)
}
/**
* @param storageEncrypted Indicates whether the DB cluster is encrypted.
* If you specify the `KmsKeyId` property, then you must enable encryption.
*
* If you specify the `SourceDBClusterIdentifier` property, don't specify this property. The
* value is inherited from the source DB cluster, and if the DB cluster is encrypted, the specified
* `KmsKeyId` property is used.
*
* If you specify the `SnapshotIdentifier` and the specified snapshot is encrypted, don't
* specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId`
* property is used.
*
* If you specify the `SnapshotIdentifier` and the specified snapshot isn't encrypted, you can
* use this property to specify that the restored DB cluster is encrypted. Specify the `KmsKeyId`
* property for the KMS key to use for encryption. If you don't want the restored DB cluster to be
* encrypted, then don't set this property or set it to `false` .
*
*
* If you specify both the `StorageEncrypted` and `SnapshotIdentifier` properties without
* specifying the `KmsKeyId` property, then the restored DB cluster inherits the encryption
* settings from the DB snapshot that provide.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun storageEncrypted(storageEncrypted: IResolvable) {
cdkBuilder.storageEncrypted(storageEncrypted.let(IResolvable.Companion::unwrap))
}
/**
* @param storageType The storage type to associate with the DB cluster.
* For information on storage types for Aurora DB clusters, see [Storage configurations for
* Amazon Aurora DB
* clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html#aurora-storage-type)
* . For information on storage types for Multi-AZ DB clusters, see [Settings for creating Multi-AZ
* DB
* clusters](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html#create-multi-az-db-cluster-settings)
* .
*
* This setting is required to create a Multi-AZ DB cluster.
*
* When specified for a Multi-AZ DB cluster, a value for the `Iops` parameter is required.
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* Valid Values:
*
* * Aurora DB clusters - `aurora | aurora-iopt1`
* * Multi-AZ DB clusters - `io1 | io2 | gp3`
*
* Default:
*
* * Aurora DB clusters - `aurora`
* * Multi-AZ DB clusters - `io1`
*
*
* When you create an Aurora DB cluster with the storage type set to `aurora-iopt1` , the
* storage type is returned in the response. The storage type isn't returned when you set it to
* `aurora` .
*/
override fun storageType(storageType: String) {
cdkBuilder.storageType(storageType)
}
/**
* @param tags Tags to assign to the DB cluster.
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun tags(tags: List) {
cdkBuilder.tags(tags.map(CfnTag.Companion::unwrap))
}
/**
* @param tags Tags to assign to the DB cluster.
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList())
/**
* @param useLatestRestorableTime A value that indicates whether to restore the DB cluster to
* the latest restorable backup time.
* By default, the DB cluster is not restored to the latest restorable backup time.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun useLatestRestorableTime(useLatestRestorableTime: Boolean) {
cdkBuilder.useLatestRestorableTime(useLatestRestorableTime)
}
/**
* @param useLatestRestorableTime A value that indicates whether to restore the DB cluster to
* the latest restorable backup time.
* By default, the DB cluster is not restored to the latest restorable backup time.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun useLatestRestorableTime(useLatestRestorableTime: IResolvable) {
cdkBuilder.useLatestRestorableTime(useLatestRestorableTime.let(IResolvable.Companion::unwrap))
}
/**
* @param vpcSecurityGroupIds A list of EC2 VPC security groups to associate with this DB
* cluster.
* If you plan to update the resource, don't specify VPC security groups in a shared VPC.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun vpcSecurityGroupIds(vpcSecurityGroupIds: List) {
cdkBuilder.vpcSecurityGroupIds(vpcSecurityGroupIds)
}
/**
* @param vpcSecurityGroupIds A list of EC2 VPC security groups to associate with this DB
* cluster.
* If you plan to update the resource, don't specify VPC security groups in a shared VPC.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*/
override fun vpcSecurityGroupIds(vararg vpcSecurityGroupIds: String): Unit =
vpcSecurityGroupIds(vpcSecurityGroupIds.toList())
public fun build(): software.amazon.awscdk.services.rds.CfnDBClusterProps = cdkBuilder.build()
}
private class Wrapper(
cdkObject: software.amazon.awscdk.services.rds.CfnDBClusterProps,
) : CdkObject(cdkObject),
CfnDBClusterProps {
/**
* The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB
* cluster.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* This setting is required to create a Multi-AZ DB cluster.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-allocatedstorage)
*/
override fun allocatedStorage(): Number? = unwrap(this).getAllocatedStorage()
/**
* Provides a list of the AWS Identity and Access Management (IAM) roles that are associated
* with the DB cluster.
*
* IAM roles that are associated with a DB cluster grant permission for the DB cluster to access
* other Amazon Web Services on your behalf.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-associatedroles)
*/
override fun associatedRoles(): Any? = unwrap(this).getAssociatedRoles()
/**
* Specifies whether minor engine upgrades are applied automatically to the DB cluster during
* the maintenance window.
*
* By default, minor engine upgrades are applied automatically.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-autominorversionupgrade)
*/
override fun autoMinorVersionUpgrade(): Any? = unwrap(this).getAutoMinorVersionUpgrade()
/**
* A list of Availability Zones (AZs) where instances in the DB cluster can be created.
*
* For information on AWS Regions and Availability Zones, see [Choosing the Regions and
* Availability
* Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-availabilityzones)
*/
override fun availabilityZones(): List = unwrap(this).getAvailabilityZones() ?:
emptyList()
/**
* The target backtrack window, in seconds. To disable backtracking, set this value to `0` .
*
* Valid for Cluster Type: Aurora MySQL DB clusters only
*
* Default: `0`
*
* Constraints:
*
* * If specified, this value must be set to a number from 0 to 259,200 (72 hours).
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-backtrackwindow)
*/
override fun backtrackWindow(): Number? = unwrap(this).getBacktrackWindow()
/**
* The number of days for which automated backups are retained.
*
* Default: 1
*
* Constraints:
*
* * Must be a value from 1 to 35
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* Default: - 1
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-backupretentionperiod)
*/
override fun backupRetentionPeriod(): Number? = unwrap(this).getBackupRetentionPeriod()
/**
* A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB
* cluster.
*
* The default is not to copy them.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-copytagstosnapshot)
*/
override fun copyTagsToSnapshot(): Any? = unwrap(this).getCopyTagsToSnapshot()
/**
* The name of your database.
*
* If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For
* naming constraints, see [Naming
* Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-databasename)
*/
override fun databaseName(): String? = unwrap(this).getDatabaseName()
/**
* The DB cluster identifier. This parameter is stored as a lowercase string.
*
* Constraints:
*
* * Must contain from 1 to 63 letters, numbers, or hyphens.
* * First character must be a letter.
* * Can't end with a hyphen or contain two consecutive hyphens.
*
* Example: `my-cluster1`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbclusteridentifier)
*/
override fun dbClusterIdentifier(): String? = unwrap(this).getDbClusterIdentifier()
/**
* The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example
* `db.m6gd.xlarge` . Not all DB instance classes are available in all AWS Regions , or for all
* database engines.
*
* For the full list of DB instance classes and availability for your engine, see [DB instance
* class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in
* the *Amazon RDS User Guide* .
*
* This setting is required to create a Multi-AZ DB cluster.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbclusterinstanceclass)
*/
override fun dbClusterInstanceClass(): String? = unwrap(this).getDbClusterInstanceClass()
/**
* The name of the DB cluster parameter group to associate with this DB cluster.
*
*
* If you apply a parameter group to an existing DB cluster, then its DB instances might need to
* reboot. This can result in an outage while the DB instances are rebooting.
*
* If you apply a change to parameter group associated with a stopped DB cluster, then the
* update stack waits until the DB cluster is started.
*
*
* To list all of the available DB cluster parameter group names, use the following command:
*
* `aws rds describe-db-cluster-parameter-groups --query
* "DBClusterParameterGroups[].DBClusterParameterGroupName" --output text`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbclusterparametergroupname)
*/
override fun dbClusterParameterGroupName(): String? =
unwrap(this).getDbClusterParameterGroupName()
/**
* The name of the DB parameter group to apply to all instances of the DB cluster.
*
*
* When you apply a parameter group using the `DBInstanceParameterGroupName` parameter, the DB
* cluster isn't rebooted automatically. Also, parameter changes are applied immediately rather
* than during the next maintenance window.
*
*
* Valid for Cluster Type: Aurora DB clusters only
*
* Default: The existing name setting
*
* Constraints:
*
* * The DB parameter group must be in the same DB parameter group family as this DB cluster.
* * The `DBInstanceParameterGroupName` parameter is valid in combination with the
* `AllowMajorVersionUpgrade` parameter for a major version upgrade only.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbinstanceparametergroupname)
*/
override fun dbInstanceParameterGroupName(): String? =
unwrap(this).getDbInstanceParameterGroupName()
/**
* A DB subnet group that you want to associate with this DB cluster.
*
* If you are restoring a DB cluster to a point in time with `RestoreType` set to
* `copy-on-write` , and don't specify a DB subnet group name, then the DB cluster is restored with
* a default DB subnet group.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbsubnetgroupname)
*/
override fun dbSubnetGroupName(): String? = unwrap(this).getDbSubnetGroupName()
/**
* Reserved for future use.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbsystemid)
*/
override fun dbSystemId(): String? = unwrap(this).getDbSystemId()
/**
* A value that indicates whether the DB cluster has deletion protection enabled.
*
* The database can't be deleted when deletion protection is enabled. By default, deletion
* protection is disabled.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-deletionprotection)
*/
override fun deletionProtection(): Any? = unwrap(this).getDeletionProtection()
/**
* Indicates the directory ID of the Active Directory to create the DB cluster.
*
* For Amazon Aurora DB clusters, Amazon RDS can use Kerberos authentication to authenticate
* users that connect to the DB cluster.
*
* For more information, see [Kerberos
* authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/kerberos-authentication.html)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-domain)
*/
override fun domain(): String? = unwrap(this).getDomain()
/**
* Specifies the name of the IAM role to use when making API calls to the Directory Service.
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-domainiamrolename)
*/
override fun domainIamRoleName(): String? = unwrap(this).getDomainIamRoleName()
/**
* The list of log types that need to be enabled for exporting to CloudWatch Logs.
*
* The values in the list depend on the DB engine being used. For more information, see
* [Publishing Database Logs to Amazon CloudWatch
* Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch)
* in the *Amazon Aurora User Guide* .
*
* *Aurora MySQL*
*
* Valid values: `audit` , `error` , `general` , `slowquery`
*
* *Aurora PostgreSQL*
*
* Valid values: `postgresql`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enablecloudwatchlogsexports)
*/
override fun enableCloudwatchLogsExports(): List =
unwrap(this).getEnableCloudwatchLogsExports() ?: emptyList()
/**
* Specifies whether to enable this DB cluster to forward write operations to the primary
* cluster of a global cluster (Aurora global database).
*
* By default, write operations are not allowed on Aurora DB clusters that are secondary
* clusters in an Aurora global database.
*
* You can set this value only on Aurora DB clusters that are members of an Aurora global
* database. With this parameter enabled, a secondary cluster can forward writes to the current
* primary cluster, and the resulting changes are replicated back to this cluster. For the primary
* DB cluster of an Aurora global database, this value is used immediately if the primary is
* demoted by a global cluster API operation, but it does nothing until then.
*
* Valid for Cluster Type: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enableglobalwriteforwarding)
*/
override fun enableGlobalWriteForwarding(): Any? = unwrap(this).getEnableGlobalWriteForwarding()
/**
* Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP
* endpoint isn't enabled.
*
* When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for
* running SQL queries on the DB cluster. You can also query your database from inside the RDS
* console with the RDS query editor.
*
* RDS Data API is supported with the following DB clusters:
*
* * Aurora PostgreSQL Serverless v2 and provisioned
* * Aurora PostgreSQL and Aurora MySQL Serverless v1
*
* For more information, see [Using RDS Data
* API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon
* Aurora User Guide* .
*
* Valid for Cluster Type: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enablehttpendpoint)
*/
override fun enableHttpEndpoint(): Any? = unwrap(this).getEnableHttpEndpoint()
/**
* A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM)
* accounts to database accounts.
*
* By default, mapping is disabled.
*
* For more information, see [IAM Database
* Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enableiamdatabaseauthentication)
*/
override fun enableIamDatabaseAuthentication(): Any? =
unwrap(this).getEnableIamDatabaseAuthentication()
/**
* Specifies whether read replicas can forward write operations to the writer DB instance in the
* DB cluster.
*
* By default, write operations aren't allowed on reader DB instances.
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enablelocalwriteforwarding)
*/
override fun enableLocalWriteForwarding(): Any? = unwrap(this).getEnableLocalWriteForwarding()
/**
* The name of the database engine to be used for this DB cluster.
*
* Valid Values:
*
* * `aurora-mysql`
* * `aurora-postgresql`
* * `mysql`
* * `postgres`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-engine)
*/
override fun engine(): String? = unwrap(this).getEngine()
/**
* The life cycle type for this DB cluster.
*
*
* By default, this value is set to `open-source-rds-extended-support` , which enrolls your DB
* cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges
* for Extended Support by setting the value to `open-source-rds-extended-support-disabled` . In
* this case, creating the DB cluster will fail if the DB major version is past its end of standard
* support date.
*
*
* You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS
* Extended Support, you can run the selected major engine version on your DB cluster past the end
* of standard support for that engine version. For more information, see the following sections:
*
* * Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended
* Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in
* the *Amazon Aurora User Guide*
* * Amazon RDS - [Using Amazon RDS Extended
* Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the
* *Amazon RDS User Guide*
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* Valid Values: `open-source-rds-extended-support | open-source-rds-extended-support-disabled`
*
* Default: `open-source-rds-extended-support`
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enginelifecyclesupport)
*/
override fun engineLifecycleSupport(): String? = unwrap(this).getEngineLifecycleSupport()
/**
* The DB engine mode of the DB cluster, either `provisioned` or `serverless` .
*
* The `serverless` engine mode only applies for Aurora Serverless v1 DB clusters. Aurora
* Serverless v2 DB clusters use the `provisioned` engine mode.
*
* For information about limitations and requirements for Serverless DB clusters, see the
* following sections in the *Amazon Aurora User Guide* :
*
* * [Limitations of Aurora Serverless
* v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations)
* * [Requirements for Aurora Serverless
* v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html)
*
* Valid for Cluster Type: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enginemode)
*/
override fun engineMode(): String? = unwrap(this).getEngineMode()
/**
* The version number of the database engine to use.
*
* To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible) and
* version 3 (8.0-compatible), use the following command:
*
* `aws rds describe-db-engine-versions --engine aurora-mysql --query
* "DBEngineVersions[].EngineVersion"`
*
* You can supply either `5.7` or `8.0` to use the default engine version for Aurora MySQL
* version 2 or version 3, respectively.
*
* To list all of the available engine versions for Aurora PostgreSQL, use the following
* command:
*
* `aws rds describe-db-engine-versions --engine aurora-postgresql --query
* "DBEngineVersions[].EngineVersion"`
*
* To list all of the available engine versions for RDS for MySQL, use the following command:
*
* `aws rds describe-db-engine-versions --engine mysql --query
* "DBEngineVersions[].EngineVersion"`
*
* To list all of the available engine versions for RDS for PostgreSQL, use the following
* command:
*
* `aws rds describe-db-engine-versions --engine postgres --query
* "DBEngineVersions[].EngineVersion"`
*
* *Aurora MySQL*
*
* For information, see [Database engine updates for Amazon Aurora
* MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) in
* the *Amazon Aurora User Guide* .
*
* *Aurora PostgreSQL*
*
* For information, see [Amazon Aurora PostgreSQL releases and engine
* versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html)
* in the *Amazon Aurora User Guide* .
*
* *MySQL*
*
* For information, see [Amazon RDS for
* MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt)
* in the *Amazon RDS User Guide* .
*
* *PostgreSQL*
*
* For information, see [Amazon RDS for
* PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts)
* in the *Amazon RDS User Guide* .
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-engineversion)
*/
override fun engineVersion(): String? = unwrap(this).getEngineVersion()
/**
* If you are configuring an Aurora global database cluster and want your Aurora DB cluster to
* be a secondary member in the global database cluster, specify the global cluster ID of the
* global database cluster.
*
* To define the primary database cluster of the global cluster, use the
* [AWS::RDS::GlobalCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html)
* resource.
*
* If you aren't configuring a global database cluster, don't specify this property.
*
*
* To remove the DB cluster from a global database cluster, specify an empty value for the
* `GlobalClusterIdentifier` property.
*
*
* For information about Aurora global databases, see [Working with Amazon Aurora Global
* Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html)
* in the *Amazon Aurora User Guide* .
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-globalclusteridentifier)
*/
override fun globalClusterIdentifier(): String? = unwrap(this).getGlobalClusterIdentifier()
/**
* The amount of Provisioned IOPS (input/output operations per second) to be initially allocated
* for each DB instance in the Multi-AZ DB cluster.
*
* For information about valid IOPS values, see [Provisioned IOPS
* storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) in
* the *Amazon RDS User Guide* .
*
* This setting is required to create a Multi-AZ DB cluster.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Constraints:
*
* * Must be a multiple between .5 and 50 of the storage amount for the DB cluster.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-iops)
*/
override fun iops(): Number? = unwrap(this).getIops()
/**
* The Amazon Resource Name (ARN) of the AWS KMS key that is used to encrypt the database
* instances in the DB cluster, such as
* `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef` .
*
* If you enable the `StorageEncrypted` property but don't specify this property, the default
* KMS key is used. If you specify this property, you must set the `StorageEncrypted` property to
* `true` .
*
* If you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is
* inherited from the snapshot, and if the DB cluster is encrypted, the specified `KmsKeyId`
* property is used.
*
* If you create a read replica of an encrypted DB cluster in another AWS Region, make sure to
* set `KmsKeyId` to a KMS key identifier that is valid in the destination AWS Region. This KMS key
* is used to encrypt the read replica in that AWS Region.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-kmskeyid)
*/
override fun kmsKeyId(): String? = unwrap(this).getKmsKeyId()
/**
* Specifies whether to manage the master user password with AWS Secrets Manager.
*
* For more information, see [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the
* *Amazon RDS User Guide* and [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* Constraints:
*
* * Can't manage the master user password with AWS Secrets Manager if `MasterUserPassword` is
* specified.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-managemasteruserpassword)
*/
override fun manageMasterUserPassword(): Any? = unwrap(this).getManageMasterUserPassword()
/**
* The master password for the DB instance.
*
*
* If you specify the `SourceDBClusterIdentifier` , `SnapshotIdentifier` , or
* `GlobalClusterIdentifier` property, don't specify this property. The value is inherited from the
* source DB cluster, the snapshot, or the primary DB cluster for the global database cluster,
* respectively.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-masteruserpassword)
*/
override fun masterUserPassword(): String? = unwrap(this).getMasterUserPassword()
/**
* The secret managed by RDS in AWS Secrets Manager for the master user password.
*
* For more information, see [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the
* *Amazon RDS User Guide* and [Password management with AWS Secrets
* Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html)
* in the *Amazon Aurora User Guide.*
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-masterusersecret)
*/
override fun masterUserSecret(): Any? = unwrap(this).getMasterUserSecret()
/**
* The name of the master user for the DB cluster.
*
*
* If you specify the `SourceDBClusterIdentifier` , `SnapshotIdentifier` , or
* `GlobalClusterIdentifier` property, don't specify this property. The value is inherited from the
* source DB cluster, the snapshot, or the primary DB cluster for the global database cluster,
* respectively.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-masterusername)
*/
override fun masterUsername(): String? = unwrap(this).getMasterUsername()
/**
* The interval, in seconds, between points when Enhanced Monitoring metrics are collected for
* the DB cluster.
*
* To turn off collecting Enhanced Monitoring metrics, specify `0` .
*
* If `MonitoringRoleArn` is specified, also set `MonitoringInterval` to a value other than `0`
* .
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Valid Values: `0 | 1 | 5 | 10 | 15 | 30 | 60`
*
* Default: `0`
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-monitoringinterval)
*/
override fun monitoringInterval(): Number? = unwrap(this).getMonitoringInterval()
/**
* The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring
* metrics to Amazon CloudWatch Logs.
*
* An example is `arn:aws:iam:123456789012:role/emaccess` . For information on creating a
* monitoring role, see [Setting up and enabling Enhanced
* Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling)
* in the *Amazon RDS User Guide* .
*
* If `MonitoringInterval` is set to a value other than `0` , supply a `MonitoringRoleArn`
* value.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-monitoringrolearn)
*/
override fun monitoringRoleArn(): String? = unwrap(this).getMonitoringRoleArn()
/**
* The network type of the DB cluster.
*
* Valid values:
*
* * `IPV4`
* * `DUAL`
*
* The network type is determined by the `DBSubnetGroup` specified for the DB cluster. A
* `DBSubnetGroup` can support only the IPv4 protocol or the IPv4 and IPv6 protocols ( `DUAL` ).
*
* For more information, see [Working with a DB instance in a
* VPC](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html)
* in the *Amazon Aurora User Guide.*
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-networktype)
*/
override fun networkType(): String? = unwrap(this).getNetworkType()
/**
* Specifies whether to turn on Performance Insights for the DB cluster.
*
* For more information, see [Using Amazon Performance
* Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the
* *Amazon RDS User Guide* .
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-performanceinsightsenabled)
*/
override fun performanceInsightsEnabled(): Any? = unwrap(this).getPerformanceInsightsEnabled()
/**
* The AWS KMS key identifier for encryption of Performance Insights data.
*
* The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.
*
* If you don't specify a value for `PerformanceInsightsKMSKeyId` , then Amazon RDS uses your
* default KMS key. There is a default KMS key for your AWS account . Your AWS account has a
* different default KMS key for each AWS Region .
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-performanceinsightskmskeyid)
*/
override fun performanceInsightsKmsKeyId(): String? =
unwrap(this).getPerformanceInsightsKmsKeyId()
/**
* The number of days to retain Performance Insights data.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Valid Values:
*
* * `7`
* * *month* * 31, where *month* is a number of months from 1-23. Examples: `93` (3 months *
* 31), `341` (11 months * 31), `589` (19 months * 31)
* * `731`
*
* Default: `7` days
*
* If you specify a retention period that isn't valid, such as `94` , Amazon RDS issues an
* error.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-performanceinsightsretentionperiod)
*/
override fun performanceInsightsRetentionPeriod(): Number? =
unwrap(this).getPerformanceInsightsRetentionPeriod()
/**
* The port number on which the DB instances in the DB cluster accept connections.
*
* Default:
*
* * When `EngineMode` is `provisioned` , `3306` (for both Aurora MySQL and Aurora PostgreSQL)
* * When `EngineMode` is `serverless` :
* * `3306` when `Engine` is `aurora` or `aurora-mysql`
* * `5432` when `Engine` is `aurora-postgresql`
*
*
* The `No interruption` on update behavior only applies to DB clusters. If you are updating a
* DB instance, see
* [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port)
* for the AWS::RDS::DBInstance resource.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-port)
*/
override fun port(): Number? = unwrap(this).getPort()
/**
* The daily time range during which automated backups are created.
*
* For more information, see [Backup
* Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow)
* in the *Amazon Aurora User Guide.*
*
* Constraints:
*
* * Must be in the format `hh24:mi-hh24:mi` .
* * Must be in Universal Coordinated Time (UTC).
* * Must not conflict with the preferred maintenance window.
* * Must be at least 30 minutes.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-preferredbackupwindow)
*/
override fun preferredBackupWindow(): String? = unwrap(this).getPreferredBackupWindow()
/**
* The weekly time range during which system maintenance can occur, in Universal Coordinated
* Time (UTC).
*
* Format: `ddd:hh24:mi-ddd:hh24:mi`
*
* The default is a 30-minute window selected at random from an 8-hour block of time for each
* AWS Region, occurring on a random day of the week. To see the time blocks available, see
* [Adjusting the Preferred DB Cluster Maintenance
* Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora)
* in the *Amazon Aurora User Guide.*
*
* Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
*
* Constraints: Minimum 30-minute window.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-preferredmaintenancewindow)
*/
override fun preferredMaintenanceWindow(): String? =
unwrap(this).getPreferredMaintenanceWindow()
/**
* Specifies whether the DB cluster is publicly accessible.
*
* When the DB cluster is publicly accessible and you connect from outside of the DB cluster's
* virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP
* address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to
* the private IP address. Access to the DB cluster is ultimately controlled by the security group
* it uses. That public access isn't permitted if the security group assigned to the DB cluster
* doesn't permit it.
*
* When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name
* that resolves to a private IP address.
*
* Valid for Cluster Type: Multi-AZ DB clusters only
*
* Default: The default behavior varies depending on whether `DBSubnetGroupName` is specified.
*
* If `DBSubnetGroupName` isn't specified, and `PubliclyAccessible` isn't specified, the
* following applies:
*
* * If the default VPC in the target Region doesn’t have an internet gateway attached to it,
* the DB cluster is private.
* * If the default VPC in the target Region has an internet gateway attached to it, the DB
* cluster is public.
*
* If `DBSubnetGroupName` is specified, and `PubliclyAccessible` isn't specified, the following
* applies:
*
* * If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the
* DB cluster is private.
* * If the subnets are part of a VPC that has an internet gateway attached to it, the DB
* cluster is public.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-publiclyaccessible)
*/
override fun publiclyAccessible(): Any? = unwrap(this).getPubliclyAccessible()
/**
* The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is
* created as a read replica.
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-replicationsourceidentifier)
*/
override fun replicationSourceIdentifier(): String? =
unwrap(this).getReplicationSourceIdentifier()
/**
* The date and time to restore the DB cluster to.
*
* Valid Values: Value must be a time in Universal Coordinated Time (UTC) format
*
* Constraints:
*
* * Must be before the latest restorable time for the DB instance
* * Must be specified if `UseLatestRestorableTime` parameter isn't provided
* * Can't be specified if the `UseLatestRestorableTime` parameter is enabled
* * Can't be specified if the `RestoreType` parameter is `copy-on-write`
*
* This property must be used with `SourceDBClusterIdentifier` property. The resulting cluster
* will have the identifier that matches the value of the `DBclusterIdentifier` property.
*
* Example: `2015-03-07T23:45:00Z`
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-restoretotime)
*/
override fun restoreToTime(): String? = unwrap(this).getRestoreToTime()
/**
* The type of restore to be performed. You can specify one of the following values:.
*
* * `full-copy` - The new DB cluster is restored as a full copy of the source DB cluster.
* * `copy-on-write` - The new DB cluster is restored as a clone of the source DB cluster.
*
* If you don't specify a `RestoreType` value, then the new DB cluster is restored as a full
* copy of the source DB cluster.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-restoretype)
*/
override fun restoreType(): String? = unwrap(this).getRestoreType()
/**
* The scaling configuration of an Aurora Serverless v1 DB cluster.
*
* This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the
* `ServerlessV2ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v1 DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-scalingconfiguration)
*/
override fun scalingConfiguration(): Any? = unwrap(this).getScalingConfiguration()
/**
* The scaling configuration of an Aurora Serverless V2 DB cluster.
*
* This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the
* `ScalingConfiguration` property.
*
* Valid for: Aurora Serverless v2 DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-serverlessv2scalingconfiguration)
*/
override fun serverlessV2ScalingConfiguration(): Any? =
unwrap(this).getServerlessV2ScalingConfiguration()
/**
* The identifier for the DB snapshot or DB cluster snapshot to restore from.
*
* You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster
* snapshot. However, you can use only the ARN to specify a DB snapshot.
*
* After you restore a DB cluster with a `SnapshotIdentifier` property, you must specify the
* same `SnapshotIdentifier` property for any future updates to the DB cluster. When you specify
* this property for an update, the DB cluster is not restored from the snapshot again, and the
* data in the database is not changed. However, if you don't specify the `SnapshotIdentifier`
* property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify
* a property that is different from the previous snapshot restore property, a new DB cluster is
* restored from the specified `SnapshotIdentifier` property, and the original DB cluster is
* deleted.
*
* If you specify the `SnapshotIdentifier` property to restore a DB cluster (as opposed to
* specifying it for DB cluster updates), then don't specify the following properties:
*
* * `GlobalClusterIdentifier`
* * `MasterUsername`
* * `MasterUserPassword`
* * `ReplicationSourceIdentifier`
* * `RestoreType`
* * `SourceDBClusterIdentifier`
* * `SourceRegion`
* * `StorageEncrypted` (for an encrypted snapshot)
* * `UseLatestRestorableTime`
*
* Constraints:
*
* * Must match the identifier of an existing Snapshot.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-snapshotidentifier)
*/
override fun snapshotIdentifier(): String? = unwrap(this).getSnapshotIdentifier()
/**
* When restoring a DB cluster to a point in time, the identifier of the source DB cluster from
* which to restore.
*
* Constraints:
*
* * Must match the identifier of an existing DBCluster.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-sourcedbclusteridentifier)
*/
override fun sourceDbClusterIdentifier(): String? = unwrap(this).getSourceDbClusterIdentifier()
/**
* The AWS Region which contains the source DB cluster when replicating a DB cluster. For
* example, `us-east-1` .
*
* Valid for: Aurora DB clusters only
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-sourceregion)
*/
override fun sourceRegion(): String? = unwrap(this).getSourceRegion()
/**
* Indicates whether the DB cluster is encrypted.
*
* If you specify the `KmsKeyId` property, then you must enable encryption.
*
* If you specify the `SourceDBClusterIdentifier` property, don't specify this property. The
* value is inherited from the source DB cluster, and if the DB cluster is encrypted, the specified
* `KmsKeyId` property is used.
*
* If you specify the `SnapshotIdentifier` and the specified snapshot is encrypted, don't
* specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId`
* property is used.
*
* If you specify the `SnapshotIdentifier` and the specified snapshot isn't encrypted, you can
* use this property to specify that the restored DB cluster is encrypted. Specify the `KmsKeyId`
* property for the KMS key to use for encryption. If you don't want the restored DB cluster to be
* encrypted, then don't set this property or set it to `false` .
*
*
* If you specify both the `StorageEncrypted` and `SnapshotIdentifier` properties without
* specifying the `KmsKeyId` property, then the restored DB cluster inherits the encryption
* settings from the DB snapshot that provide.
*
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-storageencrypted)
*/
override fun storageEncrypted(): Any? = unwrap(this).getStorageEncrypted()
/**
* The storage type to associate with the DB cluster.
*
* For information on storage types for Aurora DB clusters, see [Storage configurations for
* Amazon Aurora DB
* clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html#aurora-storage-type)
* . For information on storage types for Multi-AZ DB clusters, see [Settings for creating Multi-AZ
* DB
* clusters](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html#create-multi-az-db-cluster-settings)
* .
*
* This setting is required to create a Multi-AZ DB cluster.
*
* When specified for a Multi-AZ DB cluster, a value for the `Iops` parameter is required.
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* Valid Values:
*
* * Aurora DB clusters - `aurora | aurora-iopt1`
* * Multi-AZ DB clusters - `io1 | io2 | gp3`
*
* Default:
*
* * Aurora DB clusters - `aurora`
* * Multi-AZ DB clusters - `io1`
*
*
* When you create an Aurora DB cluster with the storage type set to `aurora-iopt1` , the
* storage type is returned in the response. The storage type isn't returned when you set it to
* `aurora` .
*
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-storagetype)
*/
override fun storageType(): String? = unwrap(this).getStorageType()
/**
* Tags to assign to the DB cluster.
*
* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-tags)
*/
override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()
/**
* A value that indicates whether to restore the DB cluster to the latest restorable backup
* time.
*
* By default, the DB cluster is not restored to the latest restorable backup time.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-uselatestrestorabletime)
*/
override fun useLatestRestorableTime(): Any? = unwrap(this).getUseLatestRestorableTime()
/**
* A list of EC2 VPC security groups to associate with this DB cluster.
*
* If you plan to update the resource, don't specify VPC security groups in a shared VPC.
*
* Valid for: Aurora DB clusters and Multi-AZ DB clusters
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-vpcsecuritygroupids)
*/
override fun vpcSecurityGroupIds(): List = unwrap(this).getVpcSecurityGroupIds() ?:
emptyList()
}
public companion object {
public operator fun invoke(block: Builder.() -> Unit = {}): CfnDBClusterProps {
val builderImpl = BuilderImpl()
return Wrapper(builderImpl.apply(block).build())
}
internal fun wrap(cdkObject: software.amazon.awscdk.services.rds.CfnDBClusterProps):
CfnDBClusterProps = CdkObjectWrappers.wrap(cdkObject) as? CfnDBClusterProps ?:
Wrapper(cdkObject)
internal fun unwrap(wrapped: CfnDBClusterProps):
software.amazon.awscdk.services.rds.CfnDBClusterProps = (wrapped as CdkObject).cdkObject as
software.amazon.awscdk.services.rds.CfnDBClusterProps
}
}