UNPKG

cdk-iam-floyd

Version:

AWS IAM policy statement generator with fluent interface for AWS CDK

972 lines 90.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.S3tables = void 0; const shared_1 = require("../../shared"); /** * Statement provider for service [s3tables](https://docs.aws.amazon.com/service-authorization/latest/reference/list_s3tables.html). * * @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement */ class S3tables extends shared_1.PolicyStatement { /** * Grants permission to create a namespace * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_CreateNamespace.html */ toCreateNamespace() { return this.to('CreateNamespace'); } /** * Grants permission to create a table * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_CreateTable.html */ toCreateTable() { return this.to('CreateTable'); } /** * Grants permission to create a table bucket * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_CreateTableBucket.html */ toCreateTableBucket() { return this.to('CreateTableBucket'); } /** * Grants permission to delete a namespace * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_DeleteNamespace.html */ toDeleteNamespace() { return this.to('DeleteNamespace'); } /** * Grants permission to delete a table * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_DeleteTable.html */ toDeleteTable() { return this.to('DeleteTable'); } /** * Grants permission to delete a table bucket * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_DeleteTableBucket.html */ toDeleteTableBucket() { return this.to('DeleteTableBucket'); } /** * Grants permission to delete encryption configuration on a table bucket * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_DeleteTableBucketEncryption.html */ toDeleteTableBucketEncryption() { return this.to('DeleteTableBucketEncryption'); } /** * Grants permission to delete a metrics configuration on a table bucket * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_DeleteTableBucketMetricsConfiguration.html */ toDeleteTableBucketMetricsConfiguration() { return this.to('DeleteTableBucketMetricsConfiguration'); } /** * Grants permission to delete a policy on a table bucket * * Access Level: Permissions management, Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_DeleteTableBucketPolicy.html */ toDeleteTableBucketPolicy() { return this.to('DeleteTableBucketPolicy'); } /** * Grants permission to delete table bucket replication configuration on a bucket * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_DeleteTableBucketReplication.html */ toDeleteTableBucketReplication() { return this.to('DeleteTableBucketReplication'); } /** * Grants permission to delete a policy on a table * * Access Level: Permissions management, Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_DeleteTablePolicy.html */ toDeleteTablePolicy() { return this.to('DeleteTablePolicy'); } /** * Grants permission to delete table replication configuration on a table * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_DeleteTableReplication.html */ toDeleteTableReplication() { return this.to('DeleteTableReplication'); } /** * Grants permission to get a namespace * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetNamespace.html */ toGetNamespace() { return this.to('GetNamespace'); } /** * Grants permission to retrieve a table * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTable.html */ toGetTable() { return this.to('GetTable'); } /** * Grants permission to retrieve a table bucket * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableBucket.html */ toGetTableBucket() { return this.to('GetTableBucket'); } /** * Grants permission to retrieve encryption configuration on a table bucket * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableBucketEncryption.html */ toGetTableBucketEncryption() { return this.to('GetTableBucketEncryption'); } /** * Grants permission to retrieve a maintenance configuration on a table bucket * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableBucketMaintenanceConfiguration.html */ toGetTableBucketMaintenanceConfiguration() { return this.to('GetTableBucketMaintenanceConfiguration'); } /** * Grants permission to retrieve a metrics configuration on a bucket * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableBucketMetricsConfiguration.html */ toGetTableBucketMetricsConfiguration() { return this.to('GetTableBucketMetricsConfiguration'); } /** * Grants permission to retrieve a policy on a table bucket * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableBucketPolicy.html */ toGetTableBucketPolicy() { return this.to('GetTableBucketPolicy'); } /** * Grants permission to retrieve a table bucket replication configuration on a bucket * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableBucketReplication.html */ toGetTableBucketReplication() { return this.to('GetTableBucketReplication'); } /** * Grants permission to retrieve the storage class configuration for a table bucket * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableBucketStorageClass.html */ toGetTableBucketStorageClass() { return this.to('GetTableBucketStorageClass'); } /** * Grants permission to retrieve encryption configuration on a table * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableEncryption.html */ toGetTableEncryption() { return this.to('GetTableEncryption'); } /** * Grants permission to retrieve a maintenance configuration on a table * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableMaintenanceConfiguration.html */ toGetTableMaintenanceConfiguration() { return this.to('GetTableMaintenanceConfiguration'); } /** * Grants permission to retrieve the status of maintenance jobs on a table * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableMaintenanceJobStatus.html */ toGetTableMaintenanceJobStatus() { return this.to('GetTableMaintenanceJobStatus'); } /** * Grants permission to retrieve the metadata location of a table * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableMetadataLocation.html */ toGetTableMetadataLocation() { return this.to('GetTableMetadataLocation'); } /** * Grants permission to retrieve a policy on a table * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTablePolicy.html */ toGetTablePolicy() { return this.to('GetTablePolicy'); } /** * Grants permission to retrieve a table maintenance configuration on a system table * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableRecordExpirationConfiguration.html */ toGetTableRecordExpirationConfiguration() { return this.to('GetTableRecordExpirationConfiguration'); } /** * Grants permission to retrieve the status of table record expiration jobs on a system table * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableRecordExpirationJobStatus.html */ toGetTableRecordExpirationJobStatus() { return this.to('GetTableRecordExpirationJobStatus'); } /** * Grants permission to retrieve a table replication configuration on a table * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableReplication.html */ toGetTableReplication() { return this.to('GetTableReplication'); } /** * Grants permission to retrieve a table replication status on a table * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableReplicationStatus.html */ toGetTableReplicationStatus() { return this.to('GetTableReplicationStatus'); } /** * Grants permission to retrieve the storage class configuration for a specific table * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableStorageClass.html */ toGetTableStorageClass() { return this.to('GetTableStorageClass'); } /** * Grants permission to list namespaces * * Access Level: List * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_ListNamespaces.html */ toListNamespaces() { return this.to('ListNamespaces'); } /** * Grants permission to list table buckets * * Access Level: List * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_ListTableBuckets.html */ toListTableBuckets() { return this.to('ListTableBuckets'); } /** * Grants permission to list tables * * Access Level: List * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_ListTables.html */ toListTables() { return this.to('ListTables'); } /** * Grants permission to list the tags for an S3 Tables resource * * Access Level: List * * https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-tables-tagging.html */ toListTagsForResource() { return this.to('ListTagsForResource'); } /** * Grants permission to put or overwrite encryption configuration on a table bucket * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableBucketEncryption.html */ toPutTableBucketEncryption() { return this.to('PutTableBucketEncryption'); } /** * Grants permission to put a maintenance configuration on a table bucket * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableBucketMaintenanceConfiguration.html */ toPutTableBucketMaintenanceConfiguration() { return this.to('PutTableBucketMaintenanceConfiguration'); } /** * Grants permission to create or overwrite a metrics configuration on a table bucket * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableBucketMetricsConfiguration.html */ toPutTableBucketMetricsConfiguration() { return this.to('PutTableBucketMetricsConfiguration'); } /** * Grants permission to create or overwrite a policy on a table bucket * * Access Level: Permissions management, Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableBucketPolicy.html */ toPutTableBucketPolicy() { return this.to('PutTableBucketPolicy'); } /** * Grants permission to put table bucket replication configuration on a bucket * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableBucketReplication.html */ toPutTableBucketReplication() { return this.to('PutTableBucketReplication'); } /** * Grants permission to set or update the storage class configuration for a table bucket * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableBucketStorageClass.html */ toPutTableBucketStorageClass() { return this.to('PutTableBucketStorageClass'); } /** * Grants permission to put a maintenance configuration on a table * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableMaintenanceConfiguration.html */ toPutTableMaintenanceConfiguration() { return this.to('PutTableMaintenanceConfiguration'); } /** * Grants permission to create or overwrite a policy on a table * * Access Level: Permissions management, Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTablePolicy.html */ toPutTablePolicy() { return this.to('PutTablePolicy'); } /** * Grants permission to put a table record expiration configuration on a system table * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableRecordExpirationConfiguration.html */ toPutTableRecordExpirationConfiguration() { return this.to('PutTableRecordExpirationConfiguration'); } /** * Grants permission to put table replication configuration on a table * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableReplication.html */ toPutTableReplication() { return this.to('PutTableReplication'); } /** * Grants permission to set or update the storage class configuration for a table * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableStorageClass.html */ toPutTableStorageClass() { return this.to('PutTableStorageClass'); } /** * Grants permission to rename a table or move a table across namespaces * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_RenameTable.html */ toRenameTable() { return this.to('RenameTable'); } /** * Grants permission to tag a S3 Tables resource * * Access Level: Tagging, Write * * https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-tables-tagging.html */ toTagResource() { return this.to('TagResource'); } /** * Grants permission to untag a S3 Tables resource * * Access Level: Tagging, Write * * https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-tables-tagging.html */ toUntagResource() { return this.to('UntagResource'); } /** * Grants permission to update the metadata location of a table * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_UpdateTableMetadataLocation.html */ toUpdateTableMetadataLocation() { return this.to('UpdateTableMetadataLocation'); } /** * Grants permission to read metadata and data objects from a table storage endpoint using S3 APIs * * Access Level: Read * * https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.html#s3-tables-actions */ toGetTableData() { return this.to('GetTableData'); } /** * Grants permission to write metadata and data objects to a table storage endpoint using S3 APIs * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.html#s3-tables-actions */ toPutTableData() { return this.to('PutTableData'); } /** * Grants permission to put encryption configuration on a table * * Access Level: Write * * https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.html#s3-tables-actions */ toPutTableEncryption() { return this.to('PutTableEncryption'); } /** * Adds a resource of type Table to the statement * * https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-tables.html * * @param tableBucketName - Identifier for the tableBucketName. * @param tableID - Identifier for the tableID. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. * * Possible conditions: * - .ifAwsResourceTag() * - .ifTableBucketTag() * - .ifNamespace() * - .ifTableName() */ onTable(tableBucketName, tableID, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:s3tables:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:bucket/${tableBucketName}/table/${tableID}`); } /** * Adds a resource of type TableBucket to the statement * * https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets.html * * @param tableBucketName - Identifier for the tableBucketName. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. * * Possible conditions: * - .ifAwsResourceTag() * - .ifTableBucketTag() */ onTableBucket(tableBucketName, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:s3tables:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:bucket/${tableBucketName}`); } /** * Filters access by the tags that are passed in the request * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag * * Applies to actions: * - .toCreateTable() * - .toCreateTableBucket() * - .toTagResource() * * @param tagKey The tag key to check * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifAwsRequestTag(tagKey, value, operator) { return this.if(`aws:RequestTag/${tagKey}`, value, operator ?? 'StringLike'); } /** * Filters access by the tags associated with the resource * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag * * Applies to actions: * - .toCreateNamespace() * - .toCreateTable() * - .toCreateTableBucket() * - .toDeleteNamespace() * - .toDeleteTable() * - .toDeleteTableBucket() * - .toDeleteTableBucketEncryption() * - .toDeleteTableBucketMetricsConfiguration() * - .toDeleteTableBucketPolicy() * - .toDeleteTableBucketReplication() * - .toDeleteTablePolicy() * - .toDeleteTableReplication() * - .toGetNamespace() * - .toGetTable() * - .toGetTableBucket() * - .toGetTableBucketEncryption() * - .toGetTableBucketMaintenanceConfiguration() * - .toGetTableBucketMetricsConfiguration() * - .toGetTableBucketPolicy() * - .toGetTableBucketReplication() * - .toGetTableBucketStorageClass() * - .toGetTableEncryption() * - .toGetTableMaintenanceConfiguration() * - .toGetTableMaintenanceJobStatus() * - .toGetTableMetadataLocation() * - .toGetTablePolicy() * - .toGetTableRecordExpirationConfiguration() * - .toGetTableRecordExpirationJobStatus() * - .toGetTableReplication() * - .toGetTableReplicationStatus() * - .toGetTableStorageClass() * - .toListNamespaces() * - .toListTables() * - .toListTagsForResource() * - .toPutTableBucketEncryption() * - .toPutTableBucketMaintenanceConfiguration() * - .toPutTableBucketMetricsConfiguration() * - .toPutTableBucketPolicy() * - .toPutTableBucketReplication() * - .toPutTableBucketStorageClass() * - .toPutTableMaintenanceConfiguration() * - .toPutTablePolicy() * - .toPutTableRecordExpirationConfiguration() * - .toPutTableReplication() * - .toPutTableStorageClass() * - .toRenameTable() * - .toTagResource() * - .toUntagResource() * - .toUpdateTableMetadataLocation() * - .toGetTableData() * - .toPutTableData() * - .toPutTableEncryption() * * Applies to resource types: * - Table * - TableBucket * * @param tagKey The tag key to check * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifAwsResourceTag(tagKey, value, operator) { return this.if(`aws:ResourceTag/${tagKey}`, value, operator ?? 'StringLike'); } /** * Filters access by the tag keys that are passed in the request * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys * * Applies to actions: * - .toCreateTable() * - .toCreateTableBucket() * - .toTagResource() * - .toUntagResource() * * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifAwsTagKeys(value, operator) { return this.if(`aws:TagKeys`, value, operator ?? 'StringLike'); } /** * Filters access by the AWS KMS key ARN for the key used to encrypt a table * * https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.htmls3-tables-setting-up.html * * Applies to actions: * - .toCreateTable() * - .toCreateTableBucket() * - .toPutTableBucketEncryption() * - .toPutTableEncryption() * * @param value The value(s) to check * @param operator Works with [arn operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN). **Default:** `ArnLike` */ ifKMSKeyArn(value, operator) { return this.if(`KMSKeyArn`, value, operator ?? 'ArnLike'); } /** * Filters access by the server-side encryption algorithm used to encrypt a table * * https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.htmls3-tables-setting-up.html * * Applies to actions: * - .toCreateTable() * - .toCreateTableBucket() * - .toPutTableBucketEncryption() * - .toPutTableEncryption() * * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifSSEAlgorithm(value, operator) { return this.if(`SSEAlgorithm`, value, operator ?? 'StringLike'); } /** * Filters access by the storage class that can be set on tables under a table bucket * * https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.htmls3-tables-setting-up.html * * Applies to actions: * - .toPutTableBucketStorageClass() * - .toPutTableStorageClass() * * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifStorageClass(value, operator) { return this.if(`StorageClass`, value, operator ?? 'StringLike'); } /** * Filters access by the tags associated with the table bucket * * https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.htmls3-tables-setting-up.html * * Applies to actions: * - .toCreateNamespace() * - .toCreateTable() * - .toCreateTableBucket() * - .toDeleteNamespace() * - .toDeleteTable() * - .toDeleteTableBucket() * - .toDeleteTableBucketEncryption() * - .toDeleteTableBucketMetricsConfiguration() * - .toDeleteTableBucketPolicy() * - .toDeleteTableBucketReplication() * - .toDeleteTablePolicy() * - .toDeleteTableReplication() * - .toGetNamespace() * - .toGetTable() * - .toGetTableBucket() * - .toGetTableBucketEncryption() * - .toGetTableBucketMaintenanceConfiguration() * - .toGetTableBucketMetricsConfiguration() * - .toGetTableBucketPolicy() * - .toGetTableBucketReplication() * - .toGetTableBucketStorageClass() * - .toGetTableEncryption() * - .toGetTableMaintenanceConfiguration() * - .toGetTableMaintenanceJobStatus() * - .toGetTableMetadataLocation() * - .toGetTablePolicy() * - .toGetTableRecordExpirationConfiguration() * - .toGetTableRecordExpirationJobStatus() * - .toGetTableReplication() * - .toGetTableReplicationStatus() * - .toGetTableStorageClass() * - .toListNamespaces() * - .toListTables() * - .toListTagsForResource() * - .toPutTableBucketEncryption() * - .toPutTableBucketMaintenanceConfiguration() * - .toPutTableBucketMetricsConfiguration() * - .toPutTableBucketPolicy() * - .toPutTableBucketReplication() * - .toPutTableBucketStorageClass() * - .toPutTableMaintenanceConfiguration() * - .toPutTablePolicy() * - .toPutTableRecordExpirationConfiguration() * - .toPutTableReplication() * - .toPutTableStorageClass() * - .toRenameTable() * - .toTagResource() * - .toUntagResource() * - .toUpdateTableMetadataLocation() * - .toGetTableData() * - .toPutTableData() * - .toPutTableEncryption() * * Applies to resource types: * - Table * - TableBucket * * @param tagKey The tag key to check * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifTableBucketTag(tagKey, value, operator) { return this.if(`TableBucketTag/${tagKey}`, value, operator ?? 'StringLike'); } /** * Filters access by the namespaces created in the table bucket * * https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.htmls3-tables-setting-up.html * * Applies to actions: * - .toCreateTable() * - .toDeleteNamespace() * - .toDeleteTable() * - .toDeleteTablePolicy() * - .toDeleteTableReplication() * - .toGetNamespace() * - .toGetTable() * - .toGetTableEncryption() * - .toGetTableMaintenanceConfiguration() * - .toGetTableMaintenanceJobStatus() * - .toGetTableMetadataLocation() * - .toGetTablePolicy() * - .toGetTableRecordExpirationConfiguration() * - .toGetTableRecordExpirationJobStatus() * - .toGetTableReplication() * - .toGetTableReplicationStatus() * - .toGetTableStorageClass() * - .toListTables() * - .toListTagsForResource() * - .toPutTableMaintenanceConfiguration() * - .toPutTablePolicy() * - .toPutTableRecordExpirationConfiguration() * - .toPutTableReplication() * - .toPutTableStorageClass() * - .toRenameTable() * - .toTagResource() * - .toUntagResource() * - .toUpdateTableMetadataLocation() * - .toGetTableData() * - .toPutTableData() * - .toPutTableEncryption() * * Applies to resource types: * - Table * * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifNamespace(value, operator) { return this.if(`namespace`, value, operator ?? 'StringLike'); } /** * Filters access by the name of the tables in the table bucket * * https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.htmls3-tables-setting-up.html * * Applies to actions: * - .toDeleteTable() * - .toDeleteTablePolicy() * - .toDeleteTableReplication() * - .toGetTable() * - .toGetTableEncryption() * - .toGetTableMaintenanceConfiguration() * - .toGetTableMaintenanceJobStatus() * - .toGetTableMetadataLocation() * - .toGetTablePolicy() * - .toGetTableRecordExpirationConfiguration() * - .toGetTableRecordExpirationJobStatus() * - .toGetTableReplication() * - .toGetTableReplicationStatus() * - .toGetTableStorageClass() * - .toListTagsForResource() * - .toPutTableMaintenanceConfiguration() * - .toPutTablePolicy() * - .toPutTableRecordExpirationConfiguration() * - .toPutTableReplication() * - .toPutTableStorageClass() * - .toRenameTable() * - .toTagResource() * - .toUntagResource() * - .toUpdateTableMetadataLocation() * - .toGetTableData() * - .toPutTableData() * - .toPutTableEncryption() * * Applies to resource types: * - Table * * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifTableName(value, operator) { return this.if(`tableName`, value, operator ?? 'StringLike'); } /** * Statement provider for service [s3tables](https://docs.aws.amazon.com/service-authorization/latest/reference/list_s3tables.html). * */ constructor(props) { super(props); this.servicePrefix = 's3tables'; this.accessLevelList = { Write: [ 'CreateNamespace', 'CreateTable', 'CreateTableBucket', 'DeleteNamespace', 'DeleteTable', 'DeleteTableBucket', 'DeleteTableBucketEncryption', 'DeleteTableBucketMetricsConfiguration', 'DeleteTableBucketPolicy', 'DeleteTableBucketReplication', 'DeleteTablePolicy', 'DeleteTableReplication', 'PutTableBucketEncryption', 'PutTableBucketMaintenanceConfiguration', 'PutTableBucketMetricsConfiguration', 'PutTableBucketPolicy', 'PutTableBucketReplication', 'PutTableBucketStorageClass', 'PutTableMaintenanceConfiguration', 'PutTablePolicy', 'PutTableRecordExpirationConfiguration', 'PutTableReplication', 'PutTableStorageClass', 'RenameTable', 'TagResource', 'UntagResource', 'UpdateTableMetadataLocation', 'PutTableData', 'PutTableEncryption' ], 'Permissions management': [ 'DeleteTableBucketPolicy', 'DeleteTablePolicy', 'PutTableBucketPolicy', 'PutTablePolicy' ], Read: [ 'GetNamespace', 'GetTable', 'GetTableBucket', 'GetTableBucketEncryption', 'GetTableBucketMaintenanceConfiguration', 'GetTableBucketMetricsConfiguration', 'GetTableBucketPolicy', 'GetTableBucketReplication', 'GetTableBucketStorageClass', 'GetTableEncryption', 'GetTableMaintenanceConfiguration', 'GetTableMaintenanceJobStatus', 'GetTableMetadataLocation', 'GetTablePolicy', 'GetTableRecordExpirationConfiguration', 'GetTableRecordExpirationJobStatus', 'GetTableReplication', 'GetTableReplicationStatus', 'GetTableStorageClass', 'GetTableData' ], List: [ 'ListNamespaces', 'ListTableBuckets', 'ListTables', 'ListTagsForResource' ], Tagging: [ 'TagResource', 'UntagResource' ] }; } } exports.S3tables = S3tables; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczN0YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzM3RhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBeUQ7QUFHekQ7Ozs7R0FJRztBQUNILE1BQWEsUUFBUyxTQUFRLHdCQUFlO0lBRzNDOzs7Ozs7T0FNRztJQUNJLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLG1CQUFtQjtRQUN4QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksaUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSw2QkFBNkI7UUFDbEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHVDQUF1QztRQUM1QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0kseUJBQXlCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIs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QUU7Z0JBQ3hCLHlCQUF5QjtnQkFDekIsbUJBQW1CO2dCQUNuQixzQkFBc0I7Z0JBQ3RCLGdCQUFnQjthQUNqQjtZQUNELElBQUksRUFBRTtnQkFDSixjQUFjO2dCQUNkLFVBQVU7Z0JBQ1YsZ0JBQWdCO2dCQUNoQiwwQkFBMEI7Z0JBQzFCLHdDQUF3QztnQkFDeEMsb0NBQW9DO2dCQUNwQyxzQkFBc0I7Z0JBQ3RCLDJCQUEyQjtnQkFDM0IsNEJBQTRCO2dCQUM1QixvQkFBb0I7Z0JBQ3BCLGtDQUFrQztnQkFDbEMsOEJBQThCO2dCQUM5QiwwQkFBMEI7Z0JBQzFCLGdCQUFnQjtnQkFDaEIsdUNBQXVDO2dCQUN2QyxtQ0FBbUM7Z0JBQ25DLHFCQUFxQjtnQkFDckIsMkJBQTJCO2dCQUMzQixzQkFBc0I7Z0JBQ3RCLGNBQWM7YUFDZjtZQUNELElBQUksRUFBRTtnQkFDSixnQkFBZ0I7Z0JBQ2hCLGtCQUFrQjtnQkFDbEIsWUFBWTtnQkFDWixxQkFBcUI7YUFDdEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsYUFBYTtnQkFDYixlQUFlO2FBQ2hCO1NBQ0YsQ0FBQztJQWlYRixDQUFDO0NBQ0Y7QUFsZ0NELDRCQWtnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2Nlc3NMZXZlbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgYXdzX2lhbSBhcyBpYW0gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW3MzdGFibGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9zM3RhYmxlcy5odG1sKS5cbiAqXG4gKiBAcGFyYW0gc2lkIFtTSURdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfc2lkLmh0bWwpIG9mIHRoZSBzdGF0ZW1lbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFMzdGFibGVzIGV4dGVuZHMgUG9saWN5U3RhdGVtZW50IHtcbiAgcHVibGljIHNlcnZpY2VQcmVmaXggPSAnczN0YWJsZXMnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuYW1lc3BhY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L0FQSS9BUElfczNCdWNrZXRzX0NyZWF0ZU5hbWVzcGFjZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVOYW1lc3BhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZU5hbWVzcGFjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIHRhYmxlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC9BUEkvQVBJX3MzQnVja2V0c19DcmVhdGVUYWJsZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVUYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlVGFibGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSB0YWJsZSBidWNrZXRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L0FQSS9BUElfczNCdWNrZXRzX0NyZWF0ZVRhYmxlQnVja2V0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZVRhYmxlQnVja2V0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVUYWJsZUJ1Y2tldCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhIG5hbWVzcGFjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvQVBJL0FQSV9zM0J1Y2tldHNfRGVsZXRlTmFtZXNwYWNlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZU5hbWVzcGFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlTmFtZXNwYWNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgdGFibGVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L0FQSS9BUElfczNCdWNrZXRzX0RlbGV0ZVRhYmxlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZVRhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVUYWJsZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhIHRhYmxlIGJ1Y2tldFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvQVBJL0FQSV9zM0J1Y2tldHNfRGVsZXRlVGFibGVCdWNrZXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlVGFibGVCdWNrZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZVRhYmxlQnVja2V0Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGVuY3J5cHRpb24gY29uZmlndXJhdGlvbiBvbiBhIHRhYmxlIGJ1Y2tldFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvQVBJL0FQSV9zM0J1Y2tldHNfRGVsZXRlVGFibGVCdWNrZXRFbmNyeXB0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZVRhYmxlQnVja2V0RW5jcnlwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlVGFibGVCdWNrZXRFbmNyeXB0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgbWV0cmljcyBjb25maWd1cmF0aW9uIG9uIGEgdGFibGUgYnVja2V0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC9BUEkvQVBJX3MzQnVja2V0c19EZWxldGVUYWJsZUJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZVRhYmxlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZVRhYmxlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYSBwb2xpY3kgb24gYSB0YWJsZSBidWNrZXRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBQZXJtaXNzaW9ucyBtYW5hZ2VtZW50LCBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L0FQSS9BUElfczNCdWNrZXRzX0RlbGV0ZVRhYmxlQnVja2V0UG9saWN5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZVRhYmxlQnVja2V0UG9saWN5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVUYWJsZUJ1Y2tldFBvbGljeScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSB0YWJsZSBidWNrZXQgcmVwbGljYXRpb24gY29uZmlndXJhdGlvbiBvbiBhIGJ1Y2tldFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvQVBJL0FQSV9zM0J1Y2tldHNfRGVsZXRlVGFibGVCdWNrZXRSZXBsaWNhdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVUYWJsZUJ1Y2tldFJlcGxpY2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVUYWJsZUJ1Y2tldFJlcGxpY2F0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgcG9saWN5IG9uIGEgdGFibGVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBQZXJtaXNzaW9ucyBtYW5hZ2VtZW50LCBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L0FQSS9BUElfczNCdWNrZXRzX0RlbGV0ZVRhYmxlUG9saWN5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZVRhYmxlUG9saWN5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVUYWJsZVBvbGljeScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW