restoreDBClusterFromS3 method
- required String dBClusterIdentifier,
- required String engine,
- required String masterUsername,
- required String s3BucketName,
- required String s3IngestionRoleArn,
- required String sourceEngine,
- required String sourceEngineVersion,
- List<
String> ? availabilityZones, - int? backtrackWindow,
- int? backupRetentionPeriod,
- String? characterSetName,
- bool? copyTagsToSnapshot,
- String? dBClusterParameterGroupName,
- String? dBSubnetGroupName,
- String? databaseName,
- bool? deletionProtection,
- String? domain,
- String? domainIAMRoleName,
- List<
String> ? enableCloudwatchLogsExports, - bool? enableIAMDatabaseAuthentication,
- String? engineLifecycleSupport,
- String? engineVersion,
- String? kmsKeyId,
- bool? manageMasterUserPassword,
- String? masterUserPassword,
- String? masterUserSecretKmsKeyId,
- String? networkType,
- String? optionGroupName,
- int? port,
- String? preferredBackupWindow,
- String? preferredMaintenanceWindow,
- String? s3Prefix,
- ServerlessV2ScalingConfiguration? serverlessV2ScalingConfiguration,
- bool? storageEncrypted,
- String? storageType,
- List<
TagSpecification> ? tagSpecifications, - List<
Tag> ? tags, - List<
String> ? vpcSecurityGroupIds,
Creates an Amazon Aurora DB cluster from MySQL data stored in an Amazon S3 bucket. Amazon RDS must be authorized to access the Amazon S3 bucket and the data must be created using the Percona XtraBackup utility as described in Migrating Data from MySQL by Using an Amazon S3 Bucket in the Amazon Aurora User Guide. For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.
May throw DBClusterAlreadyExistsFault.
May throw DBClusterNotFoundFault.
May throw DBClusterParameterGroupNotFoundFault.
May throw DBClusterQuotaExceededFault.
May throw DBSubnetGroupNotFoundFault.
May throw DomainNotFoundFault.
May throw InsufficientStorageClusterCapacityFault.
May throw InvalidDBClusterStateFault.
May throw InvalidDBSubnetGroupStateFault.
May throw InvalidS3BucketFault.
May throw InvalidSubnet.
May throw InvalidVPCNetworkStateFault.
May throw KMSKeyNotAccessibleFault.
May throw NetworkTypeNotSupported.
May throw StorageQuotaExceededFault.
May throw StorageTypeNotSupportedFault.
Parameter dBClusterIdentifier :
The name of the DB cluster to create from the source data in the Amazon S3
bucket. This parameter isn't case-sensitive.
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.
my-cluster1
Parameter engine :
The name of the database engine to be used for this DB cluster.
Valid Values: aurora-mysql (for Aurora MySQL)
Parameter masterUsername :
The name of the master user for the restored DB cluster.
Constraints:
- Must be 1 to 16 letters or numbers.
- First character must be a letter.
- Can't be a reserved word for the chosen database engine.
Parameter s3BucketName :
The name of the Amazon S3 bucket that contains the data used to create the
Amazon Aurora DB cluster.
Parameter s3IngestionRoleArn :
The Amazon Resource Name (ARN) of the Amazon Web Services Identity and
Access Management (IAM) role that authorizes Amazon RDS to access the
Amazon S3 bucket on your behalf.
Parameter sourceEngine :
The identifier for the database engine that was backed up to create the
files stored in the Amazon S3 bucket.
Valid Values: mysql
Parameter sourceEngineVersion :
The version of the database that the backup files were created from.
MySQL versions 5.7 and 8.0 are supported.
Example: 5.7.40, 8.0.28
Parameter availabilityZones :
A list of Availability Zones (AZs) where instances in the restored DB
cluster can be created.
Parameter backtrackWindow :
The target backtrack window, in seconds. To disable backtracking, set this
value to 0.
Default: 0
Constraints:
- If specified, this value must be set to a number from 0 to 259,200 (72 hours).
Parameter backupRetentionPeriod :
The number of days for which automated backups of the restored DB cluster
are retained. You must specify a minimum value of 1.
Default: 1
Constraints:
- Must be a value from 1 to 35
Parameter characterSetName :
A value that indicates that the restored DB cluster should be associated
with the specified CharacterSet.
Parameter copyTagsToSnapshot :
Specifies whether to copy all tags from the restored DB cluster to
snapshots of the restored DB cluster. The default is not to copy them.
Parameter dBClusterParameterGroupName :
The name of the DB cluster parameter group to associate with the restored
DB cluster. If this argument is omitted, the default parameter group for
the engine version is used.
Constraints:
- If supplied, must match the name of an existing DBClusterParameterGroup.
Parameter dBSubnetGroupName :
A DB subnet group to associate with the restored DB cluster.
Constraints: If supplied, must match the name of an existing DBSubnetGroup.
Example: mydbsubnetgroup
Parameter databaseName :
The database name for the restored DB cluster.
Parameter deletionProtection :
Specifies whether to enable deletion protection for the DB cluster. The
database can't be deleted when deletion protection is enabled. By default,
deletion protection isn't enabled.
Parameter domain :
Specify the Active Directory directory ID to restore the DB cluster in.
The domain must be created prior to this operation.
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 in the Amazon Aurora User Guide.
Parameter domainIAMRoleName :
Specify the name of the IAM role to be used when making API calls to the
Directory Service.
Parameter enableCloudwatchLogsExports :
The list of logs that the restored DB cluster is to export to CloudWatch
Logs. The values in the list depend on the DB engine being used.
Aurora MySQL
Possible values are audit, error,
general, instance, slowquery, and
iam-db-auth-error.
Aurora PostgreSQL
Possible value are instance, postgresql, and
iam-db-auth-error.
For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.
For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.
Parameter enableIAMDatabaseAuthentication :
Specifies whether to enable mapping of Amazon Web Services Identity and
Access Management (IAM) accounts to database accounts. By default, mapping
isn't enabled.
For more information, see IAM Database Authentication in the Amazon Aurora User Guide.
Parameter engineLifecycleSupport :
The life cycle type for this DB cluster.
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 - Amazon RDS Extended Support with Amazon Aurora in the Amazon Aurora User Guide
- Amazon RDS - Amazon RDS Extended Support with Amazon RDS in the Amazon RDS User Guide
Valid Values: open-source-rds-extended-support |
open-source-rds-extended-support-disabled
Default: open-source-rds-extended-support
Parameter engineVersion :
The version number of the database engine to use.
To list all of the available engine versions for aurora-mysql
(Aurora MySQL), use the following command:
aws rds describe-db-engine-versions --engine aurora-mysql --query
"DBEngineVersions[].EngineVersion"
Aurora MySQL
Examples: 5.7.mysql_aurora.2.12.0,
8.0.mysql_aurora.3.04.0
Parameter kmsKeyId :
The Amazon Web Services KMS key identifier for an encrypted DB cluster.
The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.
If the StorageEncrypted parameter is enabled, and you do not specify a
value for the KmsKeyId parameter, then Amazon RDS will use
your default KMS key. There is a default KMS key for your Amazon Web
Services account. Your Amazon Web Services account has a different default
KMS key for each Amazon Web Services Region.
Parameter manageMasterUserPassword :
Specifies whether to manage the master user password with Amazon Web
Services Secrets Manager.
For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide and Password management with Amazon Web Services Secrets Manager in the Amazon Aurora User Guide.
Constraints:
-
Can't manage the master user password with Amazon Web Services Secrets
Manager if
MasterUserPasswordis specified.
Parameter masterUserPassword :
The password for the master database user. This password can contain any
printable ASCII character except "/", """, or "@".
Constraints:
- Must contain from 8 to 41 characters.
-
Can't be specified if
ManageMasterUserPasswordis turned on.
Parameter masterUserSecretKmsKeyId :
The Amazon Web Services KMS key identifier to encrypt a secret that is
automatically generated and managed in Amazon Web Services Secrets
Manager.
This setting is valid only if the master user password is managed by RDS in Amazon Web Services Secrets Manager for the DB cluster.
The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.
If you don't specify MasterUserSecretKmsKeyId, then the
aws/secretsmanager KMS key is used to encrypt the secret. If
the secret is in a different Amazon Web Services account, then you can't
use the aws/secretsmanager KMS key to encrypt the secret, and
you must use a customer managed KMS key.
There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.
Parameter networkType :
The network type of the DB cluster.
Valid Values:
-
IPV4 -
DUAL
DBSubnetGroup specified
for the DB cluster. A DBSubnetGroup can support only the IPv4
protocol or the IPv4 and the IPv6 protocols (DUAL).
For more information, see Working with a DB instance in a VPC in the Amazon Aurora User Guide.
Parameter optionGroupName :
A value that indicates that the restored DB cluster should be associated
with the specified option group.
Permanent options can't be removed from an option group. An option group can't be removed from a DB cluster once it is associated with a DB cluster.
Parameter port :
The port number on which the instances in the restored DB cluster accept
connections.
Default: 3306
Parameter preferredBackupWindow :
The daily time range during which automated backups are created if
automated backups are enabled using the BackupRetentionPeriod
parameter.
The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. To view the time blocks available, see Backup window 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.
Parameter 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 Amazon Web Services Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon Aurora User Guide.
Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
Constraints: Minimum 30-minute window.
Parameter s3Prefix :
The prefix for all of the file names that contain the data used to create
the Amazon Aurora DB cluster. If you do not specify a
SourceS3Prefix value, then the Amazon Aurora DB cluster is created
by using all of the files in the Amazon S3 bucket.
Parameter storageEncrypted :
Specifies whether the restored DB cluster is encrypted.
Parameter storageType :
Specifies the storage type to be associated with the DB cluster.
Valid Values: aurora, aurora-iopt1
Default: aurora
Valid for: Aurora DB clusters only
Parameter tagSpecifications :
Tags to assign to resources associated with the DB cluster.
Valid Values:
-
cluster-auto-backup- The DB cluster's automated backup.
Parameter vpcSecurityGroupIds :
A list of EC2 VPC security groups to associate with the restored DB
cluster.
Implementation
Future<RestoreDBClusterFromS3Result> restoreDBClusterFromS3({
required String dBClusterIdentifier,
required String engine,
required String masterUsername,
required String s3BucketName,
required String s3IngestionRoleArn,
required String sourceEngine,
required String sourceEngineVersion,
List<String>? availabilityZones,
int? backtrackWindow,
int? backupRetentionPeriod,
String? characterSetName,
bool? copyTagsToSnapshot,
String? dBClusterParameterGroupName,
String? dBSubnetGroupName,
String? databaseName,
bool? deletionProtection,
String? domain,
String? domainIAMRoleName,
List<String>? enableCloudwatchLogsExports,
bool? enableIAMDatabaseAuthentication,
String? engineLifecycleSupport,
String? engineVersion,
String? kmsKeyId,
bool? manageMasterUserPassword,
String? masterUserPassword,
String? masterUserSecretKmsKeyId,
String? networkType,
String? optionGroupName,
int? port,
String? preferredBackupWindow,
String? preferredMaintenanceWindow,
String? s3Prefix,
ServerlessV2ScalingConfiguration? serverlessV2ScalingConfiguration,
bool? storageEncrypted,
String? storageType,
List<TagSpecification>? tagSpecifications,
List<Tag>? tags,
List<String>? vpcSecurityGroupIds,
}) async {
final $request = <String, String>{
'DBClusterIdentifier': dBClusterIdentifier,
'Engine': engine,
'MasterUsername': masterUsername,
'S3BucketName': s3BucketName,
'S3IngestionRoleArn': s3IngestionRoleArn,
'SourceEngine': sourceEngine,
'SourceEngineVersion': sourceEngineVersion,
if (availabilityZones != null)
if (availabilityZones.isEmpty)
'AvailabilityZones': ''
else
for (var i1 = 0; i1 < availabilityZones.length; i1++)
'AvailabilityZones.AvailabilityZone.${i1 + 1}':
availabilityZones[i1],
if (backtrackWindow != null)
'BacktrackWindow': backtrackWindow.toString(),
if (backupRetentionPeriod != null)
'BackupRetentionPeriod': backupRetentionPeriod.toString(),
if (characterSetName != null) 'CharacterSetName': characterSetName,
if (copyTagsToSnapshot != null)
'CopyTagsToSnapshot': copyTagsToSnapshot.toString(),
if (dBClusterParameterGroupName != null)
'DBClusterParameterGroupName': dBClusterParameterGroupName,
if (dBSubnetGroupName != null) 'DBSubnetGroupName': dBSubnetGroupName,
if (databaseName != null) 'DatabaseName': databaseName,
if (deletionProtection != null)
'DeletionProtection': deletionProtection.toString(),
if (domain != null) 'Domain': domain,
if (domainIAMRoleName != null) 'DomainIAMRoleName': domainIAMRoleName,
if (enableCloudwatchLogsExports != null)
if (enableCloudwatchLogsExports.isEmpty)
'EnableCloudwatchLogsExports': ''
else
for (var i1 = 0; i1 < enableCloudwatchLogsExports.length; i1++)
'EnableCloudwatchLogsExports.member.${i1 + 1}':
enableCloudwatchLogsExports[i1],
if (enableIAMDatabaseAuthentication != null)
'EnableIAMDatabaseAuthentication':
enableIAMDatabaseAuthentication.toString(),
if (engineLifecycleSupport != null)
'EngineLifecycleSupport': engineLifecycleSupport,
if (engineVersion != null) 'EngineVersion': engineVersion,
if (kmsKeyId != null) 'KmsKeyId': kmsKeyId,
if (manageMasterUserPassword != null)
'ManageMasterUserPassword': manageMasterUserPassword.toString(),
if (masterUserPassword != null) 'MasterUserPassword': masterUserPassword,
if (masterUserSecretKmsKeyId != null)
'MasterUserSecretKmsKeyId': masterUserSecretKmsKeyId,
if (networkType != null) 'NetworkType': networkType,
if (optionGroupName != null) 'OptionGroupName': optionGroupName,
if (port != null) 'Port': port.toString(),
if (preferredBackupWindow != null)
'PreferredBackupWindow': preferredBackupWindow,
if (preferredMaintenanceWindow != null)
'PreferredMaintenanceWindow': preferredMaintenanceWindow,
if (s3Prefix != null) 'S3Prefix': s3Prefix,
if (serverlessV2ScalingConfiguration != null)
for (var e1 in serverlessV2ScalingConfiguration.toQueryMap().entries)
'ServerlessV2ScalingConfiguration.${e1.key}': e1.value,
if (storageEncrypted != null)
'StorageEncrypted': storageEncrypted.toString(),
if (storageType != null) 'StorageType': storageType,
if (tagSpecifications != null)
if (tagSpecifications.isEmpty)
'TagSpecifications': ''
else
for (var i1 = 0; i1 < tagSpecifications.length; i1++)
for (var e3 in tagSpecifications[i1].toQueryMap().entries)
'TagSpecifications.item.${i1 + 1}.${e3.key}': e3.value,
if (tags != null)
if (tags.isEmpty)
'Tags': ''
else
for (var i1 = 0; i1 < tags.length; i1++)
for (var e3 in tags[i1].toQueryMap().entries)
'Tags.Tag.${i1 + 1}.${e3.key}': e3.value,
if (vpcSecurityGroupIds != null)
if (vpcSecurityGroupIds.isEmpty)
'VpcSecurityGroupIds': ''
else
for (var i1 = 0; i1 < vpcSecurityGroupIds.length; i1++)
'VpcSecurityGroupIds.VpcSecurityGroupId.${i1 + 1}':
vpcSecurityGroupIds[i1],
};
final $result = await _protocol.send(
$request,
action: 'RestoreDBClusterFromS3',
version: '2014-10-31',
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
resultWrapper: 'RestoreDBClusterFromS3Result',
);
return RestoreDBClusterFromS3Result.fromXml($result);
}