restoreDBClusterToPointInTime method

Future<RestoreDBClusterToPointInTimeResult> restoreDBClusterToPointInTime({
  1. required String dBClusterIdentifier,
  2. required String sourceDBClusterIdentifier,
  3. String? dBClusterParameterGroupName,
  4. String? dBSubnetGroupName,
  5. bool? deletionProtection,
  6. List<String>? enableCloudwatchLogsExports,
  7. bool? enableIAMDatabaseAuthentication,
  8. String? kmsKeyId,
  9. String? optionGroupName,
  10. int? port,
  11. DateTime? restoreToTime,
  12. String? restoreType,
  13. List<Tag>? tags,
  14. bool? useLatestRestorableTime,
  15. 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.

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 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
  • Cannot 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 dBClusterParameterGroupName : The name of the DB cluster parameter group to associate with the new DB cluster.

Constraints:

  • If supplied, must match the name of an existing DBClusterParameterGroup.

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 enableCloudwatchLogsExports : The list of logs that the restored DB cluster is to export to CloudWatch Logs.

Parameter enableIAMDatabaseAuthentication : True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

Default: false

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

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.

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

If you do not specify a value for the KmsKeyId parameter, then the following will occur:

  • If the DB cluster is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the source DB cluster.
  • If the DB cluster is not encrypted, then the restored DB cluster is not encrypted.
If DBClusterIdentifier refers to a DB cluster that is not encrypted, then the restore request is rejected.

Parameter optionGroupName : (Not supported by Neptune)

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

Constraints: Value must be 1150-65535

Default: The same port as the original DB cluster.

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 is not provided
  • Cannot be specified if UseLatestRestorableTime parameter is true
  • Cannot be specified if 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.
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 tags : The tags to be applied to the restored DB cluster.

Parameter useLatestRestorableTime : A value that is set to true to restore the DB cluster to the latest restorable backup time, and false otherwise.

Default: false

Constraints: Cannot 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,
  String? dBClusterParameterGroupName,
  String? dBSubnetGroupName,
  bool? deletionProtection,
  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;
  dBClusterParameterGroupName
      ?.also((arg) => $request['DBClusterParameterGroupName'] = arg);
  dBSubnetGroupName?.also((arg) => $request['DBSubnetGroupName'] = arg);
  deletionProtection?.also((arg) => $request['DeletionProtection'] = 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);
}