restoreDBClusterToPointInTime method

Future<RestoreDBClusterToPointInTimeResult> restoreDBClusterToPointInTime({
  1. required String dBClusterIdentifier,
  2. required String sourceDBClusterIdentifier,
  3. int? backtrackWindow,
  4. bool? copyTagsToSnapshot,
  5. String? dBClusterParameterGroupName,
  6. String? dBSubnetGroupName,
  7. bool? deletionProtection,
  8. String? domain,
  9. String? domainIAMRoleName,
  10. List<String>? enableCloudwatchLogsExports,
  11. bool? enableIAMDatabaseAuthentication,
  12. String? kmsKeyId,
  13. String? optionGroupName,
  14. int? port,
  15. DateTime? restoreToTime,
  16. String? restoreType,
  17. List<Tag>? tags,
  18. bool? useLatestRestorableTime,
  19. List<String>? vpcSecurityGroupIds,
})

Restores a DB cluster to an arbitrary point in time. Users can restore to any point in time before LatestRestorableTime for up to BackupRetentionPeriod days. The target DB cluster is created from the source DB cluster with the same configuration as the original DB cluster, except that the new DB cluster is created with the default DB security group. 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 DBClusterQuotaExceededFault. May throw DBClusterSnapshotNotFoundFault. May throw DBSubnetGroupNotFoundFault. May throw InsufficientDBClusterCapacityFault. May throw InsufficientStorageClusterCapacityFault. May throw InvalidDBClusterSnapshotStateFault. May throw InvalidDBClusterStateFault. May throw InvalidDBSnapshotStateFault. May throw InvalidRestoreFault. May throw InvalidSubnet. May throw InvalidVPCNetworkStateFault. May throw KMSKeyNotAccessibleFault. May throw OptionGroupNotFoundFault. May throw StorageQuotaExceededFault. May throw DomainNotFoundFault. May throw DBClusterParameterGroupNotFoundFault.

Parameter dBClusterIdentifier : The name of the new DB cluster to be created.

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

Parameter sourceDBClusterIdentifier : The identifier of the source DB cluster from which to restore.

Constraints:

  • Must match the identifier of an existing DBCluster.

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 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 DB subnet group name to use for the new DB cluster.

Constraints: If supplied, must match the name of an existing DBSubnetGroup.

Example: mySubnetgroup

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.

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. 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 kmsKeyId : The AWS KMS key identifier to use when restoring an encrypted DB cluster from an encrypted DB cluster.

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.

You can restore to a new DB cluster and encrypt the new DB cluster with a AWS KMS CMK that is different than the AWS KMS key used to encrypt the source DB cluster. The new DB cluster is encrypted with the AWS KMS CMK identified by the KmsKeyId parameter.

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

  • If the DB cluster is encrypted, then the restored DB cluster is encrypted using the AWS KMS CMK that was used to encrypt the source DB cluster.
  • If the DB cluster isn't encrypted, then the restored DB cluster isn't encrypted.
If DBClusterIdentifier refers to a DB cluster that isn't encrypted, then the restore request is rejected.

Parameter optionGroupName : The name of the option group for the new DB cluster.

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

Constraints: A value from 1150-65535.

Default: The default port for the engine.

Parameter 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
Example: 2015-03-07T23:45:00Z

Parameter 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.
Constraints: You can't specify copy-on-write if the engine version of the source DB cluster is earlier than 1.11.

If you don't specify a RestoreType value, then the new DB cluster is restored as a full copy of the source DB cluster.

Parameter useLatestRestorableTime : A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster isn't restored to the latest restorable backup time.

Constraints: Can't be specified if RestoreToTime parameter is provided.

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

Implementation

Future<RestoreDBClusterToPointInTimeResult> restoreDBClusterToPointInTime({
  required String dBClusterIdentifier,
  required String sourceDBClusterIdentifier,
  int? backtrackWindow,
  bool? copyTagsToSnapshot,
  String? dBClusterParameterGroupName,
  String? dBSubnetGroupName,
  bool? deletionProtection,
  String? domain,
  String? domainIAMRoleName,
  List<String>? enableCloudwatchLogsExports,
  bool? enableIAMDatabaseAuthentication,
  String? kmsKeyId,
  String? optionGroupName,
  int? port,
  DateTime? restoreToTime,
  String? restoreType,
  List<Tag>? tags,
  bool? useLatestRestorableTime,
  List<String>? vpcSecurityGroupIds,
}) async {
  ArgumentError.checkNotNull(dBClusterIdentifier, 'dBClusterIdentifier');
  ArgumentError.checkNotNull(
      sourceDBClusterIdentifier, 'sourceDBClusterIdentifier');
  final $request = <String, dynamic>{};
  $request['DBClusterIdentifier'] = dBClusterIdentifier;
  $request['SourceDBClusterIdentifier'] = sourceDBClusterIdentifier;
  backtrackWindow?.also((arg) => $request['BacktrackWindow'] = arg);
  copyTagsToSnapshot?.also((arg) => $request['CopyTagsToSnapshot'] = arg);
  dBClusterParameterGroupName
      ?.also((arg) => $request['DBClusterParameterGroupName'] = arg);
  dBSubnetGroupName?.also((arg) => $request['DBSubnetGroupName'] = 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);
  kmsKeyId?.also((arg) => $request['KmsKeyId'] = arg);
  optionGroupName?.also((arg) => $request['OptionGroupName'] = arg);
  port?.also((arg) => $request['Port'] = arg);
  restoreToTime
      ?.also((arg) => $request['RestoreToTime'] = _s.iso8601ToJson(arg));
  restoreType?.also((arg) => $request['RestoreType'] = arg);
  tags?.also((arg) => $request['Tags'] = arg);
  useLatestRestorableTime
      ?.also((arg) => $request['UseLatestRestorableTime'] = arg);
  vpcSecurityGroupIds?.also((arg) => $request['VpcSecurityGroupIds'] = arg);
  final $result = await _protocol.send(
    $request,
    action: 'RestoreDBClusterToPointInTime',
    version: '2014-10-31',
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    shape: shapes['RestoreDBClusterToPointInTimeMessage'],
    shapes: shapes,
    resultWrapper: 'RestoreDBClusterToPointInTimeResult',
  );
  return RestoreDBClusterToPointInTimeResult.fromXml($result);
}