aws-cdk.aws-s3tables-alpha 2.195.0a0__tar.gz → 2.196.1a0__tar.gz

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.

Potentially problematic release.


This version of aws-cdk.aws-s3tables-alpha might be problematic. Click here for more details.

Files changed (18) hide show
  1. {aws_cdk_aws_s3tables_alpha-2.195.0a0/src/aws_cdk.aws_s3tables_alpha.egg-info → aws_cdk_aws_s3tables_alpha-2.196.1a0}/PKG-INFO +41 -3
  2. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0}/README.md +38 -0
  3. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0}/setup.py +4 -4
  4. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0}/src/aws_cdk/aws_s3tables_alpha/__init__.py +232 -3
  5. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0}/src/aws_cdk/aws_s3tables_alpha/_jsii/__init__.py +2 -2
  6. aws_cdk_aws_s3tables_alpha-2.196.1a0/src/aws_cdk/aws_s3tables_alpha/_jsii/aws-s3tables-alpha@2.196.1-alpha.0.jsii.tgz +0 -0
  7. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0/src/aws_cdk.aws_s3tables_alpha.egg-info}/PKG-INFO +41 -3
  8. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0}/src/aws_cdk.aws_s3tables_alpha.egg-info/SOURCES.txt +1 -1
  9. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0}/src/aws_cdk.aws_s3tables_alpha.egg-info/requires.txt +2 -2
  10. aws_cdk_aws_s3tables_alpha-2.195.0a0/src/aws_cdk/aws_s3tables_alpha/_jsii/aws-s3tables-alpha@2.195.0-alpha.0.jsii.tgz +0 -0
  11. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0}/LICENSE +0 -0
  12. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0}/MANIFEST.in +0 -0
  13. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0}/NOTICE +0 -0
  14. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0}/pyproject.toml +0 -0
  15. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0}/setup.cfg +0 -0
  16. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0}/src/aws_cdk/aws_s3tables_alpha/py.typed +0 -0
  17. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0}/src/aws_cdk.aws_s3tables_alpha.egg-info/dependency_links.txt +0 -0
  18. {aws_cdk_aws_s3tables_alpha-2.195.0a0 → aws_cdk_aws_s3tables_alpha-2.196.1a0}/src/aws_cdk.aws_s3tables_alpha.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aws-cdk.aws-s3tables-alpha
3
- Version: 2.195.0a0
3
+ Version: 2.196.1a0
4
4
  Summary: CDK Constructs for S3 Tables
5
5
  Home-page: https://github.com/aws/aws-cdk
6
6
  Author: Amazon Web Services
@@ -22,9 +22,9 @@ Requires-Python: ~=3.9
22
22
  Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
24
  License-File: NOTICE
25
- Requires-Dist: aws-cdk-lib<3.0.0,>=2.195.0
25
+ Requires-Dist: aws-cdk-lib<3.0.0,>=2.196.1
26
26
  Requires-Dist: constructs<11.0.0,>=10.0.0
27
- Requires-Dist: jsii<2.0.0,>=1.110.0
27
+ Requires-Dist: jsii<2.0.0,>=1.112.0
28
28
  Requires-Dist: publication>=0.0.3
29
29
  Requires-Dist: typeguard<4.3.0,>=2.13.3
30
30
 
@@ -75,9 +75,11 @@ Learn more about table buckets maintenance operations and default behavior from
75
75
  # Grant the principal read permissions to the bucket and all tables within
76
76
  account_id = "123456789012"
77
77
  table_bucket.grant_read(iam.AccountPrincipal(account_id), "*")
78
+
78
79
  # Grant the role write permissions to the bucket and all tables within
79
80
  role = iam.Role(stack, "MyRole", assumed_by=iam.ServicePrincipal("sample"))
80
81
  table_bucket.grant_write(role, "*")
82
+
81
83
  # Grant the user read and write permissions to the bucket and all tables within
82
84
  table_bucket.grant_read_write(iam.User(stack, "MyUser"), "*")
83
85
 
@@ -96,6 +98,42 @@ permissions = iam.PolicyStatement(
96
98
  table_bucket.add_to_resource_policy(permissions)
97
99
  ```
98
100
 
101
+ ### Controlling Table Bucket Encryption Settings
102
+
103
+ S3 TableBuckets have SSE (server-side encryption with AES-256) enabled by default with S3 managed keys.
104
+ You can also bring your own KMS key for KMS-SSE or have S3 create a KMS key for you.
105
+
106
+ If a bucket is encrypted with KMS, grant functions on the bucket will also grant access
107
+ to the TableBucket's associated KMS key.
108
+
109
+ ```python
110
+ # Provide a user defined KMS Key:
111
+ key = kms.Key(scope, "UserKey")
112
+ encrypted_bucket = TableBucket(scope, "EncryptedTableBucket",
113
+ table_bucket_name="table-bucket-1",
114
+ encryption=TableBucketEncryption.KMS,
115
+ encryption_key=key
116
+ )
117
+ # This account principal will also receive kms:Decrypt access to the KMS key
118
+ encrypted_bucket.grant_read(iam.AccountPrincipal("123456789012"), "*")
119
+
120
+ # Use S3 managed server side encryption (default)
121
+ encrypted_bucket_default = TableBucket(scope, "EncryptedTableBucketDefault",
122
+ table_bucket_name="table-bucket-3",
123
+ encryption=TableBucketEncryption.S3_MANAGED
124
+ )
125
+ ```
126
+
127
+ When using KMS encryption (`TableBucketEncryption.KMS`), if no encryption key is provided, CDK will automatically create a new KMS key for the table bucket with necessary permissions.
128
+
129
+ ```python
130
+ # If no key is provided, one will be created automatically
131
+ encrypted_bucket_auto = TableBucket(scope, "EncryptedTableBucketAuto",
132
+ table_bucket_name="table-bucket-2",
133
+ encryption=TableBucketEncryption.KMS
134
+ )
135
+ ```
136
+
99
137
  ## Coming Soon
100
138
 
101
139
  L2 Construct support for:
@@ -45,9 +45,11 @@ Learn more about table buckets maintenance operations and default behavior from
45
45
  # Grant the principal read permissions to the bucket and all tables within
46
46
  account_id = "123456789012"
47
47
  table_bucket.grant_read(iam.AccountPrincipal(account_id), "*")
48
+
48
49
  # Grant the role write permissions to the bucket and all tables within
49
50
  role = iam.Role(stack, "MyRole", assumed_by=iam.ServicePrincipal("sample"))
50
51
  table_bucket.grant_write(role, "*")
52
+
51
53
  # Grant the user read and write permissions to the bucket and all tables within
52
54
  table_bucket.grant_read_write(iam.User(stack, "MyUser"), "*")
53
55
 
@@ -66,6 +68,42 @@ permissions = iam.PolicyStatement(
66
68
  table_bucket.add_to_resource_policy(permissions)
67
69
  ```
68
70
 
71
+ ### Controlling Table Bucket Encryption Settings
72
+
73
+ S3 TableBuckets have SSE (server-side encryption with AES-256) enabled by default with S3 managed keys.
74
+ You can also bring your own KMS key for KMS-SSE or have S3 create a KMS key for you.
75
+
76
+ If a bucket is encrypted with KMS, grant functions on the bucket will also grant access
77
+ to the TableBucket's associated KMS key.
78
+
79
+ ```python
80
+ # Provide a user defined KMS Key:
81
+ key = kms.Key(scope, "UserKey")
82
+ encrypted_bucket = TableBucket(scope, "EncryptedTableBucket",
83
+ table_bucket_name="table-bucket-1",
84
+ encryption=TableBucketEncryption.KMS,
85
+ encryption_key=key
86
+ )
87
+ # This account principal will also receive kms:Decrypt access to the KMS key
88
+ encrypted_bucket.grant_read(iam.AccountPrincipal("123456789012"), "*")
89
+
90
+ # Use S3 managed server side encryption (default)
91
+ encrypted_bucket_default = TableBucket(scope, "EncryptedTableBucketDefault",
92
+ table_bucket_name="table-bucket-3",
93
+ encryption=TableBucketEncryption.S3_MANAGED
94
+ )
95
+ ```
96
+
97
+ When using KMS encryption (`TableBucketEncryption.KMS`), if no encryption key is provided, CDK will automatically create a new KMS key for the table bucket with necessary permissions.
98
+
99
+ ```python
100
+ # If no key is provided, one will be created automatically
101
+ encrypted_bucket_auto = TableBucket(scope, "EncryptedTableBucketAuto",
102
+ table_bucket_name="table-bucket-2",
103
+ encryption=TableBucketEncryption.KMS
104
+ )
105
+ ```
106
+
69
107
  ## Coming Soon
70
108
 
71
109
  L2 Construct support for:
@@ -5,7 +5,7 @@ kwargs = json.loads(
5
5
  """
6
6
  {
7
7
  "name": "aws-cdk.aws-s3tables-alpha",
8
- "version": "2.195.0.a0",
8
+ "version": "2.196.1.a0",
9
9
  "description": "CDK Constructs for S3 Tables",
10
10
  "license": "Apache-2.0",
11
11
  "url": "https://github.com/aws/aws-cdk",
@@ -26,7 +26,7 @@ kwargs = json.loads(
26
26
  ],
27
27
  "package_data": {
28
28
  "aws_cdk.aws_s3tables_alpha._jsii": [
29
- "aws-s3tables-alpha@2.195.0-alpha.0.jsii.tgz"
29
+ "aws-s3tables-alpha@2.196.1-alpha.0.jsii.tgz"
30
30
  ],
31
31
  "aws_cdk.aws_s3tables_alpha": [
32
32
  "py.typed"
@@ -34,9 +34,9 @@ kwargs = json.loads(
34
34
  },
35
35
  "python_requires": "~=3.9",
36
36
  "install_requires": [
37
- "aws-cdk-lib>=2.195.0, <3.0.0",
37
+ "aws-cdk-lib>=2.196.1, <3.0.0",
38
38
  "constructs>=10.0.0, <11.0.0",
39
- "jsii>=1.110.0, <2.0.0",
39
+ "jsii>=1.112.0, <2.0.0",
40
40
  "publication>=0.0.3",
41
41
  "typeguard>=2.13.3,<4.3.0"
42
42
  ],
@@ -46,9 +46,11 @@ Learn more about table buckets maintenance operations and default behavior from
46
46
  # Grant the principal read permissions to the bucket and all tables within
47
47
  account_id = "123456789012"
48
48
  table_bucket.grant_read(iam.AccountPrincipal(account_id), "*")
49
+
49
50
  # Grant the role write permissions to the bucket and all tables within
50
51
  role = iam.Role(stack, "MyRole", assumed_by=iam.ServicePrincipal("sample"))
51
52
  table_bucket.grant_write(role, "*")
53
+
52
54
  # Grant the user read and write permissions to the bucket and all tables within
53
55
  table_bucket.grant_read_write(iam.User(stack, "MyUser"), "*")
54
56
 
@@ -67,6 +69,42 @@ permissions = iam.PolicyStatement(
67
69
  table_bucket.add_to_resource_policy(permissions)
68
70
  ```
69
71
 
72
+ ### Controlling Table Bucket Encryption Settings
73
+
74
+ S3 TableBuckets have SSE (server-side encryption with AES-256) enabled by default with S3 managed keys.
75
+ You can also bring your own KMS key for KMS-SSE or have S3 create a KMS key for you.
76
+
77
+ If a bucket is encrypted with KMS, grant functions on the bucket will also grant access
78
+ to the TableBucket's associated KMS key.
79
+
80
+ ```python
81
+ # Provide a user defined KMS Key:
82
+ key = kms.Key(scope, "UserKey")
83
+ encrypted_bucket = TableBucket(scope, "EncryptedTableBucket",
84
+ table_bucket_name="table-bucket-1",
85
+ encryption=TableBucketEncryption.KMS,
86
+ encryption_key=key
87
+ )
88
+ # This account principal will also receive kms:Decrypt access to the KMS key
89
+ encrypted_bucket.grant_read(iam.AccountPrincipal("123456789012"), "*")
90
+
91
+ # Use S3 managed server side encryption (default)
92
+ encrypted_bucket_default = TableBucket(scope, "EncryptedTableBucketDefault",
93
+ table_bucket_name="table-bucket-3",
94
+ encryption=TableBucketEncryption.S3_MANAGED
95
+ )
96
+ ```
97
+
98
+ When using KMS encryption (`TableBucketEncryption.KMS`), if no encryption key is provided, CDK will automatically create a new KMS key for the table bucket with necessary permissions.
99
+
100
+ ```python
101
+ # If no key is provided, one will be created automatically
102
+ encrypted_bucket_auto = TableBucket(scope, "EncryptedTableBucketAuto",
103
+ table_bucket_name="table-bucket-2",
104
+ encryption=TableBucketEncryption.KMS
105
+ )
106
+ ```
107
+
70
108
  ## Coming Soon
71
109
 
72
110
  L2 Construct support for:
@@ -108,6 +146,7 @@ from ._jsii import *
108
146
 
109
147
  import aws_cdk as _aws_cdk_ceddda9d
110
148
  import aws_cdk.aws_iam as _aws_cdk_aws_iam_ceddda9d
149
+ import aws_cdk.aws_kms as _aws_cdk_aws_kms_ceddda9d
111
150
  import constructs as _constructs_77d1e7e8
112
151
 
113
152
 
@@ -148,6 +187,15 @@ class ITableBucket(_aws_cdk_ceddda9d.IResource, typing_extensions.Protocol):
148
187
  '''
149
188
  ...
150
189
 
190
+ @builtins.property
191
+ @jsii.member(jsii_name="encryptionKey")
192
+ def encryption_key(self) -> typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey]:
193
+ '''(experimental) Optional KMS encryption key associated with this table bucket.
194
+
195
+ :stability: experimental
196
+ '''
197
+ ...
198
+
151
199
  @builtins.property
152
200
  @jsii.member(jsii_name="region")
153
201
  def region(self) -> typing.Optional[builtins.str]:
@@ -163,7 +211,7 @@ class ITableBucket(_aws_cdk_ceddda9d.IResource, typing_extensions.Protocol):
163
211
  self,
164
212
  statement: _aws_cdk_aws_iam_ceddda9d.PolicyStatement,
165
213
  ) -> _aws_cdk_aws_iam_ceddda9d.AddToResourcePolicyResult:
166
- '''(experimental) Adds a statement to the resource policy for a principal (i.e. account/role/service) to perform actions on this table bucket and/or its contents. Use ``tableBucketArn`` and ``arnForObjects(keys)`` to obtain ARNs for this bucket or objects.
214
+ '''(experimental) Adds a statement to the resource policy for a principal (i.e. account/role/service) to perform actions on this table bucket and/or its tables.
167
215
 
168
216
  Note that the policy statement may or may not be added to the policy.
169
217
  For example, when an ``ITableBucket`` is created from an existing table bucket,
@@ -193,6 +241,9 @@ class ITableBucket(_aws_cdk_ceddda9d.IResource, typing_extensions.Protocol):
193
241
  ) -> _aws_cdk_aws_iam_ceddda9d.Grant:
194
242
  '''(experimental) Grant read permissions for this table bucket and its tables to an IAM principal (Role/Group/User).
195
243
 
244
+ If encryption is used, permission to use the key to decrypt the contents
245
+ of the bucket will also be granted to the same principal.
246
+
196
247
  :param identity: The principal to allow read permissions to.
197
248
  :param table_id: Allow the permissions to all tables using '*' or to single table by its unique ID.
198
249
 
@@ -208,6 +259,9 @@ class ITableBucket(_aws_cdk_ceddda9d.IResource, typing_extensions.Protocol):
208
259
  ) -> _aws_cdk_aws_iam_ceddda9d.Grant:
209
260
  '''(experimental) Grant read and write permissions for this table bucket and its tables to an IAM principal (Role/Group/User).
210
261
 
262
+ If encryption is used, permission to use the key to encrypt/decrypt the contents
263
+ of the bucket will also be granted to the same principal.
264
+
211
265
  :param identity: The principal to allow read and write permissions to.
212
266
  :param table_id: Allow the permissions to all tables using '*' or to single table by its unique ID.
213
267
 
@@ -223,6 +277,9 @@ class ITableBucket(_aws_cdk_ceddda9d.IResource, typing_extensions.Protocol):
223
277
  ) -> _aws_cdk_aws_iam_ceddda9d.Grant:
224
278
  '''(experimental) Grant write permissions for this table bucket and its tables to an IAM principal (Role/Group/User).
225
279
 
280
+ If encryption is used, permission to use the key to encrypt the contents
281
+ of the bucket will also be granted to the same principal.
282
+
226
283
  :param identity: The principal to allow write permissions to.
227
284
  :param table_id: Allow the permissions to all tables using '*' or to single table by its unique ID.
228
285
 
@@ -271,6 +328,15 @@ class _ITableBucketProxy(
271
328
  '''
272
329
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "account"))
273
330
 
331
+ @builtins.property
332
+ @jsii.member(jsii_name="encryptionKey")
333
+ def encryption_key(self) -> typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey]:
334
+ '''(experimental) Optional KMS encryption key associated with this table bucket.
335
+
336
+ :stability: experimental
337
+ '''
338
+ return typing.cast(typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey], jsii.get(self, "encryptionKey"))
339
+
274
340
  @builtins.property
275
341
  @jsii.member(jsii_name="region")
276
342
  def region(self) -> typing.Optional[builtins.str]:
@@ -286,7 +352,7 @@ class _ITableBucketProxy(
286
352
  self,
287
353
  statement: _aws_cdk_aws_iam_ceddda9d.PolicyStatement,
288
354
  ) -> _aws_cdk_aws_iam_ceddda9d.AddToResourcePolicyResult:
289
- '''(experimental) Adds a statement to the resource policy for a principal (i.e. account/role/service) to perform actions on this table bucket and/or its contents. Use ``tableBucketArn`` and ``arnForObjects(keys)`` to obtain ARNs for this bucket or objects.
355
+ '''(experimental) Adds a statement to the resource policy for a principal (i.e. account/role/service) to perform actions on this table bucket and/or its tables.
290
356
 
291
357
  Note that the policy statement may or may not be added to the policy.
292
358
  For example, when an ``ITableBucket`` is created from an existing table bucket,
@@ -319,6 +385,9 @@ class _ITableBucketProxy(
319
385
  ) -> _aws_cdk_aws_iam_ceddda9d.Grant:
320
386
  '''(experimental) Grant read permissions for this table bucket and its tables to an IAM principal (Role/Group/User).
321
387
 
388
+ If encryption is used, permission to use the key to decrypt the contents
389
+ of the bucket will also be granted to the same principal.
390
+
322
391
  :param identity: The principal to allow read permissions to.
323
392
  :param table_id: Allow the permissions to all tables using '*' or to single table by its unique ID.
324
393
 
@@ -338,6 +407,9 @@ class _ITableBucketProxy(
338
407
  ) -> _aws_cdk_aws_iam_ceddda9d.Grant:
339
408
  '''(experimental) Grant read and write permissions for this table bucket and its tables to an IAM principal (Role/Group/User).
340
409
 
410
+ If encryption is used, permission to use the key to encrypt/decrypt the contents
411
+ of the bucket will also be granted to the same principal.
412
+
341
413
  :param identity: The principal to allow read and write permissions to.
342
414
  :param table_id: Allow the permissions to all tables using '*' or to single table by its unique ID.
343
415
 
@@ -357,6 +429,9 @@ class _ITableBucketProxy(
357
429
  ) -> _aws_cdk_aws_iam_ceddda9d.Grant:
358
430
  '''(experimental) Grant write permissions for this table bucket and its tables to an IAM principal (Role/Group/User).
359
431
 
432
+ If encryption is used, permission to use the key to encrypt the contents
433
+ of the bucket will also be granted to the same principal.
434
+
360
435
  :param identity: The principal to allow write permissions to.
361
436
  :param table_id: Allow the permissions to all tables using '*' or to single table by its unique ID.
362
437
 
@@ -405,6 +480,8 @@ class TableBucket(
405
480
  *,
406
481
  table_bucket_name: builtins.str,
407
482
  account: typing.Optional[builtins.str] = None,
483
+ encryption: typing.Optional["TableBucketEncryption"] = None,
484
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
408
485
  region: typing.Optional[builtins.str] = None,
409
486
  removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
410
487
  unreferenced_file_removal: typing.Optional[typing.Union["UnreferencedFileRemoval", typing.Dict[builtins.str, typing.Any]]] = None,
@@ -414,6 +491,8 @@ class TableBucket(
414
491
  :param id: -
415
492
  :param table_bucket_name: (experimental) Name of the S3 TableBucket.
416
493
  :param account: (experimental) AWS Account ID of the table bucket owner. Default: - it's assumed the bucket belongs to the same account as the scope it's being imported into
494
+ :param encryption: (experimental) The kind of server-side encryption to apply to this bucket. If you choose KMS, you can specify a KMS key via ``encryptionKey``. If encryption key is not specified, a key will automatically be created. Default: - ``KMS`` if ``encryptionKey`` is specified, or ``S3_MANAGED`` otherwise.
495
+ :param encryption_key: (experimental) External KMS key to use for bucket encryption. The ``encryption`` property must be either not specified or set to ``KMS``. An error will be emitted if ``encryption`` is set to ``S3_MANAGED``. Default: - If ``encryption`` is set to ``KMS`` and this property is undefined, a new KMS key will be created and associated with this bucket.
417
496
  :param region: (experimental) AWS region that the table bucket exists in. Default: - it's assumed the bucket is in the same region as the scope it's being imported into
418
497
  :param removal_policy: (experimental) Controls what happens to this table bucket it it stoped being managed by cloudformation. Default: RETAIN
419
498
  :param unreferenced_file_removal: (experimental) Unreferenced file removal settings for the S3 TableBucket. Default: Enabled with default values
@@ -427,6 +506,8 @@ class TableBucket(
427
506
  props = TableBucketProps(
428
507
  table_bucket_name=table_bucket_name,
429
508
  account=account,
509
+ encryption=encryption,
510
+ encryption_key=encryption_key,
430
511
  region=region,
431
512
  removal_policy=removal_policy,
432
513
  unreferenced_file_removal=unreferenced_file_removal,
@@ -465,6 +546,7 @@ class TableBucket(
465
546
  id: builtins.str,
466
547
  *,
467
548
  account: typing.Optional[builtins.str] = None,
549
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
468
550
  region: typing.Optional[builtins.str] = None,
469
551
  table_bucket_arn: typing.Optional[builtins.str] = None,
470
552
  table_bucket_name: typing.Optional[builtins.str] = None,
@@ -474,6 +556,7 @@ class TableBucket(
474
556
  :param scope: The parent creating construct (usually ``this``).
475
557
  :param id: The construct's name.
476
558
  :param account: (experimental) The accountId containing this table bucket. Default: account inferred from scope
559
+ :param encryption_key: (experimental) Optional KMS encryption key associated with this bucket. Default: - undefined
477
560
  :param region: (experimental) AWS region this table bucket exists in. Default: region inferred from scope
478
561
  :param table_bucket_arn: (experimental) The table bucket's ARN. Default: tableBucketArn constructed from region, account and tableBucketName are provided
479
562
  :param table_bucket_name: (experimental) The table bucket name, unique per region. Default: tableBucketName inferred from arn
@@ -486,6 +569,7 @@ class TableBucket(
486
569
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
487
570
  attrs = TableBucketAttributes(
488
571
  account=account,
572
+ encryption_key=encryption_key,
489
573
  region=region,
490
574
  table_bucket_arn=table_bucket_arn,
491
575
  table_bucket_name=table_bucket_name,
@@ -573,6 +657,9 @@ class TableBucket(
573
657
  ) -> _aws_cdk_aws_iam_ceddda9d.Grant:
574
658
  '''(experimental) Grant read permissions for this table bucket and its tables to an IAM principal (Role/Group/User).
575
659
 
660
+ If encryption is used, permission to use the key to decrypt the contents
661
+ of the bucket will also be granted to the same principal.
662
+
576
663
  :param identity: -
577
664
  :param table_id: -
578
665
 
@@ -592,6 +679,9 @@ class TableBucket(
592
679
  ) -> _aws_cdk_aws_iam_ceddda9d.Grant:
593
680
  '''(experimental) Grant read and write permissions for this table bucket and its tables to an IAM principal (Role/Group/User).
594
681
 
682
+ If encryption is used, permission to use the key to encrypt/decrypt the contents
683
+ of the bucket will also be granted to the same principal.
684
+
595
685
  :param identity: -
596
686
  :param table_id: -
597
687
 
@@ -611,6 +701,9 @@ class TableBucket(
611
701
  ) -> _aws_cdk_aws_iam_ceddda9d.Grant:
612
702
  '''(experimental) Grant write permissions for this table bucket and its tables to an IAM principal (Role/Group/User).
613
703
 
704
+ If encryption is used, permission to use the key to encrypt the contents
705
+ of the bucket will also be granted to the same principal.
706
+
614
707
  :param identity: -
615
708
  :param table_id: -
616
709
 
@@ -622,6 +715,15 @@ class TableBucket(
622
715
  check_type(argname="argument table_id", value=table_id, expected_type=type_hints["table_id"])
623
716
  return typing.cast(_aws_cdk_aws_iam_ceddda9d.Grant, jsii.invoke(self, "grantWrite", [identity, table_id]))
624
717
 
718
+ @jsii.python.classproperty
719
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
720
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
721
+ '''(experimental) Uniquely identifies this class.
722
+
723
+ :stability: experimental
724
+ '''
725
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
726
+
625
727
  @builtins.property
626
728
  @jsii.member(jsii_name="tableBucketArn")
627
729
  def table_bucket_arn(self) -> builtins.str:
@@ -640,6 +742,15 @@ class TableBucket(
640
742
  '''
641
743
  return typing.cast(builtins.str, jsii.get(self, "tableBucketName"))
642
744
 
745
+ @builtins.property
746
+ @jsii.member(jsii_name="encryptionKey")
747
+ def encryption_key(self) -> typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey]:
748
+ '''(experimental) Optional KMS encryption key associated with this table bucket.
749
+
750
+ :stability: experimental
751
+ '''
752
+ return typing.cast(typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey], jsii.get(self, "encryptionKey"))
753
+
643
754
  @builtins.property
644
755
  @jsii.member(jsii_name="tableBucketPolicy")
645
756
  def table_bucket_policy(self) -> typing.Optional["TableBucketPolicy"]:
@@ -671,6 +782,7 @@ class TableBucket(
671
782
  jsii_struct_bases=[],
672
783
  name_mapping={
673
784
  "account": "account",
785
+ "encryption_key": "encryptionKey",
674
786
  "region": "region",
675
787
  "table_bucket_arn": "tableBucketArn",
676
788
  "table_bucket_name": "tableBucketName",
@@ -681,16 +793,18 @@ class TableBucketAttributes:
681
793
  self,
682
794
  *,
683
795
  account: typing.Optional[builtins.str] = None,
796
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
684
797
  region: typing.Optional[builtins.str] = None,
685
798
  table_bucket_arn: typing.Optional[builtins.str] = None,
686
799
  table_bucket_name: typing.Optional[builtins.str] = None,
687
800
  ) -> None:
688
- '''(experimental) Everything needed to reference a specific table bucket.
801
+ '''(experimental) A reference to a table bucket outside this stack.
689
802
 
690
803
  The tableBucketName, region, and account can be provided explicitly
691
804
  or will be inferred from the tableBucketArn
692
805
 
693
806
  :param account: (experimental) The accountId containing this table bucket. Default: account inferred from scope
807
+ :param encryption_key: (experimental) Optional KMS encryption key associated with this bucket. Default: - undefined
694
808
  :param region: (experimental) AWS region this table bucket exists in. Default: region inferred from scope
695
809
  :param table_bucket_arn: (experimental) The table bucket's ARN. Default: tableBucketArn constructed from region, account and tableBucketName are provided
696
810
  :param table_bucket_name: (experimental) The table bucket name, unique per region. Default: tableBucketName inferred from arn
@@ -703,9 +817,13 @@ class TableBucketAttributes:
703
817
  # The code below shows an example of how to instantiate this type.
704
818
  # The values are placeholders you should change.
705
819
  import aws_cdk.aws_s3tables_alpha as s3tables_alpha
820
+ from aws_cdk import aws_kms as kms
821
+
822
+ # key: kms.Key
706
823
 
707
824
  table_bucket_attributes = s3tables_alpha.TableBucketAttributes(
708
825
  account="account",
826
+ encryption_key=key,
709
827
  region="region",
710
828
  table_bucket_arn="tableBucketArn",
711
829
  table_bucket_name="tableBucketName"
@@ -714,12 +832,15 @@ class TableBucketAttributes:
714
832
  if __debug__:
715
833
  type_hints = typing.get_type_hints(_typecheckingstub__f628073bbee2e81e2162c5225d2230a24b470a8915e2ee4cef917951de644d61)
716
834
  check_type(argname="argument account", value=account, expected_type=type_hints["account"])
835
+ check_type(argname="argument encryption_key", value=encryption_key, expected_type=type_hints["encryption_key"])
717
836
  check_type(argname="argument region", value=region, expected_type=type_hints["region"])
718
837
  check_type(argname="argument table_bucket_arn", value=table_bucket_arn, expected_type=type_hints["table_bucket_arn"])
719
838
  check_type(argname="argument table_bucket_name", value=table_bucket_name, expected_type=type_hints["table_bucket_name"])
720
839
  self._values: typing.Dict[builtins.str, typing.Any] = {}
721
840
  if account is not None:
722
841
  self._values["account"] = account
842
+ if encryption_key is not None:
843
+ self._values["encryption_key"] = encryption_key
723
844
  if region is not None:
724
845
  self._values["region"] = region
725
846
  if table_bucket_arn is not None:
@@ -738,6 +859,17 @@ class TableBucketAttributes:
738
859
  result = self._values.get("account")
739
860
  return typing.cast(typing.Optional[builtins.str], result)
740
861
 
862
+ @builtins.property
863
+ def encryption_key(self) -> typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey]:
864
+ '''(experimental) Optional KMS encryption key associated with this bucket.
865
+
866
+ :default: - undefined
867
+
868
+ :stability: experimental
869
+ '''
870
+ result = self._values.get("encryption_key")
871
+ return typing.cast(typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey], result)
872
+
741
873
  @builtins.property
742
874
  def region(self) -> typing.Optional[builtins.str]:
743
875
  '''(experimental) AWS region this table bucket exists in.
@@ -783,6 +915,44 @@ class TableBucketAttributes:
783
915
  )
784
916
 
785
917
 
918
+ @jsii.enum(jsii_type="@aws-cdk/aws-s3tables-alpha.TableBucketEncryption")
919
+ class TableBucketEncryption(enum.Enum):
920
+ '''(experimental) Controls Server Side Encryption (SSE) for this TableBucket.
921
+
922
+ :stability: experimental
923
+ :exampleMetadata: infused
924
+
925
+ Example::
926
+
927
+ # Provide a user defined KMS Key:
928
+ key = kms.Key(scope, "UserKey")
929
+ encrypted_bucket = TableBucket(scope, "EncryptedTableBucket",
930
+ table_bucket_name="table-bucket-1",
931
+ encryption=TableBucketEncryption.KMS,
932
+ encryption_key=key
933
+ )
934
+ # This account principal will also receive kms:Decrypt access to the KMS key
935
+ encrypted_bucket.grant_read(iam.AccountPrincipal("123456789012"), "*")
936
+
937
+ # Use S3 managed server side encryption (default)
938
+ encrypted_bucket_default = TableBucket(scope, "EncryptedTableBucketDefault",
939
+ table_bucket_name="table-bucket-3",
940
+ encryption=TableBucketEncryption.S3_MANAGED
941
+ )
942
+ '''
943
+
944
+ KMS = "KMS"
945
+ '''(experimental) Use a customer defined KMS key for encryption If ``encryptionKey`` is specified, this key will be used, otherwise, one will be defined.
946
+
947
+ :stability: experimental
948
+ '''
949
+ S3_MANAGED = "S3_MANAGED"
950
+ '''(experimental) Use S3 managed encryption keys with AES256 encryption.
951
+
952
+ :stability: experimental
953
+ '''
954
+
955
+
786
956
  class TableBucketPolicy(
787
957
  _aws_cdk_ceddda9d.Resource,
788
958
  metaclass=jsii.JSIIMeta,
@@ -846,6 +1016,15 @@ class TableBucketPolicy(
846
1016
 
847
1017
  jsii.create(self.__class__, self, [scope, id, props])
848
1018
 
1019
+ @jsii.python.classproperty
1020
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
1021
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
1022
+ '''(experimental) Uniquely identifies this class.
1023
+
1024
+ :stability: experimental
1025
+ '''
1026
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
1027
+
849
1028
  @builtins.property
850
1029
  @jsii.member(jsii_name="document")
851
1030
  def document(self) -> _aws_cdk_aws_iam_ceddda9d.PolicyDocument:
@@ -966,6 +1145,8 @@ class TableBucketPolicyProps:
966
1145
  name_mapping={
967
1146
  "table_bucket_name": "tableBucketName",
968
1147
  "account": "account",
1148
+ "encryption": "encryption",
1149
+ "encryption_key": "encryptionKey",
969
1150
  "region": "region",
970
1151
  "removal_policy": "removalPolicy",
971
1152
  "unreferenced_file_removal": "unreferencedFileRemoval",
@@ -977,6 +1158,8 @@ class TableBucketProps:
977
1158
  *,
978
1159
  table_bucket_name: builtins.str,
979
1160
  account: typing.Optional[builtins.str] = None,
1161
+ encryption: typing.Optional[TableBucketEncryption] = None,
1162
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
980
1163
  region: typing.Optional[builtins.str] = None,
981
1164
  removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
982
1165
  unreferenced_file_removal: typing.Optional[typing.Union["UnreferencedFileRemoval", typing.Dict[builtins.str, typing.Any]]] = None,
@@ -985,6 +1168,8 @@ class TableBucketProps:
985
1168
 
986
1169
  :param table_bucket_name: (experimental) Name of the S3 TableBucket.
987
1170
  :param account: (experimental) AWS Account ID of the table bucket owner. Default: - it's assumed the bucket belongs to the same account as the scope it's being imported into
1171
+ :param encryption: (experimental) The kind of server-side encryption to apply to this bucket. If you choose KMS, you can specify a KMS key via ``encryptionKey``. If encryption key is not specified, a key will automatically be created. Default: - ``KMS`` if ``encryptionKey`` is specified, or ``S3_MANAGED`` otherwise.
1172
+ :param encryption_key: (experimental) External KMS key to use for bucket encryption. The ``encryption`` property must be either not specified or set to ``KMS``. An error will be emitted if ``encryption`` is set to ``S3_MANAGED``. Default: - If ``encryption`` is set to ``KMS`` and this property is undefined, a new KMS key will be created and associated with this bucket.
988
1173
  :param region: (experimental) AWS region that the table bucket exists in. Default: - it's assumed the bucket is in the same region as the scope it's being imported into
989
1174
  :param removal_policy: (experimental) Controls what happens to this table bucket it it stoped being managed by cloudformation. Default: RETAIN
990
1175
  :param unreferenced_file_removal: (experimental) Unreferenced file removal settings for the S3 TableBucket. Default: Enabled with default values
@@ -1011,6 +1196,8 @@ class TableBucketProps:
1011
1196
  type_hints = typing.get_type_hints(_typecheckingstub__aa14ccf904c2576c446af7122d6335d3a92b012274a231120ab28c942832368b)
1012
1197
  check_type(argname="argument table_bucket_name", value=table_bucket_name, expected_type=type_hints["table_bucket_name"])
1013
1198
  check_type(argname="argument account", value=account, expected_type=type_hints["account"])
1199
+ check_type(argname="argument encryption", value=encryption, expected_type=type_hints["encryption"])
1200
+ check_type(argname="argument encryption_key", value=encryption_key, expected_type=type_hints["encryption_key"])
1014
1201
  check_type(argname="argument region", value=region, expected_type=type_hints["region"])
1015
1202
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
1016
1203
  check_type(argname="argument unreferenced_file_removal", value=unreferenced_file_removal, expected_type=type_hints["unreferenced_file_removal"])
@@ -1019,6 +1206,10 @@ class TableBucketProps:
1019
1206
  }
1020
1207
  if account is not None:
1021
1208
  self._values["account"] = account
1209
+ if encryption is not None:
1210
+ self._values["encryption"] = encryption
1211
+ if encryption_key is not None:
1212
+ self._values["encryption_key"] = encryption_key
1022
1213
  if region is not None:
1023
1214
  self._values["region"] = region
1024
1215
  if removal_policy is not None:
@@ -1048,6 +1239,37 @@ class TableBucketProps:
1048
1239
  result = self._values.get("account")
1049
1240
  return typing.cast(typing.Optional[builtins.str], result)
1050
1241
 
1242
+ @builtins.property
1243
+ def encryption(self) -> typing.Optional[TableBucketEncryption]:
1244
+ '''(experimental) The kind of server-side encryption to apply to this bucket.
1245
+
1246
+ If you choose KMS, you can specify a KMS key via ``encryptionKey``. If
1247
+ encryption key is not specified, a key will automatically be created.
1248
+
1249
+ :default: - ``KMS`` if ``encryptionKey`` is specified, or ``S3_MANAGED`` otherwise.
1250
+
1251
+ :stability: experimental
1252
+ '''
1253
+ result = self._values.get("encryption")
1254
+ return typing.cast(typing.Optional[TableBucketEncryption], result)
1255
+
1256
+ @builtins.property
1257
+ def encryption_key(self) -> typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey]:
1258
+ '''(experimental) External KMS key to use for bucket encryption.
1259
+
1260
+ The ``encryption`` property must be either not specified or set to ``KMS``.
1261
+ An error will be emitted if ``encryption`` is set to ``S3_MANAGED``.
1262
+
1263
+ :default:
1264
+
1265
+ - If ``encryption`` is set to ``KMS`` and this property is undefined,
1266
+ a new KMS key will be created and associated with this bucket.
1267
+
1268
+ :stability: experimental
1269
+ '''
1270
+ result = self._values.get("encryption_key")
1271
+ return typing.cast(typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey], result)
1272
+
1051
1273
  @builtins.property
1052
1274
  def region(self) -> typing.Optional[builtins.str]:
1053
1275
  '''(experimental) AWS region that the table bucket exists in.
@@ -1238,6 +1460,7 @@ __all__ = [
1238
1460
  "ITableBucket",
1239
1461
  "TableBucket",
1240
1462
  "TableBucketAttributes",
1463
+ "TableBucketEncryption",
1241
1464
  "TableBucketPolicy",
1242
1465
  "TableBucketPolicyProps",
1243
1466
  "TableBucketProps",
@@ -1280,6 +1503,8 @@ def _typecheckingstub__c8d9c0bf5c954c2a6797301b7dc6cb8abd812336f3507addc92f72b80
1280
1503
  *,
1281
1504
  table_bucket_name: builtins.str,
1282
1505
  account: typing.Optional[builtins.str] = None,
1506
+ encryption: typing.Optional[TableBucketEncryption] = None,
1507
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
1283
1508
  region: typing.Optional[builtins.str] = None,
1284
1509
  removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
1285
1510
  unreferenced_file_removal: typing.Optional[typing.Union[UnreferencedFileRemoval, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -1300,6 +1525,7 @@ def _typecheckingstub__6fd93d11fc9c336a7e785b6aaa945ba1d55d75eb3748b03a2030b08e3
1300
1525
  id: builtins.str,
1301
1526
  *,
1302
1527
  account: typing.Optional[builtins.str] = None,
1528
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
1303
1529
  region: typing.Optional[builtins.str] = None,
1304
1530
  table_bucket_arn: typing.Optional[builtins.str] = None,
1305
1531
  table_bucket_name: typing.Optional[builtins.str] = None,
@@ -1349,6 +1575,7 @@ def _typecheckingstub__ddda0c30ebb465614a7378f709964b48c9f175013aa1ed12f0ea7c121
1349
1575
  def _typecheckingstub__f628073bbee2e81e2162c5225d2230a24b470a8915e2ee4cef917951de644d61(
1350
1576
  *,
1351
1577
  account: typing.Optional[builtins.str] = None,
1578
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
1352
1579
  region: typing.Optional[builtins.str] = None,
1353
1580
  table_bucket_arn: typing.Optional[builtins.str] = None,
1354
1581
  table_bucket_name: typing.Optional[builtins.str] = None,
@@ -1380,6 +1607,8 @@ def _typecheckingstub__aa14ccf904c2576c446af7122d6335d3a92b012274a231120ab28c942
1380
1607
  *,
1381
1608
  table_bucket_name: builtins.str,
1382
1609
  account: typing.Optional[builtins.str] = None,
1610
+ encryption: typing.Optional[TableBucketEncryption] = None,
1611
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
1383
1612
  region: typing.Optional[builtins.str] = None,
1384
1613
  removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
1385
1614
  unreferenced_file_removal: typing.Optional[typing.Union[UnreferencedFileRemoval, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -33,9 +33,9 @@ import constructs._jsii
33
33
 
34
34
  __jsii_assembly__ = jsii.JSIIAssembly.load(
35
35
  "@aws-cdk/aws-s3tables-alpha",
36
- "2.195.0-alpha.0",
36
+ "2.196.1-alpha.0",
37
37
  __name__[0:-6],
38
- "aws-s3tables-alpha@2.195.0-alpha.0.jsii.tgz",
38
+ "aws-s3tables-alpha@2.196.1-alpha.0.jsii.tgz",
39
39
  )
40
40
 
41
41
  __all__ = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aws-cdk.aws-s3tables-alpha
3
- Version: 2.195.0a0
3
+ Version: 2.196.1a0
4
4
  Summary: CDK Constructs for S3 Tables
5
5
  Home-page: https://github.com/aws/aws-cdk
6
6
  Author: Amazon Web Services
@@ -22,9 +22,9 @@ Requires-Python: ~=3.9
22
22
  Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
24
  License-File: NOTICE
25
- Requires-Dist: aws-cdk-lib<3.0.0,>=2.195.0
25
+ Requires-Dist: aws-cdk-lib<3.0.0,>=2.196.1
26
26
  Requires-Dist: constructs<11.0.0,>=10.0.0
27
- Requires-Dist: jsii<2.0.0,>=1.110.0
27
+ Requires-Dist: jsii<2.0.0,>=1.112.0
28
28
  Requires-Dist: publication>=0.0.3
29
29
  Requires-Dist: typeguard<4.3.0,>=2.13.3
30
30
 
@@ -75,9 +75,11 @@ Learn more about table buckets maintenance operations and default behavior from
75
75
  # Grant the principal read permissions to the bucket and all tables within
76
76
  account_id = "123456789012"
77
77
  table_bucket.grant_read(iam.AccountPrincipal(account_id), "*")
78
+
78
79
  # Grant the role write permissions to the bucket and all tables within
79
80
  role = iam.Role(stack, "MyRole", assumed_by=iam.ServicePrincipal("sample"))
80
81
  table_bucket.grant_write(role, "*")
82
+
81
83
  # Grant the user read and write permissions to the bucket and all tables within
82
84
  table_bucket.grant_read_write(iam.User(stack, "MyUser"), "*")
83
85
 
@@ -96,6 +98,42 @@ permissions = iam.PolicyStatement(
96
98
  table_bucket.add_to_resource_policy(permissions)
97
99
  ```
98
100
 
101
+ ### Controlling Table Bucket Encryption Settings
102
+
103
+ S3 TableBuckets have SSE (server-side encryption with AES-256) enabled by default with S3 managed keys.
104
+ You can also bring your own KMS key for KMS-SSE or have S3 create a KMS key for you.
105
+
106
+ If a bucket is encrypted with KMS, grant functions on the bucket will also grant access
107
+ to the TableBucket's associated KMS key.
108
+
109
+ ```python
110
+ # Provide a user defined KMS Key:
111
+ key = kms.Key(scope, "UserKey")
112
+ encrypted_bucket = TableBucket(scope, "EncryptedTableBucket",
113
+ table_bucket_name="table-bucket-1",
114
+ encryption=TableBucketEncryption.KMS,
115
+ encryption_key=key
116
+ )
117
+ # This account principal will also receive kms:Decrypt access to the KMS key
118
+ encrypted_bucket.grant_read(iam.AccountPrincipal("123456789012"), "*")
119
+
120
+ # Use S3 managed server side encryption (default)
121
+ encrypted_bucket_default = TableBucket(scope, "EncryptedTableBucketDefault",
122
+ table_bucket_name="table-bucket-3",
123
+ encryption=TableBucketEncryption.S3_MANAGED
124
+ )
125
+ ```
126
+
127
+ When using KMS encryption (`TableBucketEncryption.KMS`), if no encryption key is provided, CDK will automatically create a new KMS key for the table bucket with necessary permissions.
128
+
129
+ ```python
130
+ # If no key is provided, one will be created automatically
131
+ encrypted_bucket_auto = TableBucket(scope, "EncryptedTableBucketAuto",
132
+ table_bucket_name="table-bucket-2",
133
+ encryption=TableBucketEncryption.KMS
134
+ )
135
+ ```
136
+
99
137
  ## Coming Soon
100
138
 
101
139
  L2 Construct support for:
@@ -12,4 +12,4 @@ src/aws_cdk.aws_s3tables_alpha.egg-info/top_level.txt
12
12
  src/aws_cdk/aws_s3tables_alpha/__init__.py
13
13
  src/aws_cdk/aws_s3tables_alpha/py.typed
14
14
  src/aws_cdk/aws_s3tables_alpha/_jsii/__init__.py
15
- src/aws_cdk/aws_s3tables_alpha/_jsii/aws-s3tables-alpha@2.195.0-alpha.0.jsii.tgz
15
+ src/aws_cdk/aws_s3tables_alpha/_jsii/aws-s3tables-alpha@2.196.1-alpha.0.jsii.tgz
@@ -1,5 +1,5 @@
1
- aws-cdk-lib<3.0.0,>=2.195.0
1
+ aws-cdk-lib<3.0.0,>=2.196.1
2
2
  constructs<11.0.0,>=10.0.0
3
- jsii<2.0.0,>=1.110.0
3
+ jsii<2.0.0,>=1.112.0
4
4
  publication>=0.0.3
5
5
  typeguard<4.3.0,>=2.13.3