cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
1,011 lines • 88.4 kB
JavaScript
"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_amazons3tables.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
*
* Possible conditions:
* - .ifNamespace()
* - .ifSSEAlgorithm()
* - .ifKMSKeyArn()
* - .ifTableBucketTag()
* - .ifAwsRequestTag()
* - .ifAwsResourceTag()
* - .ifAwsTagKeys()
*
* 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
*
* Possible conditions:
* - .ifSSEAlgorithm()
* - .ifKMSKeyArn()
* - .ifTableBucketTag()
* - .ifAwsRequestTag()
* - .ifAwsResourceTag()
* - .ifAwsTagKeys()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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 read metadata and data objects from a table storage endpoint using S3 APIs
*
* Access Level: Read
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.html#s3-tables-actions
*/
toGetTableData() {
return this.to('GetTableData');
}
/**
* Grants permission to retrieve encryption configuration on a table
*
* Access Level: Read
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
*
* 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
*
* Possible conditions:
* - .ifAwsResourceTag()
* - .ifTableBucketTag()
*
* 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
*
* Possible conditions:
* - .ifKMSKeyArn()
* - .ifSSEAlgorithm()
*
* 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
*
* 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
*
* Possible conditions:
* - .ifStorageClass()
*
* https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableBucketStorageClass.html
*/
toPutTableBucketStorageClass() {
return this.to('PutTableBucketStorageClass');
}
/**
* Grants permission to write metadata and data objects to a table storage endpoint using S3 APIs
*
* Access Level: Write
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifSSEAlgorithm()
* - .ifKMSKeyArn()
*
* https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.html#s3-tables-actions
*/
toPutTableEncryption() {
return this.to('PutTableEncryption');
}
/**
* Grants permission to put a maintenance configuration on a table
*
* Access Level: Write
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
* - .ifStorageClass()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* 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
*
* Possible conditions:
* - .ifAwsTagKeys()
* - .ifAwsRequestTag()
* - .ifAwsResourceTag()
* - .ifTableBucketTag()
*
* 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
*
* Possible conditions:
* - .ifAwsTagKeys()
* - .ifAwsResourceTag()
* - .ifTableBucketTag()
*
* 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
*
* Possible conditions:
* - .ifNamespace()
* - .ifTableName()
*
* https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_UpdateTableMetadataLocation.html
*/
toUpdateTableMetadataLocation() {
return this.to('UpdateTableMetadataLocation');
}
/**
* 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}`);
}
/**
* 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}`);
}
/**
* 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:
* - .toCreateTable()
* - .toCreateTableBucket()
* - .toListTagsForResource()
* - .toTagResource()
* - .toUntagResource()
*
* Applies to resource types:
* - TableBucket
* - Table
*
* @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:
* - .toCreateTable()
* - .toCreateTableBucket()
* - .toListTagsForResource()
* - .toTagResource()
* - .toUntagResource()
*
* Applies to resource types:
* - TableBucket
* - Table
*
* @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()
* - .toGetTableData()
* - .toGetTableEncryption()
* - .toGetTableMaintenanceConfiguration()
* - .toGetTableMaintenanceJobStatus()
* - .toGetTableMetadataLocation()
* - .toGetTablePolicy()
* - .toGetTableRecordExpirationConfiguration()
* - .toGetTableRecordExpirationJobStatus()
* - .toGetTableReplication()
* - .toGetTableReplicationStatus()
* - .toGetTableStorageClass()
* - .toListTables()
* - .toPutTableData()
* - .toPutTableEncryption()
* - .toPutTableMaintenanceConfiguration()
* - .toPutTablePolicy()
* - .toPutTableRecordExpirationConfiguration()
* - .toPutTableReplication()
* - .toPutTableStorageClass()
* - .toRenameTable()
* - .toUpdateTableMetadataLocation()
*
* 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()
* - .toGetTableData()
* - .toGetTableEncryption()
* - .toGetTableMaintenanceConfiguration()
* - .toGetTableMaintenanceJobStatus()
* - .toGetTableMetadataLocation()
* - .toGetTablePolicy()
* - .toGetTableRecordExpirationConfiguration()
* - .toGetTableRecordExpirationJobStatus()
* - .toGetTableReplication()
* - .toGetTableReplicationStatus()
* - .toGetTableStorageClass()
* - .toPutTableData()
* - .toPutTableMaintenanceConfiguration()
* - .toPutTablePolicy()
* - .toPutTableRecordExpirationConfiguration()
* - .toPutTableReplication()
* - .toPutTableStorageClass()
* - .toRenameTable()
* - .toUpdateTableMetadataLocation()
*
* 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_amazons3tables.html).
*
*/
constructor(props) {
super(props);
this.servicePrefix = 's3tables';
this.accessLevelList = {
Write: [
'CreateNamespace',
'CreateTable',
'CreateTableBucket',
'DeleteNamespace',
'DeleteTable',
'DeleteTableBucket',
'DeleteTableBucketEncryption',
'DeleteTableBucketMetricsConfiguration',
'DeleteTableBucketReplication',
'DeleteTableReplication',
'PutTableBucketEncryption',
'PutTableBucketMaintenanceConfiguration',
'PutTableBucketMetricsConfiguration',
'PutTableBucketReplication',
'PutTableBucketStorageClass',
'PutTableData',
'PutTableEncryption',
'PutTableMaintenanceConfiguration',
'PutTableRecordExpirationConfiguration',
'PutTableReplication',
'PutTableStorageClass',
'RenameTable',
'UpdateTableMetadataLocation'
],
'Permissions management': [
'DeleteTableBucketPolicy',
'DeleteTablePolicy',
'PutTableBucketPolicy',
'PutTablePolicy'
],
Read: [
'GetNamespace',
'GetTable',
'GetTableBucket',
'GetTableBucketEncryption',
'GetTableBucketMaintenanceConfiguration',
'GetTableBucketMetricsConfiguration',
'GetTableBucketPolicy',
'GetTableBucketReplication',
'GetTableBucketStorageClass',
'GetTableData',
'GetTableEncryption',
'GetTableMaintenanceConfiguration',
'GetTableMaintenanceJobStatus',
'GetTableMetadataLocation',
'GetTablePolicy',
'GetTableRecordExpirationConfiguration',
'GetTableRecordExpirationJobStatus',
'GetTableReplication',
'GetTableReplicationStatus',
'GetTableStorageClass'
],
List: [
'ListNamespaces',
'ListTableBuckets',
'ListTables',
'ListTagsForResource'
],
Tagging: [
'TagResource',
'UntagResource'
]
};
}
}
exports.S3tables = S3tables;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczN0YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzM3RhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBeUQ7QUFHekQ7Ozs7R0FJRztBQUNILE1BQWEsUUFBUyxTQUFRLHdCQUFlO0lBRzNDOzs7Ozs7T0FNRztJQUNJLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7OztPQWVHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxpQkFBaUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSw2QkFBNkI7UUFDbEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHVDQUF1QztRQUM1QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0kseUJBQXlCO1FBQzlCLE9BQU8sSUFB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QUNuQixzQkFBc0I7Z0JBQ3RCLGdCQUFnQjthQUNqQjtZQUNELElBQUksRUFBRTtnQkFDSixjQUFjO2dCQUNkLFVBQVU7Z0JBQ1YsZ0JBQWdCO2dCQUNoQiwwQkFBMEI7Z0JBQzFCLHdDQUF3QztnQkFDeEMsb0NBQW9DO2dCQUNwQyxzQkFBc0I7Z0JBQ3RCLDJCQUEyQjtnQkFDM0IsNEJBQTRCO2dCQUM1QixjQUFjO2dCQUNkLG9CQUFvQjtnQkFDcEIsa0NBQWtDO2dCQUNsQyw4QkFBOEI7Z0JBQzlCLDBCQUEwQjtnQkFDMUIsZ0JBQWdCO2dCQUNoQix1Q0FBdUM7Z0JBQ3ZDLG1DQUFtQztnQkFDbkMscUJBQXFCO2dCQUNyQiwyQkFBMkI7Z0JBQzNCLHNCQUFzQjthQUN2QjtZQUNELElBQUksRUFBRTtnQkFDSixnQkFBZ0I7Z0JBQ2hCLGtCQUFrQjtnQkFDbEIsWUFBWTtnQkFDWixxQkFBcUI7YUFDdEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsYUFBYTtnQkFDYixlQUFlO2FBQ2hCO1NBQ0YsQ0FBQztJQTRRRixDQUFDO0NBQ0Y7QUF6aUNELDRCQXlpQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2Nlc3NMZXZlbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgYXdzX2lhbSBhcyBpYW0gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW3MzdGFibGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hbWF6b25zM3RhYmxlcy5odG1sKS5cbiAqXG4gKiBAcGFyYW0gc2lkIFtTSURdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfc2lkLmh0bWwpIG9mIHRoZSBzdGF0ZW1lbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFMzdGFibGVzIGV4dGVuZHMgUG9saWN5U3RhdGVtZW50IHtcbiAgcHVibGljIHNlcnZpY2VQcmVmaXggPSAnczN0YWJsZXMnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuYW1lc3BhY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L0FQSS9BUElfczNCdWNrZXRzX0NyZWF0ZU5hbWVzcGFjZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVOYW1lc3BhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZU5hbWVzcGFjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIHRhYmxlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZOYW1lc3BhY2UoKVxuICAgKiAtIC5pZlNTRUFsZ29yaXRobSgpXG4gICAqIC0gLmlmS01TS2V5QXJuKClcbiAgICogLSAuaWZUYWJsZUJ1Y2tldFRhZygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L0FQSS9BUElfczNCdWNrZXRzX0NyZWF0ZVRhYmxlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZVRhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVUYWJsZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIHRhYmxlIGJ1Y2tldFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU1NFQWxnb3JpdGhtKClcbiAgICogLSAuaWZLTVNLZXlBcm4oKVxuICAgKiAtIC5pZlRhYmxlQnVja2V0VGFnKClcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvQVBJL0FQSV9zM0J1Y2tldHNfQ3JlYXRlVGFibGVCdWNrZXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlVGFibGVCdWNrZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVRhYmxlQnVja2V0Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgbmFtZXNwYWNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZOYW1lc3BhY2UoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L0FQSS9BUElfczNCdWNrZXRzX0RlbGV0ZU5hbWVzcGFjZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVOYW1lc3BhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZU5hbWVzcGFjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhIHRhYmxlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZOYW1lc3BhY2UoKVxuICAgKiAtIC5pZlRhYmxlTmFtZSgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvQVBJL0FQSV9zM0J1Y2tldHNfRGVsZXRlVGFibGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlVGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZVRhYmxlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgdGFibGUgYnVja2V0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC9BUEkvQVBJX3MzQnVja2V0c19EZWxldGVUYWJsZUJ1Y2tldC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVUYWJsZUJ1Y2tldCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlVGFibGVCdWNrZXQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgZW5jcnlwdGlvbiBjb25maWd1cmF0aW9uIG9uIGEgdGFibGUgYnVja2V0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC9BUEkvQVBJX3MzQnVja2V0c19EZWxldGVUYWJsZUJ1Y2tldEVuY3J5cHRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlVGFibGVCdWNrZXRFbmNyeXB0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVUYWJsZUJ1Y2tldEVuY3J5cHRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYSBtZXRyaWNzIGNvbmZpZ3VyYXRpb24gb24gYSB0YWJsZSBidWNrZXRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L0FQSS9BUElfczNCdWNrZXRzX0RlbGV0ZVRhYmxlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlVGFibGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlVGFibGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhIHBvbGljeSBvbiBhIHRhYmxlIGJ1Y2tldFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFBlcm1pc3Npb25zIG1hbmFnZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC9BUEkvQVBJX3MzQnVja2V0c19EZWxldGVUYWJsZUJ1Y2tldFBvbGljeS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVUYWJsZUJ1Y2tldFBvbGljeSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlVGFibGVCdWNrZXRQb2xpY3knKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGFibGUgYnVja2V0IHJlcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gb24gYSBidWNrZXRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L0FQSS9BUElfczNCdWNrZXRzX0RlbGV0ZVRhYmxlQnVja2V0UmVwbGljYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlVGFibGVCdWNrZXRSZXBsaWNhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlVGFibGVCdWNrZXRSZXBsaWNhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhIHBvbGljeSBvbiBhIHRhYmxlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUGVybWlzc2lvbnMgbWFuYWdlbWVudFxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZk5hbWVzcGFjZSgpXG4gICAqIC0gLmlmVGFibGVOYW1lKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC9BUEkvQVBJX3MzQnVja2V0c19EZWxldGVUYWJsZVBvbGljeS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVUYWJsZVBvbGljeSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlVGFibGVQb2xpY3knKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGFibGUgcmVwbGljYXRpb24gY29uZmlndXJ