@aws-cdk/aws-s3tables-alpha 2.212.0-alpha.0 → 2.213.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.
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.212.0",
11
+ "aws-cdk-lib": "^2.213.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -4079,7 +4079,7 @@
4079
4079
  },
4080
4080
  "name": "@aws-cdk/aws-s3tables-alpha",
4081
4081
  "readme": {
4082
- "markdown": "# Amazon S3 Tables Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n## Amazon S3 Tables\n\nAmazon S3 Tables deliver the first cloud object store with built-in Apache Iceberg support and streamline storing tabular data at scale.\n\n[Product Page](https://aws.amazon.com/s3/features/tables/) | [User Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables.html)\n\n\n## Usage\n\n### Define an S3 Table Bucket\n\n```ts\n// Build a Table bucket\nconst sampleTableBucket = new TableBucket(scope, 'ExampleTableBucket', {\n tableBucketName: 'example-bucket-1',\n // optional fields:\n unreferencedFileRemoval: {\n status: UnreferencedFileRemovalStatus.ENABLED,\n noncurrentDays: 20,\n unreferencedDays: 20,\n }\n});\n```\n\n### Define an S3 Tables Namespace\n\n```ts\n// Build a namespace\nconst sampleNamespace = new Namespace(scope, 'ExampleNamespace', {\n namespaceName: 'example-namespace-1',\n tableBucket: tableBucket,\n});\n```\n\n### Define an S3 Table\n\n```ts\n// Build a table\nconst sampleTable = new Table(scope, 'ExampleTable', {\n tableName: 'example_table',\n namespace: namespace,\n openTableFormat: OpenTableFormat.ICEBERG,\n withoutMetadata: true,\n});\n\n// Build a table with an Iceberg Schema\nconst sampleTableWithSchema = new Table(scope, 'ExampleSchemaTable', {\n tableName: 'example_table_with_schema',\n namespace: namespace,\n openTableFormat: OpenTableFormat.ICEBERG,\n icebergMetadata: {\n icebergSchema: {\n schemaFieldList: [\n {\n name: 'id',\n type: 'int',\n required: true,\n },\n {\n name: 'name',\n type: 'string',\n },\n ],\n },\n },\n compaction: {\n status: Status.ENABLED,\n targetFileSizeMb: 128,\n },\n snapshotManagement: {\n status: Status.ENABLED,\n maxSnapshotAgeHours: 48,\n minSnapshotsToKeep: 5,\n },\n});\n```\n\nLearn 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)\n\n### Controlling Table Bucket Permissions\n\n```ts\n// Grant the principal read permissions to the bucket and all tables within\nconst accountId = '123456789012'\ntableBucket.grantRead(new iam.AccountPrincipal(accountId), '*');\n\n// Grant the role write permissions to the bucket and all tables within\nconst role = new iam.Role(stack, 'MyRole', { assumedBy: new iam.ServicePrincipal('sample') });\ntableBucket.grantWrite(role, '*');\n\n// Grant the user read and write permissions to the bucket and all tables within\ntableBucket.grantReadWrite(new iam.User(stack, 'MyUser'), '*');\n\n// Grant permissions to the bucket and a particular table within it\nconst tableId = '6ba046b2-26de-44cf-9144-0c7862593a7b'\ntableBucket.grantReadWrite(new iam.AccountPrincipal(accountId), tableId);\n\n// Add custom resource policy statements\nconst permissions = new iam.PolicyStatement({\n effect: iam.Effect.ALLOW,\n actions: ['s3tables:*'],\n principals: [ new iam.ServicePrincipal('example.aws.internal') ],\n resources: ['*']\n});\n\ntableBucket.addToResourcePolicy(permissions);\n```\n\n### Controlling Table Bucket Encryption Settings\n\nS3 TableBuckets have SSE (server-side encryption with AES-256) enabled by default with S3 managed keys.\nYou can also bring your own KMS key for KMS-SSE or have S3 create a KMS key for you.\n\nIf a bucket is encrypted with KMS, grant functions on the bucket will also grant access\nto the TableBucket's associated KMS key.\n\n```ts\n// Provide a user defined KMS Key:\nconst key = new kms.Key(scope, 'UserKey', {});\nconst encryptedBucket = new TableBucket(scope, 'EncryptedTableBucket', {\n tableBucketName: 'table-bucket-1',\n encryption: TableBucketEncryption.KMS,\n encryptionKey: key,\n});\n// This account principal will also receive kms:Decrypt access to the KMS key\nencryptedBucket.grantRead(new iam.AccountPrincipal('123456789012'), '*');\n\n// Use S3 managed server side encryption (default)\nconst encryptedBucketDefault = new TableBucket(scope, 'EncryptedTableBucketDefault', {\n tableBucketName: 'table-bucket-3',\n encryption: TableBucketEncryption.S3_MANAGED, // Uses AES-256 encryption by default\n});\n```\n\nWhen 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.\n\n```ts\n// If no key is provided, one will be created automatically\nconst encryptedBucketAuto = new TableBucket(scope, 'EncryptedTableBucketAuto', {\n tableBucketName: 'table-bucket-2',\n encryption: TableBucketEncryption.KMS,\n});\n```\n\n## Coming Soon\n\nL2 Construct support for:\n\n- Table Policy\n- KMS encryption support for Tables\n"
4082
+ "markdown": "# Amazon S3 Tables Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n## Amazon S3 Tables\n\nAmazon S3 Tables deliver the first cloud object store with built-in Apache Iceberg support and streamline storing tabular data at scale.\n\n[Product Page](https://aws.amazon.com/s3/features/tables/) | [User Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables.html)\n\n\n## Usage\n\n### Define an S3 Table Bucket\n\n```ts\n// Build a Table bucket\nconst sampleTableBucket = new TableBucket(scope, 'ExampleTableBucket', {\n tableBucketName: 'example-bucket-1',\n // optional fields:\n unreferencedFileRemoval: {\n status: UnreferencedFileRemovalStatus.ENABLED,\n noncurrentDays: 20,\n unreferencedDays: 20,\n }\n});\n```\n\n### Define an S3 Tables Namespace\n\n```ts\n// Build a namespace\nconst sampleNamespace = new Namespace(scope, 'ExampleNamespace', {\n namespaceName: 'example-namespace-1',\n tableBucket: tableBucket,\n});\n```\n\n### Define an S3 Table\n\n```ts\n// Build a table\nconst sampleTable = new Table(scope, 'ExampleTable', {\n tableName: 'example_table',\n namespace: namespace,\n openTableFormat: OpenTableFormat.ICEBERG,\n withoutMetadata: true,\n});\n\n// Build a table with an Iceberg Schema\nconst sampleTableWithSchema = new Table(scope, 'ExampleSchemaTable', {\n tableName: 'example_table_with_schema',\n namespace: namespace,\n openTableFormat: OpenTableFormat.ICEBERG,\n icebergMetadata: {\n icebergSchema: {\n schemaFieldList: [\n {\n name: 'id',\n type: 'int',\n required: true,\n },\n {\n name: 'name',\n type: 'string',\n },\n ],\n },\n },\n compaction: {\n status: Status.ENABLED,\n targetFileSizeMb: 128,\n },\n snapshotManagement: {\n status: Status.ENABLED,\n maxSnapshotAgeHours: 48,\n minSnapshotsToKeep: 5,\n },\n});\n```\n\nLearn 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)\n\n### Controlling Table Bucket Permissions\n\n```ts\n// Grant the principal read permissions to the bucket and all tables within\nconst accountId = '123456789012'\ntableBucket.grantRead(new iam.AccountPrincipal(accountId), '*');\n\n// Grant the role write permissions to the bucket and all tables within\nconst role = new iam.Role(stack, 'MyRole', { assumedBy: new iam.ServicePrincipal('sample') });\ntableBucket.grantWrite(role, '*');\n\n// Grant the user read and write permissions to the bucket and all tables within\ntableBucket.grantReadWrite(new iam.User(stack, 'MyUser'), '*');\n\n// Grant permissions to the bucket and a particular table within it\nconst tableId = '6ba046b2-26de-44cf-9144-0c7862593a7b'\ntableBucket.grantReadWrite(new iam.AccountPrincipal(accountId), tableId);\n\n// Add custom resource policy statements\nconst permissions = new iam.PolicyStatement({\n effect: iam.Effect.ALLOW,\n actions: ['s3tables:*'],\n principals: [ new iam.ServicePrincipal('example.aws.internal') ],\n resources: ['*']\n});\n\ntableBucket.addToResourcePolicy(permissions);\n```\n\n### Controlling Table Bucket Encryption Settings\n\nS3 TableBuckets have SSE (server-side encryption with AES-256) enabled by default with S3 managed keys.\nYou can also bring your own KMS key for KMS-SSE or have S3 create a KMS key for you.\n\nIf a bucket is encrypted with KMS, grant functions on the bucket will also grant access\nto the TableBucket's associated KMS key.\n\n```ts\n// Provide a user defined KMS Key:\nconst key = new kms.Key(scope, 'UserKey', {});\nconst encryptedBucket = new TableBucket(scope, 'EncryptedTableBucket', {\n tableBucketName: 'table-bucket-1',\n encryption: TableBucketEncryption.KMS,\n encryptionKey: key,\n});\n// This account principal will also receive kms:Decrypt access to the KMS key\nencryptedBucket.grantRead(new iam.AccountPrincipal('123456789012'), '*');\n\n// Use S3 managed server side encryption (default)\nconst encryptedBucketDefault = new TableBucket(scope, 'EncryptedTableBucketDefault', {\n tableBucketName: 'table-bucket-3',\n encryption: TableBucketEncryption.S3_MANAGED, // Uses AES-256 encryption by default\n});\n```\n\nWhen 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.\n\n```ts\n// If no key is provided, one will be created automatically\nconst encryptedBucketAuto = new TableBucket(scope, 'EncryptedTableBucketAuto', {\n tableBucketName: 'table-bucket-2',\n encryption: TableBucketEncryption.KMS,\n});\n```\n\n### Controlling Table Permissions\n\n```ts\n// Grant the principal read permissions to the table\nconst accountId = '123456789012'\ntable.grantRead(new iam.AccountPrincipal(accountId));\n\n// Grant the role write permissions to the table\nconst role = new iam.Role(stack, 'MyRole', { assumedBy: new iam.ServicePrincipal('sample') });\ntable.grantWrite(role);\n\n// Grant the user read and write permissions to the table\ntable.grantReadWrite(new iam.User(stack, 'MyUser'));\n\n// Grant an account permissions to the table\ntable.grantReadWrite(new iam.AccountPrincipal(accountId));\n\n// Add custom resource policy statements\nconst permissions = new iam.PolicyStatement({\n effect: iam.Effect.ALLOW,\n actions: ['s3tables:*'],\n principals: [ new iam.ServicePrincipal('example.aws.internal') ],\n resources: ['*']\n});\n\ntable.addToResourcePolicy(permissions);\n```\n\n## Coming Soon\n\nL2 Construct support for:\n\n- KMS encryption support for Tables\n"
4083
4083
  },
4084
4084
  "repository": {
4085
4085
  "directory": "packages/@aws-cdk/aws-s3tables-alpha",
@@ -4129,7 +4129,7 @@
4129
4129
  "kind": "interface",
4130
4130
  "locationInModule": {
4131
4131
  "filename": "lib/table.ts",
4132
- "line": 115
4132
+ "line": 246
4133
4133
  },
4134
4134
  "name": "CompactionProperty",
4135
4135
  "properties": [
@@ -4142,7 +4142,7 @@
4142
4142
  "immutable": true,
4143
4143
  "locationInModule": {
4144
4144
  "filename": "lib/table.ts",
4145
- "line": 119
4145
+ "line": 250
4146
4146
  },
4147
4147
  "name": "status",
4148
4148
  "type": {
@@ -4158,7 +4158,7 @@
4158
4158
  "immutable": true,
4159
4159
  "locationInModule": {
4160
4160
  "filename": "lib/table.ts",
4161
- "line": 123
4161
+ "line": 254
4162
4162
  },
4163
4163
  "name": "targetFileSizeMb",
4164
4164
  "type": {
@@ -4239,8 +4239,127 @@
4239
4239
  "kind": "interface",
4240
4240
  "locationInModule": {
4241
4241
  "filename": "lib/table.ts",
4242
- "line": 18
4242
+ "line": 20
4243
4243
  },
4244
+ "methods": [
4245
+ {
4246
+ "abstract": true,
4247
+ "docs": {
4248
+ "remarks": "Note that the policy statement may or may not be added to the policy.\nFor example, when an `ITable` is created from an existing table,\nit's not possible to tell whether the table already has a policy\nattached, let alone to re-use that policy to add more statements to it.\nSo it's safest to do nothing in these cases.",
4249
+ "returns": "metadata about the execution of this method. If the policy\nwas not added, the value of `statementAdded` will be `false`. You\nshould always check this value to make sure that the operation was\nactually carried out. Otherwise, synthesis and deploy will terminate\nsilently, which may be confusing.",
4250
+ "stability": "experimental",
4251
+ "summary": "Adds a statement to the resource policy for a principal (i.e. account/role/service) to perform actions on this table."
4252
+ },
4253
+ "locationInModule": {
4254
+ "filename": "lib/table.ts",
4255
+ "line": 63
4256
+ },
4257
+ "name": "addToResourcePolicy",
4258
+ "parameters": [
4259
+ {
4260
+ "docs": {
4261
+ "summary": "the policy statement to be added to the table's policy."
4262
+ },
4263
+ "name": "statement",
4264
+ "type": {
4265
+ "fqn": "aws-cdk-lib.aws_iam.PolicyStatement"
4266
+ }
4267
+ }
4268
+ ],
4269
+ "returns": {
4270
+ "type": {
4271
+ "fqn": "aws-cdk-lib.aws_iam.AddToResourcePolicyResult"
4272
+ }
4273
+ }
4274
+ },
4275
+ {
4276
+ "abstract": true,
4277
+ "docs": {
4278
+ "remarks": "If the parent TableBucket of this table has encryption,\nyou should grant kms:Decrypt permission to use this key to the same principal.",
4279
+ "stability": "experimental",
4280
+ "summary": "Grant read permissions for this table to an IAM principal (Role/Group/User)."
4281
+ },
4282
+ "locationInModule": {
4283
+ "filename": "lib/table.ts",
4284
+ "line": 73
4285
+ },
4286
+ "name": "grantRead",
4287
+ "parameters": [
4288
+ {
4289
+ "docs": {
4290
+ "summary": "The principal to allow read permissions to."
4291
+ },
4292
+ "name": "identity",
4293
+ "type": {
4294
+ "fqn": "aws-cdk-lib.aws_iam.IGrantable"
4295
+ }
4296
+ }
4297
+ ],
4298
+ "returns": {
4299
+ "type": {
4300
+ "fqn": "aws-cdk-lib.aws_iam.Grant"
4301
+ }
4302
+ }
4303
+ },
4304
+ {
4305
+ "abstract": true,
4306
+ "docs": {
4307
+ "remarks": "If the parent TableBucket of this table has encryption,\nyou should grant kms:GenerateDataKey and kms:Decrypt permission\nto use this key to the same principal.",
4308
+ "stability": "experimental",
4309
+ "summary": "Grant read and write permissions for this table to an IAM principal (Role/Group/User)."
4310
+ },
4311
+ "locationInModule": {
4312
+ "filename": "lib/table.ts",
4313
+ "line": 95
4314
+ },
4315
+ "name": "grantReadWrite",
4316
+ "parameters": [
4317
+ {
4318
+ "docs": {
4319
+ "summary": "The principal to allow read and write permissions to."
4320
+ },
4321
+ "name": "identity",
4322
+ "type": {
4323
+ "fqn": "aws-cdk-lib.aws_iam.IGrantable"
4324
+ }
4325
+ }
4326
+ ],
4327
+ "returns": {
4328
+ "type": {
4329
+ "fqn": "aws-cdk-lib.aws_iam.Grant"
4330
+ }
4331
+ }
4332
+ },
4333
+ {
4334
+ "abstract": true,
4335
+ "docs": {
4336
+ "remarks": "If the parent TableBucket of this table has encryption,\nyou should grant kms:GenerateDataKey and kms:Decrypt permission\nto use this key to the same principal.",
4337
+ "stability": "experimental",
4338
+ "summary": "Grant write permissions for this table to an IAM principal (Role/Group/User)."
4339
+ },
4340
+ "locationInModule": {
4341
+ "filename": "lib/table.ts",
4342
+ "line": 84
4343
+ },
4344
+ "name": "grantWrite",
4345
+ "parameters": [
4346
+ {
4347
+ "docs": {
4348
+ "summary": "The principal to allow write permissions to."
4349
+ },
4350
+ "name": "identity",
4351
+ "type": {
4352
+ "fqn": "aws-cdk-lib.aws_iam.IGrantable"
4353
+ }
4354
+ }
4355
+ ],
4356
+ "returns": {
4357
+ "type": {
4358
+ "fqn": "aws-cdk-lib.aws_iam.Grant"
4359
+ }
4360
+ }
4361
+ }
4362
+ ],
4244
4363
  "name": "ITable",
4245
4364
  "properties": [
4246
4365
  {
@@ -4255,7 +4374,7 @@
4255
4374
  "immutable": true,
4256
4375
  "locationInModule": {
4257
4376
  "filename": "lib/table.ts",
4258
- "line": 23
4377
+ "line": 25
4259
4378
  },
4260
4379
  "name": "tableArn",
4261
4380
  "type": {
@@ -4274,7 +4393,7 @@
4274
4393
  "immutable": true,
4275
4394
  "locationInModule": {
4276
4395
  "filename": "lib/table.ts",
4277
- "line": 29
4396
+ "line": 31
4278
4397
  },
4279
4398
  "name": "tableName",
4280
4399
  "type": {
@@ -4293,7 +4412,7 @@
4293
4412
  "immutable": true,
4294
4413
  "locationInModule": {
4295
4414
  "filename": "lib/table.ts",
4296
- "line": 35
4415
+ "line": 37
4297
4416
  },
4298
4417
  "name": "account",
4299
4418
  "optional": true,
@@ -4313,7 +4432,7 @@
4313
4432
  "immutable": true,
4314
4433
  "locationInModule": {
4315
4434
  "filename": "lib/table.ts",
4316
- "line": 41
4435
+ "line": 43
4317
4436
  },
4318
4437
  "name": "region",
4319
4438
  "optional": true,
@@ -4601,7 +4720,7 @@
4601
4720
  "kind": "interface",
4602
4721
  "locationInModule": {
4603
4722
  "filename": "lib/table.ts",
4604
- "line": 144
4723
+ "line": 275
4605
4724
  },
4606
4725
  "name": "IcebergMetadataProperty",
4607
4726
  "properties": [
@@ -4615,7 +4734,7 @@
4615
4734
  "immutable": true,
4616
4735
  "locationInModule": {
4617
4736
  "filename": "lib/table.ts",
4618
- "line": 150
4737
+ "line": 281
4619
4738
  },
4620
4739
  "name": "icebergSchema",
4621
4740
  "type": {
@@ -4640,7 +4759,7 @@
4640
4759
  "kind": "interface",
4641
4760
  "locationInModule": {
4642
4761
  "filename": "lib/table.ts",
4643
- "line": 156
4762
+ "line": 287
4644
4763
  },
4645
4764
  "name": "IcebergSchemaProperty",
4646
4765
  "properties": [
@@ -4653,7 +4772,7 @@
4653
4772
  "immutable": true,
4654
4773
  "locationInModule": {
4655
4774
  "filename": "lib/table.ts",
4656
- "line": 160
4775
+ "line": 291
4657
4776
  },
4658
4777
  "name": "schemaFieldList",
4659
4778
  "type": {
@@ -4973,7 +5092,7 @@
4973
5092
  "kind": "enum",
4974
5093
  "locationInModule": {
4975
5094
  "filename": "lib/table.ts",
4976
- "line": 103
5095
+ "line": 234
4977
5096
  },
4978
5097
  "members": [
4979
5098
  {
@@ -5002,7 +5121,7 @@
5002
5121
  "kind": "interface",
5003
5122
  "locationInModule": {
5004
5123
  "filename": "lib/table.ts",
5005
- "line": 166
5124
+ "line": 297
5006
5125
  },
5007
5126
  "name": "SchemaFieldProperty",
5008
5127
  "properties": [
@@ -5015,7 +5134,7 @@
5015
5134
  "immutable": true,
5016
5135
  "locationInModule": {
5017
5136
  "filename": "lib/table.ts",
5018
- "line": 170
5137
+ "line": 301
5019
5138
  },
5020
5139
  "name": "name",
5021
5140
  "type": {
@@ -5032,7 +5151,7 @@
5032
5151
  "immutable": true,
5033
5152
  "locationInModule": {
5034
5153
  "filename": "lib/table.ts",
5035
- "line": 186
5154
+ "line": 317
5036
5155
  },
5037
5156
  "name": "type",
5038
5157
  "type": {
@@ -5050,7 +5169,7 @@
5050
5169
  "immutable": true,
5051
5170
  "locationInModule": {
5052
5171
  "filename": "lib/table.ts",
5053
- "line": 179
5172
+ "line": 310
5054
5173
  },
5055
5174
  "name": "required",
5056
5175
  "optional": true,
@@ -5078,7 +5197,7 @@
5078
5197
  "kind": "interface",
5079
5198
  "locationInModule": {
5080
5199
  "filename": "lib/table.ts",
5081
- "line": 196
5200
+ "line": 327
5082
5201
  },
5083
5202
  "name": "SnapshotManagementProperty",
5084
5203
  "properties": [
@@ -5092,7 +5211,7 @@
5092
5211
  "immutable": true,
5093
5212
  "locationInModule": {
5094
5213
  "filename": "lib/table.ts",
5095
- "line": 202
5214
+ "line": 333
5096
5215
  },
5097
5216
  "name": "maxSnapshotAgeHours",
5098
5217
  "optional": true,
@@ -5110,7 +5229,7 @@
5110
5229
  "immutable": true,
5111
5230
  "locationInModule": {
5112
5231
  "filename": "lib/table.ts",
5113
- "line": 209
5232
+ "line": 340
5114
5233
  },
5115
5234
  "name": "minSnapshotsToKeep",
5116
5235
  "optional": true,
@@ -5128,7 +5247,7 @@
5128
5247
  "immutable": true,
5129
5248
  "locationInModule": {
5130
5249
  "filename": "lib/table.ts",
5131
- "line": 216
5250
+ "line": 347
5132
5251
  },
5133
5252
  "name": "status",
5134
5253
  "optional": true,
@@ -5153,7 +5272,7 @@
5153
5272
  "kind": "enum",
5154
5273
  "locationInModule": {
5155
5274
  "filename": "lib/table.ts",
5156
- "line": 129
5275
+ "line": 260
5157
5276
  },
5158
5277
  "members": [
5159
5278
  {
@@ -5192,7 +5311,7 @@
5192
5311
  },
5193
5312
  "locationInModule": {
5194
5313
  "filename": "lib/table.ts",
5195
- "line": 353
5314
+ "line": 492
5196
5315
  },
5197
5316
  "parameters": [
5198
5317
  {
@@ -5221,7 +5340,7 @@
5221
5340
  "kind": "class",
5222
5341
  "locationInModule": {
5223
5342
  "filename": "lib/table.ts",
5224
- "line": 240
5343
+ "line": 371
5225
5344
  },
5226
5345
  "methods": [
5227
5346
  {
@@ -5231,7 +5350,7 @@
5231
5350
  },
5232
5351
  "locationInModule": {
5233
5352
  "filename": "lib/table.ts",
5234
- "line": 252
5353
+ "line": 383
5235
5354
  },
5236
5355
  "name": "fromTableAttributes",
5237
5356
  "parameters": [
@@ -5280,7 +5399,7 @@
5280
5399
  },
5281
5400
  "locationInModule": {
5282
5401
  "filename": "lib/table.ts",
5283
- "line": 284
5402
+ "line": 416
5284
5403
  },
5285
5404
  "name": "validateTableName",
5286
5405
  "parameters": [
@@ -5295,6 +5414,110 @@
5295
5414
  }
5296
5415
  ],
5297
5416
  "static": true
5417
+ },
5418
+ {
5419
+ "docs": {
5420
+ "remarks": "Note that the policy statement may or may not be added to the policy.\nFor example, when an `ITable` is created from an existing table,\nit's not possible to tell whether the table already has a policy\nattached, let alone to re-use that policy to add more statements to it.\nSo it's safest to do nothing in these cases.",
5421
+ "stability": "experimental",
5422
+ "summary": "Adds a statement to the resource policy for a principal (i.e. account/role/service) to perform actions on this table."
5423
+ },
5424
+ "locationInModule": {
5425
+ "filename": "lib/table.ts",
5426
+ "line": 119
5427
+ },
5428
+ "name": "addToResourcePolicy",
5429
+ "overrides": "@aws-cdk/aws-s3tables-alpha.ITable",
5430
+ "parameters": [
5431
+ {
5432
+ "name": "statement",
5433
+ "type": {
5434
+ "fqn": "aws-cdk-lib.aws_iam.PolicyStatement"
5435
+ }
5436
+ }
5437
+ ],
5438
+ "returns": {
5439
+ "type": {
5440
+ "fqn": "aws-cdk-lib.aws_iam.AddToResourcePolicyResult"
5441
+ }
5442
+ }
5443
+ },
5444
+ {
5445
+ "docs": {
5446
+ "remarks": "If the parent TableBucket of this table has encryption,\nyou should grant kms:Decrypt permission to use this key to the same principal.",
5447
+ "stability": "experimental",
5448
+ "summary": "Grant read permissions for this table to an IAM principal (Role/Group/User)."
5449
+ },
5450
+ "locationInModule": {
5451
+ "filename": "lib/table.ts",
5452
+ "line": 137
5453
+ },
5454
+ "name": "grantRead",
5455
+ "overrides": "@aws-cdk/aws-s3tables-alpha.ITable",
5456
+ "parameters": [
5457
+ {
5458
+ "name": "identity",
5459
+ "type": {
5460
+ "fqn": "aws-cdk-lib.aws_iam.IGrantable"
5461
+ }
5462
+ }
5463
+ ],
5464
+ "returns": {
5465
+ "type": {
5466
+ "fqn": "aws-cdk-lib.aws_iam.Grant"
5467
+ }
5468
+ }
5469
+ },
5470
+ {
5471
+ "docs": {
5472
+ "remarks": "If the parent TableBucket of this table has encryption,\nyou should grant kms:GenerateDataKey and kms:Decrypt permission\nto use this key to the same principal.",
5473
+ "stability": "experimental",
5474
+ "summary": "Grant read and write permissions for this table to an IAM principal (Role/Group/User)."
5475
+ },
5476
+ "locationInModule": {
5477
+ "filename": "lib/table.ts",
5478
+ "line": 153
5479
+ },
5480
+ "name": "grantReadWrite",
5481
+ "overrides": "@aws-cdk/aws-s3tables-alpha.ITable",
5482
+ "parameters": [
5483
+ {
5484
+ "name": "identity",
5485
+ "type": {
5486
+ "fqn": "aws-cdk-lib.aws_iam.IGrantable"
5487
+ }
5488
+ }
5489
+ ],
5490
+ "returns": {
5491
+ "type": {
5492
+ "fqn": "aws-cdk-lib.aws_iam.Grant"
5493
+ }
5494
+ }
5495
+ },
5496
+ {
5497
+ "docs": {
5498
+ "remarks": "If the parent TableBucket of this table has encryption,\nyou should grant kms:GenerateDataKey and kms:Decrypt permission\nto use this key to the same principal.",
5499
+ "stability": "experimental",
5500
+ "summary": "Grant write permissions for this table to an IAM principal (Role/Group/User)."
5501
+ },
5502
+ "locationInModule": {
5503
+ "filename": "lib/table.ts",
5504
+ "line": 145
5505
+ },
5506
+ "name": "grantWrite",
5507
+ "overrides": "@aws-cdk/aws-s3tables-alpha.ITable",
5508
+ "parameters": [
5509
+ {
5510
+ "name": "identity",
5511
+ "type": {
5512
+ "fqn": "aws-cdk-lib.aws_iam.IGrantable"
5513
+ }
5514
+ }
5515
+ ],
5516
+ "returns": {
5517
+ "type": {
5518
+ "fqn": "aws-cdk-lib.aws_iam.Grant"
5519
+ }
5520
+ }
5298
5521
  }
5299
5522
  ],
5300
5523
  "name": "Table",
@@ -5308,7 +5531,7 @@
5308
5531
  "immutable": true,
5309
5532
  "locationInModule": {
5310
5533
  "filename": "lib/table.ts",
5311
- "line": 243
5534
+ "line": 374
5312
5535
  },
5313
5536
  "name": "PROPERTY_INJECTION_ID",
5314
5537
  "static": true,
@@ -5324,7 +5547,7 @@
5324
5547
  "immutable": true,
5325
5548
  "locationInModule": {
5326
5549
  "filename": "lib/table.ts",
5327
- "line": 351
5550
+ "line": 483
5328
5551
  },
5329
5552
  "name": "namespace",
5330
5553
  "type": {
@@ -5339,7 +5562,7 @@
5339
5562
  "immutable": true,
5340
5563
  "locationInModule": {
5341
5564
  "filename": "lib/table.ts",
5342
- "line": 335
5565
+ "line": 467
5343
5566
  },
5344
5567
  "name": "tableArn",
5345
5568
  "overrides": "@aws-cdk/aws-s3tables-alpha.ITable",
@@ -5355,13 +5578,44 @@
5355
5578
  "immutable": true,
5356
5579
  "locationInModule": {
5357
5580
  "filename": "lib/table.ts",
5358
- "line": 346
5581
+ "line": 478
5359
5582
  },
5360
5583
  "name": "tableName",
5361
5584
  "overrides": "@aws-cdk/aws-s3tables-alpha.ITable",
5362
5585
  "type": {
5363
5586
  "primitive": "string"
5364
5587
  }
5588
+ },
5589
+ {
5590
+ "docs": {
5591
+ "stability": "experimental",
5592
+ "summary": "The resource policy for this table."
5593
+ },
5594
+ "immutable": true,
5595
+ "locationInModule": {
5596
+ "filename": "lib/table.ts",
5597
+ "line": 488
5598
+ },
5599
+ "name": "tablePolicy",
5600
+ "optional": true,
5601
+ "type": {
5602
+ "fqn": "aws-cdk-lib.aws_s3tables.CfnTablePolicy"
5603
+ }
5604
+ },
5605
+ {
5606
+ "docs": {
5607
+ "stability": "experimental",
5608
+ "summary": "Indicates if a table resource policy should automatically created upon the first call to `addToResourcePolicy`."
5609
+ },
5610
+ "locationInModule": {
5611
+ "filename": "lib/table.ts",
5612
+ "line": 490
5613
+ },
5614
+ "name": "autoCreatePolicy",
5615
+ "protected": true,
5616
+ "type": {
5617
+ "primitive": "boolean"
5618
+ }
5365
5619
  }
5366
5620
  ],
5367
5621
  "symbolId": "lib/table:Table"
@@ -5382,7 +5636,7 @@
5382
5636
  "kind": "interface",
5383
5637
  "locationInModule": {
5384
5638
  "filename": "lib/table.ts",
5385
- "line": 225
5639
+ "line": 356
5386
5640
  },
5387
5641
  "name": "TableAttributes",
5388
5642
  "properties": [
@@ -5395,7 +5649,7 @@
5395
5649
  "immutable": true,
5396
5650
  "locationInModule": {
5397
5651
  "filename": "lib/table.ts",
5398
- "line": 234
5652
+ "line": 365
5399
5653
  },
5400
5654
  "name": "tableArn",
5401
5655
  "type": {
@@ -5411,7 +5665,7 @@
5411
5665
  "immutable": true,
5412
5666
  "locationInModule": {
5413
5667
  "filename": "lib/table.ts",
5414
- "line": 229
5668
+ "line": 360
5415
5669
  },
5416
5670
  "name": "tableName",
5417
5671
  "type": {
@@ -6303,6 +6557,164 @@
6303
6557
  ],
6304
6558
  "symbolId": "lib/table-bucket:TableBucketProps"
6305
6559
  },
6560
+ "@aws-cdk/aws-s3tables-alpha.TablePolicy": {
6561
+ "assembly": "@aws-cdk/aws-s3tables-alpha",
6562
+ "base": "aws-cdk-lib.Resource",
6563
+ "docs": {
6564
+ "remarks": "You will almost never need to use this construct directly.\nInstead, Table.addToResourcePolicy can be used to add more policies to your table directly",
6565
+ "stability": "experimental",
6566
+ "summary": "A Policy for S3 Tables.",
6567
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as s3tables_alpha from '@aws-cdk/aws-s3tables-alpha';\nimport * as cdk from 'aws-cdk-lib';\nimport { aws_iam as iam } from 'aws-cdk-lib';\n\ndeclare const policyDocument: iam.PolicyDocument;\ndeclare const table: s3tables_alpha.Table;\nconst tablePolicy = new s3tables_alpha.TablePolicy(this, 'MyTablePolicy', {\n table: table,\n\n // the properties below are optional\n removalPolicy: cdk.RemovalPolicy.DESTROY,\n resourcePolicy: policyDocument,\n});",
6568
+ "custom": {
6569
+ "exampleMetadata": "fixture=_generated"
6570
+ }
6571
+ },
6572
+ "fqn": "@aws-cdk/aws-s3tables-alpha.TablePolicy",
6573
+ "initializer": {
6574
+ "docs": {
6575
+ "stability": "experimental"
6576
+ },
6577
+ "locationInModule": {
6578
+ "filename": "lib/table-policy.ts",
6579
+ "line": 49
6580
+ },
6581
+ "parameters": [
6582
+ {
6583
+ "name": "scope",
6584
+ "type": {
6585
+ "fqn": "constructs.Construct"
6586
+ }
6587
+ },
6588
+ {
6589
+ "name": "id",
6590
+ "type": {
6591
+ "primitive": "string"
6592
+ }
6593
+ },
6594
+ {
6595
+ "name": "props",
6596
+ "type": {
6597
+ "fqn": "@aws-cdk/aws-s3tables-alpha.TablePolicyProps"
6598
+ }
6599
+ }
6600
+ ]
6601
+ },
6602
+ "kind": "class",
6603
+ "locationInModule": {
6604
+ "filename": "lib/table-policy.ts",
6605
+ "line": 36
6606
+ },
6607
+ "name": "TablePolicy",
6608
+ "properties": [
6609
+ {
6610
+ "const": true,
6611
+ "docs": {
6612
+ "stability": "experimental",
6613
+ "summary": "Uniquely identifies this class."
6614
+ },
6615
+ "immutable": true,
6616
+ "locationInModule": {
6617
+ "filename": "lib/table-policy.ts",
6618
+ "line": 39
6619
+ },
6620
+ "name": "PROPERTY_INJECTION_ID",
6621
+ "static": true,
6622
+ "type": {
6623
+ "primitive": "string"
6624
+ }
6625
+ },
6626
+ {
6627
+ "docs": {
6628
+ "stability": "experimental",
6629
+ "summary": "The IAM PolicyDocument containing permissions represented by this policy."
6630
+ },
6631
+ "immutable": true,
6632
+ "locationInModule": {
6633
+ "filename": "lib/table-policy.ts",
6634
+ "line": 43
6635
+ },
6636
+ "name": "document",
6637
+ "type": {
6638
+ "fqn": "aws-cdk-lib.aws_iam.PolicyDocument"
6639
+ }
6640
+ }
6641
+ ],
6642
+ "symbolId": "lib/table-policy:TablePolicy"
6643
+ },
6644
+ "@aws-cdk/aws-s3tables-alpha.TablePolicyProps": {
6645
+ "assembly": "@aws-cdk/aws-s3tables-alpha",
6646
+ "datatype": true,
6647
+ "docs": {
6648
+ "stability": "experimental",
6649
+ "summary": "Parameters for constructing a TablePolicy.",
6650
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as s3tables_alpha from '@aws-cdk/aws-s3tables-alpha';\nimport * as cdk from 'aws-cdk-lib';\nimport { aws_iam as iam } from 'aws-cdk-lib';\n\ndeclare const policyDocument: iam.PolicyDocument;\ndeclare const table: s3tables_alpha.Table;\nconst tablePolicyProps: s3tables_alpha.TablePolicyProps = {\n table: table,\n\n // the properties below are optional\n removalPolicy: cdk.RemovalPolicy.DESTROY,\n resourcePolicy: policyDocument,\n};",
6651
+ "custom": {
6652
+ "exampleMetadata": "fixture=_generated"
6653
+ }
6654
+ },
6655
+ "fqn": "@aws-cdk/aws-s3tables-alpha.TablePolicyProps",
6656
+ "kind": "interface",
6657
+ "locationInModule": {
6658
+ "filename": "lib/table-policy.ts",
6659
+ "line": 12
6660
+ },
6661
+ "name": "TablePolicyProps",
6662
+ "properties": [
6663
+ {
6664
+ "abstract": true,
6665
+ "docs": {
6666
+ "stability": "experimental",
6667
+ "summary": "The associated table."
6668
+ },
6669
+ "immutable": true,
6670
+ "locationInModule": {
6671
+ "filename": "lib/table-policy.ts",
6672
+ "line": 16
6673
+ },
6674
+ "name": "table",
6675
+ "type": {
6676
+ "fqn": "@aws-cdk/aws-s3tables-alpha.ITable"
6677
+ }
6678
+ },
6679
+ {
6680
+ "abstract": true,
6681
+ "docs": {
6682
+ "default": "- RemovalPolicy.DESTROY.",
6683
+ "stability": "experimental",
6684
+ "summary": "Policy to apply when the policy is removed from this stack."
6685
+ },
6686
+ "immutable": true,
6687
+ "locationInModule": {
6688
+ "filename": "lib/table-policy.ts",
6689
+ "line": 27
6690
+ },
6691
+ "name": "removalPolicy",
6692
+ "optional": true,
6693
+ "type": {
6694
+ "fqn": "aws-cdk-lib.RemovalPolicy"
6695
+ }
6696
+ },
6697
+ {
6698
+ "abstract": true,
6699
+ "docs": {
6700
+ "default": "undefined An empty iam.PolicyDocument will be initialized",
6701
+ "stability": "experimental",
6702
+ "summary": "The policy document for the table's resource policy."
6703
+ },
6704
+ "immutable": true,
6705
+ "locationInModule": {
6706
+ "filename": "lib/table-policy.ts",
6707
+ "line": 21
6708
+ },
6709
+ "name": "resourcePolicy",
6710
+ "optional": true,
6711
+ "type": {
6712
+ "fqn": "aws-cdk-lib.aws_iam.PolicyDocument"
6713
+ }
6714
+ }
6715
+ ],
6716
+ "symbolId": "lib/table-policy:TablePolicyProps"
6717
+ },
6306
6718
  "@aws-cdk/aws-s3tables-alpha.TableProps": {
6307
6719
  "assembly": "@aws-cdk/aws-s3tables-alpha",
6308
6720
  "datatype": true,
@@ -6318,7 +6730,7 @@
6318
6730
  "kind": "interface",
6319
6731
  "locationInModule": {
6320
6732
  "filename": "lib/table.ts",
6321
- "line": 55
6733
+ "line": 186
6322
6734
  },
6323
6735
  "name": "TableProps",
6324
6736
  "properties": [
@@ -6331,7 +6743,7 @@
6331
6743
  "immutable": true,
6332
6744
  "locationInModule": {
6333
6745
  "filename": "lib/table.ts",
6334
- "line": 63
6746
+ "line": 194
6335
6747
  },
6336
6748
  "name": "namespace",
6337
6749
  "type": {
@@ -6348,7 +6760,7 @@
6348
6760
  "immutable": true,
6349
6761
  "locationInModule": {
6350
6762
  "filename": "lib/table.ts",
6351
- "line": 67
6763
+ "line": 198
6352
6764
  },
6353
6765
  "name": "openTableFormat",
6354
6766
  "type": {
@@ -6364,7 +6776,7 @@
6364
6776
  "immutable": true,
6365
6777
  "locationInModule": {
6366
6778
  "filename": "lib/table.ts",
6367
- "line": 59
6779
+ "line": 190
6368
6780
  },
6369
6781
  "name": "tableName",
6370
6782
  "type": {
@@ -6382,7 +6794,7 @@
6382
6794
  "immutable": true,
6383
6795
  "locationInModule": {
6384
6796
  "filename": "lib/table.ts",
6385
- "line": 73
6797
+ "line": 204
6386
6798
  },
6387
6799
  "name": "compaction",
6388
6800
  "optional": true,
@@ -6400,7 +6812,7 @@
6400
6812
  "immutable": true,
6401
6813
  "locationInModule": {
6402
6814
  "filename": "lib/table.ts",
6403
- "line": 78
6815
+ "line": 209
6404
6816
  },
6405
6817
  "name": "icebergMetadata",
6406
6818
  "optional": true,
@@ -6418,7 +6830,7 @@
6418
6830
  "immutable": true,
6419
6831
  "locationInModule": {
6420
6832
  "filename": "lib/table.ts",
6421
- "line": 89
6833
+ "line": 220
6422
6834
  },
6423
6835
  "name": "removalPolicy",
6424
6836
  "optional": true,
@@ -6436,7 +6848,7 @@
6436
6848
  "immutable": true,
6437
6849
  "locationInModule": {
6438
6850
  "filename": "lib/table.ts",
6439
- "line": 83
6851
+ "line": 214
6440
6852
  },
6441
6853
  "name": "snapshotManagement",
6442
6854
  "optional": true,
@@ -6455,7 +6867,7 @@
6455
6867
  "immutable": true,
6456
6868
  "locationInModule": {
6457
6869
  "filename": "lib/table.ts",
6458
- "line": 97
6870
+ "line": 228
6459
6871
  },
6460
6872
  "name": "withoutMetadata",
6461
6873
  "optional": true,
@@ -6584,6 +6996,6 @@
6584
6996
  "symbolId": "lib/table-bucket:UnreferencedFileRemovalStatus"
6585
6997
  }
6586
6998
  },
6587
- "version": "2.212.0-alpha.0",
6999
+ "version": "2.213.0-alpha.0",
6588
7000
  "fingerprint": "**********"
6589
7001
  }