@aws-cdk/aws-s3tables-alpha 2.207.0-alpha.0 → 2.209.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
package/.warnings.jsii.js CHANGED
@@ -48,6 +48,116 @@ function _aws_cdk_aws_s3tables_alpha_TableBucketPolicyProps(p) {
48
48
  }
49
49
  function _aws_cdk_aws_s3tables_alpha_TableBucketPolicy(p) {
50
50
  }
51
+ function _aws_cdk_aws_s3tables_alpha_INamespace(p) {
52
+ }
53
+ function _aws_cdk_aws_s3tables_alpha_NamespaceProps(p) {
54
+ if (p == null)
55
+ return;
56
+ visitedObjects.add(p);
57
+ try {
58
+ if (!visitedObjects.has(p.tableBucket))
59
+ _aws_cdk_aws_s3tables_alpha_ITableBucket(p.tableBucket);
60
+ }
61
+ finally {
62
+ visitedObjects.delete(p);
63
+ }
64
+ }
65
+ function _aws_cdk_aws_s3tables_alpha_NamespaceAttributes(p) {
66
+ if (p == null)
67
+ return;
68
+ visitedObjects.add(p);
69
+ try {
70
+ if (!visitedObjects.has(p.tableBucket))
71
+ _aws_cdk_aws_s3tables_alpha_ITableBucket(p.tableBucket);
72
+ }
73
+ finally {
74
+ visitedObjects.delete(p);
75
+ }
76
+ }
77
+ function _aws_cdk_aws_s3tables_alpha_Namespace(p) {
78
+ }
79
+ function _aws_cdk_aws_s3tables_alpha_ITable(p) {
80
+ }
81
+ function _aws_cdk_aws_s3tables_alpha_TableProps(p) {
82
+ if (p == null)
83
+ return;
84
+ visitedObjects.add(p);
85
+ try {
86
+ if (!visitedObjects.has(p.namespace))
87
+ _aws_cdk_aws_s3tables_alpha_INamespace(p.namespace);
88
+ if (!visitedObjects.has(p.openTableFormat))
89
+ _aws_cdk_aws_s3tables_alpha_OpenTableFormat(p.openTableFormat);
90
+ if (!visitedObjects.has(p.compaction))
91
+ _aws_cdk_aws_s3tables_alpha_CompactionProperty(p.compaction);
92
+ if (!visitedObjects.has(p.icebergMetadata))
93
+ _aws_cdk_aws_s3tables_alpha_IcebergMetadataProperty(p.icebergMetadata);
94
+ if (!visitedObjects.has(p.snapshotManagement))
95
+ _aws_cdk_aws_s3tables_alpha_SnapshotManagementProperty(p.snapshotManagement);
96
+ }
97
+ finally {
98
+ visitedObjects.delete(p);
99
+ }
100
+ }
101
+ function _aws_cdk_aws_s3tables_alpha_OpenTableFormat(p) {
102
+ }
103
+ function _aws_cdk_aws_s3tables_alpha_CompactionProperty(p) {
104
+ if (p == null)
105
+ return;
106
+ visitedObjects.add(p);
107
+ try {
108
+ if (!visitedObjects.has(p.status))
109
+ _aws_cdk_aws_s3tables_alpha_Status(p.status);
110
+ }
111
+ finally {
112
+ visitedObjects.delete(p);
113
+ }
114
+ }
115
+ function _aws_cdk_aws_s3tables_alpha_Status(p) {
116
+ }
117
+ function _aws_cdk_aws_s3tables_alpha_IcebergMetadataProperty(p) {
118
+ if (p == null)
119
+ return;
120
+ visitedObjects.add(p);
121
+ try {
122
+ if (!visitedObjects.has(p.icebergSchema))
123
+ _aws_cdk_aws_s3tables_alpha_IcebergSchemaProperty(p.icebergSchema);
124
+ }
125
+ finally {
126
+ visitedObjects.delete(p);
127
+ }
128
+ }
129
+ function _aws_cdk_aws_s3tables_alpha_IcebergSchemaProperty(p) {
130
+ if (p == null)
131
+ return;
132
+ visitedObjects.add(p);
133
+ try {
134
+ if (p.schemaFieldList != null)
135
+ for (const o of p.schemaFieldList)
136
+ if (!visitedObjects.has(o))
137
+ _aws_cdk_aws_s3tables_alpha_SchemaFieldProperty(o);
138
+ }
139
+ finally {
140
+ visitedObjects.delete(p);
141
+ }
142
+ }
143
+ function _aws_cdk_aws_s3tables_alpha_SchemaFieldProperty(p) {
144
+ }
145
+ function _aws_cdk_aws_s3tables_alpha_SnapshotManagementProperty(p) {
146
+ if (p == null)
147
+ return;
148
+ visitedObjects.add(p);
149
+ try {
150
+ if (!visitedObjects.has(p.status))
151
+ _aws_cdk_aws_s3tables_alpha_Status(p.status);
152
+ }
153
+ finally {
154
+ visitedObjects.delete(p);
155
+ }
156
+ }
157
+ function _aws_cdk_aws_s3tables_alpha_TableAttributes(p) {
158
+ }
159
+ function _aws_cdk_aws_s3tables_alpha_Table(p) {
160
+ }
51
161
  function print(name, deprecationMessage) {
52
162
  const deprecated = process.env.JSII_DEPRECATED;
53
163
  const deprecationMode = ["warn", "fail", "quiet"].includes(deprecated) ? deprecated : "warn";
@@ -84,4 +194,4 @@ class DeprecationError extends Error {
84
194
  });
85
195
  }
86
196
  }
87
- module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_aws_s3tables_alpha_ITableBucket, _aws_cdk_aws_s3tables_alpha_UnreferencedFileRemoval, _aws_cdk_aws_s3tables_alpha_UnreferencedFileRemovalStatus, _aws_cdk_aws_s3tables_alpha_TableBucketEncryption, _aws_cdk_aws_s3tables_alpha_TableBucketProps, _aws_cdk_aws_s3tables_alpha_TableBucketAttributes, _aws_cdk_aws_s3tables_alpha_TableBucket, _aws_cdk_aws_s3tables_alpha_TableBucketPolicyProps, _aws_cdk_aws_s3tables_alpha_TableBucketPolicy };
197
+ module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_aws_s3tables_alpha_ITableBucket, _aws_cdk_aws_s3tables_alpha_UnreferencedFileRemoval, _aws_cdk_aws_s3tables_alpha_UnreferencedFileRemovalStatus, _aws_cdk_aws_s3tables_alpha_TableBucketEncryption, _aws_cdk_aws_s3tables_alpha_TableBucketProps, _aws_cdk_aws_s3tables_alpha_TableBucketAttributes, _aws_cdk_aws_s3tables_alpha_TableBucket, _aws_cdk_aws_s3tables_alpha_TableBucketPolicyProps, _aws_cdk_aws_s3tables_alpha_TableBucketPolicy, _aws_cdk_aws_s3tables_alpha_INamespace, _aws_cdk_aws_s3tables_alpha_NamespaceProps, _aws_cdk_aws_s3tables_alpha_NamespaceAttributes, _aws_cdk_aws_s3tables_alpha_Namespace, _aws_cdk_aws_s3tables_alpha_ITable, _aws_cdk_aws_s3tables_alpha_TableProps, _aws_cdk_aws_s3tables_alpha_OpenTableFormat, _aws_cdk_aws_s3tables_alpha_CompactionProperty, _aws_cdk_aws_s3tables_alpha_Status, _aws_cdk_aws_s3tables_alpha_IcebergMetadataProperty, _aws_cdk_aws_s3tables_alpha_IcebergSchemaProperty, _aws_cdk_aws_s3tables_alpha_SchemaFieldProperty, _aws_cdk_aws_s3tables_alpha_SnapshotManagementProperty, _aws_cdk_aws_s3tables_alpha_TableAttributes, _aws_cdk_aws_s3tables_alpha_Table };
package/README.md CHANGED
@@ -39,6 +39,59 @@ const sampleTableBucket = new TableBucket(scope, 'ExampleTableBucket', {
39
39
  });
40
40
  ```
41
41
 
42
+ ### Define an S3 Tables Namespace
43
+
44
+ ```ts
45
+ // Build a namespace
46
+ const sampleNamespace = new Namespace(scope, 'ExampleNamespace', {
47
+ namespaceName: 'example-namespace-1',
48
+ tableBucket: tableBucket,
49
+ });
50
+ ```
51
+
52
+ ### Define an S3 Table
53
+
54
+ ```ts
55
+ // Build a table
56
+ const sampleTable = new Table(scope, 'ExampleTable', {
57
+ tableName: 'example_table',
58
+ namespace: namespace,
59
+ openTableFormat: OpenTableFormat.ICEBERG,
60
+ withoutMetadata: true,
61
+ });
62
+
63
+ // Build a table with an Iceberg Schema
64
+ const sampleTableWithSchema = new Table(scope, 'ExampleSchemaTable', {
65
+ tableName: 'example_table_with_schema',
66
+ namespace: namespace,
67
+ openTableFormat: OpenTableFormat.ICEBERG,
68
+ icebergMetadata: {
69
+ icebergSchema: {
70
+ schemaFieldList: [
71
+ {
72
+ name: 'id',
73
+ type: 'int',
74
+ required: true,
75
+ },
76
+ {
77
+ name: 'name',
78
+ type: 'string',
79
+ },
80
+ ],
81
+ },
82
+ },
83
+ compaction: {
84
+ status: Status.ENABLED,
85
+ targetFileSizeMb: 128,
86
+ },
87
+ snapshotManagement: {
88
+ status: Status.ENABLED,
89
+ maxSnapshotAgeHours: 48,
90
+ minSnapshotsToKeep: 5,
91
+ },
92
+ });
93
+ ```
94
+
42
95
  Learn more about table buckets maintenance operations and default behavior from the [S3 Tables User Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-table-buckets-maintenance.html)
43
96
 
44
97
  ### Controlling Table Bucket Permissions
@@ -110,5 +163,5 @@ const encryptedBucketAuto = new TableBucket(scope, 'EncryptedTableBucketAuto', {
110
163
 
111
164
  L2 Construct support for:
112
165
 
113
- - Namespaces
114
- - Tables
166
+ - Table Policy
167
+ - KMS encryption support for Tables
package/lib/index.d.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  export * from './table-bucket';
2
2
  export * from './table-bucket-policy';
3
+ export * from './namespace';
4
+ export * from './table';
package/lib/index.js CHANGED
@@ -20,4 +20,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
21
  __exportStar(require("./table-bucket"), exports);
22
22
  __exportStar(require("./table-bucket-policy"), exports);
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseURBQXlEO0FBQ3pELG9EQUFvRDtBQUNwRCxrRUFBa0U7QUFDbEUsOEVBQThFOzs7Ozs7Ozs7Ozs7Ozs7O0FBRTlFLGlEQUErQjtBQUMvQix3REFBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGUgaW5kZXgudHMgZmlsZXMgY29udGFpbnMgYSBsaXN0IG9mIGZpbGVzIHdlIHdhbnQgdG9cbi8vIGluY2x1ZGUgYXMgcGFydCBvZiB0aGUgcHVibGljIEFQSSBvZiB0aGlzIG1vZHVsZS5cbi8vIEluIGdlbmVyYWwsIGFsbCBmaWxlcyBpbmNsdWRpbmcgTDIgY2xhc3NlcyB3aWxsIGJlIGxpc3RlZCBoZXJlLFxuLy8gd2hpbGUgYWxsIGZpbGVzIGluY2x1ZGluZyBvbmx5IHV0aWxpdHkgZnVuY3Rpb25zIHdpbGwgYmUgb21pdHRlZCBmcm9tIGhlcmUuXG5cbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtYnVja2V0JztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtYnVja2V0LXBvbGljeSc7XG4iXX0=
23
+ __exportStar(require("./namespace"), exports);
24
+ __exportStar(require("./table"), exports);
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseURBQXlEO0FBQ3pELG9EQUFvRDtBQUNwRCxrRUFBa0U7QUFDbEUsOEVBQThFOzs7Ozs7Ozs7Ozs7Ozs7O0FBRTlFLGlEQUErQjtBQUMvQix3REFBc0M7QUFDdEMsOENBQTRCO0FBQzVCLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSBpbmRleC50cyBmaWxlcyBjb250YWlucyBhIGxpc3Qgb2YgZmlsZXMgd2Ugd2FudCB0b1xuLy8gaW5jbHVkZSBhcyBwYXJ0IG9mIHRoZSBwdWJsaWMgQVBJIG9mIHRoaXMgbW9kdWxlLlxuLy8gSW4gZ2VuZXJhbCwgYWxsIGZpbGVzIGluY2x1ZGluZyBMMiBjbGFzc2VzIHdpbGwgYmUgbGlzdGVkIGhlcmUsXG4vLyB3aGlsZSBhbGwgZmlsZXMgaW5jbHVkaW5nIG9ubHkgdXRpbGl0eSBmdW5jdGlvbnMgd2lsbCBiZSBvbWl0dGVkIGZyb20gaGVyZS5cblxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1idWNrZXQnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1idWNrZXQtcG9saWN5JztcbmV4cG9ydCAqIGZyb20gJy4vbmFtZXNwYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUnO1xuIl19
@@ -0,0 +1,81 @@
1
+ import { Construct } from 'constructs';
2
+ import { IResource, RemovalPolicy, Resource } from 'aws-cdk-lib/core';
3
+ import { ITableBucket } from './table-bucket';
4
+ /**
5
+ * Represents an S3 Tables Namespace.
6
+ */
7
+ export interface INamespace extends IResource {
8
+ /**
9
+ * The name of this namespace
10
+ * @attribute
11
+ */
12
+ readonly namespaceName: string;
13
+ /**
14
+ * The table bucket which this namespace belongs to
15
+ * @attribute
16
+ */
17
+ readonly tableBucket: ITableBucket;
18
+ }
19
+ /**
20
+ * Parameters for constructing a Namespace
21
+ */
22
+ export interface NamespaceProps {
23
+ /**
24
+ * A name for the namespace
25
+ */
26
+ readonly namespaceName: string;
27
+ /**
28
+ * The table bucket this namespace belongs to.
29
+ */
30
+ readonly tableBucket: ITableBucket;
31
+ /**
32
+ * Policy to apply when the policy is removed from this stack.
33
+ * @default RemovalPolicy.DESTROY
34
+ */
35
+ readonly removalPolicy?: RemovalPolicy;
36
+ }
37
+ /**
38
+ * Attributes for importing an existing namespace
39
+ */
40
+ export interface NamespaceAttributes {
41
+ /**
42
+ * The name of the namespace
43
+ */
44
+ readonly namespaceName: string;
45
+ /**
46
+ * The table bucket this namespace belongs to
47
+ */
48
+ readonly tableBucket: ITableBucket;
49
+ }
50
+ /**
51
+ * An S3 Tables Namespace with helpers.
52
+ *
53
+ * A namespace is a logical container for tables within a table bucket.
54
+ */
55
+ export declare class Namespace extends Resource implements INamespace {
56
+ /** Uniquely identifies this class. */
57
+ static readonly PROPERTY_INJECTION_ID: string;
58
+ /**
59
+ * Import an existing namespace from its attributes
60
+ */
61
+ static fromNamespaceAttributes(scope: Construct, id: string, attrs: NamespaceAttributes): INamespace;
62
+ /**
63
+ * See https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-naming.html
64
+ * @param namespaceName Name of the namespace
65
+ * @throws UnscopedValidationError if any naming errors are detected
66
+ */
67
+ static validateNamespaceName(namespaceName: string): void;
68
+ /**
69
+ * @internal The underlying namespace resource.
70
+ */
71
+ private readonly _resource;
72
+ /**
73
+ * The name of this namespace
74
+ */
75
+ readonly namespaceName: string;
76
+ /**
77
+ * The table bucket which this namespace belongs to
78
+ */
79
+ readonly tableBucket: ITableBucket;
80
+ constructor(scope: Construct, id: string, props: NamespaceProps);
81
+ }
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var _a;
9
+ var Namespace_1;
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.Namespace = void 0;
12
+ const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
13
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
14
+ const core_1 = require("aws-cdk-lib/core");
15
+ const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
16
+ const aws_s3tables_1 = require("aws-cdk-lib/aws-s3tables");
17
+ const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
18
+ const os_1 = require("os");
19
+ /**
20
+ * An S3 Tables Namespace with helpers.
21
+ *
22
+ * A namespace is a logical container for tables within a table bucket.
23
+ */
24
+ let Namespace = Namespace_1 = class Namespace extends core_1.Resource {
25
+ /**
26
+ * Import an existing namespace from its attributes
27
+ */
28
+ static fromNamespaceAttributes(scope, id, attrs) {
29
+ try {
30
+ jsiiDeprecationWarnings._aws_cdk_aws_s3tables_alpha_NamespaceAttributes(attrs);
31
+ }
32
+ catch (error) {
33
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
34
+ Error.captureStackTrace(error, this.fromNamespaceAttributes);
35
+ }
36
+ throw error;
37
+ }
38
+ class Import extends core_1.Resource {
39
+ constructor() {
40
+ super(...arguments);
41
+ this.namespaceName = attrs.namespaceName;
42
+ this.tableBucket = attrs.tableBucket;
43
+ }
44
+ }
45
+ return new Import(scope, id);
46
+ }
47
+ /**
48
+ * See https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-naming.html
49
+ * @param namespaceName Name of the namespace
50
+ * @throws UnscopedValidationError if any naming errors are detected
51
+ */
52
+ static validateNamespaceName(namespaceName) {
53
+ if (namespaceName == undefined || core_1.Token.isUnresolved(namespaceName)) {
54
+ // the name is a late-bound value, not a defined string, so skip validation
55
+ return;
56
+ }
57
+ const errors = [];
58
+ // Length validation
59
+ if (namespaceName.length < 1 || namespaceName.length > 255) {
60
+ errors.push('Namespace name must be at least 1 and no more than 255 characters');
61
+ }
62
+ // Character set validation
63
+ const illegalCharsetRegEx = /[^a-z0-9_]/;
64
+ const allowedEdgeCharsetRegEx = /[a-z0-9]/;
65
+ const illegalCharMatch = namespaceName.match(illegalCharsetRegEx);
66
+ if (illegalCharMatch) {
67
+ errors.push('Namespace name must only contain lowercase characters, numbers, and underscores (_)' +
68
+ ` (offset: ${illegalCharMatch.index})`);
69
+ }
70
+ // Edge character validation
71
+ if (!allowedEdgeCharsetRegEx.test(namespaceName.charAt(0))) {
72
+ errors.push('Namespace name must start with a lowercase letter or number (offset: 0)');
73
+ }
74
+ if (!allowedEdgeCharsetRegEx.test(namespaceName.charAt(namespaceName.length - 1))) {
75
+ errors.push(`Namespace name must end with a lowercase letter or number (offset: ${namespaceName.length - 1})`);
76
+ }
77
+ if (namespaceName.startsWith('aws')) {
78
+ errors.push('Namespace name must not start with reserved prefix \'aws\'');
79
+ }
80
+ if (errors.length > 0) {
81
+ throw new core_1.UnscopedValidationError(`Invalid S3 Tables namespace name (value: ${namespaceName})${os_1.EOL}${errors.join(os_1.EOL)}`);
82
+ }
83
+ }
84
+ constructor(scope, id, props) {
85
+ super(scope, id);
86
+ try {
87
+ jsiiDeprecationWarnings._aws_cdk_aws_s3tables_alpha_NamespaceProps(props);
88
+ }
89
+ catch (error) {
90
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
91
+ Error.captureStackTrace(error, Namespace);
92
+ }
93
+ throw error;
94
+ }
95
+ // Enhanced CDK Analytics Telemetry
96
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
97
+ Namespace_1.validateNamespaceName(props.namespaceName);
98
+ this.tableBucket = props.tableBucket;
99
+ this.namespaceName = props.namespaceName;
100
+ this._resource = new aws_s3tables_1.CfnNamespace(this, id, {
101
+ namespace: props.namespaceName,
102
+ tableBucketArn: this.tableBucket.tableBucketArn,
103
+ });
104
+ if (props.removalPolicy) {
105
+ this._resource.applyRemovalPolicy(props.removalPolicy);
106
+ }
107
+ }
108
+ };
109
+ exports.Namespace = Namespace;
110
+ _a = JSII_RTTI_SYMBOL_1;
111
+ Namespace[_a] = { fqn: "@aws-cdk/aws-s3tables-alpha.Namespace", version: "2.209.0-alpha.0" };
112
+ /** Uniquely identifies this class. */
113
+ Namespace.PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.Namespace';
114
+ exports.Namespace = Namespace = Namespace_1 = __decorate([
115
+ prop_injectable_1.propertyInjectable
116
+ ], Namespace);
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmFtZXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDQSwyQ0FBc0c7QUFFdEcsOEVBQThFO0FBQzlFLDJEQUF3RDtBQUN4RCwwRUFBMEU7QUFDMUUsMkJBQXlCO0FBcUR6Qjs7OztHQUlHO0FBRUksSUFBTSxTQUFTLGlCQUFmLE1BQU0sU0FBVSxTQUFRLGVBQVE7SUFJckM7O09BRUc7SUFDSSxNQUFNLENBQUMsdUJBQXVCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7Ozs7Ozs7Ozs7UUFDNUYsTUFBTSxNQUFPLFNBQVEsZUFBUTtZQUE3Qjs7Z0JBQ2tCLGtCQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztnQkFDcEMsZ0JBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQ2xELENBQUM7U0FBQTtRQUVELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQzlCO0lBQ0Q7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxhQUFxQjtRQUN2RCxJQUFJLGFBQWEsSUFBSSxTQUFTLElBQUksWUFBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ3BFLDJFQUEyRTtZQUMzRSxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUU1QixvQkFBb0I7UUFDcEIsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQzNELE1BQU0sQ0FBQyxJQUFJLENBQ1QsbUVBQW1FLENBQ3BFLENBQUM7UUFDSixDQUFDO1FBRUQsMkJBQTJCO1FBQzNCLE1BQU0sbUJBQW1CLEdBQUcsWUFBWSxDQUFDO1FBQ3pDLE1BQU0sdUJBQXVCLEdBQUcsVUFBVSxDQUFDO1FBRTNDLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixNQUFNLENBQUMsSUFBSSxDQUNULHFGQUFxRjtnQkFDbkYsYUFBYSxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsQ0FDekMsQ0FBQztRQUNKLENBQUM7UUFFRCw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMzRCxNQUFNLENBQUMsSUFBSSxDQUNULHlFQUF5RSxDQUMxRSxDQUFDO1FBQ0osQ0FBQztRQUNELElBQ0UsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQzdFLENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUNULHNFQUNFLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FDekIsR0FBRyxDQUNKLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxJQUFJLDhCQUF1QixDQUMvQiw0Q0FBNEMsYUFBYSxJQUFJLFFBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQUcsQ0FBQyxFQUFFLENBQ3RGLENBQUM7UUFDSixDQUFDO0tBQ0Y7SUFpQkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDOzs7Ozs7K0NBMUZSLFNBQVM7Ozs7UUEyRmxCLG1DQUFtQztRQUNuQyxJQUFBLHdDQUFvQixFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVsQyxXQUFTLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLDJCQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUMxQyxTQUFTLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDOUIsY0FBYyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYztTQUNoRCxDQUFDLENBQUM7UUFFSCxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RCxDQUFDO0tBQ0Y7O0FBMUdVLDhCQUFTOzs7QUFDcEIsc0NBQXNDO0FBQ2YsK0JBQXFCLEdBQVcsdUNBQXVDLEFBQWxELENBQW1EO29CQUZwRixTQUFTO0lBRHJCLG9DQUFrQjtHQUNOLFNBQVMsQ0EyR3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJUmVzb3VyY2UsIFJlbW92YWxQb2xpY3ksIFJlc291cmNlLCBUb2tlbiwgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IElUYWJsZUJ1Y2tldCB9IGZyb20gJy4vdGFibGUtYnVja2V0JztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgQ2ZuTmFtZXNwYWNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzdGFibGVzJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgeyBFT0wgfSBmcm9tICdvcyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBTMyBUYWJsZXMgTmFtZXNwYWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElOYW1lc3BhY2UgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyBuYW1lc3BhY2VcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGUgYnVja2V0IHdoaWNoIHRoaXMgbmFtZXNwYWNlIGJlbG9uZ3MgdG9cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVCdWNrZXQ6IElUYWJsZUJ1Y2tldDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBjb25zdHJ1Y3RpbmcgYSBOYW1lc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYW1lc3BhY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBBIG5hbWUgZm9yIHRoZSBuYW1lc3BhY2VcbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzcGFjZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQgdGhpcyBuYW1lc3BhY2UgYmVsb25ncyB0by5cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQnVja2V0OiBJVGFibGVCdWNrZXQ7XG4gIC8qKlxuICAgKiBQb2xpY3kgdG8gYXBwbHkgd2hlbiB0aGUgcG9saWN5IGlzIHJlbW92ZWQgZnJvbSB0aGlzIHN0YWNrLlxuICAgKiBAZGVmYXVsdCBSZW1vdmFsUG9saWN5LkRFU1RST1lcbiAgICovXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xufVxuXG4vKipcbiAqIEF0dHJpYnV0ZXMgZm9yIGltcG9ydGluZyBhbiBleGlzdGluZyBuYW1lc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYW1lc3BhY2VBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBuYW1lc3BhY2VcbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzcGFjZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRhYmxlIGJ1Y2tldCB0aGlzIG5hbWVzcGFjZSBiZWxvbmdzIHRvXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldDogSVRhYmxlQnVja2V0O1xufVxuXG4vKipcbiAqIEFuIFMzIFRhYmxlcyBOYW1lc3BhY2Ugd2l0aCBoZWxwZXJzLlxuICpcbiAqIEEgbmFtZXNwYWNlIGlzIGEgbG9naWNhbCBjb250YWluZXIgZm9yIHRhYmxlcyB3aXRoaW4gYSB0YWJsZSBidWNrZXQuXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBOYW1lc3BhY2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElOYW1lc3BhY2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1zM3RhYmxlcy1hbHBoYS5OYW1lc3BhY2UnO1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgbmFtZXNwYWNlIGZyb20gaXRzIGF0dHJpYnV0ZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbU5hbWVzcGFjZUF0dHJpYnV0ZXMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IE5hbWVzcGFjZUF0dHJpYnV0ZXMpOiBJTmFtZXNwYWNlIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElOYW1lc3BhY2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZU5hbWUgPSBhdHRycy5uYW1lc3BhY2VOYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlQnVja2V0ID0gYXR0cnMudGFibGVCdWNrZXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuICAvKipcbiAgICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvdXNlcmd1aWRlL3MzLXRhYmxlcy1idWNrZXRzLW5hbWluZy5odG1sXG4gICAqIEBwYXJhbSBuYW1lc3BhY2VOYW1lIE5hbWUgb2YgdGhlIG5hbWVzcGFjZVxuICAgKiBAdGhyb3dzIFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yIGlmIGFueSBuYW1pbmcgZXJyb3JzIGFyZSBkZXRlY3RlZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZU5hbWVzcGFjZU5hbWUobmFtZXNwYWNlTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKG5hbWVzcGFjZU5hbWUgPT0gdW5kZWZpbmVkIHx8IFRva2VuLmlzVW5yZXNvbHZlZChuYW1lc3BhY2VOYW1lKSkge1xuICAgICAgLy8gdGhlIG5hbWUgaXMgYSBsYXRlLWJvdW5kIHZhbHVlLCBub3QgYSBkZWZpbmVkIHN0cmluZywgc28gc2tpcCB2YWxpZGF0aW9uXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLy8gTGVuZ3RoIHZhbGlkYXRpb25cbiAgICBpZiAobmFtZXNwYWNlTmFtZS5sZW5ndGggPCAxIHx8IG5hbWVzcGFjZU5hbWUubGVuZ3RoID4gMjU1KSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ05hbWVzcGFjZSBuYW1lIG11c3QgYmUgYXQgbGVhc3QgMSBhbmQgbm8gbW9yZSB0aGFuIDI1NSBjaGFyYWN0ZXJzJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ2hhcmFjdGVyIHNldCB2YWxpZGF0aW9uXG4gICAgY29uc3QgaWxsZWdhbENoYXJzZXRSZWdFeCA9IC9bXmEtejAtOV9dLztcbiAgICBjb25zdCBhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeCA9IC9bYS16MC05XS87XG5cbiAgICBjb25zdCBpbGxlZ2FsQ2hhck1hdGNoID0gbmFtZXNwYWNlTmFtZS5tYXRjaChpbGxlZ2FsQ2hhcnNldFJlZ0V4KTtcbiAgICBpZiAoaWxsZWdhbENoYXJNYXRjaCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdOYW1lc3BhY2UgbmFtZSBtdXN0IG9ubHkgY29udGFpbiBsb3dlcmNhc2UgY2hhcmFjdGVycywgbnVtYmVycywgYW5kIHVuZGVyc2NvcmVzIChfKScgK1xuICAgICAgICAgIGAgKG9mZnNldDogJHtpbGxlZ2FsQ2hhck1hdGNoLmluZGV4fSlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBFZGdlIGNoYXJhY3RlciB2YWxpZGF0aW9uXG4gICAgaWYgKCFhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeC50ZXN0KG5hbWVzcGFjZU5hbWUuY2hhckF0KDApKSkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdOYW1lc3BhY2UgbmFtZSBtdXN0IHN0YXJ0IHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIG9yIG51bWJlciAob2Zmc2V0OiAwKScsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICAhYWxsb3dlZEVkZ2VDaGFyc2V0UmVnRXgudGVzdChuYW1lc3BhY2VOYW1lLmNoYXJBdChuYW1lc3BhY2VOYW1lLmxlbmd0aCAtIDEpKVxuICAgICkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIGBOYW1lc3BhY2UgbmFtZSBtdXN0IGVuZCB3aXRoIGEgbG93ZXJjYXNlIGxldHRlciBvciBudW1iZXIgKG9mZnNldDogJHtcbiAgICAgICAgICBuYW1lc3BhY2VOYW1lLmxlbmd0aCAtIDFcbiAgICAgICAgfSlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobmFtZXNwYWNlTmFtZS5zdGFydHNXaXRoKCdhd3MnKSkge1xuICAgICAgZXJyb3JzLnB1c2goJ05hbWVzcGFjZSBuYW1lIG11c3Qgbm90IHN0YXJ0IHdpdGggcmVzZXJ2ZWQgcHJlZml4IFxcJ2F3c1xcJycpO1xuICAgIH1cblxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBTMyBUYWJsZXMgbmFtZXNwYWNlIG5hbWUgKHZhbHVlOiAke25hbWVzcGFjZU5hbWV9KSR7RU9MfSR7ZXJyb3JzLmpvaW4oRU9MKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsIFRoZSB1bmRlcmx5aW5nIG5hbWVzcGFjZSByZXNvdXJjZS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc291cmNlOiBDZm5OYW1lc3BhY2U7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgbmFtZXNwYWNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGUgYnVja2V0IHdoaWNoIHRoaXMgbmFtZXNwYWNlIGJlbG9uZ3MgdG9cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZUJ1Y2tldDogSVRhYmxlQnVja2V0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBOYW1lc3BhY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBOYW1lc3BhY2UudmFsaWRhdGVOYW1lc3BhY2VOYW1lKHByb3BzLm5hbWVzcGFjZU5hbWUpO1xuXG4gICAgdGhpcy50YWJsZUJ1Y2tldCA9IHByb3BzLnRhYmxlQnVja2V0O1xuICAgIHRoaXMubmFtZXNwYWNlTmFtZSA9IHByb3BzLm5hbWVzcGFjZU5hbWU7XG4gICAgdGhpcy5fcmVzb3VyY2UgPSBuZXcgQ2ZuTmFtZXNwYWNlKHRoaXMsIGlkLCB7XG4gICAgICBuYW1lc3BhY2U6IHByb3BzLm5hbWVzcGFjZU5hbWUsXG4gICAgICB0YWJsZUJ1Y2tldEFybjogdGhpcy50YWJsZUJ1Y2tldC50YWJsZUJ1Y2tldEFybixcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5yZW1vdmFsUG9saWN5KSB7XG4gICAgICB0aGlzLl9yZXNvdXJjZS5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMucmVtb3ZhbFBvbGljeSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -48,7 +48,7 @@ let TableBucketPolicy = class TableBucketPolicy extends core_1.Resource {
48
48
  };
49
49
  exports.TableBucketPolicy = TableBucketPolicy;
50
50
  _a = JSII_RTTI_SYMBOL_1;
51
- TableBucketPolicy[_a] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucketPolicy", version: "2.207.0-alpha.0" };
51
+ TableBucketPolicy[_a] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucketPolicy", version: "2.209.0-alpha.0" };
52
52
  /** Uniquely identifies this class. */
53
53
  TableBucketPolicy.PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.TableBucketPolicy';
54
54
  exports.TableBucketPolicy = TableBucketPolicy = __decorate([
@@ -385,7 +385,7 @@ let TableBucket = TableBucket_1 = class TableBucket extends TableBucketBase {
385
385
  };
386
386
  exports.TableBucket = TableBucket;
387
387
  _a = JSII_RTTI_SYMBOL_1;
388
- TableBucket[_a] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucket", version: "2.207.0-alpha.0" };
388
+ TableBucket[_a] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucket", version: "2.209.0-alpha.0" };
389
389
  /** Uniquely identifies this class. */
390
390
  TableBucket.PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.TableBucket';
391
391
  exports.TableBucket = TableBucket = TableBucket_1 = __decorate([