aws-cdk-lib 2.171.1__py3-none-any.whl → 2.173.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 (78) hide show
  1. aws_cdk/__init__.py +528 -161
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.171.1.jsii.tgz → aws-cdk-lib@2.173.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amazonmq/__init__.py +40 -40
  5. aws_cdk/aws_apigateway/__init__.py +1357 -120
  6. aws_cdk/aws_applicationautoscaling/__init__.py +141 -66
  7. aws_cdk/aws_appsync/__init__.py +163 -139
  8. aws_cdk/aws_autoscaling/__init__.py +96 -30
  9. aws_cdk/aws_bedrock/__init__.py +80 -44
  10. aws_cdk/aws_chatbot/__init__.py +803 -2
  11. aws_cdk/aws_cleanrooms/__init__.py +4 -6
  12. aws_cdk/aws_cloudformation/__init__.py +240 -159
  13. aws_cdk/aws_cloudfront/__init__.py +15 -7
  14. aws_cdk/aws_cloudtrail/__init__.py +802 -13
  15. aws_cdk/aws_cloudwatch/__init__.py +51 -14
  16. aws_cdk/aws_codebuild/__init__.py +39 -0
  17. aws_cdk/aws_codepipeline/__init__.py +4 -4
  18. aws_cdk/aws_cognito/__init__.py +1032 -43
  19. aws_cdk/aws_config/__init__.py +13 -10
  20. aws_cdk/aws_connect/__init__.py +454 -23
  21. aws_cdk/aws_connectcampaignsv2/__init__.py +187 -176
  22. aws_cdk/aws_customerprofiles/__init__.py +3148 -0
  23. aws_cdk/aws_docdb/__init__.py +128 -0
  24. aws_cdk/aws_dynamodb/__init__.py +256 -0
  25. aws_cdk/aws_ec2/__init__.py +976 -27
  26. aws_cdk/aws_ecs/__init__.py +37 -20
  27. aws_cdk/aws_eks/__init__.py +771 -0
  28. aws_cdk/aws_elasticache/__init__.py +22 -22
  29. aws_cdk/aws_elasticloadbalancingv2/__init__.py +441 -177
  30. aws_cdk/aws_events/__init__.py +550 -30
  31. aws_cdk/aws_fsx/__init__.py +134 -10
  32. aws_cdk/aws_imagebuilder/__init__.py +8 -8
  33. aws_cdk/aws_invoicing/__init__.py +651 -0
  34. aws_cdk/aws_iot/__init__.py +70 -26
  35. aws_cdk/aws_iotfleetwise/__init__.py +1033 -382
  36. aws_cdk/aws_iotsitewise/__init__.py +158 -0
  37. aws_cdk/aws_ivs/__init__.py +43 -31
  38. aws_cdk/aws_kendra/__init__.py +4 -0
  39. aws_cdk/aws_lakeformation/__init__.py +2 -1
  40. aws_cdk/aws_lambda/__init__.py +272 -164
  41. aws_cdk/aws_lambda_event_sources/__init__.py +2 -1
  42. aws_cdk/aws_lambda_nodejs/__init__.py +11 -11
  43. aws_cdk/aws_logs/__init__.py +532 -0
  44. aws_cdk/aws_m2/__init__.py +289 -0
  45. aws_cdk/aws_mediaconnect/__init__.py +24 -14
  46. aws_cdk/aws_medialive/__init__.py +2359 -5
  47. aws_cdk/aws_mediapackage/__init__.py +3 -9
  48. aws_cdk/aws_mediapackagev2/__init__.py +19 -17
  49. aws_cdk/aws_memorydb/__init__.py +664 -4
  50. aws_cdk/aws_mwaa/__init__.py +6 -6
  51. aws_cdk/aws_opensearchserverless/__init__.py +249 -1
  52. aws_cdk/aws_pipes/__init__.py +14 -30
  53. aws_cdk/aws_qbusiness/__init__.py +2021 -67
  54. aws_cdk/aws_quicksight/__init__.py +8270 -10
  55. aws_cdk/aws_rbin/__init__.py +53 -34
  56. aws_cdk/aws_rds/__init__.py +170 -8
  57. aws_cdk/aws_resourcegroups/__init__.py +362 -4
  58. aws_cdk/aws_route53/__init__.py +1177 -10
  59. aws_cdk/aws_route53_targets/__init__.py +297 -91
  60. aws_cdk/aws_route53resolver/__init__.py +19 -8
  61. aws_cdk/aws_s3/__init__.py +4 -4
  62. aws_cdk/aws_s3express/__init__.py +421 -9
  63. aws_cdk/aws_sagemaker/__init__.py +905 -119
  64. aws_cdk/aws_secretsmanager/__init__.py +20 -6
  65. aws_cdk/aws_securityhub/__init__.py +64 -32
  66. aws_cdk/aws_servicediscovery/__init__.py +43 -0
  67. aws_cdk/aws_ses/__init__.py +188 -41
  68. aws_cdk/aws_stepfunctions_tasks/__init__.py +190 -35
  69. aws_cdk/aws_synthetics/__init__.py +7 -5
  70. aws_cdk/aws_vpclattice/__init__.py +1479 -122
  71. aws_cdk/aws_wisdom/__init__.py +8509 -1502
  72. aws_cdk/aws_workspacesweb/__init__.py +1081 -0
  73. {aws_cdk_lib-2.171.1.dist-info → aws_cdk_lib-2.173.0.dist-info}/METADATA +1 -1
  74. {aws_cdk_lib-2.171.1.dist-info → aws_cdk_lib-2.173.0.dist-info}/RECORD +78 -77
  75. {aws_cdk_lib-2.171.1.dist-info → aws_cdk_lib-2.173.0.dist-info}/LICENSE +0 -0
  76. {aws_cdk_lib-2.171.1.dist-info → aws_cdk_lib-2.173.0.dist-info}/NOTICE +0 -0
  77. {aws_cdk_lib-2.171.1.dist-info → aws_cdk_lib-2.173.0.dist-info}/WHEEL +0 -0
  78. {aws_cdk_lib-2.171.1.dist-info → aws_cdk_lib-2.173.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,14 +382,16 @@ 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.
373
389
  :param id: Construct identifier for this resource (unique in its scope).
374
- :param data_redundancy: The number of Availability Zone that's used for redundancy for the bucket.
375
- :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`` .
390
+ :param data_redundancy: The number of Zone (Availability Zone or Local Zone) that's used for redundancy for the bucket.
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 Zone ID of the Availability Zone (AZ) or Local Zone (LZ) 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, `Creating and managing a lifecycle configuration for directory buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-lifecycle.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])
@@ -452,7 +470,7 @@ class CfnDirectoryBucket(
452
470
  @builtins.property
453
471
  @jsii.member(jsii_name="dataRedundancy")
454
472
  def data_redundancy(self) -> builtins.str:
455
- '''The number of Availability Zone that's used for redundancy for the bucket.'''
473
+ '''The number of Zone (Availability Zone or Local Zone) that's used for redundancy for the bucket.'''
456
474
  return typing.cast(builtins.str, jsii.get(self, "dataRedundancy"))
457
475
 
458
476
  @data_redundancy.setter
@@ -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,256 @@ 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, `Creating and managing a lifecycle configuration for directory buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-lifecycle.html>`_ in the *Amazon S3 User Guide* .
686
+
687
+ :param rules: A lifecycle rule for individual objects in an Amazon S3 Express 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
+ '''A lifecycle rule for individual objects in an Amazon S3 Express 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
+ You must specify at least one of the following properties: ``AbortIncompleteMultipartUpload`` , or ``ExpirationInDays`` .
774
+
775
+ :param status: If ``Enabled`` , the rule is currently being applied. If ``Disabled`` , the rule is not currently being applied.
776
+ :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.
777
+ :param expiration_in_days: Indicates the number of days after creation when objects are deleted from Amazon S3 and Amazon S3 Glacier. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time.
778
+ :param id: Unique identifier for the rule. The value can't be longer than 255 characters.
779
+ :param object_size_greater_than: Specifies the minimum object size in bytes for this rule to apply to. Objects must be larger than this value in bytes. For more information about size based rules, see `Lifecycle configuration using size-based rules <https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules>`_ in the *Amazon S3 User Guide* .
780
+ :param object_size_less_than: Specifies the maximum object size in bytes for this rule to apply to. Objects must be smaller than this value in bytes. For more information about sized based rules, see `Lifecycle configuration using size-based rules <https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules>`_ in the *Amazon S3 User Guide* .
781
+ :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>`_ .
782
+
783
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html
784
+ :exampleMetadata: fixture=_generated
785
+
786
+ Example::
787
+
788
+ # The code below shows an example of how to instantiate this type.
789
+ # The values are placeholders you should change.
790
+ from aws_cdk import aws_s3express as s3express
791
+
792
+ rule_property = s3express.CfnDirectoryBucket.RuleProperty(
793
+ status="status",
794
+
795
+ # the properties below are optional
796
+ abort_incomplete_multipart_upload=s3express.CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty(
797
+ days_after_initiation=123
798
+ ),
799
+ expiration_in_days=123,
800
+ id="id",
801
+ object_size_greater_than="objectSizeGreaterThan",
802
+ object_size_less_than="objectSizeLessThan",
803
+ prefix="prefix"
804
+ )
805
+ '''
806
+ if __debug__:
807
+ type_hints = typing.get_type_hints(_typecheckingstub__f6f9e06e8b8beb4ef85714d8e61855121cd4a13b083bc1c2de944bad75acf266)
808
+ check_type(argname="argument status", value=status, expected_type=type_hints["status"])
809
+ check_type(argname="argument abort_incomplete_multipart_upload", value=abort_incomplete_multipart_upload, expected_type=type_hints["abort_incomplete_multipart_upload"])
810
+ check_type(argname="argument expiration_in_days", value=expiration_in_days, expected_type=type_hints["expiration_in_days"])
811
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
812
+ check_type(argname="argument object_size_greater_than", value=object_size_greater_than, expected_type=type_hints["object_size_greater_than"])
813
+ check_type(argname="argument object_size_less_than", value=object_size_less_than, expected_type=type_hints["object_size_less_than"])
814
+ check_type(argname="argument prefix", value=prefix, expected_type=type_hints["prefix"])
815
+ self._values: typing.Dict[builtins.str, typing.Any] = {
816
+ "status": status,
817
+ }
818
+ if abort_incomplete_multipart_upload is not None:
819
+ self._values["abort_incomplete_multipart_upload"] = abort_incomplete_multipart_upload
820
+ if expiration_in_days is not None:
821
+ self._values["expiration_in_days"] = expiration_in_days
822
+ if id is not None:
823
+ self._values["id"] = id
824
+ if object_size_greater_than is not None:
825
+ self._values["object_size_greater_than"] = object_size_greater_than
826
+ if object_size_less_than is not None:
827
+ self._values["object_size_less_than"] = object_size_less_than
828
+ if prefix is not None:
829
+ self._values["prefix"] = prefix
830
+
831
+ @builtins.property
832
+ def status(self) -> builtins.str:
833
+ '''If ``Enabled`` , the rule is currently being applied.
834
+
835
+ If ``Disabled`` , the rule is not currently being applied.
836
+
837
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html#cfn-s3express-directorybucket-rule-status
838
+ '''
839
+ result = self._values.get("status")
840
+ assert result is not None, "Required property 'status' is missing"
841
+ return typing.cast(builtins.str, result)
842
+
843
+ @builtins.property
844
+ def abort_incomplete_multipart_upload(
845
+ self,
846
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty"]]:
847
+ '''Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload.
848
+
849
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html#cfn-s3express-directorybucket-rule-abortincompletemultipartupload
850
+ '''
851
+ result = self._values.get("abort_incomplete_multipart_upload")
852
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty"]], result)
853
+
854
+ @builtins.property
855
+ def expiration_in_days(self) -> typing.Optional[jsii.Number]:
856
+ '''Indicates the number of days after creation when objects are deleted from Amazon S3 and Amazon S3 Glacier.
857
+
858
+ If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time.
859
+
860
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html#cfn-s3express-directorybucket-rule-expirationindays
861
+ '''
862
+ result = self._values.get("expiration_in_days")
863
+ return typing.cast(typing.Optional[jsii.Number], result)
864
+
865
+ @builtins.property
866
+ def id(self) -> typing.Optional[builtins.str]:
867
+ '''Unique identifier for the rule.
868
+
869
+ The value can't be longer than 255 characters.
870
+
871
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html#cfn-s3express-directorybucket-rule-id
872
+ '''
873
+ result = self._values.get("id")
874
+ return typing.cast(typing.Optional[builtins.str], result)
875
+
876
+ @builtins.property
877
+ def object_size_greater_than(self) -> typing.Optional[builtins.str]:
878
+ '''Specifies the minimum object size in bytes for this rule to apply to.
879
+
880
+ Objects must be larger than this value in bytes. For more information about size based rules, see `Lifecycle configuration using size-based rules <https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules>`_ in the *Amazon S3 User Guide* .
881
+
882
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html#cfn-s3express-directorybucket-rule-objectsizegreaterthan
883
+ '''
884
+ result = self._values.get("object_size_greater_than")
885
+ return typing.cast(typing.Optional[builtins.str], result)
886
+
887
+ @builtins.property
888
+ def object_size_less_than(self) -> typing.Optional[builtins.str]:
889
+ '''Specifies the maximum object size in bytes for this rule to apply to.
890
+
891
+ Objects must be smaller than this value in bytes. For more information about sized based rules, see `Lifecycle configuration using size-based rules <https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules>`_ in the *Amazon S3 User Guide* .
892
+
893
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html#cfn-s3express-directorybucket-rule-objectsizelessthan
894
+ '''
895
+ result = self._values.get("object_size_less_than")
896
+ return typing.cast(typing.Optional[builtins.str], result)
897
+
898
+ @builtins.property
899
+ def prefix(self) -> typing.Optional[builtins.str]:
900
+ '''Object key prefix that identifies one or more objects to which this rule applies.
901
+
902
+ .. epigraph::
903
+
904
+ 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>`_ .
905
+
906
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-rule.html#cfn-s3express-directorybucket-rule-prefix
907
+ '''
908
+ result = self._values.get("prefix")
909
+ return typing.cast(typing.Optional[builtins.str], result)
910
+
911
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
912
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
913
+
914
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
915
+ return not (rhs == self)
916
+
917
+ def __repr__(self) -> str:
918
+ return "RuleProperty(%s)" % ", ".join(
919
+ k + "=" + repr(v) for k, v in self._values.items()
920
+ )
921
+
579
922
  @jsii.data_type(
580
923
  jsii_type="aws-cdk-lib.aws_s3express.CfnDirectoryBucket.ServerSideEncryptionByDefaultProperty",
581
924
  jsii_struct_bases=[],
@@ -769,6 +1112,7 @@ class CfnDirectoryBucket(
769
1112
  "location_name": "locationName",
770
1113
  "bucket_encryption": "bucketEncryption",
771
1114
  "bucket_name": "bucketName",
1115
+ "lifecycle_configuration": "lifecycleConfiguration",
772
1116
  },
773
1117
  )
774
1118
  class CfnDirectoryBucketProps:
@@ -779,13 +1123,15 @@ class CfnDirectoryBucketProps:
779
1123
  location_name: builtins.str,
780
1124
  bucket_encryption: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.BucketEncryptionProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
781
1125
  bucket_name: typing.Optional[builtins.str] = None,
1126
+ lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.LifecycleConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
782
1127
  ) -> None:
783
1128
  '''Properties for defining a ``CfnDirectoryBucket``.
784
1129
 
785
- :param data_redundancy: The number of Availability Zone that's used for redundancy for the bucket.
786
- :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`` .
1130
+ :param data_redundancy: The number of Zone (Availability Zone or Local Zone) that's used for redundancy for the bucket.
1131
+ :param location_name: The name of the location where the bucket will be created. For directory buckets, the name of the location is the Zone ID of the Availability Zone (AZ) or Local Zone (LZ) where the bucket will be created. An example AZ ID value is ``usw2-az1`` .
787
1132
  :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
1133
  :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.
1134
+ :param lifecycle_configuration: Container for lifecycle rules. You can add as many as 1000 rules. For more information see, `Creating and managing a lifecycle configuration for directory buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-lifecycle.html>`_ in the *Amazon S3 User Guide* .
789
1135
 
790
1136
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-directorybucket.html
791
1137
  :exampleMetadata: fixture=_generated
@@ -812,7 +1158,22 @@ class CfnDirectoryBucketProps:
812
1158
  )
813
1159
  )]
814
1160
  ),
815
- bucket_name="bucketName"
1161
+ bucket_name="bucketName",
1162
+ lifecycle_configuration=s3express.CfnDirectoryBucket.LifecycleConfigurationProperty(
1163
+ rules=[s3express.CfnDirectoryBucket.RuleProperty(
1164
+ status="status",
1165
+
1166
+ # the properties below are optional
1167
+ abort_incomplete_multipart_upload=s3express.CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty(
1168
+ days_after_initiation=123
1169
+ ),
1170
+ expiration_in_days=123,
1171
+ id="id",
1172
+ object_size_greater_than="objectSizeGreaterThan",
1173
+ object_size_less_than="objectSizeLessThan",
1174
+ prefix="prefix"
1175
+ )]
1176
+ )
816
1177
  )
817
1178
  '''
818
1179
  if __debug__:
@@ -821,6 +1182,7 @@ class CfnDirectoryBucketProps:
821
1182
  check_type(argname="argument location_name", value=location_name, expected_type=type_hints["location_name"])
822
1183
  check_type(argname="argument bucket_encryption", value=bucket_encryption, expected_type=type_hints["bucket_encryption"])
823
1184
  check_type(argname="argument bucket_name", value=bucket_name, expected_type=type_hints["bucket_name"])
1185
+ check_type(argname="argument lifecycle_configuration", value=lifecycle_configuration, expected_type=type_hints["lifecycle_configuration"])
824
1186
  self._values: typing.Dict[builtins.str, typing.Any] = {
825
1187
  "data_redundancy": data_redundancy,
826
1188
  "location_name": location_name,
@@ -829,10 +1191,12 @@ class CfnDirectoryBucketProps:
829
1191
  self._values["bucket_encryption"] = bucket_encryption
830
1192
  if bucket_name is not None:
831
1193
  self._values["bucket_name"] = bucket_name
1194
+ if lifecycle_configuration is not None:
1195
+ self._values["lifecycle_configuration"] = lifecycle_configuration
832
1196
 
833
1197
  @builtins.property
834
1198
  def data_redundancy(self) -> builtins.str:
835
- '''The number of Availability Zone that's used for redundancy for the bucket.
1199
+ '''The number of Zone (Availability Zone or Local Zone) that's used for redundancy for the bucket.
836
1200
 
837
1201
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-directorybucket.html#cfn-s3express-directorybucket-dataredundancy
838
1202
  '''
@@ -844,7 +1208,7 @@ class CfnDirectoryBucketProps:
844
1208
  def location_name(self) -> builtins.str:
845
1209
  '''The name of the location where the bucket will be created.
846
1210
 
847
- 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`` .
1211
+ For directory buckets, the name of the location is the Zone ID of the Availability Zone (AZ) or Local Zone (LZ) where the bucket will be created. An example AZ ID value is ``usw2-az1`` .
848
1212
 
849
1213
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-directorybucket.html#cfn-s3express-directorybucket-locationname
850
1214
  '''
@@ -879,6 +1243,19 @@ class CfnDirectoryBucketProps:
879
1243
  result = self._values.get("bucket_name")
880
1244
  return typing.cast(typing.Optional[builtins.str], result)
881
1245
 
1246
+ @builtins.property
1247
+ def lifecycle_configuration(
1248
+ self,
1249
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDirectoryBucket.LifecycleConfigurationProperty]]:
1250
+ '''Container for lifecycle rules. You can add as many as 1000 rules.
1251
+
1252
+ For more information see, `Creating and managing a lifecycle configuration for directory buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-lifecycle.html>`_ in the *Amazon S3 User Guide* .
1253
+
1254
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-directorybucket.html#cfn-s3express-directorybucket-lifecycleconfiguration
1255
+ '''
1256
+ result = self._values.get("lifecycle_configuration")
1257
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDirectoryBucket.LifecycleConfigurationProperty]], result)
1258
+
882
1259
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
883
1260
  return isinstance(rhs, self.__class__) and rhs._values == self._values
884
1261
 
@@ -950,6 +1327,7 @@ def _typecheckingstub__ea5a1e5897b0467fb93393ad6ea2dbcd3916f27713079e8bef3badf71
950
1327
  location_name: builtins.str,
951
1328
  bucket_encryption: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.BucketEncryptionProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
952
1329
  bucket_name: typing.Optional[builtins.str] = None,
1330
+ lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.LifecycleConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
953
1331
  ) -> None:
954
1332
  """Type checking stubs"""
955
1333
  pass
@@ -990,6 +1368,19 @@ def _typecheckingstub__678dc679eb1daf10bbced208f7ef85b8fe01f1ae8ea62c5354ac80b28
990
1368
  """Type checking stubs"""
991
1369
  pass
992
1370
 
1371
+ def _typecheckingstub__ddfd3872142b33ae9fa409c0018df1c791508213de3582b65e63e55af438eb3b(
1372
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDirectoryBucket.LifecycleConfigurationProperty]],
1373
+ ) -> None:
1374
+ """Type checking stubs"""
1375
+ pass
1376
+
1377
+ def _typecheckingstub__94d67335bbcb78d0b027e59764707d68d59cd3646befac6651614e419d8af6f4(
1378
+ *,
1379
+ days_after_initiation: jsii.Number,
1380
+ ) -> None:
1381
+ """Type checking stubs"""
1382
+ pass
1383
+
993
1384
  def _typecheckingstub__2bda13f500a0910d95ef795cf250698cc9bc399a6809500b0318dd2399fa0dfc(
994
1385
  *,
995
1386
  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 +1388,26 @@ def _typecheckingstub__2bda13f500a0910d95ef795cf250698cc9bc399a6809500b0318dd239
997
1388
  """Type checking stubs"""
998
1389
  pass
999
1390
 
1391
+ def _typecheckingstub__82d5e100390b1400bc989c8f7007f04e65bff5948bb5f68def580a8385603442(
1392
+ *,
1393
+ rules: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.RuleProperty, typing.Dict[builtins.str, typing.Any]]]]],
1394
+ ) -> None:
1395
+ """Type checking stubs"""
1396
+ pass
1397
+
1398
+ def _typecheckingstub__f6f9e06e8b8beb4ef85714d8e61855121cd4a13b083bc1c2de944bad75acf266(
1399
+ *,
1400
+ status: builtins.str,
1401
+ abort_incomplete_multipart_upload: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.AbortIncompleteMultipartUploadProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1402
+ expiration_in_days: typing.Optional[jsii.Number] = None,
1403
+ id: typing.Optional[builtins.str] = None,
1404
+ object_size_greater_than: typing.Optional[builtins.str] = None,
1405
+ object_size_less_than: typing.Optional[builtins.str] = None,
1406
+ prefix: typing.Optional[builtins.str] = None,
1407
+ ) -> None:
1408
+ """Type checking stubs"""
1409
+ pass
1410
+
1000
1411
  def _typecheckingstub__5104b7dd2a8f7d075aebe34991fe63f5722d4515b7d5df7eadca88aa065daee9(
1001
1412
  *,
1002
1413
  sse_algorithm: builtins.str,
@@ -1019,6 +1430,7 @@ def _typecheckingstub__997b2abc28c849393aef2f13f43682b271277998e07114f1b22407894
1019
1430
  location_name: builtins.str,
1020
1431
  bucket_encryption: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.BucketEncryptionProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1021
1432
  bucket_name: typing.Optional[builtins.str] = None,
1433
+ lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.LifecycleConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1022
1434
  ) -> None:
1023
1435
  """Type checking stubs"""
1024
1436
  pass