aws-cdk-lib 2.194.0__py3-none-any.whl → 2.196.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 (108) hide show
  1. aws_cdk/__init__.py +435 -20
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.194.0.jsii.tgz → aws-cdk-lib@2.196.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_acmpca/__init__.py +1 -1
  5. aws_cdk/aws_amazonmq/__init__.py +2 -2
  6. aws_cdk/aws_apigateway/__init__.py +208 -70
  7. aws_cdk/aws_apigatewayv2/__init__.py +155 -24
  8. aws_cdk/aws_appconfig/__init__.py +24 -0
  9. aws_cdk/aws_applicationautoscaling/__init__.py +6 -0
  10. aws_cdk/aws_appmesh/__init__.py +42 -0
  11. aws_cdk/aws_appsync/__init__.py +92 -20
  12. aws_cdk/aws_autoscaling/__init__.py +24 -0
  13. aws_cdk/aws_backup/__init__.py +53 -14
  14. aws_cdk/aws_batch/__init__.py +72 -0
  15. aws_cdk/aws_bedrock/__init__.py +1201 -18
  16. aws_cdk/aws_budgets/__init__.py +569 -0
  17. aws_cdk/aws_certificatemanager/__init__.py +21 -0
  18. aws_cdk/aws_chatbot/__init__.py +6 -0
  19. aws_cdk/aws_cloudfront/__init__.py +277 -120
  20. aws_cdk/aws_cloudfront/experimental/__init__.py +6 -0
  21. aws_cdk/aws_cloudtrail/__init__.py +6 -0
  22. aws_cdk/aws_cloudwatch/__init__.py +18 -0
  23. aws_cdk/aws_cloudwatch_actions/__init__.py +75 -1
  24. aws_cdk/aws_codebuild/__init__.py +48 -0
  25. aws_cdk/aws_codecommit/__init__.py +6 -0
  26. aws_cdk/aws_codedeploy/__init__.py +63 -0
  27. aws_cdk/aws_codeguruprofiler/__init__.py +6 -0
  28. aws_cdk/aws_codepipeline/__init__.py +114 -0
  29. aws_cdk/aws_codepipeline_actions/__init__.py +4 -4
  30. aws_cdk/aws_codestarnotifications/__init__.py +6 -0
  31. aws_cdk/aws_cognito/__init__.py +215 -10
  32. aws_cdk/aws_cognito_identitypool/__init__.py +6 -0
  33. aws_cdk/aws_config/__init__.py +36 -0
  34. aws_cdk/aws_datazone/__init__.py +1013 -100
  35. aws_cdk/aws_docdb/__init__.py +27 -3
  36. aws_cdk/aws_dsql/__init__.py +29 -12
  37. aws_cdk/aws_dynamodb/__init__.py +25 -11
  38. aws_cdk/aws_ec2/__init__.py +408 -23
  39. aws_cdk/aws_ecr/__init__.py +22 -14
  40. aws_cdk/aws_ecr_assets/__init__.py +6 -0
  41. aws_cdk/aws_ecs/__init__.py +116 -34
  42. aws_cdk/aws_ecs_patterns/__init__.py +58 -0
  43. aws_cdk/aws_efs/__init__.py +12 -0
  44. aws_cdk/aws_eks/__init__.py +42 -0
  45. aws_cdk/aws_elasticloadbalancing/__init__.py +6 -0
  46. aws_cdk/aws_elasticloadbalancingv2/__init__.py +112 -9
  47. aws_cdk/aws_elasticsearch/__init__.py +9 -0
  48. aws_cdk/aws_events/__init__.py +36 -0
  49. aws_cdk/aws_events_targets/__init__.py +10 -10
  50. aws_cdk/aws_fsx/__init__.py +8 -3
  51. aws_cdk/aws_globalaccelerator/__init__.py +18 -0
  52. aws_cdk/aws_iam/__init__.py +66 -0
  53. aws_cdk/aws_imagebuilder/__init__.py +181 -26
  54. aws_cdk/aws_inspector/__init__.py +6 -0
  55. aws_cdk/aws_kinesis/__init__.py +19 -1
  56. aws_cdk/aws_kinesisanalytics/__init__.py +7 -7
  57. aws_cdk/aws_kinesisanalyticsv2/__init__.py +7 -7
  58. aws_cdk/aws_kinesisfirehose/__init__.py +6 -0
  59. aws_cdk/aws_kms/__init__.py +16 -4
  60. aws_cdk/aws_lambda/__init__.py +76 -6
  61. aws_cdk/aws_lambda_nodejs/__init__.py +6 -0
  62. aws_cdk/aws_logs/__init__.py +155 -12
  63. aws_cdk/aws_medialive/__init__.py +4 -6
  64. aws_cdk/aws_mediatailor/__init__.py +115 -0
  65. aws_cdk/aws_oam/__init__.py +43 -10
  66. aws_cdk/aws_opensearchservice/__init__.py +12 -0
  67. aws_cdk/aws_qbusiness/__init__.py +2 -2
  68. aws_cdk/aws_quicksight/__init__.py +22 -22
  69. aws_cdk/aws_rds/__init__.py +347 -36
  70. aws_cdk/aws_redshiftserverless/__init__.py +7 -7
  71. aws_cdk/aws_route53/__init__.py +735 -33
  72. aws_cdk/aws_route53_targets/__init__.py +62 -1
  73. aws_cdk/aws_route53profiles/__init__.py +1 -1
  74. aws_cdk/aws_s3/__init__.py +37 -10
  75. aws_cdk/aws_s3_deployment/__init__.py +6 -0
  76. aws_cdk/aws_s3_notifications/__init__.py +5 -5
  77. aws_cdk/aws_sagemaker/__init__.py +452 -8
  78. aws_cdk/aws_scheduler/__init__.py +12 -0
  79. aws_cdk/aws_secretsmanager/__init__.py +24 -0
  80. aws_cdk/aws_servicecatalog/__init__.py +24 -0
  81. aws_cdk/aws_servicediscovery/__init__.py +48 -0
  82. aws_cdk/aws_ses/__init__.py +133 -33
  83. aws_cdk/aws_signer/__init__.py +6 -0
  84. aws_cdk/aws_sns/__init__.py +18 -0
  85. aws_cdk/aws_sns_subscriptions/__init__.py +6 -0
  86. aws_cdk/aws_sqs/__init__.py +12 -0
  87. aws_cdk/aws_ssm/__init__.py +12 -0
  88. aws_cdk/aws_ssmcontacts/__init__.py +53 -2
  89. aws_cdk/aws_ssmguiconnect/__init__.py +544 -0
  90. aws_cdk/aws_stepfunctions/__init__.py +153 -7
  91. aws_cdk/aws_stepfunctions_tasks/__init__.py +46 -10
  92. aws_cdk/aws_synthetics/__init__.py +32 -0
  93. aws_cdk/aws_verifiedpermissions/__init__.py +168 -3
  94. aws_cdk/aws_vpclattice/__init__.py +3 -1
  95. aws_cdk/aws_wisdom/__init__.py +6 -4
  96. aws_cdk/cloud_assembly_schema/__init__.py +7 -1
  97. aws_cdk/custom_resources/__init__.py +18 -0
  98. aws_cdk/cx_api/__init__.py +33 -0
  99. aws_cdk/lambda_layer_awscli/__init__.py +6 -0
  100. aws_cdk/lambda_layer_node_proxy_agent/__init__.py +6 -0
  101. aws_cdk/pipelines/__init__.py +10 -10
  102. aws_cdk/triggers/__init__.py +6 -0
  103. {aws_cdk_lib-2.194.0.dist-info → aws_cdk_lib-2.196.0.dist-info}/METADATA +84 -6
  104. {aws_cdk_lib-2.194.0.dist-info → aws_cdk_lib-2.196.0.dist-info}/RECORD +108 -107
  105. {aws_cdk_lib-2.194.0.dist-info → aws_cdk_lib-2.196.0.dist-info}/LICENSE +0 -0
  106. {aws_cdk_lib-2.194.0.dist-info → aws_cdk_lib-2.196.0.dist-info}/NOTICE +0 -0
  107. {aws_cdk_lib-2.194.0.dist-info → aws_cdk_lib-2.196.0.dist-info}/WHEEL +0 -0
  108. {aws_cdk_lib-2.194.0.dist-info → aws_cdk_lib-2.196.0.dist-info}/top_level.txt +0 -0
@@ -225,6 +225,47 @@ route53.ARecord(self, "AliasRecord",
225
225
  )
226
226
  ```
227
227
 
228
+ If Elastic Beanstalk environment URL is not avaiable at synth time, you can specify Hosted Zone ID of the target
229
+
230
+ ```python
231
+ from aws_cdk.region_info import RegionInfo
232
+
233
+ # zone: route53.HostedZone
234
+ # ebs_environment_url: str
235
+
236
+
237
+ route53.ARecord(self, "AliasRecord",
238
+ zone=zone,
239
+ target=route53.RecordTarget.from_alias(
240
+ targets.ElasticBeanstalkEnvironmentEndpointTarget(ebs_environment_url, {
241
+ "hosted_zone_id": RegionInfo.get("us-east-1").ebs_env_endpoint_hosted_zone_id
242
+ }))
243
+ )
244
+ ```
245
+
246
+ Or you can specify Stack region for CDK to generate the correct Hosted Zone ID.
247
+
248
+ ```python
249
+ from aws_cdk import App
250
+
251
+ # app: App
252
+ # zone: route53.HostedZone
253
+ # ebs_environment_url: str
254
+
255
+
256
+ stack = Stack(app, "my-stack",
257
+ env=Environment(
258
+ region="us-east-1"
259
+ )
260
+ )
261
+
262
+ route53.ARecord(stack, "AliasRecord",
263
+ zone=zone,
264
+ target=route53.RecordTarget.from_alias(
265
+ targets.ElasticBeanstalkEnvironmentEndpointTarget(ebs_environment_url))
266
+ )
267
+ ```
268
+
228
269
  See the documentation of `aws-cdk-lib/aws-route53` for more information.
229
270
  '''
230
271
  from pkgutil import extend_path
@@ -652,6 +693,8 @@ class ElasticBeanstalkEnvironmentEndpointTarget(
652
693
 
653
694
  Example::
654
695
 
696
+ from aws_cdk.region_info import RegionInfo
697
+
655
698
  # zone: route53.HostedZone
656
699
  # ebs_environment_url: str
657
700
 
@@ -660,7 +703,7 @@ class ElasticBeanstalkEnvironmentEndpointTarget(
660
703
  zone=zone,
661
704
  target=route53.RecordTarget.from_alias(
662
705
  targets.ElasticBeanstalkEnvironmentEndpointTarget(ebs_environment_url, {
663
- "evaluate_target_health": True
706
+ "hosted_zone_id": RegionInfo.get("us-east-1").ebs_env_endpoint_hosted_zone_id
664
707
  }))
665
708
  )
666
709
  '''
@@ -818,6 +861,15 @@ class IAliasRecordTargetProps(typing_extensions.Protocol):
818
861
  '''
819
862
  ...
820
863
 
864
+ @builtins.property
865
+ @jsii.member(jsii_name="hostedZoneId")
866
+ def hosted_zone_id(self) -> typing.Optional[builtins.str]:
867
+ '''Target Hosted zone ID.
868
+
869
+ :default: - hosted zone ID for the EBS endpoint will be retrieved based on the stack's region.
870
+ '''
871
+ ...
872
+
821
873
 
822
874
  class _IAliasRecordTargetPropsProxy:
823
875
  '''Properties the alias record target.'''
@@ -833,6 +885,15 @@ class _IAliasRecordTargetPropsProxy:
833
885
  '''
834
886
  return typing.cast(typing.Optional[builtins.bool], jsii.get(self, "evaluateTargetHealth"))
835
887
 
888
+ @builtins.property
889
+ @jsii.member(jsii_name="hostedZoneId")
890
+ def hosted_zone_id(self) -> typing.Optional[builtins.str]:
891
+ '''Target Hosted zone ID.
892
+
893
+ :default: - hosted zone ID for the EBS endpoint will be retrieved based on the stack's region.
894
+ '''
895
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "hostedZoneId"))
896
+
836
897
  # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
837
898
  typing.cast(typing.Any, IAliasRecordTargetProps).__jsii_proxy_class__ = lambda : _IAliasRecordTargetPropsProxy
838
899
 
@@ -714,7 +714,7 @@ class CfnProfileResourceAssociation(
714
714
  @builtins.property
715
715
  @jsii.member(jsii_name="attrResourceType")
716
716
  def attr_resource_type(self) -> builtins.str:
717
- '''Resource type, such as a private hosted zone, or DNS Firewall rule group.
717
+ '''Resource type, such as a private hosted zone, interface VPC endpoint, or DNS Firewall rule group.
718
718
 
719
719
  :cloudformationAttribute: ResourceType
720
720
  '''
@@ -183,8 +183,8 @@ To use a bucket in a different stack in the same CDK application, pass the objec
183
183
  #
184
184
  class Producer(Stack):
185
185
 
186
- def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):
187
- super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)
186
+ def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None, propertyInjectors=None):
187
+ super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation, propertyInjectors=propertyInjectors)
188
188
 
189
189
  bucket = s3.Bucket(self, "MyBucket",
190
190
  removal_policy=cdk.RemovalPolicy.DESTROY
@@ -195,8 +195,8 @@ class Producer(Stack):
195
195
  # Stack that consumes the bucket
196
196
  #
197
197
  class Consumer(Stack):
198
- def __init__(self, scope, id, *, userBucket, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):
199
- super().__init__(scope, id, userBucket=userBucket, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)
198
+ def __init__(self, scope, id, *, userBucket, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None, propertyInjectors=None):
199
+ super().__init__(scope, id, userBucket=userBucket, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation, propertyInjectors=propertyInjectors)
200
200
 
201
201
  user = iam.User(self, "MyUser")
202
202
  user_bucket.grant_read_write(user)
@@ -360,19 +360,19 @@ bucket = s3.Bucket(self, "MyBlockedBucket",
360
360
  )
361
361
  ```
362
362
 
363
- Block and ignore public ACLs:
363
+ Block and ignore public ACLs (other options remain unblocked):
364
364
 
365
365
  ```python
366
366
  bucket = s3.Bucket(self, "MyBlockedBucket",
367
- block_public_access=s3.BlockPublicAccess.BLOCK_ACLS
367
+ block_public_access=s3.BlockPublicAccess.BLOCK_ACLS_ONLY
368
368
  )
369
369
  ```
370
370
 
371
- Alternatively, specify the settings manually:
371
+ Alternatively, specify the settings manually (unspecified options will remain blocked):
372
372
 
373
373
  ```python
374
374
  bucket = s3.Bucket(self, "MyBlockedBucket",
375
- block_public_access=s3.BlockPublicAccess(block_public_policy=True)
375
+ block_public_access=s3.BlockPublicAccess(block_public_policy=False)
376
376
  )
377
377
  ```
378
378
 
@@ -1075,7 +1075,7 @@ class BlockPublicAccess(
1075
1075
  Example::
1076
1076
 
1077
1077
  bucket = s3.Bucket(self, "MyBlockedBucket",
1078
- block_public_access=s3.BlockPublicAccess.BLOCK_ALL
1078
+ block_public_access=s3.BlockPublicAccess(block_public_policy=False)
1079
1079
  )
1080
1080
  '''
1081
1081
 
@@ -1105,11 +1105,26 @@ class BlockPublicAccess(
1105
1105
  @jsii.python.classproperty
1106
1106
  @jsii.member(jsii_name="BLOCK_ACLS")
1107
1107
  def BLOCK_ACLS(cls) -> "BlockPublicAccess":
1108
+ '''
1109
+ :deprecated: Use ``BLOCK_ACLS_ONLY`` instead.
1110
+
1111
+ :stability: deprecated
1112
+ '''
1108
1113
  return typing.cast("BlockPublicAccess", jsii.sget(cls, "BLOCK_ACLS"))
1109
1114
 
1115
+ @jsii.python.classproperty
1116
+ @jsii.member(jsii_name="BLOCK_ACLS_ONLY")
1117
+ def BLOCK_ACLS_ONLY(cls) -> "BlockPublicAccess":
1118
+ '''Use this option if you want to only block the ACLs, using this will set blockPublicPolicy and restrictPublicBuckets to false.'''
1119
+ return typing.cast("BlockPublicAccess", jsii.sget(cls, "BLOCK_ACLS_ONLY"))
1120
+
1110
1121
  @jsii.python.classproperty
1111
1122
  @jsii.member(jsii_name="BLOCK_ALL")
1112
1123
  def BLOCK_ALL(cls) -> "BlockPublicAccess":
1124
+ '''Use this option if you want to ensure every public access method is blocked.
1125
+
1126
+ However keep in mind that this is the default state of an S3 bucket, and leaving blockPublicAccess undefined would also work.
1127
+ '''
1113
1128
  return typing.cast("BlockPublicAccess", jsii.sget(cls, "BLOCK_ALL"))
1114
1129
 
1115
1130
  @builtins.property
@@ -1191,7 +1206,7 @@ class BlockPublicAccessOptions:
1191
1206
  Example::
1192
1207
 
1193
1208
  bucket = s3.Bucket(self, "MyBlockedBucket",
1194
- block_public_access=s3.BlockPublicAccess(block_public_policy=True)
1209
+ block_public_access=s3.BlockPublicAccess(block_public_policy=False)
1195
1210
  )
1196
1211
  '''
1197
1212
  if __debug__:
@@ -1919,6 +1934,12 @@ class BucketPolicy(
1919
1934
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
1920
1935
  return typing.cast(None, jsii.invoke(self, "applyRemovalPolicy", [removal_policy]))
1921
1936
 
1937
+ @jsii.python.classproperty
1938
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
1939
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
1940
+ '''Uniquely identifies this class.'''
1941
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
1942
+
1922
1943
  @builtins.property
1923
1944
  @jsii.member(jsii_name="bucket")
1924
1945
  def bucket(self) -> "IBucket":
@@ -21035,6 +21056,12 @@ class Bucket(
21035
21056
 
21036
21057
  return typing.cast(None, jsii.invoke(self, "addMetric", [metric]))
21037
21058
 
21059
+ @jsii.python.classproperty
21060
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
21061
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
21062
+ '''Uniquely identifies this class.'''
21063
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
21064
+
21038
21065
  @builtins.property
21039
21066
  @jsii.member(jsii_name="bucketArn")
21040
21067
  def bucket_arn(self) -> builtins.str:
@@ -781,6 +781,12 @@ class BucketDeployment(
781
781
  check_type(argname="argument source", value=source, expected_type=type_hints["source"])
782
782
  return typing.cast(None, jsii.invoke(self, "addSource", [source]))
783
783
 
784
+ @jsii.python.classproperty
785
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
786
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
787
+ '''Uniquely identifies this class.'''
788
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
789
+
784
790
  @builtins.property
785
791
  @jsii.member(jsii_name="deployedBucket")
786
792
  def deployed_bucket(self) -> _IBucket_42e086fd:
@@ -173,7 +173,7 @@ class SnsDestination(
173
173
  @jsii.member(jsii_name="bind")
174
174
  def bind(
175
175
  self,
176
- _scope: _constructs_77d1e7e8.Construct,
176
+ scope: _constructs_77d1e7e8.Construct,
177
177
  bucket: _IBucket_42e086fd,
178
178
  ) -> _BucketNotificationDestinationConfig_a4c4f83d:
179
179
  '''Registers this resource to receive notifications for the specified bucket.
@@ -182,14 +182,14 @@ class SnsDestination(
182
182
  pair and the result will be cached, so there is no need to implement
183
183
  idempotency in each destination.
184
184
 
185
- :param _scope: -
185
+ :param scope: -
186
186
  :param bucket: -
187
187
  '''
188
188
  if __debug__:
189
189
  type_hints = typing.get_type_hints(_typecheckingstub__3553ece4b599ce7e526b55722477cb04771e1907840471521f08a9dbdea726a1)
190
- check_type(argname="argument _scope", value=_scope, expected_type=type_hints["_scope"])
190
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
191
191
  check_type(argname="argument bucket", value=bucket, expected_type=type_hints["bucket"])
192
- return typing.cast(_BucketNotificationDestinationConfig_a4c4f83d, jsii.invoke(self, "bind", [_scope, bucket]))
192
+ return typing.cast(_BucketNotificationDestinationConfig_a4c4f83d, jsii.invoke(self, "bind", [scope, bucket]))
193
193
 
194
194
 
195
195
  @jsii.implements(_IBucketNotificationDestination_ae5ca51a)
@@ -268,7 +268,7 @@ def _typecheckingstub__88bc302a2eb7b4d1c7dc00b1564ab4c536d2626942f2cec60d543582b
268
268
  pass
269
269
 
270
270
  def _typecheckingstub__3553ece4b599ce7e526b55722477cb04771e1907840471521f08a9dbdea726a1(
271
- _scope: _constructs_77d1e7e8.Construct,
271
+ scope: _constructs_77d1e7e8.Construct,
272
272
  bucket: _IBucket_42e086fd,
273
273
  ) -> None:
274
274
  """Type checking stubs"""