UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

1,094 lines 57.2 kB
import * as cdk from "../../core/lib"; import * as constructs from "constructs"; import * as cfn_parse from "../../core/lib/helpers-internal"; import { INamespaceRef, ITableBucketPolicyRef, ITableBucketRef, ITablePolicyRef, ITableRef, NamespaceReference, TableBucketPolicyReference, TableBucketReference, TablePolicyReference, TableReference } from "../../interfaces/generated/aws-s3tables-interfaces.generated"; /** * Creates a namespace. * * A namespace is a logical grouping of tables within your table bucket, which you can use to organize tables. For more information, see [Create a namespace](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-namespace-create.html) in the *Amazon Simple Storage Service User Guide* . * * - **Permissions** - You must have the `s3tables:CreateNamespace` permission to use this operation. * - **Cloud Development Kit** - To use S3 Tables AWS CDK constructs, add the `@aws-cdk/aws-s3tables-alpha` dependency with one of the following options: * * - NPM: `npm i @aws-cdk/aws-s3tables-alpha` * - Yarn: `yarn add @aws-cdk/aws-s3tables-alpha` * * @cloudformationResource AWS::S3Tables::Namespace * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-namespace.html */ export declare class CfnNamespace extends cdk.CfnResource implements cdk.IInspectable, INamespaceRef { /** * The CloudFormation resource type name for this resource class. */ static readonly CFN_RESOURCE_TYPE_NAME: string; /** * Build a CfnNamespace from CloudFormation properties * * A factory method that creates a new instance of this class from an object * containing the CloudFormation properties of this resource. * Used in the @aws-cdk/cloudformation-include module. * * @internal */ static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnNamespace; /** * Checks whether the given object is a CfnNamespace */ static isCfnNamespace(x: any): x is CfnNamespace; /** * The name of the namespace. */ private _namespace; /** * The Amazon Resource Name (ARN) of the table bucket to create the namespace in. */ private _tableBucketArn; /** * Create a new `AWS::S3Tables::Namespace`. * * @param scope Scope in which this resource is defined * @param id Construct identifier for this resource (unique in its scope) * @param props Resource properties */ constructor(scope: constructs.Construct, id: string, props: CfnNamespaceProps); get namespaceRef(): NamespaceReference; /** * The name of the namespace. */ get namespace(): string; /** * The name of the namespace. */ set namespace(value: string); /** * The Amazon Resource Name (ARN) of the table bucket to create the namespace in. */ get tableBucketArn(): string; /** * The Amazon Resource Name (ARN) of the table bucket to create the namespace in. */ set tableBucketArn(value: string); protected get cfnProperties(): Record<string, any>; /** * Examines the CloudFormation resource and discloses attributes * * @param inspector tree inspector to collect and process attributes */ inspect(inspector: cdk.TreeInspector): void; protected renderProperties(props: Record<string, any>): Record<string, any>; } /** * Properties for defining a `CfnNamespace` * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-namespace.html */ export interface CfnNamespaceProps { /** * The name of the namespace. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-namespace.html#cfn-s3tables-namespace-namespace */ readonly namespace: string; /** * The Amazon Resource Name (ARN) of the table bucket to create the namespace in. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-namespace.html#cfn-s3tables-namespace-tablebucketarn */ readonly tableBucketArn: string; } /** * Creates a new table associated with the given namespace in a table bucket. * * For more information, see [Creating an Amazon S3 table](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-create.html) in the *Amazon Simple Storage Service User Guide* . * * - **Permissions** - - You must have the `s3tables:CreateTable` permission to use this operation. * - If you use this operation with the optional `metadata` request parameter you must have the `s3tables:PutTableData` permission. * - If you use this operation with the optional `encryptionConfiguration` request parameter you must have the `s3tables:PutTableEncryption` permission. * * > Additionally, If you choose SSE-KMS encryption you must grant the S3 Tables maintenance principal access to your KMS key. For more information, see [Permissions requirements for S3 Tables SSE-KMS encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-kms-permissions.html) . * - **Cloud Development Kit** - To use S3 Tables AWS CDK constructs, add the `@aws-cdk/aws-s3tables-alpha` dependency with one of the following options: * * - NPM: `npm i @aws-cdk/aws-s3tables-alpha` * - Yarn: `yarn add @aws-cdk/aws-s3tables-alpha` * * @cloudformationResource AWS::S3Tables::Table * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html */ export declare class CfnTable extends cdk.CfnResource implements cdk.IInspectable, ITableRef, cdk.ITaggableV2 { /** * The CloudFormation resource type name for this resource class. */ static readonly CFN_RESOURCE_TYPE_NAME: string; /** * Build a CfnTable from CloudFormation properties * * A factory method that creates a new instance of this class from an object * containing the CloudFormation properties of this resource. * Used in the @aws-cdk/cloudformation-include module. * * @internal */ static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnTable; /** * Checks whether the given object is a CfnTable */ static isCfnTable(x: any): x is CfnTable; static arnForTable(resource: ITableRef): string; /** * Tag Manager which manages the tags for this resource */ readonly cdkTagManager: cdk.TagManager; /** * Contains details about the compaction settings for an Iceberg table. */ private _compaction?; /** * Contains details about the metadata for an Iceberg table. */ private _icebergMetadata?; /** * The name of the namespace. */ private _namespace; /** * The format of the table. */ private _openTableFormat; /** * Contains details about the Iceberg snapshot management settings for the table. */ private _snapshotManagement?; /** * The configuration details for the storage class of tables or table buckets. */ private _storageClassConfiguration?; /** * The Amazon Resource Name (ARN) of the table bucket to create the table in. */ private _tableBucketArn; /** * The name for the table. */ private _tableName; /** * User tags (key-value pairs) to associate with the table. */ private _tags?; /** * Indicates that you don't want to specify a schema for the table. */ private _withoutMetadata?; /** * Create a new `AWS::S3Tables::Table`. * * @param scope Scope in which this resource is defined * @param id Construct identifier for this resource (unique in its scope) * @param props Resource properties */ constructor(scope: constructs.Construct, id: string, props: CfnTableProps); get tableRef(): TableReference; /** * Contains details about the compaction settings for an Iceberg table. */ get compaction(): CfnTable.CompactionProperty | cdk.IResolvable | undefined; /** * Contains details about the compaction settings for an Iceberg table. */ set compaction(value: CfnTable.CompactionProperty | cdk.IResolvable | undefined); /** * Contains details about the metadata for an Iceberg table. */ get icebergMetadata(): CfnTable.IcebergMetadataProperty | cdk.IResolvable | undefined; /** * Contains details about the metadata for an Iceberg table. */ set icebergMetadata(value: CfnTable.IcebergMetadataProperty | cdk.IResolvable | undefined); /** * The name of the namespace. */ get namespace(): string; /** * The name of the namespace. */ set namespace(value: string); /** * The format of the table. */ get openTableFormat(): string; /** * The format of the table. */ set openTableFormat(value: string); /** * Contains details about the Iceberg snapshot management settings for the table. */ get snapshotManagement(): cdk.IResolvable | CfnTable.SnapshotManagementProperty | undefined; /** * Contains details about the Iceberg snapshot management settings for the table. */ set snapshotManagement(value: cdk.IResolvable | CfnTable.SnapshotManagementProperty | undefined); /** * The configuration details for the storage class of tables or table buckets. */ get storageClassConfiguration(): cdk.IResolvable | CfnTable.StorageClassConfigurationProperty | undefined; /** * The configuration details for the storage class of tables or table buckets. */ set storageClassConfiguration(value: cdk.IResolvable | CfnTable.StorageClassConfigurationProperty | undefined); /** * The Amazon Resource Name (ARN) of the table bucket to create the table in. */ get tableBucketArn(): string; /** * The Amazon Resource Name (ARN) of the table bucket to create the table in. */ set tableBucketArn(value: string); /** * The name for the table. */ get tableName(): string; /** * The name for the table. */ set tableName(value: string); /** * User tags (key-value pairs) to associate with the table. */ get tags(): Array<cdk.CfnTag> | undefined; /** * User tags (key-value pairs) to associate with the table. */ set tags(value: Array<cdk.CfnTag> | undefined); /** * Indicates that you don't want to specify a schema for the table. */ get withoutMetadata(): string | undefined; /** * Indicates that you don't want to specify a schema for the table. */ set withoutMetadata(value: string | undefined); /** * The Amazon Resource Name (ARN) of the table. * * @cloudformationAttribute TableARN */ get attrTableArn(): string; /** * The version token of the table. * * @cloudformationAttribute VersionToken */ get attrVersionToken(): string; /** * The warehouse location of the table. * * @cloudformationAttribute WarehouseLocation */ get attrWarehouseLocation(): string; protected get cfnProperties(): Record<string, any>; /** * Examines the CloudFormation resource and discloses attributes * * @param inspector tree inspector to collect and process attributes */ inspect(inspector: cdk.TreeInspector): void; protected renderProperties(props: Record<string, any>): Record<string, any>; } export declare namespace CfnTable { /** * The configuration details for the storage class of tables or table buckets. * * This allows you to optimize storage costs by selecting the appropriate storage class based on your access patterns and performance requirements. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-storageclassconfiguration.html */ interface StorageClassConfigurationProperty { /** * The storage class for the table or table bucket. * * Valid values include storage classes optimized for different access patterns and cost profiles. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-storageclassconfiguration.html#cfn-s3tables-table-storageclassconfiguration-storageclass */ readonly storageClass?: string; } /** * Contains details about the compaction settings for an Iceberg table. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-compaction.html */ interface CompactionProperty { /** * The status of the maintenance configuration. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-compaction.html#cfn-s3tables-table-compaction-status */ readonly status?: string; /** * The target file size for the table in MB. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-compaction.html#cfn-s3tables-table-compaction-targetfilesizemb */ readonly targetFileSizeMb?: number; } /** * Contains details about the metadata for an Iceberg table. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergmetadata.html */ interface IcebergMetadataProperty { /** * Partition specification for an Iceberg table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergmetadata.html#cfn-s3tables-table-icebergmetadata-icebergpartitionspec */ readonly icebergPartitionSpec?: CfnTable.IcebergPartitionSpecProperty | cdk.IResolvable; /** * The schema for an Iceberg table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergmetadata.html#cfn-s3tables-table-icebergmetadata-icebergschema */ readonly icebergSchema?: CfnTable.IcebergSchemaProperty | cdk.IResolvable; /** * Contains details about the schema version 2 (V2) for an Iceberg table that supports Apache Iceberg Nested Types (struct, list, map). * * Primitive types are also supported. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergmetadata.html#cfn-s3tables-table-icebergmetadata-icebergschemav2 */ readonly icebergSchemaV2?: CfnTable.IcebergSchemaV2Property | cdk.IResolvable; /** * Sort order specification for an Iceberg table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergmetadata.html#cfn-s3tables-table-icebergmetadata-icebergsortorder */ readonly icebergSortOrder?: CfnTable.IcebergSortOrderProperty | cdk.IResolvable; /** * Iceberg table properties (e.g., format-version, write.parquet.compression-codec). * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergmetadata.html#cfn-s3tables-table-icebergmetadata-tableproperties */ readonly tableProperties?: cdk.IResolvable | Record<string, string>; } /** * Contains details about the schema for an Iceberg table. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergschema.html */ interface IcebergSchemaProperty { /** * The schema fields for the table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergschema.html#cfn-s3tables-table-icebergschema-schemafieldlist */ readonly schemaFieldList: Array<cdk.IResolvable | CfnTable.SchemaFieldProperty> | cdk.IResolvable; } /** * Contains details about a schema field. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-schemafield.html */ interface SchemaFieldProperty { /** * The unique identifier for the field. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-schemafield.html#cfn-s3tables-table-schemafield-id */ readonly id?: number; /** * The name of the field. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-schemafield.html#cfn-s3tables-table-schemafield-name */ readonly name: string; /** * A Boolean value that specifies whether values are required for each row in this field. * * By default, this is `false` and null values are allowed in the field. If this is `true` the field does not allow null values. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-schemafield.html#cfn-s3tables-table-schemafield-required */ readonly required?: boolean | cdk.IResolvable; /** * The field type. * * S3 Tables supports all Apache Iceberg primitive types. For more information, see the [Apache Iceberg documentation](https://docs.aws.amazon.com/https://iceberg.apache.org/spec/#primitive-types) . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-schemafield.html#cfn-s3tables-table-schemafield-type */ readonly type: string; } /** * Sort order specification for an Iceberg table. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergsortorder.html */ interface IcebergSortOrderProperty { /** * List of sort fields for an Iceberg table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergsortorder.html#cfn-s3tables-table-icebergsortorder-fields */ readonly fields: Array<CfnTable.IcebergSortFieldProperty | cdk.IResolvable> | cdk.IResolvable; /** * The sort order ID (defaults to 1 if not specified, 0 is reserved for unsorted). * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergsortorder.html#cfn-s3tables-table-icebergsortorder-orderid */ readonly orderId?: number; } /** * A sort field specification for an Iceberg table. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergsortfield.html */ interface IcebergSortFieldProperty { /** * Sort direction (asc or desc). * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergsortfield.html#cfn-s3tables-table-icebergsortfield-direction */ readonly direction: string; /** * Null value ordering (nulls-first or nulls-last). * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergsortfield.html#cfn-s3tables-table-icebergsortfield-nullorder */ readonly nullOrder: string; /** * The source column ID to sort on. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergsortfield.html#cfn-s3tables-table-icebergsortfield-sourceid */ readonly sourceId: number; /** * The sort transform function. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergsortfield.html#cfn-s3tables-table-icebergsortfield-transform */ readonly transform: string; } /** * Contains details about the schema version 2 (V2) for an Iceberg table that supports Apache Iceberg Nested Types (struct, list, map). * * Primitive types are also supported. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergschemav2.html */ interface IcebergSchemaV2Property { /** * A list of field IDs that are used as the identifier fields for the table. * * Identifier fields uniquely identify a row in the table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergschemav2.html#cfn-s3tables-table-icebergschemav2-identifierfieldids */ readonly identifierFieldIds?: Array<number> | cdk.IResolvable; /** * An optional unique identifier for the schema. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergschemav2.html#cfn-s3tables-table-icebergschemav2-schemaid */ readonly schemaId?: number; /** * List of schema fields that support nested types. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergschemav2.html#cfn-s3tables-table-icebergschemav2-schemav2fieldlist */ readonly schemaV2FieldList: Array<cdk.IResolvable | CfnTable.SchemaV2FieldProperty> | cdk.IResolvable; /** * The type of the top-level schema, which is always 'struct'. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergschemav2.html#cfn-s3tables-table-icebergschemav2-schemav2fieldtype */ readonly schemaV2FieldType: string; } /** * Contains details about a schema field for an Iceberg table that supports nested types (struct, list, map). * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-schemav2field.html */ interface SchemaV2FieldProperty { /** * Optional documentation for the field. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-schemav2field.html#cfn-s3tables-table-schemav2field-doc */ readonly doc?: string; /** * The unique identifier for the field. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-schemav2field.html#cfn-s3tables-table-schemav2field-id */ readonly id: number; /** * The name of the field. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-schemav2field.html#cfn-s3tables-table-schemav2field-name */ readonly name: string; /** * A Boolean value that specifies whether values are required for each row in this field. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-schemav2field.html#cfn-s3tables-table-schemav2field-required */ readonly required: boolean | cdk.IResolvable; /** * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-schemav2field.html#cfn-s3tables-table-schemav2field-type */ readonly type: any | cdk.IResolvable | string; } /** * Partition specification for an Iceberg table. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergpartitionspec.html */ interface IcebergPartitionSpecProperty { /** * List of partition fields for an Iceberg table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergpartitionspec.html#cfn-s3tables-table-icebergpartitionspec-fields */ readonly fields: Array<CfnTable.IcebergPartitionFieldProperty | cdk.IResolvable> | cdk.IResolvable; /** * The partition spec ID (defaults to 0 if not specified). * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergpartitionspec.html#cfn-s3tables-table-icebergpartitionspec-specid */ readonly specId?: number; } /** * A partition field specification for an Iceberg table. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergpartitionfield.html */ interface IcebergPartitionFieldProperty { /** * The partition field ID (auto-assigned starting from 1000 if not specified). * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergpartitionfield.html#cfn-s3tables-table-icebergpartitionfield-fieldid */ readonly fieldId?: number; /** * The name of the partition field. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergpartitionfield.html#cfn-s3tables-table-icebergpartitionfield-name */ readonly name: string; /** * The source column ID to partition on. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergpartitionfield.html#cfn-s3tables-table-icebergpartitionfield-sourceid */ readonly sourceId: number; /** * The partition transform function (identity, bucket[N], truncate[N], year, month, day, hour). * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergpartitionfield.html#cfn-s3tables-table-icebergpartitionfield-transform */ readonly transform: string; } /** * Contains details about the snapshot management settings for an Iceberg table. * * The oldest snapshot expires when its age exceeds the `maxSnapshotAgeHours` and the total number of snapshots exceeds the value for the minimum number of snapshots to keep `minSnapshotsToKeep` . * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-snapshotmanagement.html */ interface SnapshotManagementProperty { /** * The maximum age of a snapshot before it can be expired. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-snapshotmanagement.html#cfn-s3tables-table-snapshotmanagement-maxsnapshotagehours */ readonly maxSnapshotAgeHours?: number; /** * The minimum number of snapshots to keep. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-snapshotmanagement.html#cfn-s3tables-table-snapshotmanagement-minsnapshotstokeep */ readonly minSnapshotsToKeep?: number; /** * The status of the maintenance configuration. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-snapshotmanagement.html#cfn-s3tables-table-snapshotmanagement-status */ readonly status?: string; } } /** * Properties for defining a `CfnTable` * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html */ export interface CfnTableProps { /** * Contains details about the compaction settings for an Iceberg table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html#cfn-s3tables-table-compaction */ readonly compaction?: CfnTable.CompactionProperty | cdk.IResolvable; /** * Contains details about the metadata for an Iceberg table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html#cfn-s3tables-table-icebergmetadata */ readonly icebergMetadata?: CfnTable.IcebergMetadataProperty | cdk.IResolvable; /** * The name of the namespace. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html#cfn-s3tables-table-namespace */ readonly namespace: string; /** * The format of the table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html#cfn-s3tables-table-opentableformat */ readonly openTableFormat: string; /** * Contains details about the Iceberg snapshot management settings for the table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html#cfn-s3tables-table-snapshotmanagement */ readonly snapshotManagement?: cdk.IResolvable | CfnTable.SnapshotManagementProperty; /** * The configuration details for the storage class of tables or table buckets. * * This allows you to optimize storage costs by selecting the appropriate storage class based on your access patterns and performance requirements. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html#cfn-s3tables-table-storageclassconfiguration */ readonly storageClassConfiguration?: cdk.IResolvable | CfnTable.StorageClassConfigurationProperty; /** * The Amazon Resource Name (ARN) of the table bucket to create the table in. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html#cfn-s3tables-table-tablebucketarn */ readonly tableBucketArn: string; /** * The name for the table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html#cfn-s3tables-table-tablename */ readonly tableName: string; /** * User tags (key-value pairs) to associate with the table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html#cfn-s3tables-table-tags */ readonly tags?: Array<cdk.CfnTag>; /** * Indicates that you don't want to specify a schema for the table. * * This property is mutually exclusive to `IcebergMetadata` , and its only possible value is `Yes` . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html#cfn-s3tables-table-withoutmetadata */ readonly withoutMetadata?: string; } /** * Creates a table bucket. * * For more information, see [Creating a table bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-create.html) in the *Amazon Simple Storage Service User Guide* . * * - **Permissions** - - You must have the `s3tables:CreateTableBucket` permission to use this operation. * - If you use this operation with the optional `encryptionConfiguration` parameter you must have the `s3tables:PutTableBucketEncryption` permission. * - **Cloud Development Kit** - To use S3 Tables AWS CDK constructs, add the `@aws-cdk/aws-s3tables-alpha` dependency with one of the following options: * * - NPM: `npm i @aws-cdk/aws-s3tables-alpha` * - Yarn: `yarn add @aws-cdk/aws-s3tables-alpha` * * @cloudformationResource AWS::S3Tables::TableBucket * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucket.html */ export declare class CfnTableBucket extends cdk.CfnResource implements cdk.IInspectable, ITableBucketRef, cdk.ITaggableV2 { /** * The CloudFormation resource type name for this resource class. */ static readonly CFN_RESOURCE_TYPE_NAME: string; /** * Build a CfnTableBucket from CloudFormation properties * * A factory method that creates a new instance of this class from an object * containing the CloudFormation properties of this resource. * Used in the @aws-cdk/cloudformation-include module. * * @internal */ static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnTableBucket; /** * Checks whether the given object is a CfnTableBucket */ static isCfnTableBucket(x: any): x is CfnTableBucket; static arnForTableBucket(resource: ITableBucketRef): string; /** * Tag Manager which manages the tags for this resource */ readonly cdkTagManager: cdk.TagManager; /** * Configuration specifying how data should be encrypted. */ private _encryptionConfiguration?; /** * Settings governing the Metric configuration for the table bucket. */ private _metricsConfiguration?; /** * Specifies replication configuration for the table bucket. */ private _replicationConfiguration?; /** * The configuration details for the storage class of tables or table buckets. */ private _storageClassConfiguration?; /** * The name for the table bucket. */ private _tableBucketName; /** * User tags (key-value pairs) to associate with the table bucket. */ private _tags?; /** * The unreferenced file removal settings for your table bucket. */ private _unreferencedFileRemoval?; /** * Create a new `AWS::S3Tables::TableBucket`. * * @param scope Scope in which this resource is defined * @param id Construct identifier for this resource (unique in its scope) * @param props Resource properties */ constructor(scope: constructs.Construct, id: string, props: CfnTableBucketProps); get tableBucketRef(): TableBucketReference; /** * Configuration specifying how data should be encrypted. */ get encryptionConfiguration(): CfnTableBucket.EncryptionConfigurationProperty | cdk.IResolvable | undefined; /** * Configuration specifying how data should be encrypted. */ set encryptionConfiguration(value: CfnTableBucket.EncryptionConfigurationProperty | cdk.IResolvable | undefined); /** * Settings governing the Metric configuration for the table bucket. */ get metricsConfiguration(): cdk.IResolvable | CfnTableBucket.MetricsConfigurationProperty | undefined; /** * Settings governing the Metric configuration for the table bucket. */ set metricsConfiguration(value: cdk.IResolvable | CfnTableBucket.MetricsConfigurationProperty | undefined); /** * Specifies replication configuration for the table bucket. */ get replicationConfiguration(): cdk.IResolvable | CfnTableBucket.ReplicationConfigurationProperty | undefined; /** * Specifies replication configuration for the table bucket. */ set replicationConfiguration(value: cdk.IResolvable | CfnTableBucket.ReplicationConfigurationProperty | undefined); /** * The configuration details for the storage class of tables or table buckets. */ get storageClassConfiguration(): cdk.IResolvable | CfnTableBucket.StorageClassConfigurationProperty | undefined; /** * The configuration details for the storage class of tables or table buckets. */ set storageClassConfiguration(value: cdk.IResolvable | CfnTableBucket.StorageClassConfigurationProperty | undefined); /** * The name for the table bucket. */ get tableBucketName(): string; /** * The name for the table bucket. */ set tableBucketName(value: string); /** * User tags (key-value pairs) to associate with the table bucket. */ get tags(): Array<cdk.CfnTag> | undefined; /** * User tags (key-value pairs) to associate with the table bucket. */ set tags(value: Array<cdk.CfnTag> | undefined); /** * The unreferenced file removal settings for your table bucket. */ get unreferencedFileRemoval(): cdk.IResolvable | CfnTableBucket.UnreferencedFileRemovalProperty | undefined; /** * The unreferenced file removal settings for your table bucket. */ set unreferencedFileRemoval(value: cdk.IResolvable | CfnTableBucket.UnreferencedFileRemovalProperty | undefined); /** * The Amazon Resource Name (ARN) of the table bucket. * * @cloudformationAttribute TableBucketARN */ get attrTableBucketArn(): string; protected get cfnProperties(): Record<string, any>; /** * Examines the CloudFormation resource and discloses attributes * * @param inspector tree inspector to collect and process attributes */ inspect(inspector: cdk.TreeInspector): void; protected renderProperties(props: Record<string, any>): Record<string, any>; } export declare namespace CfnTableBucket { /** * The unreferenced file removal settings for your table bucket. * * Unreferenced file removal identifies and deletes all objects that are not referenced by any table snapshots. For more information, see the [*Amazon S3 User Guide*](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-table-buckets-maintenance.html) . * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-unreferencedfileremoval.html */ interface UnreferencedFileRemovalProperty { /** * The number of days an object can be noncurrent before Amazon S3 deletes it. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-unreferencedfileremoval.html#cfn-s3tables-tablebucket-unreferencedfileremoval-noncurrentdays */ readonly noncurrentDays?: number; /** * The status of the unreferenced file removal configuration for your table bucket. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-unreferencedfileremoval.html#cfn-s3tables-tablebucket-unreferencedfileremoval-status */ readonly status?: string; /** * The number of days an object must be unreferenced by your table before Amazon S3 marks the object as noncurrent. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-unreferencedfileremoval.html#cfn-s3tables-tablebucket-unreferencedfileremoval-unreferenceddays */ readonly unreferencedDays?: number; } /** * Configuration specifying how data should be encrypted. * * This structure defines the encryption algorithm and optional KMS key to be used for server-side encryption. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-encryptionconfiguration.html */ interface EncryptionConfigurationProperty { /** * The Amazon Resource Name (ARN) of the KMS key to use for encryption. * * This field is required only when `sseAlgorithm` is set to `aws:kms` . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-encryptionconfiguration.html#cfn-s3tables-tablebucket-encryptionconfiguration-kmskeyarn */ readonly kmsKeyArn?: string; /** * The server-side encryption algorithm to use. * * Valid values are `AES256` for S3-managed encryption keys, or `aws:kms` for AWS KMS-managed encryption keys. If you choose SSE-KMS encryption you must grant the S3 Tables maintenance principal access to your KMS key. For more information, see [Permissions requirements for S3 Tables SSE-KMS encryption](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-tables-kms-permissions.html) . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-encryptionconfiguration.html#cfn-s3tables-tablebucket-encryptionconfiguration-ssealgorithm */ readonly sseAlgorithm?: string; } /** * Settings governing the Metric configuration for the table bucket. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-metricsconfiguration.html */ interface MetricsConfigurationProperty { /** * Indicates whether Metrics are enabled. * * @default - "Disabled" * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-metricsconfiguration.html#cfn-s3tables-tablebucket-metricsconfiguration-status */ readonly status?: string; } /** * The configuration details for the storage class of tables or table buckets. * * This allows you to optimize storage costs by selecting the appropriate storage class based on your access patterns and performance requirements. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-storageclassconfiguration.html */ interface StorageClassConfigurationProperty { /** * The storage class for the table or table bucket. * * Valid values include storage classes optimized for different access patterns and cost profiles. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-storageclassconfiguration.html#cfn-s3tables-tablebucket-storageclassconfiguration-storageclass */ readonly storageClass?: string; } /** * Specifies replication configuration for the table bucket. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-replicationconfiguration.html */ interface ReplicationConfigurationProperty { /** * The ARN of the IAM role to use for replication. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-replicationconfiguration.html#cfn-s3tables-tablebucket-replicationconfiguration-role */ readonly role: string; /** * List of replication rules. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-replicationconfiguration.html#cfn-s3tables-tablebucket-replicationconfiguration-rules */ readonly rules: Array<cdk.IResolvable | CfnTableBucket.ReplicationRuleProperty> | cdk.IResolvable; } /** * A replication rule for the table bucket. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-replicationrule.html */ interface ReplicationRuleProperty { /** * List of replication destinations. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-replicationrule.html#cfn-s3tables-tablebucket-replicationrule-destinations */ readonly destinations: Array<cdk.IResolvable | CfnTableBucket.ReplicationDestinationProperty> | cdk.IResolvable; } /** * A replication destination. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-replicationdestination.html */ interface ReplicationDestinationProperty { /** * The ARN of the destination table bucket. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-tablebucket-replicationdestination.html#cfn-s3tables-tablebucket-replicationdestination-destinationtablebucketarn */ readonly destinationTableBucketArn: string; } } /** * Properties for defining a `CfnTableBucket` * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucket.html */ export interface CfnTableBucketProps { /** * Configuration specifying how data should be encrypted. * * This structure defines the encryption algorithm and optional KMS key to be used for server-side encryption. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucket.html#cfn-s3tables-tablebucket-encryptionconfiguration */ readonly encryptionConfiguration?: CfnTableBucket.EncryptionConfigurationProperty | cdk.IResolvable; /** * Settings governing the Metric configuration for the table bucket. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucket.html#cfn-s3tables-tablebucket-metricsconfiguration */ readonly metricsConfiguration?: cdk.IResolvable | CfnTableBucket.MetricsConfigurationProperty; /** * Specifies replication configuration for the table bucket. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucket.html#cfn-s3tables-tablebucket-replicationconfiguration */ readonly replicationConfiguration?: cdk.IResolvable | CfnTableBucket.ReplicationConfigurationProperty; /** * The configuration details for the storage class of tables or table buckets. * * This allows you to optimize storage costs by selecting the appropriate storage class based on your access patterns and performance requirements. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucket.html#cfn-s3tables-tablebucket-storageclassconfiguration */ readonly storageClassConfiguration?: cdk.IResolvable | CfnTableBucket.StorageClassConfigurationProperty; /** * The name for the table bucket. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucket.html#cfn-s3tables-tablebucket-tablebucketname */ readonly tableBucketName: string; /** * User tags (key-value pairs) to associate with the table bucket. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucket.html#cfn-s3tables-tablebucket-tags */ readonly tags?: Array<cdk.CfnTag>; /** * The unreferenced file removal settings for your table bucket. * * Unreferenced file removal identifies and deletes all objects that are not referenced by any table snapshots. For more information, see the [*Amazon S3 User Guide*](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-table-buckets-maintenance.html) . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucket.html#cfn-s3tables-tablebucket-unreferencedfileremoval */ readonly unreferencedFileRemoval?: cdk.IResolvable | CfnTableBucket.UnreferencedFileRemovalProperty; } /** * Creates a new maintenance configuration or replaces an existing table bucket policy for a table bucket. * * For more information, see [Adding a table bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-bucket-policy.html#table-bucket-policy-add) in the *Amazon Simple Storage Service User Guide* . * * - **Permissions** - You must have the `s3tables:PutTableBucketPolicy` permission to use this operation. * - **Cloud Development Kit** - To use S3 Tables AWS CDK constructs, add the `@aws-cdk/aws-s3tables-alpha` dependency with one of the following options: * * - NPM: `npm i @aws-cdk/aws-s3tables-alpha` * - Yarn: `yarn add @aws-cdk/aws-s3tables-alpha` * * @cloudformationResource AWS::S3Tables::TableBucketPolicy * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucketpolicy.html */ export declare class CfnTableBucketPolicy extends cdk.CfnResource implements cdk.IInspectable, ITableBucketPolicyRef { /** * The CloudFormation resource type name for this resource class. */ static readonly CFN_RESOURCE_TYPE_NAME: string; /** * Build a CfnTableBucketPolicy from CloudFormation properties * * A factory method that creates a new instance of this class from an object * containing the CloudFormation properties of this resource. * Used in the @aws-cdk/cloudformation-include m