enableSnapshotCopy method
Enables the automatic copy of snapshots from one region to another region for a specified cluster.
May throw ClusterNotFoundFault.
May throw CopyToRegionDisabledFault.
May throw DependentServiceRequestThrottlingFault.
May throw IncompatibleOrderableOptions.
May throw InvalidClusterStateFault.
May throw InvalidRetentionPeriodFault.
May throw LimitExceededFault.
May throw SnapshotCopyAlreadyEnabledFault.
May throw SnapshotCopyGrantNotFoundFault.
May throw UnauthorizedOperation.
May throw UnknownSnapshotCopyRegionFault.
Parameter clusterIdentifier :
The unique identifier of the source cluster to copy snapshots from.
Constraints: Must be the valid name of an existing cluster that does not already have cross-region snapshot copy enabled.
Parameter destinationRegion :
The destination Amazon Web Services Region that you want to copy snapshots
to.
Constraints: Must be the name of a valid Amazon Web Services Region. For more information, see Regions and Endpoints in the Amazon Web Services General Reference.
Parameter manualSnapshotRetentionPeriod :
The number of days to retain newly copied snapshots in the destination
Amazon Web Services Region after they are copied from the source Amazon
Web Services Region. If the value is -1, the manual snapshot is retained
indefinitely.
The value must be either -1 or an integer between 1 and 3,653.
Parameter retentionPeriod :
The number of days to retain automated snapshots in the destination region
after they are copied from the source region.
Default: 7.
Constraints: Must be at least 1 and no more than 35.
Parameter snapshotCopyGrantName :
The name of the snapshot copy grant to use when snapshots of an Amazon Web
Services KMS-encrypted cluster are copied to the destination region.
Implementation
Future<EnableSnapshotCopyResult> enableSnapshotCopy({
required String clusterIdentifier,
required String destinationRegion,
int? manualSnapshotRetentionPeriod,
int? retentionPeriod,
String? snapshotCopyGrantName,
}) async {
final $request = <String, String>{
'ClusterIdentifier': clusterIdentifier,
'DestinationRegion': destinationRegion,
if (manualSnapshotRetentionPeriod != null)
'ManualSnapshotRetentionPeriod':
manualSnapshotRetentionPeriod.toString(),
if (retentionPeriod != null)
'RetentionPeriod': retentionPeriod.toString(),
if (snapshotCopyGrantName != null)
'SnapshotCopyGrantName': snapshotCopyGrantName,
};
final $result = await _protocol.send(
$request,
action: 'EnableSnapshotCopy',
version: '2012-12-01',
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
resultWrapper: 'EnableSnapshotCopyResult',
);
return EnableSnapshotCopyResult.fromXml($result);
}