restoreDBClusterFromSnapshot method

Future<RestoreDBClusterFromSnapshotResult> restoreDBClusterFromSnapshot({
  1. required String dBClusterIdentifier,
  2. required String engine,
  3. required String snapshotIdentifier,
  4. List<String>? availabilityZones,
  5. int? backtrackWindow,
  6. bool? copyTagsToSnapshot,
  7. String? dBClusterParameterGroupName,
  8. String? dBSubnetGroupName,
  9. String? databaseName,
  10. bool? deletionProtection,
  11. String? domain,
  12. String? domainIAMRoleName,
  13. List<String>? enableCloudwatchLogsExports,
  14. bool? enableIAMDatabaseAuthentication,
  15. String? engineMode,
  16. String? engineVersion,
  17. String? kmsKeyId,
  18. String? optionGroupName,
  19. int? port,
  20. ScalingConfiguration? scalingConfiguration,
  21. List<Tag>? tags,
  22. List<String>? vpcSecurityGroupIds,
})

Creates a new DB cluster from a DB snapshot or DB cluster snapshot. This action only applies to Aurora DB clusters.

The target DB cluster is created from the source snapshot with a default configuration. If you don't specify a security group, the new DB cluster is associated with the default security group. For more information on Amazon Aurora, see What Is Amazon Aurora? in the Amazon Aurora User Guide.

May throw DBClusterAlreadyExistsFault. May throw DBClusterQuotaExceededFault. May throw StorageQuotaExceededFault. May throw DBSubnetGroupNotFoundFault. May throw DBSnapshotNotFoundFault. May throw DBClusterSnapshotNotFoundFault. May throw InsufficientDBClusterCapacityFault. May throw InsufficientStorageClusterCapacityFault. May throw InvalidDBSnapshotStateFault. May throw InvalidDBClusterSnapshotStateFault. May throw StorageQuotaExceededFault. May throw InvalidVPCNetworkStateFault. May throw InvalidRestoreFault. May throw DBSubnetGroupNotFoundFault. May throw InvalidSubnet. May throw OptionGroupNotFoundFault. May throw KMSKeyNotAccessibleFault. May throw DomainNotFoundFault. May throw DBClusterParameterGroupNotFoundFault.

Parameter dBClusterIdentifier : The name of the DB cluster to create from the DB snapshot or DB cluster snapshot. 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
Example: my-snapshot-id

Parameter engine : The database engine to use for the new DB cluster.

Default: The same as source

Constraint: Must be compatible with the engine of the source

Parameter 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.

Constraints:

  • Must match the identifier of an existing Snapshot.

Parameter availabilityZones : Provides the 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 copyTagsToSnapshot : A value that indicates 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 this DB cluster. If this argument is omitted, the default DB cluster parameter group for the specified engine is used.

Constraints:

  • If supplied, must match the name of an existing default DB cluster parameter group.
  • Must be 1 to 255 letters, numbers, or hyphens.
  • First character must be a letter.
  • Can't end with a hyphen or contain two consecutive hyphens.

Parameter dBSubnetGroupName : The name of the DB subnet group to use for the new DB cluster.

Constraints: If supplied, must match the name of an existing DB subnet group.

Example: mySubnetgroup

Parameter databaseName : The database name for the restored DB cluster.

Parameter 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.

Parameter domain : Specify the Active Directory directory ID to restore the DB cluster in. The domain must be created prior to this operation. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.

For more information, see Kerberos Authentication in the Amazon RDS 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 Amazon 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 in the Amazon Aurora User Guide.

Parameter 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 in the Amazon Aurora User Guide.

Parameter engineMode : The DB engine mode of the DB cluster, either provisioned, serverless, parallelquery, global, or multimaster.

For more information, see CreateDBCluster.

Parameter engineVersion : The version of the database engine to use for the new DB cluster.

To list all of the available engine versions for aurora (for MySQL 5.6-compatible Aurora), use the following command:

aws rds describe-db-engine-versions --engine aurora --query "DBEngineVersions[].EngineVersion"

To list all of the available engine versions for aurora-mysql (for MySQL 5.7-compatible Aurora), use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions[].EngineVersion"

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" Aurora MySQL

Example: 5.6.10a, 5.6.mysql_aurora.1.19.2, 5.7.12, 5.7.mysql_aurora.2.04.5

Aurora PostgreSQL

Example: 9.6.3, 10.7

Parameter kmsKeyId : The AWS KMS key identifier to use when restoring an encrypted DB cluster from a DB snapshot or DB cluster snapshot.

The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK). To use a CMK in a different AWS account, specify the key ARN or alias ARN.

When you don't specify a value for the KmsKeyId parameter, then the following occurs:

  • If the DB snapshot or DB cluster snapshot in SnapshotIdentifier is encrypted, then the restored DB cluster is encrypted using the AWS KMS CMK that was used to encrypt the DB snapshot or DB cluster snapshot.
  • If the DB snapshot or DB cluster snapshot in SnapshotIdentifier isn't encrypted, then the restored DB cluster isn't encrypted.

Parameter optionGroupName : The name of the option group to use for the restored DB cluster.

Parameter port : The port number on which the new DB cluster accepts connections.

Constraints: This value must be 1150-65535

Default: The same port as the original DB cluster.

Parameter scalingConfiguration : For DB clusters in serverless DB engine mode, the scaling properties of the DB cluster.

Parameter tags : The tags to be assigned to the restored DB cluster.

Parameter vpcSecurityGroupIds : A list of VPC security groups that the new DB cluster will belong to.

Implementation

Future<RestoreDBClusterFromSnapshotResult> restoreDBClusterFromSnapshot({
  required String dBClusterIdentifier,
  required String engine,
  required String snapshotIdentifier,
  List<String>? availabilityZones,
  int? backtrackWindow,
  bool? copyTagsToSnapshot,
  String? dBClusterParameterGroupName,
  String? dBSubnetGroupName,
  String? databaseName,
  bool? deletionProtection,
  String? domain,
  String? domainIAMRoleName,
  List<String>? enableCloudwatchLogsExports,
  bool? enableIAMDatabaseAuthentication,
  String? engineMode,
  String? engineVersion,
  String? kmsKeyId,
  String? optionGroupName,
  int? port,
  ScalingConfiguration? scalingConfiguration,
  List<Tag>? tags,
  List<String>? vpcSecurityGroupIds,
}) async {
  ArgumentError.checkNotNull(dBClusterIdentifier, 'dBClusterIdentifier');
  ArgumentError.checkNotNull(engine, 'engine');
  ArgumentError.checkNotNull(snapshotIdentifier, 'snapshotIdentifier');
  final $request = <String, dynamic>{};
  $request['DBClusterIdentifier'] = dBClusterIdentifier;
  $request['Engine'] = engine;
  $request['SnapshotIdentifier'] = snapshotIdentifier;
  availabilityZones?.also((arg) => $request['AvailabilityZones'] = arg);
  backtrackWindow?.also((arg) => $request['BacktrackWindow'] = arg);
  copyTagsToSnapshot?.also((arg) => $request['CopyTagsToSnapshot'] = arg);
  dBClusterParameterGroupName
      ?.also((arg) => $request['DBClusterParameterGroupName'] = arg);
  dBSubnetGroupName?.also((arg) => $request['DBSubnetGroupName'] = arg);
  databaseName?.also((arg) => $request['DatabaseName'] = arg);
  deletionProtection?.also((arg) => $request['DeletionProtection'] = arg);
  domain?.also((arg) => $request['Domain'] = arg);
  domainIAMRoleName?.also((arg) => $request['DomainIAMRoleName'] = arg);
  enableCloudwatchLogsExports
      ?.also((arg) => $request['EnableCloudwatchLogsExports'] = arg);
  enableIAMDatabaseAuthentication
      ?.also((arg) => $request['EnableIAMDatabaseAuthentication'] = arg);
  engineMode?.also((arg) => $request['EngineMode'] = arg);
  engineVersion?.also((arg) => $request['EngineVersion'] = arg);
  kmsKeyId?.also((arg) => $request['KmsKeyId'] = arg);
  optionGroupName?.also((arg) => $request['OptionGroupName'] = arg);
  port?.also((arg) => $request['Port'] = arg);
  scalingConfiguration?.also((arg) => $request['ScalingConfiguration'] = arg);
  tags?.also((arg) => $request['Tags'] = arg);
  vpcSecurityGroupIds?.also((arg) => $request['VpcSecurityGroupIds'] = arg);
  final $result = await _protocol.send(
    $request,
    action: 'RestoreDBClusterFromSnapshot',
    version: '2014-10-31',
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    shape: shapes['RestoreDBClusterFromSnapshotMessage'],
    shapes: shapes,
    resultWrapper: 'RestoreDBClusterFromSnapshotResult',
  );
  return RestoreDBClusterFromSnapshotResult.fromXml($result);
}