aws-cdk-lib 2.171.0__py3-none-any.whl → 2.172.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 (47) hide show
  1. aws_cdk/__init__.py +471 -161
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.171.0.jsii.tgz → aws-cdk-lib@2.172.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigateway/__init__.py +1314 -124
  5. aws_cdk/aws_appsync/__init__.py +159 -136
  6. aws_cdk/aws_autoscaling/__init__.py +81 -24
  7. aws_cdk/aws_bedrock/__init__.py +48 -0
  8. aws_cdk/aws_chatbot/__init__.py +775 -0
  9. aws_cdk/aws_cloudformation/__init__.py +240 -159
  10. aws_cdk/aws_cloudfront/__init__.py +11 -5
  11. aws_cdk/aws_cloudtrail/__init__.py +753 -0
  12. aws_cdk/aws_cognito/__init__.py +825 -4
  13. aws_cdk/aws_connect/__init__.py +429 -0
  14. aws_cdk/aws_customerprofiles/__init__.py +3148 -0
  15. aws_cdk/aws_ec2/__init__.py +872 -5
  16. aws_cdk/aws_ecs/__init__.py +12 -7
  17. aws_cdk/aws_eks/__init__.py +709 -0
  18. aws_cdk/aws_elasticloadbalancingv2/__init__.py +309 -55
  19. aws_cdk/aws_events/__init__.py +515 -8
  20. aws_cdk/aws_iot/__init__.py +42 -4
  21. aws_cdk/aws_iotfleetwise/__init__.py +510 -0
  22. aws_cdk/aws_iotsitewise/__init__.py +156 -0
  23. aws_cdk/aws_lambda/__init__.py +14 -8
  24. aws_cdk/aws_lambda_event_sources/__init__.py +2 -1
  25. aws_cdk/aws_lambda_nodejs/__init__.py +11 -11
  26. aws_cdk/aws_m2/__init__.py +289 -0
  27. aws_cdk/aws_mwaa/__init__.py +6 -6
  28. aws_cdk/aws_opensearchserverless/__init__.py +249 -1
  29. aws_cdk/aws_pipes/__init__.py +14 -30
  30. aws_cdk/aws_qbusiness/__init__.py +3 -1
  31. aws_cdk/aws_quicksight/__init__.py +8270 -10
  32. aws_cdk/aws_rbin/__init__.py +53 -34
  33. aws_cdk/aws_rds/__init__.py +140 -8
  34. aws_cdk/aws_resourcegroups/__init__.py +349 -0
  35. aws_cdk/aws_route53_targets/__init__.py +82 -0
  36. aws_cdk/aws_route53resolver/__init__.py +15 -6
  37. aws_cdk/aws_s3express/__init__.py +403 -2
  38. aws_cdk/aws_sagemaker/__init__.py +124 -112
  39. aws_cdk/aws_ses/__init__.py +79 -41
  40. aws_cdk/aws_wisdom/__init__.py +4713 -172
  41. aws_cdk/aws_workspacesweb/__init__.py +1024 -0
  42. {aws_cdk_lib-2.171.0.dist-info → aws_cdk_lib-2.172.0.dist-info}/METADATA +1 -1
  43. {aws_cdk_lib-2.171.0.dist-info → aws_cdk_lib-2.172.0.dist-info}/RECORD +47 -47
  44. {aws_cdk_lib-2.171.0.dist-info → aws_cdk_lib-2.172.0.dist-info}/LICENSE +0 -0
  45. {aws_cdk_lib-2.171.0.dist-info → aws_cdk_lib-2.172.0.dist-info}/NOTICE +0 -0
  46. {aws_cdk_lib-2.171.0.dist-info → aws_cdk_lib-2.172.0.dist-info}/WHEEL +0 -0
  47. {aws_cdk_lib-2.171.0.dist-info → aws_cdk_lib-2.172.0.dist-info}/top_level.txt +0 -0
@@ -354,7 +354,22 @@ class CfnDirectoryBucket(
354
354
  )
355
355
  )]
356
356
  ),
357
- bucket_name="bucketName"
357
+ bucket_name="bucketName",
358
+ lifecycle_configuration=s3express.CfnDirectoryBucket.LifecycleConfigurationProperty(
359
+ rules=[s3express.CfnDirectoryBucket.RuleProperty(
360
+ status="status",
361
+
362
+ # the properties below are optional
363
+ abort_incomplete_multipart_upload=s3express.CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty(
364
+ days_after_initiation=123
365
+ ),
366
+ expiration_in_days=123,
367
+ id="id",
368
+ object_size_greater_than="objectSizeGreaterThan",
369
+ object_size_less_than="objectSizeLessThan",
370
+ prefix="prefix"
371
+ )]
372
+ )
358
373
  )
359
374
  '''
360
375
 
@@ -367,6 +382,7 @@ class CfnDirectoryBucket(
367
382
  location_name: builtins.str,
368
383
  bucket_encryption: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDirectoryBucket.BucketEncryptionProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
369
384
  bucket_name: typing.Optional[builtins.str] = None,
385
+ lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDirectoryBucket.LifecycleConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
370
386
  ) -> None:
371
387
  '''
372
388
  :param scope: Scope in which this resource is defined.
@@ -375,6 +391,7 @@ class CfnDirectoryBucket(
375
391
  :param location_name: The name of the location where the bucket will be created. For directory buckets, the name of the location is the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is ``usw2-az1`` .
376
392
  :param bucket_encryption: Specifies default encryption for a bucket using server-side encryption with Amazon S3 managed keys (SSE-S3) or AWS KMS keys (SSE-KMS). For information about default encryption for directory buckets, see `Setting and monitoring default encryption for directory buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html>`_ in the *Amazon S3 User Guide* .
377
393
  :param bucket_name: A name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format ``*bucket_base_name* -- *az_id* --x-s3`` (for example, ``*bucket_base_name* -- *usw2-az1* --x-s3`` ). If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. For information about bucket naming restrictions, see `Directory bucket naming rules <https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html>`_ in the *Amazon S3 User Guide* . .. epigraph:: If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you need to replace the resource, specify a new name.
394
+ :param lifecycle_configuration: Container for lifecycle rules. You can add as many as 1000 rules. For more information see, `Managing your storage lifecycle <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html>`_ in the *Amazon S3 User Guide* .
378
395
  '''
379
396
  if __debug__:
380
397
  type_hints = typing.get_type_hints(_typecheckingstub__ea5a1e5897b0467fb93393ad6ea2dbcd3916f27713079e8bef3badf71ce2bb20)
@@ -385,6 +402,7 @@ class CfnDirectoryBucket(
385
402
  location_name=location_name,
386
403
  bucket_encryption=bucket_encryption,
387
404
  bucket_name=bucket_name,
405
+ lifecycle_configuration=lifecycle_configuration,
388
406
  )
389
407
 
390
408
  jsii.create(self.__class__, self, [scope, id, props])
@@ -506,6 +524,81 @@ class CfnDirectoryBucket(
506
524
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
507
525
  jsii.set(self, "bucketName", value) # pyright: ignore[reportArgumentType]
508
526
 
527
+ @builtins.property
528
+ @jsii.member(jsii_name="lifecycleConfiguration")
529
+ def lifecycle_configuration(
530
+ self,
531
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.LifecycleConfigurationProperty"]]:
532
+ '''Container for lifecycle rules.
533
+
534
+ You can add as many as 1000 rules.
535
+ '''
536
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.LifecycleConfigurationProperty"]], jsii.get(self, "lifecycleConfiguration"))
537
+
538
+ @lifecycle_configuration.setter
539
+ def lifecycle_configuration(
540
+ self,
541
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.LifecycleConfigurationProperty"]],
542
+ ) -> None:
543
+ if __debug__:
544
+ type_hints = typing.get_type_hints(_typecheckingstub__ddfd3872142b33ae9fa409c0018df1c791508213de3582b65e63e55af438eb3b)
545
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
546
+ jsii.set(self, "lifecycleConfiguration", value) # pyright: ignore[reportArgumentType]
547
+
548
+ @jsii.data_type(
549
+ jsii_type="aws-cdk-lib.aws_s3express.CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty",
550
+ jsii_struct_bases=[],
551
+ name_mapping={"days_after_initiation": "daysAfterInitiation"},
552
+ )
553
+ class AbortIncompleteMultipartUploadProperty:
554
+ def __init__(self, *, days_after_initiation: jsii.Number) -> None:
555
+ '''Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload.
556
+
557
+ For more information, see `Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration <https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config>`_ in the *Amazon S3 User Guide* .
558
+
559
+ :param days_after_initiation: Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.
560
+
561
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-abortincompletemultipartupload.html
562
+ :exampleMetadata: fixture=_generated
563
+
564
+ Example::
565
+
566
+ # The code below shows an example of how to instantiate this type.
567
+ # The values are placeholders you should change.
568
+ from aws_cdk import aws_s3express as s3express
569
+
570
+ abort_incomplete_multipart_upload_property = s3express.CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty(
571
+ days_after_initiation=123
572
+ )
573
+ '''
574
+ if __debug__:
575
+ type_hints = typing.get_type_hints(_typecheckingstub__94d67335bbcb78d0b027e59764707d68d59cd3646befac6651614e419d8af6f4)
576
+ check_type(argname="argument days_after_initiation", value=days_after_initiation, expected_type=type_hints["days_after_initiation"])
577
+ self._values: typing.Dict[builtins.str, typing.Any] = {
578
+ "days_after_initiation": days_after_initiation,
579
+ }
580
+
581
+ @builtins.property
582
+ def days_after_initiation(self) -> jsii.Number:
583
+ '''Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.
584
+
585
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-abortincompletemultipartupload.html#cfn-s3express-directorybucket-abortincompletemultipartupload-daysafterinitiation
586
+ '''
587
+ result = self._values.get("days_after_initiation")
588
+ assert result is not None, "Required property 'days_after_initiation' is missing"
589
+ return typing.cast(jsii.Number, result)
590
+
591
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
592
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
593
+
594
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
595
+ return not (rhs == self)
596
+
597
+ def __repr__(self) -> str:
598
+ return "AbortIncompleteMultipartUploadProperty(%s)" % ", ".join(
599
+ k + "=" + repr(v) for k, v in self._values.items()
600
+ )
601
+
509
602
  @jsii.data_type(
510
603
  jsii_type="aws-cdk-lib.aws_s3express.CfnDirectoryBucket.BucketEncryptionProperty",
511
604
  jsii_struct_bases=[],
@@ -576,6 +669,245 @@ class CfnDirectoryBucket(
576
669
  k + "=" + repr(v) for k, v in self._values.items()
577
670
  )
578
671
 
672
+ @jsii.data_type(
673
+ jsii_type="aws-cdk-lib.aws_s3express.CfnDirectoryBucket.LifecycleConfigurationProperty",
674
+ jsii_struct_bases=[],
675
+ name_mapping={"rules": "rules"},
676
+ )
677
+ class LifecycleConfigurationProperty:
678
+ def __init__(
679
+ self,
680
+ *,
681
+ rules: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDirectoryBucket.RuleProperty", typing.Dict[builtins.str, typing.Any]]]]],
682
+ ) -> None:
683
+ '''Container for lifecycle rules. You can add as many as 1000 rules.
684
+
685
+ For more information see, `Managing your storage lifecycle <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html>`_ in the *Amazon S3 User Guide* .
686
+
687
+ :param rules: Specifies lifecycle configuration rules for an Amazon S3 bucket.
688
+
689
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-lifecycleconfiguration.html
690
+ :exampleMetadata: fixture=_generated
691
+
692
+ Example::
693
+
694
+ # The code below shows an example of how to instantiate this type.
695
+ # The values are placeholders you should change.
696
+ from aws_cdk import aws_s3express as s3express
697
+
698
+ lifecycle_configuration_property = s3express.CfnDirectoryBucket.LifecycleConfigurationProperty(
699
+ rules=[s3express.CfnDirectoryBucket.RuleProperty(
700
+ status="status",
701
+
702
+ # the properties below are optional
703
+ abort_incomplete_multipart_upload=s3express.CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty(
704
+ days_after_initiation=123
705
+ ),
706
+ expiration_in_days=123,
707
+ id="id",
708
+ object_size_greater_than="objectSizeGreaterThan",
709
+ object_size_less_than="objectSizeLessThan",
710
+ prefix="prefix"
711
+ )]
712
+ )
713
+ '''
714
+ if __debug__:
715
+ type_hints = typing.get_type_hints(_typecheckingstub__82d5e100390b1400bc989c8f7007f04e65bff5948bb5f68def580a8385603442)
716
+ check_type(argname="argument rules", value=rules, expected_type=type_hints["rules"])
717
+ self._values: typing.Dict[builtins.str, typing.Any] = {
718
+ "rules": rules,
719
+ }
720
+
721
+ @builtins.property
722
+ def rules(
723
+ self,
724
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.RuleProperty"]]]:
725
+ '''Specifies lifecycle configuration rules for an Amazon S3 bucket.
726
+
727
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-lifecycleconfiguration.html#cfn-s3express-directorybucket-lifecycleconfiguration-rules
728
+ '''
729
+ result = self._values.get("rules")
730
+ assert result is not None, "Required property 'rules' is missing"
731
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.RuleProperty"]]], result)
732
+
733
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
734
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
735
+
736
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
737
+ return not (rhs == self)
738
+
739
+ def __repr__(self) -> str:
740
+ return "LifecycleConfigurationProperty(%s)" % ", ".join(
741
+ k + "=" + repr(v) for k, v in self._values.items()
742
+ )
743
+
744
+ @jsii.data_type(
745
+ jsii_type="aws-cdk-lib.aws_s3express.CfnDirectoryBucket.RuleProperty",
746
+ jsii_struct_bases=[],
747
+ name_mapping={
748
+ "status": "status",
749
+ "abort_incomplete_multipart_upload": "abortIncompleteMultipartUpload",
750
+ "expiration_in_days": "expirationInDays",
751
+ "id": "id",
752
+ "object_size_greater_than": "objectSizeGreaterThan",
753
+ "object_size_less_than": "objectSizeLessThan",
754
+ "prefix": "prefix",
755
+ },
756
+ )
757
+ class RuleProperty:
758
+ def __init__(
759
+ self,
760
+ *,
761
+ status: builtins.str,
762
+ abort_incomplete_multipart_upload: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
763
+ expiration_in_days: typing.Optional[jsii.Number] = None,
764
+ id: typing.Optional[builtins.str] = None,
765
+ object_size_greater_than: typing.Optional[builtins.str] = None,
766
+ object_size_less_than: typing.Optional[builtins.str] = None,
767
+ prefix: typing.Optional[builtins.str] = None,
768
+ ) -> None:
769
+ '''Specifies lifecycle rules for an Amazon S3 bucket.
770
+
771
+ For more information, see `Put Bucket Lifecycle Configuration <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html>`_ in the *Amazon S3 API Reference* . For examples, see `Put Bucket Lifecycle Configuration Examples <https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html#API_PutBucketLifecycleConfiguration_Examples>`_ .
772
+
773
+ :param status: If ``Enabled`` , the rule is currently being applied. If ``Disabled`` , the rule is not currently being applied.
774
+ :param abort_incomplete_multipart_upload: Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload.
775
+ :param expiration_in_days:
776
+ :param id: Unique identifier for the rule. The value can't be longer than 255 characters.
777
+ :param object_size_greater_than:
778
+ :param object_size_less_than:
779
+ :param prefix: Object key prefix that identifies one or more objects to which this rule applies. .. epigraph:: Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see `XML related object key constraints <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints>`_ .
780
+
781
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html
782
+ :exampleMetadata: fixture=_generated
783
+
784
+ Example::
785
+
786
+ # The code below shows an example of how to instantiate this type.
787
+ # The values are placeholders you should change.
788
+ from aws_cdk import aws_s3express as s3express
789
+
790
+ rule_property = s3express.CfnDirectoryBucket.RuleProperty(
791
+ status="status",
792
+
793
+ # the properties below are optional
794
+ abort_incomplete_multipart_upload=s3express.CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty(
795
+ days_after_initiation=123
796
+ ),
797
+ expiration_in_days=123,
798
+ id="id",
799
+ object_size_greater_than="objectSizeGreaterThan",
800
+ object_size_less_than="objectSizeLessThan",
801
+ prefix="prefix"
802
+ )
803
+ '''
804
+ if __debug__:
805
+ type_hints = typing.get_type_hints(_typecheckingstub__f6f9e06e8b8beb4ef85714d8e61855121cd4a13b083bc1c2de944bad75acf266)
806
+ check_type(argname="argument status", value=status, expected_type=type_hints["status"])
807
+ check_type(argname="argument abort_incomplete_multipart_upload", value=abort_incomplete_multipart_upload, expected_type=type_hints["abort_incomplete_multipart_upload"])
808
+ check_type(argname="argument expiration_in_days", value=expiration_in_days, expected_type=type_hints["expiration_in_days"])
809
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
810
+ check_type(argname="argument object_size_greater_than", value=object_size_greater_than, expected_type=type_hints["object_size_greater_than"])
811
+ check_type(argname="argument object_size_less_than", value=object_size_less_than, expected_type=type_hints["object_size_less_than"])
812
+ check_type(argname="argument prefix", value=prefix, expected_type=type_hints["prefix"])
813
+ self._values: typing.Dict[builtins.str, typing.Any] = {
814
+ "status": status,
815
+ }
816
+ if abort_incomplete_multipart_upload is not None:
817
+ self._values["abort_incomplete_multipart_upload"] = abort_incomplete_multipart_upload
818
+ if expiration_in_days is not None:
819
+ self._values["expiration_in_days"] = expiration_in_days
820
+ if id is not None:
821
+ self._values["id"] = id
822
+ if object_size_greater_than is not None:
823
+ self._values["object_size_greater_than"] = object_size_greater_than
824
+ if object_size_less_than is not None:
825
+ self._values["object_size_less_than"] = object_size_less_than
826
+ if prefix is not None:
827
+ self._values["prefix"] = prefix
828
+
829
+ @builtins.property
830
+ def status(self) -> builtins.str:
831
+ '''If ``Enabled`` , the rule is currently being applied.
832
+
833
+ If ``Disabled`` , the rule is not currently being applied.
834
+
835
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html#cfn-s3express-directorybucket-rule-status
836
+ '''
837
+ result = self._values.get("status")
838
+ assert result is not None, "Required property 'status' is missing"
839
+ return typing.cast(builtins.str, result)
840
+
841
+ @builtins.property
842
+ def abort_incomplete_multipart_upload(
843
+ self,
844
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty"]]:
845
+ '''Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload.
846
+
847
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html#cfn-s3express-directorybucket-rule-abortincompletemultipartupload
848
+ '''
849
+ result = self._values.get("abort_incomplete_multipart_upload")
850
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty"]], result)
851
+
852
+ @builtins.property
853
+ def expiration_in_days(self) -> typing.Optional[jsii.Number]:
854
+ '''
855
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html#cfn-s3express-directorybucket-rule-expirationindays
856
+ '''
857
+ result = self._values.get("expiration_in_days")
858
+ return typing.cast(typing.Optional[jsii.Number], result)
859
+
860
+ @builtins.property
861
+ def id(self) -> typing.Optional[builtins.str]:
862
+ '''Unique identifier for the rule.
863
+
864
+ The value can't be longer than 255 characters.
865
+
866
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html#cfn-s3express-directorybucket-rule-id
867
+ '''
868
+ result = self._values.get("id")
869
+ return typing.cast(typing.Optional[builtins.str], result)
870
+
871
+ @builtins.property
872
+ def object_size_greater_than(self) -> typing.Optional[builtins.str]:
873
+ '''
874
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html#cfn-s3express-directorybucket-rule-objectsizegreaterthan
875
+ '''
876
+ result = self._values.get("object_size_greater_than")
877
+ return typing.cast(typing.Optional[builtins.str], result)
878
+
879
+ @builtins.property
880
+ def object_size_less_than(self) -> typing.Optional[builtins.str]:
881
+ '''
882
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html#cfn-s3express-directorybucket-rule-objectsizelessthan
883
+ '''
884
+ result = self._values.get("object_size_less_than")
885
+ return typing.cast(typing.Optional[builtins.str], result)
886
+
887
+ @builtins.property
888
+ def prefix(self) -> typing.Optional[builtins.str]:
889
+ '''Object key prefix that identifies one or more objects to which this rule applies.
890
+
891
+ .. epigraph::
892
+
893
+ Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see `XML related object key constraints <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints>`_ .
894
+
895
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html#cfn-s3express-directorybucket-rule-prefix
896
+ '''
897
+ result = self._values.get("prefix")
898
+ return typing.cast(typing.Optional[builtins.str], result)
899
+
900
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
901
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
902
+
903
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
904
+ return not (rhs == self)
905
+
906
+ def __repr__(self) -> str:
907
+ return "RuleProperty(%s)" % ", ".join(
908
+ k + "=" + repr(v) for k, v in self._values.items()
909
+ )
910
+
579
911
  @jsii.data_type(
580
912
  jsii_type="aws-cdk-lib.aws_s3express.CfnDirectoryBucket.ServerSideEncryptionByDefaultProperty",
581
913
  jsii_struct_bases=[],
@@ -769,6 +1101,7 @@ class CfnDirectoryBucket(
769
1101
  "location_name": "locationName",
770
1102
  "bucket_encryption": "bucketEncryption",
771
1103
  "bucket_name": "bucketName",
1104
+ "lifecycle_configuration": "lifecycleConfiguration",
772
1105
  },
773
1106
  )
774
1107
  class CfnDirectoryBucketProps:
@@ -779,6 +1112,7 @@ class CfnDirectoryBucketProps:
779
1112
  location_name: builtins.str,
780
1113
  bucket_encryption: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.BucketEncryptionProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
781
1114
  bucket_name: typing.Optional[builtins.str] = None,
1115
+ lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.LifecycleConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
782
1116
  ) -> None:
783
1117
  '''Properties for defining a ``CfnDirectoryBucket``.
784
1118
 
@@ -786,6 +1120,7 @@ class CfnDirectoryBucketProps:
786
1120
  :param location_name: The name of the location where the bucket will be created. For directory buckets, the name of the location is the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is ``usw2-az1`` .
787
1121
  :param bucket_encryption: Specifies default encryption for a bucket using server-side encryption with Amazon S3 managed keys (SSE-S3) or AWS KMS keys (SSE-KMS). For information about default encryption for directory buckets, see `Setting and monitoring default encryption for directory buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html>`_ in the *Amazon S3 User Guide* .
788
1122
  :param bucket_name: A name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format ``*bucket_base_name* -- *az_id* --x-s3`` (for example, ``*bucket_base_name* -- *usw2-az1* --x-s3`` ). If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. For information about bucket naming restrictions, see `Directory bucket naming rules <https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html>`_ in the *Amazon S3 User Guide* . .. epigraph:: If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you need to replace the resource, specify a new name.
1123
+ :param lifecycle_configuration: Container for lifecycle rules. You can add as many as 1000 rules. For more information see, `Managing your storage lifecycle <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html>`_ in the *Amazon S3 User Guide* .
789
1124
 
790
1125
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-directorybucket.html
791
1126
  :exampleMetadata: fixture=_generated
@@ -812,7 +1147,22 @@ class CfnDirectoryBucketProps:
812
1147
  )
813
1148
  )]
814
1149
  ),
815
- bucket_name="bucketName"
1150
+ bucket_name="bucketName",
1151
+ lifecycle_configuration=s3express.CfnDirectoryBucket.LifecycleConfigurationProperty(
1152
+ rules=[s3express.CfnDirectoryBucket.RuleProperty(
1153
+ status="status",
1154
+
1155
+ # the properties below are optional
1156
+ abort_incomplete_multipart_upload=s3express.CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty(
1157
+ days_after_initiation=123
1158
+ ),
1159
+ expiration_in_days=123,
1160
+ id="id",
1161
+ object_size_greater_than="objectSizeGreaterThan",
1162
+ object_size_less_than="objectSizeLessThan",
1163
+ prefix="prefix"
1164
+ )]
1165
+ )
816
1166
  )
817
1167
  '''
818
1168
  if __debug__:
@@ -821,6 +1171,7 @@ class CfnDirectoryBucketProps:
821
1171
  check_type(argname="argument location_name", value=location_name, expected_type=type_hints["location_name"])
822
1172
  check_type(argname="argument bucket_encryption", value=bucket_encryption, expected_type=type_hints["bucket_encryption"])
823
1173
  check_type(argname="argument bucket_name", value=bucket_name, expected_type=type_hints["bucket_name"])
1174
+ check_type(argname="argument lifecycle_configuration", value=lifecycle_configuration, expected_type=type_hints["lifecycle_configuration"])
824
1175
  self._values: typing.Dict[builtins.str, typing.Any] = {
825
1176
  "data_redundancy": data_redundancy,
826
1177
  "location_name": location_name,
@@ -829,6 +1180,8 @@ class CfnDirectoryBucketProps:
829
1180
  self._values["bucket_encryption"] = bucket_encryption
830
1181
  if bucket_name is not None:
831
1182
  self._values["bucket_name"] = bucket_name
1183
+ if lifecycle_configuration is not None:
1184
+ self._values["lifecycle_configuration"] = lifecycle_configuration
832
1185
 
833
1186
  @builtins.property
834
1187
  def data_redundancy(self) -> builtins.str:
@@ -879,6 +1232,19 @@ class CfnDirectoryBucketProps:
879
1232
  result = self._values.get("bucket_name")
880
1233
  return typing.cast(typing.Optional[builtins.str], result)
881
1234
 
1235
+ @builtins.property
1236
+ def lifecycle_configuration(
1237
+ self,
1238
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDirectoryBucket.LifecycleConfigurationProperty]]:
1239
+ '''Container for lifecycle rules. You can add as many as 1000 rules.
1240
+
1241
+ For more information see, `Managing your storage lifecycle <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html>`_ in the *Amazon S3 User Guide* .
1242
+
1243
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-directorybucket.html#cfn-s3express-directorybucket-lifecycleconfiguration
1244
+ '''
1245
+ result = self._values.get("lifecycle_configuration")
1246
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDirectoryBucket.LifecycleConfigurationProperty]], result)
1247
+
882
1248
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
883
1249
  return isinstance(rhs, self.__class__) and rhs._values == self._values
884
1250
 
@@ -950,6 +1316,7 @@ def _typecheckingstub__ea5a1e5897b0467fb93393ad6ea2dbcd3916f27713079e8bef3badf71
950
1316
  location_name: builtins.str,
951
1317
  bucket_encryption: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.BucketEncryptionProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
952
1318
  bucket_name: typing.Optional[builtins.str] = None,
1319
+ lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.LifecycleConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
953
1320
  ) -> None:
954
1321
  """Type checking stubs"""
955
1322
  pass
@@ -990,6 +1357,19 @@ def _typecheckingstub__678dc679eb1daf10bbced208f7ef85b8fe01f1ae8ea62c5354ac80b28
990
1357
  """Type checking stubs"""
991
1358
  pass
992
1359
 
1360
+ def _typecheckingstub__ddfd3872142b33ae9fa409c0018df1c791508213de3582b65e63e55af438eb3b(
1361
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDirectoryBucket.LifecycleConfigurationProperty]],
1362
+ ) -> None:
1363
+ """Type checking stubs"""
1364
+ pass
1365
+
1366
+ def _typecheckingstub__94d67335bbcb78d0b027e59764707d68d59cd3646befac6651614e419d8af6f4(
1367
+ *,
1368
+ days_after_initiation: jsii.Number,
1369
+ ) -> None:
1370
+ """Type checking stubs"""
1371
+ pass
1372
+
993
1373
  def _typecheckingstub__2bda13f500a0910d95ef795cf250698cc9bc399a6809500b0318dd2399fa0dfc(
994
1374
  *,
995
1375
  server_side_encryption_configuration: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.ServerSideEncryptionRuleProperty, typing.Dict[builtins.str, typing.Any]]]]],
@@ -997,6 +1377,26 @@ def _typecheckingstub__2bda13f500a0910d95ef795cf250698cc9bc399a6809500b0318dd239
997
1377
  """Type checking stubs"""
998
1378
  pass
999
1379
 
1380
+ def _typecheckingstub__82d5e100390b1400bc989c8f7007f04e65bff5948bb5f68def580a8385603442(
1381
+ *,
1382
+ rules: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.RuleProperty, typing.Dict[builtins.str, typing.Any]]]]],
1383
+ ) -> None:
1384
+ """Type checking stubs"""
1385
+ pass
1386
+
1387
+ def _typecheckingstub__f6f9e06e8b8beb4ef85714d8e61855121cd4a13b083bc1c2de944bad75acf266(
1388
+ *,
1389
+ status: builtins.str,
1390
+ abort_incomplete_multipart_upload: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1391
+ expiration_in_days: typing.Optional[jsii.Number] = None,
1392
+ id: typing.Optional[builtins.str] = None,
1393
+ object_size_greater_than: typing.Optional[builtins.str] = None,
1394
+ object_size_less_than: typing.Optional[builtins.str] = None,
1395
+ prefix: typing.Optional[builtins.str] = None,
1396
+ ) -> None:
1397
+ """Type checking stubs"""
1398
+ pass
1399
+
1000
1400
  def _typecheckingstub__5104b7dd2a8f7d075aebe34991fe63f5722d4515b7d5df7eadca88aa065daee9(
1001
1401
  *,
1002
1402
  sse_algorithm: builtins.str,
@@ -1019,6 +1419,7 @@ def _typecheckingstub__997b2abc28c849393aef2f13f43682b271277998e07114f1b22407894
1019
1419
  location_name: builtins.str,
1020
1420
  bucket_encryption: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.BucketEncryptionProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1021
1421
  bucket_name: typing.Optional[builtins.str] = None,
1422
+ lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.LifecycleConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1022
1423
  ) -> None:
1023
1424
  """Type checking stubs"""
1024
1425
  pass