putTableBucketReplication method
Creates or updates the replication configuration for a table bucket. This operation defines how tables in the source bucket are replicated to destination buckets. Replication helps ensure data availability and disaster recovery across regions or accounts.
- Permissions
-
-
You must have the
s3tables:PutTableBucketReplicationpermission to use this operation. The IAM role specified in the configuration must have permissions to read from the source bucket and write permissions to all destination buckets. -
You must also have the following permissions:
-
s3tables:GetTablepermission on the source table. -
s3tables:ListTablespermission on the bucket containing the table. -
s3tables:CreateTablepermission for the destination. -
s3tables:CreateNamespacepermission for the destination. -
s3tables:GetTableMaintenanceConfigpermission for the source bucket. -
s3tables:PutTableMaintenanceConfigpermission for the destination bucket.
-
-
You must have
iam:PassRolepermission with condition allowing roles to be passed toreplication.s3tables.amazonaws.com.
-
You must have the
May throw AccessDeniedException.
May throw BadRequestException.
May throw ConflictException.
May throw ForbiddenException.
May throw InternalServerErrorException.
May throw NotFoundException.
May throw TooManyRequestsException.
Parameter configuration :
The replication configuration to apply, including the IAM role and
replication rules.
Parameter tableBucketARN :
The Amazon Resource Name (ARN) of the source table bucket.
Parameter versionToken :
A version token from a previous GetTableBucketReplication call. Use this
token to ensure you're updating the expected version of the configuration.
Implementation
Future<PutTableBucketReplicationResponse> putTableBucketReplication({
required TableBucketReplicationConfiguration configuration,
required String tableBucketARN,
String? versionToken,
}) async {
final $query = <String, List<String>>{
'tableBucketARN': [tableBucketARN],
if (versionToken != null) 'versionToken': [versionToken],
};
final $payload = <String, dynamic>{
'configuration': configuration,
};
final response = await _protocol.send(
payload: $payload,
method: 'PUT',
requestUri: '/table-bucket-replication',
queryParams: $query,
exceptionFnMap: _exceptionFns,
);
return PutTableBucketReplicationResponse.fromJson(response);
}