updateBucketMetadataInventoryTableConfiguration method
Enables or disables a live inventory table for an S3 Metadata configuration on a general purpose bucket. For more information, see Accelerating data discovery with S3 Metadata in the Amazon S3 User Guide.
- Permissions
-
To use this operation, you must have the following permissions. For more
information, see Setting
up permissions for configuring metadata tables in the Amazon S3
User Guide.
If you want to encrypt your inventory table with server-side encryption with Key Management Service (KMS) keys (SSE-KMS), you need additional permissions in your KMS key policy. For more information, see Setting up permissions for configuring metadata tables in the Amazon S3 User Guide.
-
s3:UpdateBucketMetadataInventoryTableConfiguration -
s3tables:CreateTableBucket -
s3tables:CreateNamespace -
s3tables:GetTable -
s3tables:CreateTable -
s3tables:PutTablePolicy -
s3tables:PutTableEncryption -
kms:DescribeKey
-
UpdateBucketMetadataInventoryTableConfiguration:
- CreateBucketMetadataConfiguration
- DeleteBucketMetadataConfiguration
- GetBucketMetadataConfiguration
- UpdateBucketMetadataJournalTableConfiguration
Parameter bucket :
The general purpose bucket that corresponds to the metadata configuration
that you want to enable or disable an inventory table for.
Parameter inventoryTableConfiguration :
The contents of your inventory table configuration.
Parameter checksumAlgorithm :
The checksum algorithm to use with your inventory table configuration.
Parameter contentMD5 :
The Content-MD5 header for the inventory table configuration.
Parameter expectedBucketOwner :
The expected owner of the general purpose bucket that corresponds to the
metadata table configuration that you want to enable or disable an
inventory table for.
Implementation
Future<void> updateBucketMetadataInventoryTableConfiguration({
required String bucket,
required InventoryTableConfigurationUpdates inventoryTableConfiguration,
ChecksumAlgorithm? checksumAlgorithm,
String? contentMD5,
String? expectedBucketOwner,
}) async {
final headers = <String, String>{
if (checksumAlgorithm != null)
'x-amz-sdk-checksum-algorithm': checksumAlgorithm.value,
if (contentMD5 != null) 'Content-MD5': contentMD5.toString(),
if (expectedBucketOwner != null)
'x-amz-expected-bucket-owner': expectedBucketOwner.toString(),
};
await _protocol.send(
method: 'PUT',
requestUri: '/${Uri.encodeComponent(bucket)}?metadataInventoryTable',
headers: headers,
payload: inventoryTableConfiguration.toXml('InventoryTableConfiguration'),
exceptionFnMap: _exceptionFns,
);
}