aws-cdk-lib 2.207.0__py3-none-any.whl → 2.208.0__py3-none-any.whl

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-lib might be problematic. Click here for more details.

Files changed (35) hide show
  1. aws_cdk/_jsii/__init__.py +1 -1
  2. aws_cdk/_jsii/{aws-cdk-lib@2.207.0.jsii.tgz → aws-cdk-lib@2.208.0.jsii.tgz} +0 -0
  3. aws_cdk/aws_aiops/__init__.py +16 -12
  4. aws_cdk/aws_amazonmq/__init__.py +8 -18
  5. aws_cdk/aws_appstream/__init__.py +36 -4
  6. aws_cdk/aws_bedrock/__init__.py +191 -72
  7. aws_cdk/aws_certificatemanager/__init__.py +45 -0
  8. aws_cdk/aws_cloudfront/__init__.py +12 -2
  9. aws_cdk/aws_connect/__init__.py +107 -3
  10. aws_cdk/aws_customerprofiles/__init__.py +27 -22
  11. aws_cdk/aws_docdb/__init__.py +5 -3
  12. aws_cdk/aws_ec2/__init__.py +53 -11
  13. aws_cdk/aws_ecs/__init__.py +118 -29
  14. aws_cdk/aws_events/__init__.py +142 -0
  15. aws_cdk/aws_gamelift/__init__.py +2 -2
  16. aws_cdk/aws_guardduty/__init__.py +86 -0
  17. aws_cdk/aws_kinesisfirehose/__init__.py +377 -4
  18. aws_cdk/aws_logs/__init__.py +53 -4
  19. aws_cdk/aws_mediapackagev2/__init__.py +881 -0
  20. aws_cdk/aws_omics/__init__.py +13 -10
  21. aws_cdk/aws_quicksight/__init__.py +111 -4
  22. aws_cdk/aws_rds/__init__.py +208 -10
  23. aws_cdk/aws_s3/__init__.py +775 -5
  24. aws_cdk/aws_s3express/__init__.py +61 -3
  25. aws_cdk/aws_s3tables/__init__.py +254 -0
  26. aws_cdk/aws_sagemaker/__init__.py +524 -137
  27. aws_cdk/aws_ssm/__init__.py +48 -0
  28. aws_cdk/aws_transfer/__init__.py +49 -0
  29. aws_cdk/aws_wisdom/__init__.py +1185 -100
  30. {aws_cdk_lib-2.207.0.dist-info → aws_cdk_lib-2.208.0.dist-info}/METADATA +2 -2
  31. {aws_cdk_lib-2.207.0.dist-info → aws_cdk_lib-2.208.0.dist-info}/RECORD +35 -35
  32. {aws_cdk_lib-2.207.0.dist-info → aws_cdk_lib-2.208.0.dist-info}/LICENSE +0 -0
  33. {aws_cdk_lib-2.207.0.dist-info → aws_cdk_lib-2.208.0.dist-info}/NOTICE +0 -0
  34. {aws_cdk_lib-2.207.0.dist-info → aws_cdk_lib-2.208.0.dist-info}/WHEEL +0 -0
  35. {aws_cdk_lib-2.207.0.dist-info → aws_cdk_lib-2.208.0.dist-info}/top_level.txt +0 -0
@@ -4413,6 +4413,7 @@ class CfnBucket(
4413
4413
  inventory_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.InventoryConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
4414
4414
  lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.LifecycleConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4415
4415
  logging_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.LoggingConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4416
+ metadata_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.MetadataConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4416
4417
  metadata_table_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.MetadataTableConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4417
4418
  metrics_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.MetricsConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
4418
4419
  notification_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.NotificationConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -4438,6 +4439,7 @@ class CfnBucket(
4438
4439
  :param inventory_configurations: Specifies the S3 Inventory configuration for an Amazon S3 bucket. For more information, see `GET Bucket inventory <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html>`_ in the *Amazon S3 API Reference* .
4439
4440
  :param lifecycle_configuration: Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For more information, see `Object Lifecycle Management <https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html>`_ in the *Amazon S3 User Guide* .
4440
4441
  :param logging_configuration: Settings that define where logs are stored.
4442
+ :param metadata_configuration: The S3 Metadata configuration for a general purpose bucket.
4441
4443
  :param metadata_table_configuration: The metadata table configuration of an Amazon S3 general purpose bucket.
4442
4444
  :param metrics_configurations: Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. For more information, see `PutBucketMetricsConfiguration <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html>`_ .
4443
4445
  :param notification_configuration: Configuration that defines how Amazon S3 handles bucket notifications.
@@ -4465,6 +4467,7 @@ class CfnBucket(
4465
4467
  inventory_configurations=inventory_configurations,
4466
4468
  lifecycle_configuration=lifecycle_configuration,
4467
4469
  logging_configuration=logging_configuration,
4470
+ metadata_configuration=metadata_configuration,
4468
4471
  metadata_table_configuration=metadata_table_configuration,
4469
4472
  metrics_configurations=metrics_configurations,
4470
4473
  notification_configuration=notification_configuration,
@@ -4545,6 +4548,59 @@ class CfnBucket(
4545
4548
  '''
4546
4549
  return typing.cast(builtins.str, jsii.get(self, "attrDualStackDomainName"))
4547
4550
 
4551
+ @builtins.property
4552
+ @jsii.member(jsii_name="attrMetadataConfigurationDestination")
4553
+ def attr_metadata_configuration_destination(self) -> _IResolvable_da3f097b:
4554
+ '''The destination information for the S3 Metadata configuration.
4555
+
4556
+ :cloudformationAttribute: MetadataConfiguration.Destination
4557
+ '''
4558
+ return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrMetadataConfigurationDestination"))
4559
+
4560
+ @builtins.property
4561
+ @jsii.member(jsii_name="attrMetadataConfigurationInventoryTableConfigurationTableArn")
4562
+ def attr_metadata_configuration_inventory_table_configuration_table_arn(
4563
+ self,
4564
+ ) -> builtins.str:
4565
+ '''The Amazon Resource Name (ARN) for the inventory table.
4566
+
4567
+ :cloudformationAttribute: MetadataConfiguration.InventoryTableConfiguration.TableArn
4568
+ '''
4569
+ return typing.cast(builtins.str, jsii.get(self, "attrMetadataConfigurationInventoryTableConfigurationTableArn"))
4570
+
4571
+ @builtins.property
4572
+ @jsii.member(jsii_name="attrMetadataConfigurationInventoryTableConfigurationTableName")
4573
+ def attr_metadata_configuration_inventory_table_configuration_table_name(
4574
+ self,
4575
+ ) -> builtins.str:
4576
+ '''The name of the inventory table.
4577
+
4578
+ :cloudformationAttribute: MetadataConfiguration.InventoryTableConfiguration.TableName
4579
+ '''
4580
+ return typing.cast(builtins.str, jsii.get(self, "attrMetadataConfigurationInventoryTableConfigurationTableName"))
4581
+
4582
+ @builtins.property
4583
+ @jsii.member(jsii_name="attrMetadataConfigurationJournalTableConfigurationTableArn")
4584
+ def attr_metadata_configuration_journal_table_configuration_table_arn(
4585
+ self,
4586
+ ) -> builtins.str:
4587
+ '''The Amazon Resource Name (ARN) for the journal table.
4588
+
4589
+ :cloudformationAttribute: MetadataConfiguration.JournalTableConfiguration.TableArn
4590
+ '''
4591
+ return typing.cast(builtins.str, jsii.get(self, "attrMetadataConfigurationJournalTableConfigurationTableArn"))
4592
+
4593
+ @builtins.property
4594
+ @jsii.member(jsii_name="attrMetadataConfigurationJournalTableConfigurationTableName")
4595
+ def attr_metadata_configuration_journal_table_configuration_table_name(
4596
+ self,
4597
+ ) -> builtins.str:
4598
+ '''The name of the journal table.
4599
+
4600
+ :cloudformationAttribute: MetadataConfiguration.JournalTableConfiguration.TableName
4601
+ '''
4602
+ return typing.cast(builtins.str, jsii.get(self, "attrMetadataConfigurationJournalTableConfigurationTableName"))
4603
+
4548
4604
  @builtins.property
4549
4605
  @jsii.member(jsii_name="attrMetadataTableConfigurationS3TablesDestinationTableArn")
4550
4606
  def attr_metadata_table_configuration_s3_tables_destination_table_arn(
@@ -4778,6 +4834,24 @@ class CfnBucket(
4778
4834
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4779
4835
  jsii.set(self, "loggingConfiguration", value) # pyright: ignore[reportArgumentType]
4780
4836
 
4837
+ @builtins.property
4838
+ @jsii.member(jsii_name="metadataConfiguration")
4839
+ def metadata_configuration(
4840
+ self,
4841
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataConfigurationProperty"]]:
4842
+ '''The S3 Metadata configuration for a general purpose bucket.'''
4843
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataConfigurationProperty"]], jsii.get(self, "metadataConfiguration"))
4844
+
4845
+ @metadata_configuration.setter
4846
+ def metadata_configuration(
4847
+ self,
4848
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataConfigurationProperty"]],
4849
+ ) -> None:
4850
+ if __debug__:
4851
+ type_hints = typing.get_type_hints(_typecheckingstub__13b4697762f20bd91e57f93bf2922758e68d9cbc3f74472e7da7f9ce2f7dcdca)
4852
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4853
+ jsii.set(self, "metadataConfiguration", value) # pyright: ignore[reportArgumentType]
4854
+
4781
4855
  @builtins.property
4782
4856
  @jsii.member(jsii_name="metadataTableConfiguration")
4783
4857
  def metadata_table_configuration(
@@ -6411,6 +6485,243 @@ class CfnBucket(
6411
6485
  k + "=" + repr(v) for k, v in self._values.items()
6412
6486
  )
6413
6487
 
6488
+ @jsii.data_type(
6489
+ jsii_type="aws-cdk-lib.aws_s3.CfnBucket.InventoryTableConfigurationProperty",
6490
+ jsii_struct_bases=[],
6491
+ name_mapping={
6492
+ "configuration_state": "configurationState",
6493
+ "encryption_configuration": "encryptionConfiguration",
6494
+ "table_arn": "tableArn",
6495
+ "table_name": "tableName",
6496
+ },
6497
+ )
6498
+ class InventoryTableConfigurationProperty:
6499
+ def __init__(
6500
+ self,
6501
+ *,
6502
+ configuration_state: builtins.str,
6503
+ encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.MetadataTableEncryptionConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6504
+ table_arn: typing.Optional[builtins.str] = None,
6505
+ table_name: typing.Optional[builtins.str] = None,
6506
+ ) -> None:
6507
+ '''The inventory table configuration for an S3 Metadata configuration.
6508
+
6509
+ :param configuration_state: The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.
6510
+ :param encryption_configuration: The encryption configuration for the inventory table.
6511
+ :param table_arn: The Amazon Resource Name (ARN) for the inventory table.
6512
+ :param table_name: The name of the inventory table.
6513
+
6514
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventorytableconfiguration.html
6515
+ :exampleMetadata: fixture=_generated
6516
+
6517
+ Example::
6518
+
6519
+ # The code below shows an example of how to instantiate this type.
6520
+ # The values are placeholders you should change.
6521
+ from aws_cdk import aws_s3 as s3
6522
+
6523
+ inventory_table_configuration_property = s3.CfnBucket.InventoryTableConfigurationProperty(
6524
+ configuration_state="configurationState",
6525
+
6526
+ # the properties below are optional
6527
+ encryption_configuration=s3.CfnBucket.MetadataTableEncryptionConfigurationProperty(
6528
+ sse_algorithm="sseAlgorithm",
6529
+
6530
+ # the properties below are optional
6531
+ kms_key_arn="kmsKeyArn"
6532
+ ),
6533
+ table_arn="tableArn",
6534
+ table_name="tableName"
6535
+ )
6536
+ '''
6537
+ if __debug__:
6538
+ type_hints = typing.get_type_hints(_typecheckingstub__e3f0960f8776684cd6b2c423b1320b1ffcb2a6165dba0f275451667884000458)
6539
+ check_type(argname="argument configuration_state", value=configuration_state, expected_type=type_hints["configuration_state"])
6540
+ check_type(argname="argument encryption_configuration", value=encryption_configuration, expected_type=type_hints["encryption_configuration"])
6541
+ check_type(argname="argument table_arn", value=table_arn, expected_type=type_hints["table_arn"])
6542
+ check_type(argname="argument table_name", value=table_name, expected_type=type_hints["table_name"])
6543
+ self._values: typing.Dict[builtins.str, typing.Any] = {
6544
+ "configuration_state": configuration_state,
6545
+ }
6546
+ if encryption_configuration is not None:
6547
+ self._values["encryption_configuration"] = encryption_configuration
6548
+ if table_arn is not None:
6549
+ self._values["table_arn"] = table_arn
6550
+ if table_name is not None:
6551
+ self._values["table_name"] = table_name
6552
+
6553
+ @builtins.property
6554
+ def configuration_state(self) -> builtins.str:
6555
+ '''The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.
6556
+
6557
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventorytableconfiguration.html#cfn-s3-bucket-inventorytableconfiguration-configurationstate
6558
+ '''
6559
+ result = self._values.get("configuration_state")
6560
+ assert result is not None, "Required property 'configuration_state' is missing"
6561
+ return typing.cast(builtins.str, result)
6562
+
6563
+ @builtins.property
6564
+ def encryption_configuration(
6565
+ self,
6566
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataTableEncryptionConfigurationProperty"]]:
6567
+ '''The encryption configuration for the inventory table.
6568
+
6569
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventorytableconfiguration.html#cfn-s3-bucket-inventorytableconfiguration-encryptionconfiguration
6570
+ '''
6571
+ result = self._values.get("encryption_configuration")
6572
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataTableEncryptionConfigurationProperty"]], result)
6573
+
6574
+ @builtins.property
6575
+ def table_arn(self) -> typing.Optional[builtins.str]:
6576
+ '''The Amazon Resource Name (ARN) for the inventory table.
6577
+
6578
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventorytableconfiguration.html#cfn-s3-bucket-inventorytableconfiguration-tablearn
6579
+ '''
6580
+ result = self._values.get("table_arn")
6581
+ return typing.cast(typing.Optional[builtins.str], result)
6582
+
6583
+ @builtins.property
6584
+ def table_name(self) -> typing.Optional[builtins.str]:
6585
+ '''The name of the inventory table.
6586
+
6587
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventorytableconfiguration.html#cfn-s3-bucket-inventorytableconfiguration-tablename
6588
+ '''
6589
+ result = self._values.get("table_name")
6590
+ return typing.cast(typing.Optional[builtins.str], result)
6591
+
6592
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
6593
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
6594
+
6595
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
6596
+ return not (rhs == self)
6597
+
6598
+ def __repr__(self) -> str:
6599
+ return "InventoryTableConfigurationProperty(%s)" % ", ".join(
6600
+ k + "=" + repr(v) for k, v in self._values.items()
6601
+ )
6602
+
6603
+ @jsii.data_type(
6604
+ jsii_type="aws-cdk-lib.aws_s3.CfnBucket.JournalTableConfigurationProperty",
6605
+ jsii_struct_bases=[],
6606
+ name_mapping={
6607
+ "record_expiration": "recordExpiration",
6608
+ "encryption_configuration": "encryptionConfiguration",
6609
+ "table_arn": "tableArn",
6610
+ "table_name": "tableName",
6611
+ },
6612
+ )
6613
+ class JournalTableConfigurationProperty:
6614
+ def __init__(
6615
+ self,
6616
+ *,
6617
+ record_expiration: typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.RecordExpirationProperty", typing.Dict[builtins.str, typing.Any]]],
6618
+ encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.MetadataTableEncryptionConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6619
+ table_arn: typing.Optional[builtins.str] = None,
6620
+ table_name: typing.Optional[builtins.str] = None,
6621
+ ) -> None:
6622
+ '''The journal table configuration for an S3 Metadata configuration.
6623
+
6624
+ :param record_expiration: The journal table record expiration settings for the journal table.
6625
+ :param encryption_configuration: The encryption configuration for the journal table.
6626
+ :param table_arn: The Amazon Resource Name (ARN) for the journal table.
6627
+ :param table_name: The name of the journal table.
6628
+
6629
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-journaltableconfiguration.html
6630
+ :exampleMetadata: fixture=_generated
6631
+
6632
+ Example::
6633
+
6634
+ # The code below shows an example of how to instantiate this type.
6635
+ # The values are placeholders you should change.
6636
+ from aws_cdk import aws_s3 as s3
6637
+
6638
+ journal_table_configuration_property = s3.CfnBucket.JournalTableConfigurationProperty(
6639
+ record_expiration=s3.CfnBucket.RecordExpirationProperty(
6640
+ expiration="expiration",
6641
+
6642
+ # the properties below are optional
6643
+ days=123
6644
+ ),
6645
+
6646
+ # the properties below are optional
6647
+ encryption_configuration=s3.CfnBucket.MetadataTableEncryptionConfigurationProperty(
6648
+ sse_algorithm="sseAlgorithm",
6649
+
6650
+ # the properties below are optional
6651
+ kms_key_arn="kmsKeyArn"
6652
+ ),
6653
+ table_arn="tableArn",
6654
+ table_name="tableName"
6655
+ )
6656
+ '''
6657
+ if __debug__:
6658
+ type_hints = typing.get_type_hints(_typecheckingstub__4831e8bf78dc983eaf9b010780417c4e6b808ef19beac1729f89ba7bab53d4d9)
6659
+ check_type(argname="argument record_expiration", value=record_expiration, expected_type=type_hints["record_expiration"])
6660
+ check_type(argname="argument encryption_configuration", value=encryption_configuration, expected_type=type_hints["encryption_configuration"])
6661
+ check_type(argname="argument table_arn", value=table_arn, expected_type=type_hints["table_arn"])
6662
+ check_type(argname="argument table_name", value=table_name, expected_type=type_hints["table_name"])
6663
+ self._values: typing.Dict[builtins.str, typing.Any] = {
6664
+ "record_expiration": record_expiration,
6665
+ }
6666
+ if encryption_configuration is not None:
6667
+ self._values["encryption_configuration"] = encryption_configuration
6668
+ if table_arn is not None:
6669
+ self._values["table_arn"] = table_arn
6670
+ if table_name is not None:
6671
+ self._values["table_name"] = table_name
6672
+
6673
+ @builtins.property
6674
+ def record_expiration(
6675
+ self,
6676
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnBucket.RecordExpirationProperty"]:
6677
+ '''The journal table record expiration settings for the journal table.
6678
+
6679
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-journaltableconfiguration.html#cfn-s3-bucket-journaltableconfiguration-recordexpiration
6680
+ '''
6681
+ result = self._values.get("record_expiration")
6682
+ assert result is not None, "Required property 'record_expiration' is missing"
6683
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnBucket.RecordExpirationProperty"], result)
6684
+
6685
+ @builtins.property
6686
+ def encryption_configuration(
6687
+ self,
6688
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataTableEncryptionConfigurationProperty"]]:
6689
+ '''The encryption configuration for the journal table.
6690
+
6691
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-journaltableconfiguration.html#cfn-s3-bucket-journaltableconfiguration-encryptionconfiguration
6692
+ '''
6693
+ result = self._values.get("encryption_configuration")
6694
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataTableEncryptionConfigurationProperty"]], result)
6695
+
6696
+ @builtins.property
6697
+ def table_arn(self) -> typing.Optional[builtins.str]:
6698
+ '''The Amazon Resource Name (ARN) for the journal table.
6699
+
6700
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-journaltableconfiguration.html#cfn-s3-bucket-journaltableconfiguration-tablearn
6701
+ '''
6702
+ result = self._values.get("table_arn")
6703
+ return typing.cast(typing.Optional[builtins.str], result)
6704
+
6705
+ @builtins.property
6706
+ def table_name(self) -> typing.Optional[builtins.str]:
6707
+ '''The name of the journal table.
6708
+
6709
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-journaltableconfiguration.html#cfn-s3-bucket-journaltableconfiguration-tablename
6710
+ '''
6711
+ result = self._values.get("table_name")
6712
+ return typing.cast(typing.Optional[builtins.str], result)
6713
+
6714
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
6715
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
6716
+
6717
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
6718
+ return not (rhs == self)
6719
+
6720
+ def __repr__(self) -> str:
6721
+ return "JournalTableConfigurationProperty(%s)" % ", ".join(
6722
+ k + "=" + repr(v) for k, v in self._values.items()
6723
+ )
6724
+
6414
6725
  @jsii.data_type(
6415
6726
  jsii_type="aws-cdk-lib.aws_s3.CfnBucket.LambdaConfigurationProperty",
6416
6727
  jsii_struct_bases=[],
@@ -6765,6 +7076,235 @@ class CfnBucket(
6765
7076
  k + "=" + repr(v) for k, v in self._values.items()
6766
7077
  )
6767
7078
 
7079
+ @jsii.data_type(
7080
+ jsii_type="aws-cdk-lib.aws_s3.CfnBucket.MetadataConfigurationProperty",
7081
+ jsii_struct_bases=[],
7082
+ name_mapping={
7083
+ "journal_table_configuration": "journalTableConfiguration",
7084
+ "destination": "destination",
7085
+ "inventory_table_configuration": "inventoryTableConfiguration",
7086
+ },
7087
+ )
7088
+ class MetadataConfigurationProperty:
7089
+ def __init__(
7090
+ self,
7091
+ *,
7092
+ journal_table_configuration: typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.JournalTableConfigurationProperty", typing.Dict[builtins.str, typing.Any]]],
7093
+ destination: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.MetadataDestinationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
7094
+ inventory_table_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.InventoryTableConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
7095
+ ) -> None:
7096
+ '''Creates a V2 Amazon S3 Metadata configuration of a general purpose bucket.
7097
+
7098
+ For more information, see `Accelerating data discovery with S3 Metadata <https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html>`_ in the *Amazon S3 User Guide* .
7099
+
7100
+ :param journal_table_configuration: The journal table configuration for a metadata configuration.
7101
+ :param destination: The destination information for the S3 Metadata configuration.
7102
+ :param inventory_table_configuration: The inventory table configuration for a metadata configuration.
7103
+
7104
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadataconfiguration.html
7105
+ :exampleMetadata: fixture=_generated
7106
+
7107
+ Example::
7108
+
7109
+ # The code below shows an example of how to instantiate this type.
7110
+ # The values are placeholders you should change.
7111
+ from aws_cdk import aws_s3 as s3
7112
+
7113
+ metadata_configuration_property = s3.CfnBucket.MetadataConfigurationProperty(
7114
+ journal_table_configuration=s3.CfnBucket.JournalTableConfigurationProperty(
7115
+ record_expiration=s3.CfnBucket.RecordExpirationProperty(
7116
+ expiration="expiration",
7117
+
7118
+ # the properties below are optional
7119
+ days=123
7120
+ ),
7121
+
7122
+ # the properties below are optional
7123
+ encryption_configuration=s3.CfnBucket.MetadataTableEncryptionConfigurationProperty(
7124
+ sse_algorithm="sseAlgorithm",
7125
+
7126
+ # the properties below are optional
7127
+ kms_key_arn="kmsKeyArn"
7128
+ ),
7129
+ table_arn="tableArn",
7130
+ table_name="tableName"
7131
+ ),
7132
+
7133
+ # the properties below are optional
7134
+ destination=s3.CfnBucket.MetadataDestinationProperty(
7135
+ table_bucket_type="tableBucketType",
7136
+
7137
+ # the properties below are optional
7138
+ table_bucket_arn="tableBucketArn",
7139
+ table_namespace="tableNamespace"
7140
+ ),
7141
+ inventory_table_configuration=s3.CfnBucket.InventoryTableConfigurationProperty(
7142
+ configuration_state="configurationState",
7143
+
7144
+ # the properties below are optional
7145
+ encryption_configuration=s3.CfnBucket.MetadataTableEncryptionConfigurationProperty(
7146
+ sse_algorithm="sseAlgorithm",
7147
+
7148
+ # the properties below are optional
7149
+ kms_key_arn="kmsKeyArn"
7150
+ ),
7151
+ table_arn="tableArn",
7152
+ table_name="tableName"
7153
+ )
7154
+ )
7155
+ '''
7156
+ if __debug__:
7157
+ type_hints = typing.get_type_hints(_typecheckingstub__5ba4e02b348fb368852d2eaf89da64d6c5432c39d5f771482cd73c5e29aea1d2)
7158
+ check_type(argname="argument journal_table_configuration", value=journal_table_configuration, expected_type=type_hints["journal_table_configuration"])
7159
+ check_type(argname="argument destination", value=destination, expected_type=type_hints["destination"])
7160
+ check_type(argname="argument inventory_table_configuration", value=inventory_table_configuration, expected_type=type_hints["inventory_table_configuration"])
7161
+ self._values: typing.Dict[builtins.str, typing.Any] = {
7162
+ "journal_table_configuration": journal_table_configuration,
7163
+ }
7164
+ if destination is not None:
7165
+ self._values["destination"] = destination
7166
+ if inventory_table_configuration is not None:
7167
+ self._values["inventory_table_configuration"] = inventory_table_configuration
7168
+
7169
+ @builtins.property
7170
+ def journal_table_configuration(
7171
+ self,
7172
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnBucket.JournalTableConfigurationProperty"]:
7173
+ '''The journal table configuration for a metadata configuration.
7174
+
7175
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadataconfiguration.html#cfn-s3-bucket-metadataconfiguration-journaltableconfiguration
7176
+ '''
7177
+ result = self._values.get("journal_table_configuration")
7178
+ assert result is not None, "Required property 'journal_table_configuration' is missing"
7179
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnBucket.JournalTableConfigurationProperty"], result)
7180
+
7181
+ @builtins.property
7182
+ def destination(
7183
+ self,
7184
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataDestinationProperty"]]:
7185
+ '''The destination information for the S3 Metadata configuration.
7186
+
7187
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadataconfiguration.html#cfn-s3-bucket-metadataconfiguration-destination
7188
+ '''
7189
+ result = self._values.get("destination")
7190
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataDestinationProperty"]], result)
7191
+
7192
+ @builtins.property
7193
+ def inventory_table_configuration(
7194
+ self,
7195
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.InventoryTableConfigurationProperty"]]:
7196
+ '''The inventory table configuration for a metadata configuration.
7197
+
7198
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadataconfiguration.html#cfn-s3-bucket-metadataconfiguration-inventorytableconfiguration
7199
+ '''
7200
+ result = self._values.get("inventory_table_configuration")
7201
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.InventoryTableConfigurationProperty"]], result)
7202
+
7203
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
7204
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
7205
+
7206
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
7207
+ return not (rhs == self)
7208
+
7209
+ def __repr__(self) -> str:
7210
+ return "MetadataConfigurationProperty(%s)" % ", ".join(
7211
+ k + "=" + repr(v) for k, v in self._values.items()
7212
+ )
7213
+
7214
+ @jsii.data_type(
7215
+ jsii_type="aws-cdk-lib.aws_s3.CfnBucket.MetadataDestinationProperty",
7216
+ jsii_struct_bases=[],
7217
+ name_mapping={
7218
+ "table_bucket_type": "tableBucketType",
7219
+ "table_bucket_arn": "tableBucketArn",
7220
+ "table_namespace": "tableNamespace",
7221
+ },
7222
+ )
7223
+ class MetadataDestinationProperty:
7224
+ def __init__(
7225
+ self,
7226
+ *,
7227
+ table_bucket_type: builtins.str,
7228
+ table_bucket_arn: typing.Optional[builtins.str] = None,
7229
+ table_namespace: typing.Optional[builtins.str] = None,
7230
+ ) -> None:
7231
+ '''The destination information for the S3 Metadata configuration.
7232
+
7233
+ :param table_bucket_type: The type of the table bucket where the metadata configuration is stored. The ``aws`` value indicates an AWS managed table bucket, and the ``customer`` value indicates a customer-managed table bucket. V2 metadata configurations are stored in AWS managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.
7234
+ :param table_bucket_arn: The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.
7235
+ :param table_namespace: The namespace in the table bucket where the metadata tables for a metadata configuration are stored.
7236
+
7237
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadatadestination.html
7238
+ :exampleMetadata: fixture=_generated
7239
+
7240
+ Example::
7241
+
7242
+ # The code below shows an example of how to instantiate this type.
7243
+ # The values are placeholders you should change.
7244
+ from aws_cdk import aws_s3 as s3
7245
+
7246
+ metadata_destination_property = s3.CfnBucket.MetadataDestinationProperty(
7247
+ table_bucket_type="tableBucketType",
7248
+
7249
+ # the properties below are optional
7250
+ table_bucket_arn="tableBucketArn",
7251
+ table_namespace="tableNamespace"
7252
+ )
7253
+ '''
7254
+ if __debug__:
7255
+ type_hints = typing.get_type_hints(_typecheckingstub__22a357b76c39088e89c9805c6e3fd369bf83472fbcec37ad505b7803d1960e7e)
7256
+ check_type(argname="argument table_bucket_type", value=table_bucket_type, expected_type=type_hints["table_bucket_type"])
7257
+ check_type(argname="argument table_bucket_arn", value=table_bucket_arn, expected_type=type_hints["table_bucket_arn"])
7258
+ check_type(argname="argument table_namespace", value=table_namespace, expected_type=type_hints["table_namespace"])
7259
+ self._values: typing.Dict[builtins.str, typing.Any] = {
7260
+ "table_bucket_type": table_bucket_type,
7261
+ }
7262
+ if table_bucket_arn is not None:
7263
+ self._values["table_bucket_arn"] = table_bucket_arn
7264
+ if table_namespace is not None:
7265
+ self._values["table_namespace"] = table_namespace
7266
+
7267
+ @builtins.property
7268
+ def table_bucket_type(self) -> builtins.str:
7269
+ '''The type of the table bucket where the metadata configuration is stored.
7270
+
7271
+ The ``aws`` value indicates an AWS managed table bucket, and the ``customer`` value indicates a customer-managed table bucket. V2 metadata configurations are stored in AWS managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.
7272
+
7273
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadatadestination.html#cfn-s3-bucket-metadatadestination-tablebuckettype
7274
+ '''
7275
+ result = self._values.get("table_bucket_type")
7276
+ assert result is not None, "Required property 'table_bucket_type' is missing"
7277
+ return typing.cast(builtins.str, result)
7278
+
7279
+ @builtins.property
7280
+ def table_bucket_arn(self) -> typing.Optional[builtins.str]:
7281
+ '''The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.
7282
+
7283
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadatadestination.html#cfn-s3-bucket-metadatadestination-tablebucketarn
7284
+ '''
7285
+ result = self._values.get("table_bucket_arn")
7286
+ return typing.cast(typing.Optional[builtins.str], result)
7287
+
7288
+ @builtins.property
7289
+ def table_namespace(self) -> typing.Optional[builtins.str]:
7290
+ '''The namespace in the table bucket where the metadata tables for a metadata configuration are stored.
7291
+
7292
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadatadestination.html#cfn-s3-bucket-metadatadestination-tablenamespace
7293
+ '''
7294
+ result = self._values.get("table_namespace")
7295
+ return typing.cast(typing.Optional[builtins.str], result)
7296
+
7297
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
7298
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
7299
+
7300
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
7301
+ return not (rhs == self)
7302
+
7303
+ def __repr__(self) -> str:
7304
+ return "MetadataDestinationProperty(%s)" % ", ".join(
7305
+ k + "=" + repr(v) for k, v in self._values.items()
7306
+ )
7307
+
6768
7308
  @jsii.data_type(
6769
7309
  jsii_type="aws-cdk-lib.aws_s3.CfnBucket.MetadataTableConfigurationProperty",
6770
7310
  jsii_struct_bases=[],
@@ -6776,9 +7316,11 @@ class CfnBucket(
6776
7316
  *,
6777
7317
  s3_tables_destination: typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.S3TablesDestinationProperty", typing.Dict[builtins.str, typing.Any]]],
6778
7318
  ) -> None:
6779
- '''The metadata table configuration of an Amazon S3 general purpose bucket.
7319
+ '''.. epigraph::
7320
+
7321
+ We recommend that you create your S3 Metadata configurations by using the V2 `MetadataConfiguration <https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-s3-bucket-metadataconfiguration.html>`_ resource type. We no longer recommend using the V1 ``MetadataTableConfiguration`` resource type. > > If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using the `MetadataConfiguration <https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-s3-bucket-metadataconfiguration.html>`_ resource type so that you can expire journal table records and create a live inventory table.
6780
7322
 
6781
- For more information, see `Accelerating data discovery with S3 Metadata <https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html>`_ and `Setting up permissions for configuring metadata tables <https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html>`_ .
7323
+ Creates a V1 S3 Metadata configuration for a general purpose bucket. For more information, see `Accelerating data discovery with S3 Metadata <https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html>`_ in the *Amazon S3 User Guide* .
6782
7324
 
6783
7325
  :param s3_tables_destination: The destination information for the metadata table configuration. The destination table bucket must be in the same Region and AWS account as the general purpose bucket. The specified metadata table name must be unique within the ``aws_s3_metadata`` namespace in the destination table bucket.
6784
7326
 
@@ -6834,6 +7376,83 @@ class CfnBucket(
6834
7376
  k + "=" + repr(v) for k, v in self._values.items()
6835
7377
  )
6836
7378
 
7379
+ @jsii.data_type(
7380
+ jsii_type="aws-cdk-lib.aws_s3.CfnBucket.MetadataTableEncryptionConfigurationProperty",
7381
+ jsii_struct_bases=[],
7382
+ name_mapping={"sse_algorithm": "sseAlgorithm", "kms_key_arn": "kmsKeyArn"},
7383
+ )
7384
+ class MetadataTableEncryptionConfigurationProperty:
7385
+ def __init__(
7386
+ self,
7387
+ *,
7388
+ sse_algorithm: builtins.str,
7389
+ kms_key_arn: typing.Optional[builtins.str] = None,
7390
+ ) -> None:
7391
+ '''The encryption settings for an S3 Metadata journal table or inventory table configuration.
7392
+
7393
+ :param sse_algorithm: The encryption type specified for a metadata table. To specify server-side encryption with AWS Key Management Service ( AWS KMS ) keys (SSE-KMS), use the ``aws:kms`` value. To specify server-side encryption with Amazon S3 managed keys (SSE-S3), use the ``AES256`` value.
7394
+ :param kms_key_arn: If server-side encryption with AWS Key Management Service ( AWS KMS ) keys (SSE-KMS) is specified, you must also specify the KMS key Amazon Resource Name (ARN). You must specify a customer-managed KMS key that's located in the same Region as the general purpose bucket that corresponds to the metadata table configuration.
7395
+
7396
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadatatableencryptionconfiguration.html
7397
+ :exampleMetadata: fixture=_generated
7398
+
7399
+ Example::
7400
+
7401
+ # The code below shows an example of how to instantiate this type.
7402
+ # The values are placeholders you should change.
7403
+ from aws_cdk import aws_s3 as s3
7404
+
7405
+ metadata_table_encryption_configuration_property = s3.CfnBucket.MetadataTableEncryptionConfigurationProperty(
7406
+ sse_algorithm="sseAlgorithm",
7407
+
7408
+ # the properties below are optional
7409
+ kms_key_arn="kmsKeyArn"
7410
+ )
7411
+ '''
7412
+ if __debug__:
7413
+ type_hints = typing.get_type_hints(_typecheckingstub__638725ba5e16c7545010085fee3839279059f8036e3a36e81a6da12f68c3c96d)
7414
+ check_type(argname="argument sse_algorithm", value=sse_algorithm, expected_type=type_hints["sse_algorithm"])
7415
+ check_type(argname="argument kms_key_arn", value=kms_key_arn, expected_type=type_hints["kms_key_arn"])
7416
+ self._values: typing.Dict[builtins.str, typing.Any] = {
7417
+ "sse_algorithm": sse_algorithm,
7418
+ }
7419
+ if kms_key_arn is not None:
7420
+ self._values["kms_key_arn"] = kms_key_arn
7421
+
7422
+ @builtins.property
7423
+ def sse_algorithm(self) -> builtins.str:
7424
+ '''The encryption type specified for a metadata table.
7425
+
7426
+ To specify server-side encryption with AWS Key Management Service ( AWS KMS ) keys (SSE-KMS), use the ``aws:kms`` value. To specify server-side encryption with Amazon S3 managed keys (SSE-S3), use the ``AES256`` value.
7427
+
7428
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadatatableencryptionconfiguration.html#cfn-s3-bucket-metadatatableencryptionconfiguration-ssealgorithm
7429
+ '''
7430
+ result = self._values.get("sse_algorithm")
7431
+ assert result is not None, "Required property 'sse_algorithm' is missing"
7432
+ return typing.cast(builtins.str, result)
7433
+
7434
+ @builtins.property
7435
+ def kms_key_arn(self) -> typing.Optional[builtins.str]:
7436
+ '''If server-side encryption with AWS Key Management Service ( AWS KMS ) keys (SSE-KMS) is specified, you must also specify the KMS key Amazon Resource Name (ARN).
7437
+
7438
+ You must specify a customer-managed KMS key that's located in the same Region as the general purpose bucket that corresponds to the metadata table configuration.
7439
+
7440
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadatatableencryptionconfiguration.html#cfn-s3-bucket-metadatatableencryptionconfiguration-kmskeyarn
7441
+ '''
7442
+ result = self._values.get("kms_key_arn")
7443
+ return typing.cast(typing.Optional[builtins.str], result)
7444
+
7445
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
7446
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
7447
+
7448
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
7449
+ return not (rhs == self)
7450
+
7451
+ def __repr__(self) -> str:
7452
+ return "MetadataTableEncryptionConfigurationProperty(%s)" % ", ".join(
7453
+ k + "=" + repr(v) for k, v in self._values.items()
7454
+ )
7455
+
6837
7456
  @jsii.data_type(
6838
7457
  jsii_type="aws-cdk-lib.aws_s3.CfnBucket.MetricsConfigurationProperty",
6839
7458
  jsii_struct_bases=[],
@@ -8010,6 +8629,81 @@ class CfnBucket(
8010
8629
  k + "=" + repr(v) for k, v in self._values.items()
8011
8630
  )
8012
8631
 
8632
+ @jsii.data_type(
8633
+ jsii_type="aws-cdk-lib.aws_s3.CfnBucket.RecordExpirationProperty",
8634
+ jsii_struct_bases=[],
8635
+ name_mapping={"expiration": "expiration", "days": "days"},
8636
+ )
8637
+ class RecordExpirationProperty:
8638
+ def __init__(
8639
+ self,
8640
+ *,
8641
+ expiration: builtins.str,
8642
+ days: typing.Optional[jsii.Number] = None,
8643
+ ) -> None:
8644
+ '''The journal table record expiration settings for a journal table in an S3 Metadata configuration.
8645
+
8646
+ :param expiration: Specifies whether journal table record expiration is enabled or disabled.
8647
+ :param days: If you enable journal table record expiration, you can set the number of days to retain your journal table records. Journal table records must be retained for a minimum of 7 days. To set this value, specify any whole number from ``7`` to ``2147483647`` . For example, to retain your journal table records for one year, set this value to ``365`` .
8648
+
8649
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-recordexpiration.html
8650
+ :exampleMetadata: fixture=_generated
8651
+
8652
+ Example::
8653
+
8654
+ # The code below shows an example of how to instantiate this type.
8655
+ # The values are placeholders you should change.
8656
+ from aws_cdk import aws_s3 as s3
8657
+
8658
+ record_expiration_property = s3.CfnBucket.RecordExpirationProperty(
8659
+ expiration="expiration",
8660
+
8661
+ # the properties below are optional
8662
+ days=123
8663
+ )
8664
+ '''
8665
+ if __debug__:
8666
+ type_hints = typing.get_type_hints(_typecheckingstub__ced4e05e0d07a000e813825522beab4af447ff67164c61600ff7eb3b0afab28c)
8667
+ check_type(argname="argument expiration", value=expiration, expected_type=type_hints["expiration"])
8668
+ check_type(argname="argument days", value=days, expected_type=type_hints["days"])
8669
+ self._values: typing.Dict[builtins.str, typing.Any] = {
8670
+ "expiration": expiration,
8671
+ }
8672
+ if days is not None:
8673
+ self._values["days"] = days
8674
+
8675
+ @builtins.property
8676
+ def expiration(self) -> builtins.str:
8677
+ '''Specifies whether journal table record expiration is enabled or disabled.
8678
+
8679
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-recordexpiration.html#cfn-s3-bucket-recordexpiration-expiration
8680
+ '''
8681
+ result = self._values.get("expiration")
8682
+ assert result is not None, "Required property 'expiration' is missing"
8683
+ return typing.cast(builtins.str, result)
8684
+
8685
+ @builtins.property
8686
+ def days(self) -> typing.Optional[jsii.Number]:
8687
+ '''If you enable journal table record expiration, you can set the number of days to retain your journal table records.
8688
+
8689
+ Journal table records must be retained for a minimum of 7 days. To set this value, specify any whole number from ``7`` to ``2147483647`` . For example, to retain your journal table records for one year, set this value to ``365`` .
8690
+
8691
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-recordexpiration.html#cfn-s3-bucket-recordexpiration-days
8692
+ '''
8693
+ result = self._values.get("days")
8694
+ return typing.cast(typing.Optional[jsii.Number], result)
8695
+
8696
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
8697
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
8698
+
8699
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
8700
+ return not (rhs == self)
8701
+
8702
+ def __repr__(self) -> str:
8703
+ return "RecordExpirationProperty(%s)" % ", ".join(
8704
+ k + "=" + repr(v) for k, v in self._values.items()
8705
+ )
8706
+
8013
8707
  @jsii.data_type(
8014
8708
  jsii_type="aws-cdk-lib.aws_s3.CfnBucket.RedirectAllRequestsToProperty",
8015
8709
  jsii_struct_bases=[],
@@ -9831,9 +10525,6 @@ class CfnBucket(
9831
10525
  '''The destination information for a V1 S3 Metadata configuration.
9832
10526
 
9833
10527
  The destination table bucket must be in the same Region and AWS account as the general purpose bucket. The specified metadata table name must be unique within the ``aws_s3_metadata`` namespace in the destination table bucket.
9834
- .. epigraph::
9835
-
9836
- If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using `CreateBucketMetadataConfiguration <https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html>`_ so that you can expire journal table records and create a live inventory table.
9837
10528
 
9838
10529
  :param table_bucket_arn: The Amazon Resource Name (ARN) for the table bucket that's specified as the destination in the metadata table configuration. The destination table bucket must be in the same Region and AWS account as the general purpose bucket.
9839
10530
  :param table_name: The name for the metadata table in your metadata table configuration. The specified metadata table name must be unique within the ``aws_s3_metadata`` namespace in the destination table bucket.
@@ -11199,6 +11890,7 @@ class CfnBucketPolicyProps:
11199
11890
  "inventory_configurations": "inventoryConfigurations",
11200
11891
  "lifecycle_configuration": "lifecycleConfiguration",
11201
11892
  "logging_configuration": "loggingConfiguration",
11893
+ "metadata_configuration": "metadataConfiguration",
11202
11894
  "metadata_table_configuration": "metadataTableConfiguration",
11203
11895
  "metrics_configurations": "metricsConfigurations",
11204
11896
  "notification_configuration": "notificationConfiguration",
@@ -11226,6 +11918,7 @@ class CfnBucketProps:
11226
11918
  inventory_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.InventoryConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
11227
11919
  lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.LifecycleConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
11228
11920
  logging_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.LoggingConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
11921
+ metadata_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
11229
11922
  metadata_table_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataTableConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
11230
11923
  metrics_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetricsConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
11231
11924
  notification_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.NotificationConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -11250,6 +11943,7 @@ class CfnBucketProps:
11250
11943
  :param inventory_configurations: Specifies the S3 Inventory configuration for an Amazon S3 bucket. For more information, see `GET Bucket inventory <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html>`_ in the *Amazon S3 API Reference* .
11251
11944
  :param lifecycle_configuration: Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For more information, see `Object Lifecycle Management <https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html>`_ in the *Amazon S3 User Guide* .
11252
11945
  :param logging_configuration: Settings that define where logs are stored.
11946
+ :param metadata_configuration: The S3 Metadata configuration for a general purpose bucket.
11253
11947
  :param metadata_table_configuration: The metadata table configuration of an Amazon S3 general purpose bucket.
11254
11948
  :param metrics_configurations: Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. For more information, see `PutBucketMetricsConfiguration <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html>`_ .
11255
11949
  :param notification_configuration: Configuration that defines how Amazon S3 handles bucket notifications.
@@ -11289,6 +11983,7 @@ class CfnBucketProps:
11289
11983
  check_type(argname="argument inventory_configurations", value=inventory_configurations, expected_type=type_hints["inventory_configurations"])
11290
11984
  check_type(argname="argument lifecycle_configuration", value=lifecycle_configuration, expected_type=type_hints["lifecycle_configuration"])
11291
11985
  check_type(argname="argument logging_configuration", value=logging_configuration, expected_type=type_hints["logging_configuration"])
11986
+ check_type(argname="argument metadata_configuration", value=metadata_configuration, expected_type=type_hints["metadata_configuration"])
11292
11987
  check_type(argname="argument metadata_table_configuration", value=metadata_table_configuration, expected_type=type_hints["metadata_table_configuration"])
11293
11988
  check_type(argname="argument metrics_configurations", value=metrics_configurations, expected_type=type_hints["metrics_configurations"])
11294
11989
  check_type(argname="argument notification_configuration", value=notification_configuration, expected_type=type_hints["notification_configuration"])
@@ -11321,6 +12016,8 @@ class CfnBucketProps:
11321
12016
  self._values["lifecycle_configuration"] = lifecycle_configuration
11322
12017
  if logging_configuration is not None:
11323
12018
  self._values["logging_configuration"] = logging_configuration
12019
+ if metadata_configuration is not None:
12020
+ self._values["metadata_configuration"] = metadata_configuration
11324
12021
  if metadata_table_configuration is not None:
11325
12022
  self._values["metadata_table_configuration"] = metadata_table_configuration
11326
12023
  if metrics_configurations is not None:
@@ -11475,6 +12172,17 @@ class CfnBucketProps:
11475
12172
  result = self._values.get("logging_configuration")
11476
12173
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnBucket.LoggingConfigurationProperty]], result)
11477
12174
 
12175
+ @builtins.property
12176
+ def metadata_configuration(
12177
+ self,
12178
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnBucket.MetadataConfigurationProperty]]:
12179
+ '''The S3 Metadata configuration for a general purpose bucket.
12180
+
12181
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-metadataconfiguration
12182
+ '''
12183
+ result = self._values.get("metadata_configuration")
12184
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnBucket.MetadataConfigurationProperty]], result)
12185
+
11478
12186
  @builtins.property
11479
12187
  def metadata_table_configuration(
11480
12188
  self,
@@ -22036,6 +22744,7 @@ def _typecheckingstub__0cfa39e37f5fa17b8234ce2f712ef5cf3bf2c262914967924c19a67f6
22036
22744
  inventory_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.InventoryConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
22037
22745
  lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.LifecycleConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22038
22746
  logging_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.LoggingConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22747
+ metadata_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22039
22748
  metadata_table_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataTableConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22040
22749
  metrics_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetricsConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
22041
22750
  notification_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.NotificationConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -22123,6 +22832,12 @@ def _typecheckingstub__4b77f03fd3b3677eb1438ce6b2a3991e386c73bd8744df53f5e4ba5ea
22123
22832
  """Type checking stubs"""
22124
22833
  pass
22125
22834
 
22835
+ def _typecheckingstub__13b4697762f20bd91e57f93bf2922758e68d9cbc3f74472e7da7f9ce2f7dcdca(
22836
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnBucket.MetadataConfigurationProperty]],
22837
+ ) -> None:
22838
+ """Type checking stubs"""
22839
+ pass
22840
+
22126
22841
  def _typecheckingstub__fd29cd03877c191999cfea4d853581d72ddc33cf57cc7d4cba47336d1b9943ec(
22127
22842
  value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnBucket.MetadataTableConfigurationProperty]],
22128
22843
  ) -> None:
@@ -22326,6 +23041,26 @@ def _typecheckingstub__cdee89cd1b92609a0e10908dd9212db336cab5c5d1cccdb91cf76efe8
22326
23041
  """Type checking stubs"""
22327
23042
  pass
22328
23043
 
23044
+ def _typecheckingstub__e3f0960f8776684cd6b2c423b1320b1ffcb2a6165dba0f275451667884000458(
23045
+ *,
23046
+ configuration_state: builtins.str,
23047
+ encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataTableEncryptionConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23048
+ table_arn: typing.Optional[builtins.str] = None,
23049
+ table_name: typing.Optional[builtins.str] = None,
23050
+ ) -> None:
23051
+ """Type checking stubs"""
23052
+ pass
23053
+
23054
+ def _typecheckingstub__4831e8bf78dc983eaf9b010780417c4e6b808ef19beac1729f89ba7bab53d4d9(
23055
+ *,
23056
+ record_expiration: typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.RecordExpirationProperty, typing.Dict[builtins.str, typing.Any]]],
23057
+ encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataTableEncryptionConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23058
+ table_arn: typing.Optional[builtins.str] = None,
23059
+ table_name: typing.Optional[builtins.str] = None,
23060
+ ) -> None:
23061
+ """Type checking stubs"""
23062
+ pass
23063
+
22329
23064
  def _typecheckingstub__599ef02853407bceb720424e9874eda7b5e2324f3be8a787939e9d5f9a7d5765(
22330
23065
  *,
22331
23066
  event: builtins.str,
@@ -22352,6 +23087,24 @@ def _typecheckingstub__01491815d16a808a2dce4d193703181c42183e3e002a73f20f0f129d4
22352
23087
  """Type checking stubs"""
22353
23088
  pass
22354
23089
 
23090
+ def _typecheckingstub__5ba4e02b348fb368852d2eaf89da64d6c5432c39d5f771482cd73c5e29aea1d2(
23091
+ *,
23092
+ journal_table_configuration: typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.JournalTableConfigurationProperty, typing.Dict[builtins.str, typing.Any]]],
23093
+ destination: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataDestinationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23094
+ inventory_table_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.InventoryTableConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23095
+ ) -> None:
23096
+ """Type checking stubs"""
23097
+ pass
23098
+
23099
+ def _typecheckingstub__22a357b76c39088e89c9805c6e3fd369bf83472fbcec37ad505b7803d1960e7e(
23100
+ *,
23101
+ table_bucket_type: builtins.str,
23102
+ table_bucket_arn: typing.Optional[builtins.str] = None,
23103
+ table_namespace: typing.Optional[builtins.str] = None,
23104
+ ) -> None:
23105
+ """Type checking stubs"""
23106
+ pass
23107
+
22355
23108
  def _typecheckingstub__5ca454da0b88593246b2d389c687410262b1687eb76eddb67e9375ebad28093f(
22356
23109
  *,
22357
23110
  s3_tables_destination: typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.S3TablesDestinationProperty, typing.Dict[builtins.str, typing.Any]]],
@@ -22359,6 +23112,14 @@ def _typecheckingstub__5ca454da0b88593246b2d389c687410262b1687eb76eddb67e9375eba
22359
23112
  """Type checking stubs"""
22360
23113
  pass
22361
23114
 
23115
+ def _typecheckingstub__638725ba5e16c7545010085fee3839279059f8036e3a36e81a6da12f68c3c96d(
23116
+ *,
23117
+ sse_algorithm: builtins.str,
23118
+ kms_key_arn: typing.Optional[builtins.str] = None,
23119
+ ) -> None:
23120
+ """Type checking stubs"""
23121
+ pass
23122
+
22362
23123
  def _typecheckingstub__ad42f7d497f9da61528b895926b56b4a48de1121e97039ba589509b4f56b32f7(
22363
23124
  *,
22364
23125
  id: builtins.str,
@@ -22466,6 +23227,14 @@ def _typecheckingstub__fa7475a01d5eb0e88eb78519cde0c5de6ace577577dd1b48ec5816cca
22466
23227
  """Type checking stubs"""
22467
23228
  pass
22468
23229
 
23230
+ def _typecheckingstub__ced4e05e0d07a000e813825522beab4af447ff67164c61600ff7eb3b0afab28c(
23231
+ *,
23232
+ expiration: builtins.str,
23233
+ days: typing.Optional[jsii.Number] = None,
23234
+ ) -> None:
23235
+ """Type checking stubs"""
23236
+ pass
23237
+
22469
23238
  def _typecheckingstub__8aaa5db61b5a90e427f3a57c45b3bd725fb80aeca08f50b45728a5d954ee837f(
22470
23239
  *,
22471
23240
  host_name: builtins.str,
@@ -22765,6 +23534,7 @@ def _typecheckingstub__658a4165ec8804b9770871bbb27764713f55dc53e9c9e990dca120e77
22765
23534
  inventory_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.InventoryConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
22766
23535
  lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.LifecycleConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22767
23536
  logging_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.LoggingConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23537
+ metadata_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22768
23538
  metadata_table_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataTableConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22769
23539
  metrics_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetricsConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
22770
23540
  notification_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.NotificationConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,