updateBucketMetadataInventoryTableConfiguration method

Future<void> updateBucketMetadataInventoryTableConfiguration({
  1. required String bucket,
  2. required InventoryTableConfigurationUpdates inventoryTableConfiguration,
  3. ChecksumAlgorithm? checksumAlgorithm,
  4. String? contentMD5,
  5. String? expectedBucketOwner,
})

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
The following operations are related to UpdateBucketMetadataInventoryTableConfiguration:

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,
  );
}