aws-cdk-lib 2.162.0__py3-none-any.whl → 2.163.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 (59) hide show
  1. aws_cdk/__init__.py +5 -7
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.162.0.jsii.tgz → aws-cdk-lib@2.163.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigatewayv2/__init__.py +7 -7
  5. aws_cdk/aws_appflow/__init__.py +30 -16
  6. aws_cdk/aws_appsync/__init__.py +11 -21
  7. aws_cdk/aws_autoscaling/__init__.py +123 -0
  8. aws_cdk/aws_b2bi/__init__.py +83 -57
  9. aws_cdk/aws_cloudformation/__init__.py +5 -7
  10. aws_cdk/aws_codebuild/__init__.py +19 -40
  11. aws_cdk/aws_codepipeline/__init__.py +88 -7
  12. aws_cdk/aws_cognito/__init__.py +282 -168
  13. aws_cdk/aws_dms/__init__.py +1076 -117
  14. aws_cdk/aws_docdb/__init__.py +19 -13
  15. aws_cdk/aws_dynamodb/__init__.py +43 -22
  16. aws_cdk/aws_ec2/__init__.py +1213 -38
  17. aws_cdk/aws_ecs/__init__.py +187 -18
  18. aws_cdk/aws_ecs_patterns/__init__.py +189 -27
  19. aws_cdk/aws_efs/__init__.py +56 -37
  20. aws_cdk/aws_eks/__init__.py +6 -2
  21. aws_cdk/aws_elasticache/__init__.py +118 -118
  22. aws_cdk/aws_elasticloadbalancingv2/__init__.py +21 -1
  23. aws_cdk/aws_emr/__init__.py +124 -57
  24. aws_cdk/aws_events/__init__.py +40 -0
  25. aws_cdk/aws_fms/__init__.py +757 -8
  26. aws_cdk/aws_fsx/__init__.py +245 -10
  27. aws_cdk/aws_gamelift/__init__.py +121 -0
  28. aws_cdk/aws_glue/__init__.py +344 -61
  29. aws_cdk/aws_iam/__init__.py +44 -0
  30. aws_cdk/aws_identitystore/__init__.py +4 -2
  31. aws_cdk/aws_iot/__init__.py +40 -12
  32. aws_cdk/aws_kinesis/__init__.py +239 -0
  33. aws_cdk/aws_kms/__init__.py +92 -3
  34. aws_cdk/aws_lambda/__init__.py +2 -2
  35. aws_cdk/aws_mediapackagev2/__init__.py +26 -10
  36. aws_cdk/aws_memorydb/__init__.py +7 -7
  37. aws_cdk/aws_networkfirewall/__init__.py +89 -0
  38. aws_cdk/aws_qbusiness/__init__.py +51 -7
  39. aws_cdk/aws_quicksight/__init__.py +221 -87
  40. aws_cdk/aws_rds/__init__.py +376 -75
  41. aws_cdk/aws_redshift/__init__.py +493 -13
  42. aws_cdk/aws_route53profiles/__init__.py +4 -2
  43. aws_cdk/aws_route53resolver/__init__.py +26 -60
  44. aws_cdk/aws_s3/__init__.py +104 -4
  45. aws_cdk/aws_s3express/__init__.py +73 -13
  46. aws_cdk/aws_s3outposts/__init__.py +21 -12
  47. aws_cdk/aws_sagemaker/__init__.py +4 -44
  48. aws_cdk/aws_ssmquicksetup/__init__.py +2 -2
  49. aws_cdk/aws_stepfunctions/__init__.py +529 -156
  50. aws_cdk/aws_transfer/__init__.py +15 -4
  51. aws_cdk/aws_waf/__init__.py +11 -11
  52. aws_cdk/aws_wafregional/__init__.py +12 -12
  53. aws_cdk/aws_wisdom/__init__.py +710 -5
  54. {aws_cdk_lib-2.162.0.dist-info → aws_cdk_lib-2.163.0.dist-info}/METADATA +1 -1
  55. {aws_cdk_lib-2.162.0.dist-info → aws_cdk_lib-2.163.0.dist-info}/RECORD +59 -59
  56. {aws_cdk_lib-2.162.0.dist-info → aws_cdk_lib-2.163.0.dist-info}/LICENSE +0 -0
  57. {aws_cdk_lib-2.162.0.dist-info → aws_cdk_lib-2.163.0.dist-info}/NOTICE +0 -0
  58. {aws_cdk_lib-2.162.0.dist-info → aws_cdk_lib-2.163.0.dist-info}/WHEEL +0 -0
  59. {aws_cdk_lib-2.162.0.dist-info → aws_cdk_lib-2.163.0.dist-info}/top_level.txt +0 -0
@@ -271,7 +271,7 @@ class CfnProfileAssociation(
271
271
  :param scope: Scope in which this resource is defined.
272
272
  :param id: Construct identifier for this resource (unique in its scope).
273
273
  :param name: Name of the Profile association.
274
- :param profile_id: ID of the Profile.
274
+ :param profile_id: ID of the Profile. Update to this property requires update to the ``ResourceId`` property as well, because you can only associate one Profile per VPC. For more information, see `Route 53 Profiles <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/profiles.html>`_ .
275
275
  :param resource_id: The ID of the VPC.
276
276
  :param arn: The Amazon Resource Name (ARN) of the profile association to a VPC.
277
277
  :param tags: An array of key-value pairs to apply to this resource.
@@ -430,7 +430,7 @@ class CfnProfileAssociationProps:
430
430
  '''Properties for defining a ``CfnProfileAssociation``.
431
431
 
432
432
  :param name: Name of the Profile association.
433
- :param profile_id: ID of the Profile.
433
+ :param profile_id: ID of the Profile. Update to this property requires update to the ``ResourceId`` property as well, because you can only associate one Profile per VPC. For more information, see `Route 53 Profiles <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/profiles.html>`_ .
434
434
  :param resource_id: The ID of the VPC.
435
435
  :param arn: The Amazon Resource Name (ARN) of the profile association to a VPC.
436
436
  :param tags: An array of key-value pairs to apply to this resource.
@@ -488,6 +488,8 @@ class CfnProfileAssociationProps:
488
488
  def profile_id(self) -> builtins.str:
489
489
  '''ID of the Profile.
490
490
 
491
+ Update to this property requires update to the ``ResourceId`` property as well, because you can only associate one Profile per VPC. For more information, see `Route 53 Profiles <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/profiles.html>`_ .
492
+
491
493
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53profiles-profileassociation.html#cfn-route53profiles-profileassociation-profileid
492
494
  '''
493
495
  result = self._values.get("profile_id")
@@ -3372,7 +3372,6 @@ class CfnResolverRule(
3372
3372
  rule_type="ruleType",
3373
3373
 
3374
3374
  # the properties below are optional
3375
- delegation_record="delegationRecord",
3376
3375
  domain_name="domainName",
3377
3376
  name="name",
3378
3377
  resolver_endpoint_id="resolverEndpointId",
@@ -3384,7 +3383,8 @@ class CfnResolverRule(
3384
3383
  ip="ip",
3385
3384
  ipv6="ipv6",
3386
3385
  port="port",
3387
- protocol="protocol"
3386
+ protocol="protocol",
3387
+ server_name_indication="serverNameIndication"
3388
3388
  )]
3389
3389
  )
3390
3390
  '''
@@ -3395,7 +3395,6 @@ class CfnResolverRule(
3395
3395
  id: builtins.str,
3396
3396
  *,
3397
3397
  rule_type: builtins.str,
3398
- delegation_record: typing.Optional[builtins.str] = None,
3399
3398
  domain_name: typing.Optional[builtins.str] = None,
3400
3399
  name: typing.Optional[builtins.str] = None,
3401
3400
  resolver_endpoint_id: typing.Optional[builtins.str] = None,
@@ -3406,7 +3405,6 @@ class CfnResolverRule(
3406
3405
  :param scope: Scope in which this resource is defined.
3407
3406
  :param id: Construct identifier for this resource (unique in its scope).
3408
3407
  :param rule_type: When you want to forward DNS queries for specified domain name to resolvers on your network, specify ``FORWARD`` . When you have a forwarding rule to forward DNS queries for a domain to your network and you want Resolver to process queries for a subdomain of that domain, specify ``SYSTEM`` . For example, to forward DNS queries for example.com to resolvers on your network, you create a rule and specify ``FORWARD`` for ``RuleType`` . To then have Resolver process queries for apex.example.com, you create a rule and specify ``SYSTEM`` for ``RuleType`` . Currently, only Resolver can create rules that have a value of ``RECURSIVE`` for ``RuleType`` .
3409
- :param delegation_record: The name server domain for queries to be delegated to if a query matches the delegation record.
3410
3408
  :param domain_name: DNS queries for this domain name are forwarded to the IP addresses that are specified in ``TargetIps`` . If a query matches multiple Resolver rules (example.com and www.example.com), the query is routed using the Resolver rule that contains the most specific domain name (www.example.com).
3411
3409
  :param name: The name for the Resolver rule, which you specified when you created the Resolver rule.
3412
3410
  :param resolver_endpoint_id: The ID of the endpoint that the rule is associated with.
@@ -3419,7 +3417,6 @@ class CfnResolverRule(
3419
3417
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3420
3418
  props = CfnResolverRuleProps(
3421
3419
  rule_type=rule_type,
3422
- delegation_record=delegation_record,
3423
3420
  domain_name=domain_name,
3424
3421
  name=name,
3425
3422
  resolver_endpoint_id=resolver_endpoint_id,
@@ -3543,19 +3540,6 @@ class CfnResolverRule(
3543
3540
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3544
3541
  jsii.set(self, "ruleType", value) # pyright: ignore[reportArgumentType]
3545
3542
 
3546
- @builtins.property
3547
- @jsii.member(jsii_name="delegationRecord")
3548
- def delegation_record(self) -> typing.Optional[builtins.str]:
3549
- '''The name server domain for queries to be delegated to if a query matches the delegation record.'''
3550
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "delegationRecord"))
3551
-
3552
- @delegation_record.setter
3553
- def delegation_record(self, value: typing.Optional[builtins.str]) -> None:
3554
- if __debug__:
3555
- type_hints = typing.get_type_hints(_typecheckingstub__b1126d07ce449d0d6220e3fbf183f2d786e81574a4f131914dfe0914a55bb851)
3556
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3557
- jsii.set(self, "delegationRecord", value) # pyright: ignore[reportArgumentType]
3558
-
3559
3543
  @builtins.property
3560
3544
  @jsii.member(jsii_name="domainName")
3561
3545
  def domain_name(self) -> typing.Optional[builtins.str]:
@@ -3634,6 +3618,7 @@ class CfnResolverRule(
3634
3618
  "ipv6": "ipv6",
3635
3619
  "port": "port",
3636
3620
  "protocol": "protocol",
3621
+ "server_name_indication": "serverNameIndication",
3637
3622
  },
3638
3623
  )
3639
3624
  class TargetAddressProperty:
@@ -3644,13 +3629,15 @@ class CfnResolverRule(
3644
3629
  ipv6: typing.Optional[builtins.str] = None,
3645
3630
  port: typing.Optional[builtins.str] = None,
3646
3631
  protocol: typing.Optional[builtins.str] = None,
3632
+ server_name_indication: typing.Optional[builtins.str] = None,
3647
3633
  ) -> None:
3648
3634
  '''In a `CreateResolverRule <https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html>`_ request, an array of the IPs that you want to forward DNS queries to.
3649
3635
 
3650
3636
  :param ip: One IPv4 address that you want to forward DNS queries to.
3651
3637
  :param ipv6: One IPv6 address that you want to forward DNS queries to.
3652
3638
  :param port: The port at ``Ip`` that you want to forward DNS queries to.
3653
- :param protocol: The protocols for the Resolver endpoints. DoH-FIPS is applicable for inbound endpoints only. For an inbound endpoint you can apply the protocols as follows: - Do53 and DoH in combination. - Do53 and DoH-FIPS in combination. - Do53 alone. - DoH alone. - DoH-FIPS alone. - None, which is treated as Do53. For an outbound endpoint you can apply the protocols as follows: - Do53 and DoH in combination. - Do53 alone. - DoH alone. - None, which is treated as Do53.
3639
+ :param protocol: The protocols for the target address. The protocol you choose needs to be supported by the outbound endpoint of the Resolver rule.
3640
+ :param server_name_indication: The Server Name Indication of the DoH server that you want to forward queries to. This is only used if the Protocol of the ``TargetAddress`` is ``DoH`` .
3654
3641
 
3655
3642
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverrule-targetaddress.html
3656
3643
  :exampleMetadata: fixture=_generated
@@ -3665,7 +3652,8 @@ class CfnResolverRule(
3665
3652
  ip="ip",
3666
3653
  ipv6="ipv6",
3667
3654
  port="port",
3668
- protocol="protocol"
3655
+ protocol="protocol",
3656
+ server_name_indication="serverNameIndication"
3669
3657
  )
3670
3658
  '''
3671
3659
  if __debug__:
@@ -3674,6 +3662,7 @@ class CfnResolverRule(
3674
3662
  check_type(argname="argument ipv6", value=ipv6, expected_type=type_hints["ipv6"])
3675
3663
  check_type(argname="argument port", value=port, expected_type=type_hints["port"])
3676
3664
  check_type(argname="argument protocol", value=protocol, expected_type=type_hints["protocol"])
3665
+ check_type(argname="argument server_name_indication", value=server_name_indication, expected_type=type_hints["server_name_indication"])
3677
3666
  self._values: typing.Dict[builtins.str, typing.Any] = {}
3678
3667
  if ip is not None:
3679
3668
  self._values["ip"] = ip
@@ -3683,6 +3672,8 @@ class CfnResolverRule(
3683
3672
  self._values["port"] = port
3684
3673
  if protocol is not None:
3685
3674
  self._values["protocol"] = protocol
3675
+ if server_name_indication is not None:
3676
+ self._values["server_name_indication"] = server_name_indication
3686
3677
 
3687
3678
  @builtins.property
3688
3679
  def ip(self) -> typing.Optional[builtins.str]:
@@ -3713,27 +3704,24 @@ class CfnResolverRule(
3713
3704
 
3714
3705
  @builtins.property
3715
3706
  def protocol(self) -> typing.Optional[builtins.str]:
3716
- '''The protocols for the Resolver endpoints. DoH-FIPS is applicable for inbound endpoints only.
3707
+ '''The protocols for the target address.
3717
3708
 
3718
- For an inbound endpoint you can apply the protocols as follows:
3709
+ The protocol you choose needs to be supported by the outbound endpoint of the Resolver rule.
3719
3710
 
3720
- - Do53 and DoH in combination.
3721
- - Do53 and DoH-FIPS in combination.
3722
- - Do53 alone.
3723
- - DoH alone.
3724
- - DoH-FIPS alone.
3725
- - None, which is treated as Do53.
3711
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverrule-targetaddress.html#cfn-route53resolver-resolverrule-targetaddress-protocol
3712
+ '''
3713
+ result = self._values.get("protocol")
3714
+ return typing.cast(typing.Optional[builtins.str], result)
3726
3715
 
3727
- For an outbound endpoint you can apply the protocols as follows:
3716
+ @builtins.property
3717
+ def server_name_indication(self) -> typing.Optional[builtins.str]:
3718
+ '''The Server Name Indication of the DoH server that you want to forward queries to.
3728
3719
 
3729
- - Do53 and DoH in combination.
3730
- - Do53 alone.
3731
- - DoH alone.
3732
- - None, which is treated as Do53.
3720
+ This is only used if the Protocol of the ``TargetAddress`` is ``DoH`` .
3733
3721
 
3734
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverrule-targetaddress.html#cfn-route53resolver-resolverrule-targetaddress-protocol
3722
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverrule-targetaddress.html#cfn-route53resolver-resolverrule-targetaddress-servernameindication
3735
3723
  '''
3736
- result = self._values.get("protocol")
3724
+ result = self._values.get("server_name_indication")
3737
3725
  return typing.cast(typing.Optional[builtins.str], result)
3738
3726
 
3739
3727
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
@@ -4010,7 +3998,6 @@ class CfnResolverRuleAssociationProps:
4010
3998
  jsii_struct_bases=[],
4011
3999
  name_mapping={
4012
4000
  "rule_type": "ruleType",
4013
- "delegation_record": "delegationRecord",
4014
4001
  "domain_name": "domainName",
4015
4002
  "name": "name",
4016
4003
  "resolver_endpoint_id": "resolverEndpointId",
@@ -4023,7 +4010,6 @@ class CfnResolverRuleProps:
4023
4010
  self,
4024
4011
  *,
4025
4012
  rule_type: builtins.str,
4026
- delegation_record: typing.Optional[builtins.str] = None,
4027
4013
  domain_name: typing.Optional[builtins.str] = None,
4028
4014
  name: typing.Optional[builtins.str] = None,
4029
4015
  resolver_endpoint_id: typing.Optional[builtins.str] = None,
@@ -4033,7 +4019,6 @@ class CfnResolverRuleProps:
4033
4019
  '''Properties for defining a ``CfnResolverRule``.
4034
4020
 
4035
4021
  :param rule_type: When you want to forward DNS queries for specified domain name to resolvers on your network, specify ``FORWARD`` . When you have a forwarding rule to forward DNS queries for a domain to your network and you want Resolver to process queries for a subdomain of that domain, specify ``SYSTEM`` . For example, to forward DNS queries for example.com to resolvers on your network, you create a rule and specify ``FORWARD`` for ``RuleType`` . To then have Resolver process queries for apex.example.com, you create a rule and specify ``SYSTEM`` for ``RuleType`` . Currently, only Resolver can create rules that have a value of ``RECURSIVE`` for ``RuleType`` .
4036
- :param delegation_record: The name server domain for queries to be delegated to if a query matches the delegation record.
4037
4022
  :param domain_name: DNS queries for this domain name are forwarded to the IP addresses that are specified in ``TargetIps`` . If a query matches multiple Resolver rules (example.com and www.example.com), the query is routed using the Resolver rule that contains the most specific domain name (www.example.com).
4038
4023
  :param name: The name for the Resolver rule, which you specified when you created the Resolver rule.
4039
4024
  :param resolver_endpoint_id: The ID of the endpoint that the rule is associated with.
@@ -4053,7 +4038,6 @@ class CfnResolverRuleProps:
4053
4038
  rule_type="ruleType",
4054
4039
 
4055
4040
  # the properties below are optional
4056
- delegation_record="delegationRecord",
4057
4041
  domain_name="domainName",
4058
4042
  name="name",
4059
4043
  resolver_endpoint_id="resolverEndpointId",
@@ -4065,14 +4049,14 @@ class CfnResolverRuleProps:
4065
4049
  ip="ip",
4066
4050
  ipv6="ipv6",
4067
4051
  port="port",
4068
- protocol="protocol"
4052
+ protocol="protocol",
4053
+ server_name_indication="serverNameIndication"
4069
4054
  )]
4070
4055
  )
4071
4056
  '''
4072
4057
  if __debug__:
4073
4058
  type_hints = typing.get_type_hints(_typecheckingstub__fdcaea1870aaf2dc13fe56b2d15a89d6adba2ad5884071fc618c9e4bb2c3ddec)
4074
4059
  check_type(argname="argument rule_type", value=rule_type, expected_type=type_hints["rule_type"])
4075
- check_type(argname="argument delegation_record", value=delegation_record, expected_type=type_hints["delegation_record"])
4076
4060
  check_type(argname="argument domain_name", value=domain_name, expected_type=type_hints["domain_name"])
4077
4061
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
4078
4062
  check_type(argname="argument resolver_endpoint_id", value=resolver_endpoint_id, expected_type=type_hints["resolver_endpoint_id"])
@@ -4081,8 +4065,6 @@ class CfnResolverRuleProps:
4081
4065
  self._values: typing.Dict[builtins.str, typing.Any] = {
4082
4066
  "rule_type": rule_type,
4083
4067
  }
4084
- if delegation_record is not None:
4085
- self._values["delegation_record"] = delegation_record
4086
4068
  if domain_name is not None:
4087
4069
  self._values["domain_name"] = domain_name
4088
4070
  if name is not None:
@@ -4110,15 +4092,6 @@ class CfnResolverRuleProps:
4110
4092
  assert result is not None, "Required property 'rule_type' is missing"
4111
4093
  return typing.cast(builtins.str, result)
4112
4094
 
4113
- @builtins.property
4114
- def delegation_record(self) -> typing.Optional[builtins.str]:
4115
- '''The name server domain for queries to be delegated to if a query matches the delegation record.
4116
-
4117
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverrule.html#cfn-route53resolver-resolverrule-delegationrecord
4118
- '''
4119
- result = self._values.get("delegation_record")
4120
- return typing.cast(typing.Optional[builtins.str], result)
4121
-
4122
4095
  @builtins.property
4123
4096
  def domain_name(self) -> typing.Optional[builtins.str]:
4124
4097
  '''DNS queries for this domain name are forwarded to the IP addresses that are specified in ``TargetIps`` .
@@ -4746,7 +4719,6 @@ def _typecheckingstub__7253810e416357d129df95b3c7aa9aa0f08e68de7d465658e598912cf
4746
4719
  id: builtins.str,
4747
4720
  *,
4748
4721
  rule_type: builtins.str,
4749
- delegation_record: typing.Optional[builtins.str] = None,
4750
4722
  domain_name: typing.Optional[builtins.str] = None,
4751
4723
  name: typing.Optional[builtins.str] = None,
4752
4724
  resolver_endpoint_id: typing.Optional[builtins.str] = None,
@@ -4774,12 +4746,6 @@ def _typecheckingstub__13530a5c4f7ce175ae03b85dc7d4550ae7a3cb68cb2be12c89a167e8d
4774
4746
  """Type checking stubs"""
4775
4747
  pass
4776
4748
 
4777
- def _typecheckingstub__b1126d07ce449d0d6220e3fbf183f2d786e81574a4f131914dfe0914a55bb851(
4778
- value: typing.Optional[builtins.str],
4779
- ) -> None:
4780
- """Type checking stubs"""
4781
- pass
4782
-
4783
4749
  def _typecheckingstub__3e83136a81b10aed2481c602cdca3f63e1c2bcaed82fe69b1ab2413af7c0b7c0(
4784
4750
  value: typing.Optional[builtins.str],
4785
4751
  ) -> None:
@@ -4816,6 +4782,7 @@ def _typecheckingstub__9f5d5e066bc7e887c4651fe3eebf6009eace009cdd0d99976dd16327e
4816
4782
  ipv6: typing.Optional[builtins.str] = None,
4817
4783
  port: typing.Optional[builtins.str] = None,
4818
4784
  protocol: typing.Optional[builtins.str] = None,
4785
+ server_name_indication: typing.Optional[builtins.str] = None,
4819
4786
  ) -> None:
4820
4787
  """Type checking stubs"""
4821
4788
  pass
@@ -4873,7 +4840,6 @@ def _typecheckingstub__3b7cd1048ae30851b3480dc04a365c7bd487212f9328f80bc61e1bae1
4873
4840
  def _typecheckingstub__fdcaea1870aaf2dc13fe56b2d15a89d6adba2ad5884071fc618c9e4bb2c3ddec(
4874
4841
  *,
4875
4842
  rule_type: builtins.str,
4876
- delegation_record: typing.Optional[builtins.str] = None,
4877
4843
  domain_name: typing.Optional[builtins.str] = None,
4878
4844
  name: typing.Optional[builtins.str] = None,
4879
4845
  resolver_endpoint_id: typing.Optional[builtins.str] = None,
@@ -828,6 +828,38 @@ bucket = s3.Bucket(self, "MyBucket",
828
828
  )
829
829
  ```
830
830
 
831
+ To indicate which default minimum object size behavior is applied to the lifecycle configuration, use the
832
+ `transitionDefaultMinimumObjectSize` property.
833
+
834
+ The default value of the property before September 2024 is `TransitionDefaultMinimumObjectSize.VARIES_BY_STORAGE_CLASS`
835
+ that allows objects smaller than 128 KB to be transitioned only to the S3 Glacier and S3 Glacier Deep Archive storage classes,
836
+ otherwise `TransitionDefaultMinimumObjectSize.ALL_STORAGE_CLASSES_128_K` that prevents objects smaller than 128 KB from being
837
+ transitioned to any storage class.
838
+
839
+ To customize the minimum object size for any transition you
840
+ can add a filter that specifies a custom `objectSizeGreaterThan` or `objectSizeLessThan` for `lifecycleRules`
841
+ property. Custom filters always take precedence over the default transition behavior.
842
+
843
+ ```python
844
+ s3.Bucket(self, "MyBucket",
845
+ transition_default_minimum_object_size=s3.TransitionDefaultMinimumObjectSize.VARIES_BY_STORAGE_CLASS,
846
+ lifecycle_rules=[s3.LifecycleRule(
847
+ transitions=[s3.Transition(
848
+ storage_class=s3.StorageClass.DEEP_ARCHIVE,
849
+ transition_after=Duration.days(30)
850
+ )]
851
+ ), s3.LifecycleRule(
852
+ object_size_less_than=300000,
853
+ object_size_greater_than=200000,
854
+ transitions=[s3.Transition(
855
+ storage_class=s3.StorageClass.ONE_ZONE_INFREQUENT_ACCESS,
856
+ transition_after=Duration.days(30)
857
+ )]
858
+ )
859
+ ]
860
+ )
861
+ ```
862
+
831
863
  ## Object Lock Configuration
832
864
 
833
865
  [Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-overview.html)
@@ -1898,6 +1930,7 @@ class BucketPolicyProps:
1898
1930
  "server_access_logs_prefix": "serverAccessLogsPrefix",
1899
1931
  "target_object_key_format": "targetObjectKeyFormat",
1900
1932
  "transfer_acceleration": "transferAcceleration",
1933
+ "transition_default_minimum_object_size": "transitionDefaultMinimumObjectSize",
1901
1934
  "versioned": "versioned",
1902
1935
  "website_error_document": "websiteErrorDocument",
1903
1936
  "website_index_document": "websiteIndexDocument",
@@ -1935,6 +1968,7 @@ class BucketProps:
1935
1968
  server_access_logs_prefix: typing.Optional[builtins.str] = None,
1936
1969
  target_object_key_format: typing.Optional["TargetObjectKeyFormat"] = None,
1937
1970
  transfer_acceleration: typing.Optional[builtins.bool] = None,
1971
+ transition_default_minimum_object_size: typing.Optional["TransitionDefaultMinimumObjectSize"] = None,
1938
1972
  versioned: typing.Optional[builtins.bool] = None,
1939
1973
  website_error_document: typing.Optional[builtins.str] = None,
1940
1974
  website_index_document: typing.Optional[builtins.str] = None,
@@ -1968,6 +2002,7 @@ class BucketProps:
1968
2002
  :param server_access_logs_prefix: Optional log file prefix to use for the bucket's access logs. If defined without "serverAccessLogsBucket", enables access logs to current bucket with this prefix. Default: - No log file prefix
1969
2003
  :param target_object_key_format: Optional key format for log objects. Default: - the default key format is: [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
1970
2004
  :param transfer_acceleration: Whether this bucket should have transfer acceleration turned on or not. Default: false
2005
+ :param transition_default_minimum_object_size: Indicates which default minimum object size behavior is applied to the lifecycle configuration. To customize the minimum object size for any transition you can add a filter that specifies a custom ``objectSizeGreaterThan`` or ``objectSizeLessThan`` for ``lifecycleRules`` property. Custom filters always take precedence over the default transition behavior. Default: - TransitionDefaultMinimumObjectSize.VARIES_BY_STORAGE_CLASS before September 2024, otherwise TransitionDefaultMinimumObjectSize.ALL_STORAGE_CLASSES_128_K.
1971
2006
  :param versioned: Whether this bucket should have versioning turned on or not. Default: false (unless object lock is enabled, then true)
1972
2007
  :param website_error_document: The name of the error document (e.g. "404.html") for the website. ``websiteIndexDocument`` must also be set if this is set. Default: - No error document.
1973
2008
  :param website_index_document: The name of the index document (e.g. "index.html") for the website. Enables static website hosting for this bucket. Default: - No index document.
@@ -2023,6 +2058,7 @@ class BucketProps:
2023
2058
  check_type(argname="argument server_access_logs_prefix", value=server_access_logs_prefix, expected_type=type_hints["server_access_logs_prefix"])
2024
2059
  check_type(argname="argument target_object_key_format", value=target_object_key_format, expected_type=type_hints["target_object_key_format"])
2025
2060
  check_type(argname="argument transfer_acceleration", value=transfer_acceleration, expected_type=type_hints["transfer_acceleration"])
2061
+ check_type(argname="argument transition_default_minimum_object_size", value=transition_default_minimum_object_size, expected_type=type_hints["transition_default_minimum_object_size"])
2026
2062
  check_type(argname="argument versioned", value=versioned, expected_type=type_hints["versioned"])
2027
2063
  check_type(argname="argument website_error_document", value=website_error_document, expected_type=type_hints["website_error_document"])
2028
2064
  check_type(argname="argument website_index_document", value=website_index_document, expected_type=type_hints["website_index_document"])
@@ -2081,6 +2117,8 @@ class BucketProps:
2081
2117
  self._values["target_object_key_format"] = target_object_key_format
2082
2118
  if transfer_acceleration is not None:
2083
2119
  self._values["transfer_acceleration"] = transfer_acceleration
2120
+ if transition_default_minimum_object_size is not None:
2121
+ self._values["transition_default_minimum_object_size"] = transition_default_minimum_object_size
2084
2122
  if versioned is not None:
2085
2123
  self._values["versioned"] = versioned
2086
2124
  if website_error_document is not None:
@@ -2399,6 +2437,24 @@ class BucketProps:
2399
2437
  result = self._values.get("transfer_acceleration")
2400
2438
  return typing.cast(typing.Optional[builtins.bool], result)
2401
2439
 
2440
+ @builtins.property
2441
+ def transition_default_minimum_object_size(
2442
+ self,
2443
+ ) -> typing.Optional["TransitionDefaultMinimumObjectSize"]:
2444
+ '''Indicates which default minimum object size behavior is applied to the lifecycle configuration.
2445
+
2446
+ To customize the minimum object size for any transition you can add a filter that specifies a custom
2447
+ ``objectSizeGreaterThan`` or ``objectSizeLessThan`` for ``lifecycleRules`` property. Custom filters always
2448
+ take precedence over the default transition behavior.
2449
+
2450
+ :default:
2451
+
2452
+ - TransitionDefaultMinimumObjectSize.VARIES_BY_STORAGE_CLASS before September 2024,
2453
+ otherwise TransitionDefaultMinimumObjectSize.ALL_STORAGE_CLASSES_128_K.
2454
+ '''
2455
+ result = self._values.get("transition_default_minimum_object_size")
2456
+ return typing.cast(typing.Optional["TransitionDefaultMinimumObjectSize"], result)
2457
+
2402
2458
  @builtins.property
2403
2459
  def versioned(self) -> typing.Optional[builtins.bool]:
2404
2460
  '''Whether this bucket should have versioning turned on or not.
@@ -6233,7 +6289,7 @@ class CfnBucket(
6233
6289
 
6234
6290
  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* .
6235
6291
 
6236
- :param rules: Specifies lifecycle configuration rules for an Amazon S3 bucket.
6292
+ :param rules: A lifecycle rule for individual objects in an Amazon S3 bucket.
6237
6293
  :param transition_default_minimum_object_size:
6238
6294
 
6239
6295
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfiguration.html
@@ -6319,7 +6375,7 @@ class CfnBucket(
6319
6375
  def rules(
6320
6376
  self,
6321
6377
  ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnBucket.RuleProperty"]]]:
6322
- '''Specifies lifecycle configuration rules for an Amazon S3 bucket.
6378
+ '''A lifecycle rule for individual objects in an Amazon S3 bucket.
6323
6379
 
6324
6380
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfiguration.html#cfn-s3-bucket-lifecycleconfiguration-rules
6325
6381
  '''
@@ -9451,7 +9507,7 @@ class CfnBucket(
9451
9507
  .. epigraph::
9452
9508
 
9453
9509
  - *General purpose buckets* - If you don't specify a customer managed key at configuration, Amazon S3 automatically creates an AWS KMS key ( ``aws/s3`` ) in your AWS account the first time that you add an object encrypted with SSE-KMS to a bucket. By default, Amazon S3 uses this KMS key for SSE-KMS.
9454
- - *Directory buckets* - Your SSE-KMS configuration can only support 1 `customer managed key <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk>`_ per directory bucket for the lifetime of the bucket. `AWS managed key <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk>`_ ( ``aws/s3`` ) isn't supported.
9510
+ - *Directory buckets* - Your SSE-KMS configuration can only support 1 `customer managed key <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk>`_ per directory bucket for the lifetime of the bucket. The `AWS managed key <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk>`_ ( ``aws/s3`` ) isn't supported.
9455
9511
  - *Directory buckets* - For directory buckets, there are only two supported options for server-side encryption: SSE-S3 and SSE-KMS.
9456
9512
 
9457
9513
  :param sse_algorithm: Server-side encryption algorithm to use for the default encryption. .. epigraph:: For directory buckets, there are only two supported values for server-side encryption: ``AES256`` and ``aws:kms`` .
@@ -12094,7 +12150,7 @@ class CfnStorageLens(
12094
12150
  ) -> None:
12095
12151
  '''This resource contains the details of the account-level metrics for Amazon S3 Storage Lens.
12096
12152
 
12097
- :param bucket_level: This property contains the details of the account-level bucket-level configurations for Amazon S3 Storage Lens.
12153
+ :param bucket_level: This property contains the details of the account-level bucket-level configurations for Amazon S3 Storage Lens. To enable bucket-level configurations, make sure to also set the same metrics at the account level.
12098
12154
  :param activity_metrics: This property contains the details of account-level activity metrics for S3 Storage Lens.
12099
12155
  :param advanced_cost_optimization_metrics: This property contains the details of account-level advanced cost optimization metrics for S3 Storage Lens.
12100
12156
  :param advanced_data_protection_metrics: This property contains the details of account-level advanced data protection metrics for S3 Storage Lens.
@@ -12185,6 +12241,8 @@ class CfnStorageLens(
12185
12241
  ) -> typing.Union[_IResolvable_da3f097b, "CfnStorageLens.BucketLevelProperty"]:
12186
12242
  '''This property contains the details of the account-level bucket-level configurations for Amazon S3 Storage Lens.
12187
12243
 
12244
+ To enable bucket-level configurations, make sure to also set the same metrics at the account level.
12245
+
12188
12246
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-accountlevel.html#cfn-s3-storagelens-accountlevel-bucketlevel
12189
12247
  '''
12190
12248
  result = self._values.get("bucket_level")
@@ -18642,6 +18700,42 @@ class Transition:
18642
18700
  )
18643
18701
 
18644
18702
 
18703
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_s3.TransitionDefaultMinimumObjectSize")
18704
+ class TransitionDefaultMinimumObjectSize(enum.Enum):
18705
+ '''The transition default minimum object size for lifecycle.
18706
+
18707
+ :exampleMetadata: infused
18708
+
18709
+ Example::
18710
+
18711
+ s3.Bucket(self, "MyBucket",
18712
+ transition_default_minimum_object_size=s3.TransitionDefaultMinimumObjectSize.VARIES_BY_STORAGE_CLASS,
18713
+ lifecycle_rules=[s3.LifecycleRule(
18714
+ transitions=[s3.Transition(
18715
+ storage_class=s3.StorageClass.DEEP_ARCHIVE,
18716
+ transition_after=Duration.days(30)
18717
+ )]
18718
+ ), s3.LifecycleRule(
18719
+ object_size_less_than=300000,
18720
+ object_size_greater_than=200000,
18721
+ transitions=[s3.Transition(
18722
+ storage_class=s3.StorageClass.ONE_ZONE_INFREQUENT_ACCESS,
18723
+ transition_after=Duration.days(30)
18724
+ )]
18725
+ )
18726
+ ]
18727
+ )
18728
+ '''
18729
+
18730
+ ALL_STORAGE_CLASSES_128_K = "ALL_STORAGE_CLASSES_128_K"
18731
+ '''Objects smaller than 128 KB will not transition to any storage class by default.'''
18732
+ VARIES_BY_STORAGE_CLASS = "VARIES_BY_STORAGE_CLASS"
18733
+ '''Objects smaller than 128 KB will transition to Glacier Flexible Retrieval or Glacier Deep Archive storage classes.
18734
+
18735
+ By default, all other storage classes will prevent transitions smaller than 128 KB.
18736
+ '''
18737
+
18738
+
18645
18739
  @jsii.data_type(
18646
18740
  jsii_type="aws-cdk-lib.aws_s3.VirtualHostedStyleUrlOptions",
18647
18741
  jsii_struct_bases=[],
@@ -19572,6 +19666,7 @@ class Bucket(
19572
19666
  server_access_logs_prefix: typing.Optional[builtins.str] = None,
19573
19667
  target_object_key_format: typing.Optional[TargetObjectKeyFormat] = None,
19574
19668
  transfer_acceleration: typing.Optional[builtins.bool] = None,
19669
+ transition_default_minimum_object_size: typing.Optional[TransitionDefaultMinimumObjectSize] = None,
19575
19670
  versioned: typing.Optional[builtins.bool] = None,
19576
19671
  website_error_document: typing.Optional[builtins.str] = None,
19577
19672
  website_index_document: typing.Optional[builtins.str] = None,
@@ -19607,6 +19702,7 @@ class Bucket(
19607
19702
  :param server_access_logs_prefix: Optional log file prefix to use for the bucket's access logs. If defined without "serverAccessLogsBucket", enables access logs to current bucket with this prefix. Default: - No log file prefix
19608
19703
  :param target_object_key_format: Optional key format for log objects. Default: - the default key format is: [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
19609
19704
  :param transfer_acceleration: Whether this bucket should have transfer acceleration turned on or not. Default: false
19705
+ :param transition_default_minimum_object_size: Indicates which default minimum object size behavior is applied to the lifecycle configuration. To customize the minimum object size for any transition you can add a filter that specifies a custom ``objectSizeGreaterThan`` or ``objectSizeLessThan`` for ``lifecycleRules`` property. Custom filters always take precedence over the default transition behavior. Default: - TransitionDefaultMinimumObjectSize.VARIES_BY_STORAGE_CLASS before September 2024, otherwise TransitionDefaultMinimumObjectSize.ALL_STORAGE_CLASSES_128_K.
19610
19706
  :param versioned: Whether this bucket should have versioning turned on or not. Default: false (unless object lock is enabled, then true)
19611
19707
  :param website_error_document: The name of the error document (e.g. "404.html") for the website. ``websiteIndexDocument`` must also be set if this is set. Default: - No error document.
19612
19708
  :param website_index_document: The name of the index document (e.g. "index.html") for the website. Enables static website hosting for this bucket. Default: - No index document.
@@ -19644,6 +19740,7 @@ class Bucket(
19644
19740
  server_access_logs_prefix=server_access_logs_prefix,
19645
19741
  target_object_key_format=target_object_key_format,
19646
19742
  transfer_acceleration=transfer_acceleration,
19743
+ transition_default_minimum_object_size=transition_default_minimum_object_size,
19647
19744
  versioned=versioned,
19648
19745
  website_error_document=website_error_document,
19649
19746
  website_index_document=website_index_document,
@@ -20084,6 +20181,7 @@ __all__ = [
20084
20181
  "TargetObjectKeyFormat",
20085
20182
  "TransferAccelerationUrlOptions",
20086
20183
  "Transition",
20184
+ "TransitionDefaultMinimumObjectSize",
20087
20185
  "VirtualHostedStyleUrlOptions",
20088
20186
  ]
20089
20187
 
@@ -20217,6 +20315,7 @@ def _typecheckingstub__f2ff878f2dca3dd037442155369c2fcc7bd194425c0967a7fd7bfa576
20217
20315
  server_access_logs_prefix: typing.Optional[builtins.str] = None,
20218
20316
  target_object_key_format: typing.Optional[TargetObjectKeyFormat] = None,
20219
20317
  transfer_acceleration: typing.Optional[builtins.bool] = None,
20318
+ transition_default_minimum_object_size: typing.Optional[TransitionDefaultMinimumObjectSize] = None,
20220
20319
  versioned: typing.Optional[builtins.bool] = None,
20221
20320
  website_error_document: typing.Optional[builtins.str] = None,
20222
20321
  website_index_document: typing.Optional[builtins.str] = None,
@@ -22251,6 +22350,7 @@ def _typecheckingstub__25f24cbf29544d9c579e765350a7b51ec4ec81bc2cc07a21660738a1e
22251
22350
  server_access_logs_prefix: typing.Optional[builtins.str] = None,
22252
22351
  target_object_key_format: typing.Optional[TargetObjectKeyFormat] = None,
22253
22352
  transfer_acceleration: typing.Optional[builtins.bool] = None,
22353
+ transition_default_minimum_object_size: typing.Optional[TransitionDefaultMinimumObjectSize] = None,
22254
22354
  versioned: typing.Optional[builtins.bool] = None,
22255
22355
  website_error_document: typing.Optional[builtins.str] = None,
22256
22356
  website_index_document: typing.Optional[builtins.str] = None,