aws-cdk-lib 2.175.1__py3-none-any.whl → 2.177.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 (64) hide show
  1. aws_cdk/__init__.py +26 -7
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.175.1.jsii.tgz → aws-cdk-lib@2.177.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigatewayv2_integrations/__init__.py +161 -9
  5. aws_cdk/aws_appconfig/__init__.py +106 -24
  6. aws_cdk/aws_appsync/__init__.py +4 -3
  7. aws_cdk/aws_backup/__init__.py +18 -84
  8. aws_cdk/aws_batch/__init__.py +4 -2
  9. aws_cdk/aws_bedrock/__init__.py +5395 -2508
  10. aws_cdk/aws_cleanrooms/__init__.py +77 -34
  11. aws_cdk/aws_cloudformation/__init__.py +4 -2
  12. aws_cdk/aws_cloudfront/__init__.py +12 -2
  13. aws_cdk/aws_cloudfront/experimental/__init__.py +1 -1
  14. aws_cdk/aws_cloudfront_origins/__init__.py +33 -2
  15. aws_cdk/aws_cloudwatch/__init__.py +53 -49
  16. aws_cdk/aws_codebuild/__init__.py +36 -0
  17. aws_cdk/aws_codepipeline/__init__.py +35 -0
  18. aws_cdk/aws_cognito/__init__.py +285 -253
  19. aws_cdk/aws_customerprofiles/__init__.py +1060 -0
  20. aws_cdk/aws_datazone/__init__.py +195 -125
  21. aws_cdk/aws_docdb/__init__.py +29 -9
  22. aws_cdk/aws_dynamodb/__init__.py +77 -58
  23. aws_cdk/aws_ec2/__init__.py +16 -11
  24. aws_cdk/aws_ecs/__init__.py +127 -43
  25. aws_cdk/aws_efs/__init__.py +5 -5
  26. aws_cdk/aws_eks/__init__.py +24 -3
  27. aws_cdk/aws_elasticloadbalancingv2/__init__.py +41 -5
  28. aws_cdk/aws_emrserverless/__init__.py +86 -0
  29. aws_cdk/aws_fms/__init__.py +42 -0
  30. aws_cdk/aws_gamelift/__init__.py +8 -10
  31. aws_cdk/aws_healthlake/__init__.py +36 -40
  32. aws_cdk/aws_iam/__init__.py +8 -0
  33. aws_cdk/aws_imagebuilder/__init__.py +62 -48
  34. aws_cdk/aws_lambda/__init__.py +21 -8
  35. aws_cdk/aws_lambda_event_sources/__init__.py +9 -9
  36. aws_cdk/aws_lex/__init__.py +105 -0
  37. aws_cdk/aws_logs/__init__.py +59 -59
  38. aws_cdk/aws_mediaconvert/__init__.py +7 -3
  39. aws_cdk/aws_notifications/__init__.py +1390 -0
  40. aws_cdk/aws_notificationscontacts/__init__.py +593 -0
  41. aws_cdk/aws_organizations/__init__.py +5 -9
  42. aws_cdk/aws_rds/__init__.py +99 -30
  43. aws_cdk/aws_redshift/__init__.py +9 -5
  44. aws_cdk/aws_resiliencehub/__init__.py +41 -0
  45. aws_cdk/aws_route53/__init__.py +4 -4
  46. aws_cdk/aws_route53_targets/__init__.py +15 -15
  47. aws_cdk/aws_s3/__init__.py +794 -5
  48. aws_cdk/aws_s3_notifications/__init__.py +5 -5
  49. aws_cdk/aws_s3tables/__init__.py +2 -2
  50. aws_cdk/aws_ses/__init__.py +25 -4
  51. aws_cdk/aws_sns/__init__.py +39 -0
  52. aws_cdk/aws_ssm/__init__.py +14 -7
  53. aws_cdk/aws_ssmquicksetup/__init__.py +84 -84
  54. aws_cdk/aws_sso/__init__.py +9 -5
  55. aws_cdk/aws_synthetics/__init__.py +105 -32
  56. aws_cdk/cloud_assembly_schema/__init__.py +63 -4
  57. aws_cdk/cx_api/__init__.py +69 -8
  58. {aws_cdk_lib-2.175.1.dist-info → aws_cdk_lib-2.177.0.dist-info}/METADATA +3 -3
  59. {aws_cdk_lib-2.175.1.dist-info → aws_cdk_lib-2.177.0.dist-info}/RECORD +63 -62
  60. aws_cdk/aws_iot1click/__init__.py +0 -1193
  61. {aws_cdk_lib-2.175.1.dist-info → aws_cdk_lib-2.177.0.dist-info}/LICENSE +0 -0
  62. {aws_cdk_lib-2.175.1.dist-info → aws_cdk_lib-2.177.0.dist-info}/NOTICE +0 -0
  63. {aws_cdk_lib-2.175.1.dist-info → aws_cdk_lib-2.177.0.dist-info}/WHEEL +0 -0
  64. {aws_cdk_lib-2.175.1.dist-info → aws_cdk_lib-2.177.0.dist-info}/top_level.txt +0 -0
@@ -159,8 +159,7 @@ To learn more about these underlying resources, see
159
159
  [Synthetics Canaries Deletion](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/synthetics_canaries_deletion.html).
160
160
 
161
161
  In the CDK, you can configure your canary to delete the underlying lambda function when the canary is deleted.
162
- This can be provisioned by setting `cleanup: Cleanup.LAMBDA`. Note that this
163
- will create a custom resource under the hood that takes care of the lambda deletion for you.
162
+ This can be provisioned by setting `provisionedResourceCleanup` to `true`.
164
163
 
165
164
  ```python
166
165
  canary = synthetics.Canary(self, "Canary",
@@ -168,7 +167,7 @@ canary = synthetics.Canary(self, "Canary",
168
167
  handler="index.handler",
169
168
  code=synthetics.Code.from_inline("/* Synthetics handler code")
170
169
  ),
171
- cleanup=synthetics.Cleanup.LAMBDA,
170
+ provisioned_resource_cleanup=True,
172
171
  runtime=synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_6_2
173
172
  )
174
173
  ```
@@ -176,6 +175,8 @@ canary = synthetics.Canary(self, "Canary",
176
175
  > Note: To properly clean up your canary on deletion, you still have to manually delete other resources
177
176
  > like S3 buckets and CloudWatch logs.
178
177
 
178
+ > Note: The deletion of Lambda resources can also be performed by setting the `cleanup` argument to `Cleanup.LAMBDA`. However, this is an outdated argument that uses custom resources and is currently deprecated.
179
+
179
180
  ### Configuring the Canary Script
180
181
 
181
182
  To configure the script the canary executes, use the `test` property. The `test` property accepts a `Test` instance that can be initialized by the `Test` class static methods. Currently, the only implemented method is `Test.custom()`, which allows you to bring your own code. In the future, other methods will be added. `Test.custom()` accepts `code` and `handler` properties -- both are required by Synthetics to create a lambda function on your behalf.
@@ -183,8 +184,8 @@ To configure the script the canary executes, use the `test` property. The `test`
183
184
  The `synthetics.Code` class exposes static methods to bundle your code artifacts:
184
185
 
185
186
  * `code.fromInline(code)` - specify an inline script.
186
- * `code.fromAsset(path)` - specify a .zip file or a directory in the local filesystem which will be zipped and uploaded to S3 on deployment. See the above Note for directory structure.
187
- * `code.fromBucket(bucket, key[, objectVersion])` - specify an S3 object that contains the .zip file of your runtime code. See the above Note for directory structure.
187
+ * `code.fromAsset(path)` - specify a .zip file or a directory in the local filesystem which will be zipped and uploaded to S3 on deployment. See the below Note for directory structure.
188
+ * `code.fromBucket(bucket, key[, objectVersion])` - specify an S3 object that contains the .zip file of your runtime code. See the below Note for directory structure.
188
189
 
189
190
  Using the `Code` class static initializers:
190
191
 
@@ -218,7 +219,8 @@ synthetics.Canary(self, "Bucket Canary",
218
219
  )
219
220
  ```
220
221
 
221
- > **Note:** Synthetics have a specified folder structure for canaries. For Node scripts supplied via `code.fromAsset()` or `code.fromBucket()`, the canary resource requires the following folder structure:
222
+ > **Note:** Synthetics have a specified folder structure for canaries.
223
+ > For Node with puppeteer scripts supplied via `code.fromAsset()` or `code.fromBucket()`, the canary resource requires the following folder structure:
222
224
  >
223
225
  > ```plaintext
224
226
  > canary/
@@ -227,6 +229,19 @@ synthetics.Canary(self, "Bucket Canary",
227
229
  > ├── <filename>.js
228
230
  > ```
229
231
  >
232
+ > For Node with playwright scripts supplied via `code.fromAsset()` or `code.fromBucket()`, the canary resource requires the following folder structure:
233
+ >
234
+ > ```plaintext
235
+ > canary/
236
+ > ├── <filename>.js,.mjs,.cjs
237
+ > ├─some/dir/path
238
+ > ├── <filename>.js,.mjs,.cjs
239
+ > ```
240
+ >
241
+ > If `<filename>.js` is placed in the canary directory, the handler should be specified as `filename.handler`.
242
+ > However, if it is placed in the `some/dir/path` directory, the handler should be specified as `some/dir/path/filename.handler`.
243
+ > For more information, see Synthetics [docs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Synthetics_WritingCanary_Nodejs_Playwright.html).
244
+ >
230
245
  > For Python scripts supplied via `code.fromAsset()` or `code.fromBucket()`, the canary resource requires the following folder structure:
231
246
  >
232
247
  > ```plaintext
@@ -561,6 +576,7 @@ class Canary(
561
576
  environment_variables: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
562
577
  failure_retention_period: typing.Optional[_Duration_4839e8c3] = None,
563
578
  memory: typing.Optional[_Size_7b441c34] = None,
579
+ provisioned_resource_cleanup: typing.Optional[builtins.bool] = None,
564
580
  role: typing.Optional[_IRole_235f5d8e] = None,
565
581
  schedule: typing.Optional["Schedule"] = None,
566
582
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
@@ -582,10 +598,11 @@ class Canary(
582
598
  :param artifacts_bucket_lifecycle_rules: Lifecycle rules for the generated canary artifact bucket. Has no effect if a bucket is passed to ``artifactsBucketLocation``. If you pass a bucket to ``artifactsBucketLocation``, you can add lifecycle rules to the bucket itself. Default: - no rules applied to the generated bucket.
583
599
  :param artifacts_bucket_location: The s3 location that stores the data of the canary runs. Default: - A new s3 bucket will be created without a prefix.
584
600
  :param canary_name: The name of the canary. Be sure to give it a descriptive name that distinguishes it from other canaries in your account. Do not include secrets or proprietary information in your canary name. The canary name makes up part of the canary ARN, which is included in outbound calls over the internet. Default: - A unique name will be generated from the construct ID
585
- :param cleanup: Specify the underlying resources to be cleaned up when the canary is deleted. Using ``Cleanup.LAMBDA`` will create a Custom Resource to achieve this. Default: Cleanup.NOTHING
601
+ :param cleanup: (deprecated) Specify the underlying resources to be cleaned up when the canary is deleted. Using ``Cleanup.LAMBDA`` will create a Custom Resource to achieve this. Default: Cleanup.NOTHING
586
602
  :param environment_variables: Key-value pairs that the Synthetics caches and makes available for your canary scripts. Use environment variables to apply configuration changes, such as test and production environment configurations, without changing your Canary script source code. Default: - No environment variables.
587
603
  :param failure_retention_period: How many days should failed runs be retained. Default: Duration.days(31)
588
604
  :param memory: The maximum amount of memory that the canary can use while running. This value must be a multiple of 64 Mib. The range is 960 MiB to 3008 MiB. Default: Size.mebibytes(1024)
605
+ :param provisioned_resource_cleanup: Whether to also delete the Lambda functions and layers used by this canary when the canary is deleted. Default: undefined - the default behavior is to not delete the Lambda functions and layers
589
606
  :param role: Canary execution role. This is the role that will be assumed by the canary upon execution. It controls the permissions that the canary will have. The role must be assumable by the AWS Lambda service principal. If not supplied, a role will be created with all the required permissions. If you provide a Role, you must add the required permissions. Default: - A unique role will be generated for this canary. You can add permissions to roles by calling 'addToRolePolicy'.
590
607
  :param schedule: Specify the schedule for how often the canary runs. For example, if you set ``schedule`` to ``rate(10 minutes)``, then the canary will run every 10 minutes. You can set the schedule with ``Schedule.rate(Duration)`` (recommended) or you can specify an expression using ``Schedule.expression()``. Default: 'rate(5 minutes)'
591
608
  :param security_groups: The list of security groups to associate with the canary's network interfaces. You must provide ``vpc`` when using this prop. Default: - If the canary is placed within a VPC and a security group is not specified a dedicated security group will be created for this canary.
@@ -613,6 +630,7 @@ class Canary(
613
630
  environment_variables=environment_variables,
614
631
  failure_retention_period=failure_retention_period,
615
632
  memory=memory,
633
+ provisioned_resource_cleanup=provisioned_resource_cleanup,
616
634
  role=role,
617
635
  schedule=schedule,
618
636
  security_groups=security_groups,
@@ -828,6 +846,7 @@ class Canary(
828
846
  "environment_variables": "environmentVariables",
829
847
  "failure_retention_period": "failureRetentionPeriod",
830
848
  "memory": "memory",
849
+ "provisioned_resource_cleanup": "provisionedResourceCleanup",
831
850
  "role": "role",
832
851
  "schedule": "schedule",
833
852
  "security_groups": "securityGroups",
@@ -855,6 +874,7 @@ class CanaryProps:
855
874
  environment_variables: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
856
875
  failure_retention_period: typing.Optional[_Duration_4839e8c3] = None,
857
876
  memory: typing.Optional[_Size_7b441c34] = None,
877
+ provisioned_resource_cleanup: typing.Optional[builtins.bool] = None,
858
878
  role: typing.Optional[_IRole_235f5d8e] = None,
859
879
  schedule: typing.Optional["Schedule"] = None,
860
880
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
@@ -875,10 +895,11 @@ class CanaryProps:
875
895
  :param artifacts_bucket_lifecycle_rules: Lifecycle rules for the generated canary artifact bucket. Has no effect if a bucket is passed to ``artifactsBucketLocation``. If you pass a bucket to ``artifactsBucketLocation``, you can add lifecycle rules to the bucket itself. Default: - no rules applied to the generated bucket.
876
896
  :param artifacts_bucket_location: The s3 location that stores the data of the canary runs. Default: - A new s3 bucket will be created without a prefix.
877
897
  :param canary_name: The name of the canary. Be sure to give it a descriptive name that distinguishes it from other canaries in your account. Do not include secrets or proprietary information in your canary name. The canary name makes up part of the canary ARN, which is included in outbound calls over the internet. Default: - A unique name will be generated from the construct ID
878
- :param cleanup: Specify the underlying resources to be cleaned up when the canary is deleted. Using ``Cleanup.LAMBDA`` will create a Custom Resource to achieve this. Default: Cleanup.NOTHING
898
+ :param cleanup: (deprecated) Specify the underlying resources to be cleaned up when the canary is deleted. Using ``Cleanup.LAMBDA`` will create a Custom Resource to achieve this. Default: Cleanup.NOTHING
879
899
  :param environment_variables: Key-value pairs that the Synthetics caches and makes available for your canary scripts. Use environment variables to apply configuration changes, such as test and production environment configurations, without changing your Canary script source code. Default: - No environment variables.
880
900
  :param failure_retention_period: How many days should failed runs be retained. Default: Duration.days(31)
881
901
  :param memory: The maximum amount of memory that the canary can use while running. This value must be a multiple of 64 Mib. The range is 960 MiB to 3008 MiB. Default: Size.mebibytes(1024)
902
+ :param provisioned_resource_cleanup: Whether to also delete the Lambda functions and layers used by this canary when the canary is deleted. Default: undefined - the default behavior is to not delete the Lambda functions and layers
882
903
  :param role: Canary execution role. This is the role that will be assumed by the canary upon execution. It controls the permissions that the canary will have. The role must be assumable by the AWS Lambda service principal. If not supplied, a role will be created with all the required permissions. If you provide a Role, you must add the required permissions. Default: - A unique role will be generated for this canary. You can add permissions to roles by calling 'addToRolePolicy'.
883
904
  :param schedule: Specify the schedule for how often the canary runs. For example, if you set ``schedule`` to ``rate(10 minutes)``, then the canary will run every 10 minutes. You can set the schedule with ``Schedule.rate(Duration)`` (recommended) or you can specify an expression using ``Schedule.expression()``. Default: 'rate(5 minutes)'
884
905
  :param security_groups: The list of security groups to associate with the canary's network interfaces. You must provide ``vpc`` when using this prop. Default: - If the canary is placed within a VPC and a security group is not specified a dedicated security group will be created for this canary.
@@ -924,6 +945,7 @@ class CanaryProps:
924
945
  check_type(argname="argument environment_variables", value=environment_variables, expected_type=type_hints["environment_variables"])
925
946
  check_type(argname="argument failure_retention_period", value=failure_retention_period, expected_type=type_hints["failure_retention_period"])
926
947
  check_type(argname="argument memory", value=memory, expected_type=type_hints["memory"])
948
+ check_type(argname="argument provisioned_resource_cleanup", value=provisioned_resource_cleanup, expected_type=type_hints["provisioned_resource_cleanup"])
927
949
  check_type(argname="argument role", value=role, expected_type=type_hints["role"])
928
950
  check_type(argname="argument schedule", value=schedule, expected_type=type_hints["schedule"])
929
951
  check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
@@ -957,6 +979,8 @@ class CanaryProps:
957
979
  self._values["failure_retention_period"] = failure_retention_period
958
980
  if memory is not None:
959
981
  self._values["memory"] = memory
982
+ if provisioned_resource_cleanup is not None:
983
+ self._values["provisioned_resource_cleanup"] = provisioned_resource_cleanup
960
984
  if role is not None:
961
985
  self._values["role"] = role
962
986
  if schedule is not None:
@@ -1079,11 +1103,15 @@ class CanaryProps:
1079
1103
 
1080
1104
  @builtins.property
1081
1105
  def cleanup(self) -> typing.Optional["Cleanup"]:
1082
- '''Specify the underlying resources to be cleaned up when the canary is deleted.
1106
+ '''(deprecated) Specify the underlying resources to be cleaned up when the canary is deleted.
1083
1107
 
1084
1108
  Using ``Cleanup.LAMBDA`` will create a Custom Resource to achieve this.
1085
1109
 
1086
1110
  :default: Cleanup.NOTHING
1111
+
1112
+ :deprecated: use provisionedResourceCleanup
1113
+
1114
+ :stability: deprecated
1087
1115
  '''
1088
1116
  result = self._values.get("cleanup")
1089
1117
  return typing.cast(typing.Optional["Cleanup"], result)
@@ -1124,6 +1152,15 @@ class CanaryProps:
1124
1152
  result = self._values.get("memory")
1125
1153
  return typing.cast(typing.Optional[_Size_7b441c34], result)
1126
1154
 
1155
+ @builtins.property
1156
+ def provisioned_resource_cleanup(self) -> typing.Optional[builtins.bool]:
1157
+ '''Whether to also delete the Lambda functions and layers used by this canary when the canary is deleted.
1158
+
1159
+ :default: undefined - the default behavior is to not delete the Lambda functions and layers
1160
+ '''
1161
+ result = self._values.get("provisioned_resource_cleanup")
1162
+ return typing.cast(typing.Optional[builtins.bool], result)
1163
+
1127
1164
  @builtins.property
1128
1165
  def role(self) -> typing.Optional[_IRole_235f5d8e]:
1129
1166
  '''Canary execution role.
@@ -3208,21 +3245,7 @@ class CfnGroupProps:
3208
3245
 
3209
3246
  @jsii.enum(jsii_type="aws-cdk-lib.aws_synthetics.Cleanup")
3210
3247
  class Cleanup(enum.Enum):
3211
- '''Different ways to clean up underlying Canary resources when the Canary is deleted.
3212
-
3213
- :exampleMetadata: infused
3214
-
3215
- Example::
3216
-
3217
- canary = synthetics.Canary(self, "Canary",
3218
- test=synthetics.Test.custom(
3219
- handler="index.handler",
3220
- code=synthetics.Code.from_inline("/* Synthetics handler code")
3221
- ),
3222
- cleanup=synthetics.Cleanup.LAMBDA,
3223
- runtime=synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_6_2
3224
- )
3225
- '''
3248
+ '''Different ways to clean up underlying Canary resources when the Canary is deleted.'''
3226
3249
 
3227
3250
  NOTHING = "NOTHING"
3228
3251
  '''Clean up nothing.
@@ -3367,12 +3390,14 @@ class Code(
3367
3390
  scope: _constructs_77d1e7e8.Construct,
3368
3391
  handler: builtins.str,
3369
3392
  family: "RuntimeFamily",
3393
+ runtime_name: typing.Optional[builtins.str] = None,
3370
3394
  ) -> "CodeConfig":
3371
3395
  '''Called when the canary is initialized to allow this object to bind to the stack, add resources and have fun.
3372
3396
 
3373
3397
  :param scope: The binding scope. Don't be smart about trying to down-cast or assume it's initialized. You may just use it as a construct scope.
3374
3398
  :param handler: -
3375
3399
  :param family: -
3400
+ :param runtime_name: -
3376
3401
 
3377
3402
  :return: a bound ``CodeConfig``.
3378
3403
  '''
@@ -3386,12 +3411,14 @@ class _CodeProxy(Code):
3386
3411
  scope: _constructs_77d1e7e8.Construct,
3387
3412
  handler: builtins.str,
3388
3413
  family: "RuntimeFamily",
3414
+ runtime_name: typing.Optional[builtins.str] = None,
3389
3415
  ) -> "CodeConfig":
3390
3416
  '''Called when the canary is initialized to allow this object to bind to the stack, add resources and have fun.
3391
3417
 
3392
3418
  :param scope: The binding scope. Don't be smart about trying to down-cast or assume it's initialized. You may just use it as a construct scope.
3393
3419
  :param handler: -
3394
3420
  :param family: -
3421
+ :param runtime_name: -
3395
3422
 
3396
3423
  :return: a bound ``CodeConfig``.
3397
3424
  '''
@@ -3400,7 +3427,8 @@ class _CodeProxy(Code):
3400
3427
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3401
3428
  check_type(argname="argument handler", value=handler, expected_type=type_hints["handler"])
3402
3429
  check_type(argname="argument family", value=family, expected_type=type_hints["family"])
3403
- return typing.cast("CodeConfig", jsii.invoke(self, "bind", [scope, handler, family]))
3430
+ check_type(argname="argument runtime_name", value=runtime_name, expected_type=type_hints["runtime_name"])
3431
+ return typing.cast("CodeConfig", jsii.invoke(self, "bind", [scope, handler, family, runtime_name]))
3404
3432
 
3405
3433
  # Adding a "__jsii_proxy_class__(): typing.Type" function to the abstract class
3406
3434
  typing.cast(typing.Any, Code).__jsii_proxy_class__ = lambda : _CodeProxy
@@ -3698,22 +3726,25 @@ class InlineCode(
3698
3726
  @jsii.member(jsii_name="bind")
3699
3727
  def bind(
3700
3728
  self,
3701
- _scope: _constructs_77d1e7e8.Construct,
3729
+ scope: _constructs_77d1e7e8.Construct,
3702
3730
  handler: builtins.str,
3703
3731
  _family: "RuntimeFamily",
3732
+ _runtime_name: typing.Optional[builtins.str] = None,
3704
3733
  ) -> CodeConfig:
3705
3734
  '''Called when the canary is initialized to allow this object to bind to the stack, add resources and have fun.
3706
3735
 
3707
- :param _scope: -
3736
+ :param scope: -
3708
3737
  :param handler: -
3709
3738
  :param _family: -
3739
+ :param _runtime_name: -
3710
3740
  '''
3711
3741
  if __debug__:
3712
3742
  type_hints = typing.get_type_hints(_typecheckingstub__9c1dddac73b46d6693b6032065ae6db988e1e76cb520ebf3d4aa58e532f543a9)
3713
- check_type(argname="argument _scope", value=_scope, expected_type=type_hints["_scope"])
3743
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3714
3744
  check_type(argname="argument handler", value=handler, expected_type=type_hints["handler"])
3715
3745
  check_type(argname="argument _family", value=_family, expected_type=type_hints["_family"])
3716
- return typing.cast(CodeConfig, jsii.invoke(self, "bind", [_scope, handler, _family]))
3746
+ check_type(argname="argument _runtime_name", value=_runtime_name, expected_type=type_hints["_runtime_name"])
3747
+ return typing.cast(CodeConfig, jsii.invoke(self, "bind", [scope, handler, _family, _runtime_name]))
3717
3748
 
3718
3749
 
3719
3750
  class Runtime(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_synthetics.Runtime"):
@@ -3748,6 +3779,23 @@ class Runtime(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_synthetics.Run
3748
3779
  check_type(argname="argument family", value=family, expected_type=type_hints["family"])
3749
3780
  jsii.create(self.__class__, self, [name, family])
3750
3781
 
3782
+ @jsii.python.classproperty
3783
+ @jsii.member(jsii_name="SYNTHETICS_NODEJS_PLAYWRIGHT_1_0")
3784
+ def SYNTHETICS_NODEJS_PLAYWRIGHT_1_0(cls) -> "Runtime":
3785
+ '''``syn-nodejs-playwright-1.0`` includes the following: - Lambda runtime Node.js 20.x - Playwright version 1.45 - Chromium version 126.0.6478.126.
3786
+
3787
+ New Features:
3788
+
3789
+ - **PlayWright support** You can write canary scripts by using the Playwright automation framework. You can bring your existing Playwright scripts to run as canaries, and enhance them with AWS monitoring capabilities.
3790
+ - **CloudWatch Logs integration** You can query and filter for logs through the CloudWatch Synthetics console. Each log message contains unique canaryRunId, making it easy to search for logs for a particular canary run.
3791
+ - **Metrics and canary artifacts** You can monitor canary run pass rate through CloudWatch metrics, and configure alarms to alert you when canaries detect issues.
3792
+ - **Screenshots and steps association** You can capture screenshots using native Playwright functionality to visualize the stages of a canary script on each run. Screenshots are automatically associated with canary steps, and are uploaded to Amazon S3 buckets.
3793
+ - **Multiple tabs** You can create canaries that open multiple browser tabs, and access screenshots from each tab. You can create multi-tab and multi-step user workflows in Synthetics.
3794
+
3795
+ :see: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_playwright.html#Synthetics_runtimeversion-syn-nodejs-playwright-1.0
3796
+ '''
3797
+ return typing.cast("Runtime", jsii.sget(cls, "SYNTHETICS_NODEJS_PLAYWRIGHT_1_0"))
3798
+
3751
3799
  @jsii.python.classproperty
3752
3800
  @jsii.member(jsii_name="SYNTHETICS_NODEJS_PUPPETEER_3_5")
3753
3801
  def SYNTHETICS_NODEJS_PUPPETEER_3_5(cls) -> "Runtime":
@@ -4119,6 +4167,19 @@ class Runtime(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_synthetics.Run
4119
4167
  '''
4120
4168
  return typing.cast("Runtime", jsii.sget(cls, "SYNTHETICS_PYTHON_SELENIUM_4_0"))
4121
4169
 
4170
+ @jsii.python.classproperty
4171
+ @jsii.member(jsii_name="SYNTHETICS_PYTHON_SELENIUM_4_1")
4172
+ def SYNTHETICS_PYTHON_SELENIUM_4_1(cls) -> "Runtime":
4173
+ '''``syn-python-selenium-4.1`` includes the following: - Lambda runtime Python 3.9 - Selenium version 4.15.1 - Chromium version 126.0.6478.126.
4174
+
4175
+ New Features:
4176
+
4177
+ - **Addresses security vulnerability** This runtime has an update to address the CVE-2024-39689 vulnerability.
4178
+
4179
+ :see: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-4.1
4180
+ '''
4181
+ return typing.cast("Runtime", jsii.sget(cls, "SYNTHETICS_PYTHON_SELENIUM_4_1"))
4182
+
4122
4183
  @builtins.property
4123
4184
  @jsii.member(jsii_name="family")
4124
4185
  def family(self) -> "RuntimeFamily":
@@ -4189,19 +4250,22 @@ class S3Code(
4189
4250
  _scope: _constructs_77d1e7e8.Construct,
4190
4251
  _handler: builtins.str,
4191
4252
  _family: RuntimeFamily,
4253
+ _runtime_name: typing.Optional[builtins.str] = None,
4192
4254
  ) -> CodeConfig:
4193
4255
  '''Called when the canary is initialized to allow this object to bind to the stack, add resources and have fun.
4194
4256
 
4195
4257
  :param _scope: -
4196
4258
  :param _handler: -
4197
4259
  :param _family: -
4260
+ :param _runtime_name: -
4198
4261
  '''
4199
4262
  if __debug__:
4200
4263
  type_hints = typing.get_type_hints(_typecheckingstub__2e764381c92bbdf3e70a0cf34a6f1afa9abfa207f9eb030a4ac6823b6e04ab07)
4201
4264
  check_type(argname="argument _scope", value=_scope, expected_type=type_hints["_scope"])
4202
4265
  check_type(argname="argument _handler", value=_handler, expected_type=type_hints["_handler"])
4203
4266
  check_type(argname="argument _family", value=_family, expected_type=type_hints["_family"])
4204
- return typing.cast(CodeConfig, jsii.invoke(self, "bind", [_scope, _handler, _family]))
4267
+ check_type(argname="argument _runtime_name", value=_runtime_name, expected_type=type_hints["_runtime_name"])
4268
+ return typing.cast(CodeConfig, jsii.invoke(self, "bind", [_scope, _handler, _family, _runtime_name]))
4205
4269
 
4206
4270
 
4207
4271
  class Schedule(
@@ -4451,19 +4515,22 @@ class AssetCode(
4451
4515
  scope: _constructs_77d1e7e8.Construct,
4452
4516
  handler: builtins.str,
4453
4517
  family: RuntimeFamily,
4518
+ runtime_name: typing.Optional[builtins.str] = None,
4454
4519
  ) -> CodeConfig:
4455
4520
  '''Called when the canary is initialized to allow this object to bind to the stack, add resources and have fun.
4456
4521
 
4457
4522
  :param scope: -
4458
4523
  :param handler: -
4459
4524
  :param family: -
4525
+ :param runtime_name: -
4460
4526
  '''
4461
4527
  if __debug__:
4462
4528
  type_hints = typing.get_type_hints(_typecheckingstub__dcf81e22fccedf5b193b8ec9218200abb14bc77d3601c5cd7edbedda5914c393)
4463
4529
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
4464
4530
  check_type(argname="argument handler", value=handler, expected_type=type_hints["handler"])
4465
4531
  check_type(argname="argument family", value=family, expected_type=type_hints["family"])
4466
- return typing.cast(CodeConfig, jsii.invoke(self, "bind", [scope, handler, family]))
4532
+ check_type(argname="argument runtime_name", value=runtime_name, expected_type=type_hints["runtime_name"])
4533
+ return typing.cast(CodeConfig, jsii.invoke(self, "bind", [scope, handler, family, runtime_name]))
4467
4534
 
4468
4535
 
4469
4536
  __all__ = [
@@ -4515,6 +4582,7 @@ def _typecheckingstub__b3b6d76e5f93e31884e16cc00a9b4fc93e6782ff7db09c74aa1ef9346
4515
4582
  environment_variables: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
4516
4583
  failure_retention_period: typing.Optional[_Duration_4839e8c3] = None,
4517
4584
  memory: typing.Optional[_Size_7b441c34] = None,
4585
+ provisioned_resource_cleanup: typing.Optional[builtins.bool] = None,
4518
4586
  role: typing.Optional[_IRole_235f5d8e] = None,
4519
4587
  schedule: typing.Optional[Schedule] = None,
4520
4588
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
@@ -4542,6 +4610,7 @@ def _typecheckingstub__44ec0b14d52b66927d4daebe6f97bb070f3629bb0eb86e21668ca7862
4542
4610
  environment_variables: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
4543
4611
  failure_retention_period: typing.Optional[_Duration_4839e8c3] = None,
4544
4612
  memory: typing.Optional[_Size_7b441c34] = None,
4613
+ provisioned_resource_cleanup: typing.Optional[builtins.bool] = None,
4545
4614
  role: typing.Optional[_IRole_235f5d8e] = None,
4546
4615
  schedule: typing.Optional[Schedule] = None,
4547
4616
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
@@ -4872,6 +4941,7 @@ def _typecheckingstub__16072f2291ff792418a957a399b7ca3a9d2e16cb1e67d33d5682dbb0e
4872
4941
  scope: _constructs_77d1e7e8.Construct,
4873
4942
  handler: builtins.str,
4874
4943
  family: RuntimeFamily,
4944
+ runtime_name: typing.Optional[builtins.str] = None,
4875
4945
  ) -> None:
4876
4946
  """Type checking stubs"""
4877
4947
  pass
@@ -4910,9 +4980,10 @@ def _typecheckingstub__8e4d6f25be5e212e7eccf81a0bb26d92760fb4f335d2fd7395acbdc37
4910
4980
  pass
4911
4981
 
4912
4982
  def _typecheckingstub__9c1dddac73b46d6693b6032065ae6db988e1e76cb520ebf3d4aa58e532f543a9(
4913
- _scope: _constructs_77d1e7e8.Construct,
4983
+ scope: _constructs_77d1e7e8.Construct,
4914
4984
  handler: builtins.str,
4915
4985
  _family: RuntimeFamily,
4986
+ _runtime_name: typing.Optional[builtins.str] = None,
4916
4987
  ) -> None:
4917
4988
  """Type checking stubs"""
4918
4989
  pass
@@ -4936,6 +5007,7 @@ def _typecheckingstub__2e764381c92bbdf3e70a0cf34a6f1afa9abfa207f9eb030a4ac6823b6
4936
5007
  _scope: _constructs_77d1e7e8.Construct,
4937
5008
  _handler: builtins.str,
4938
5009
  _family: RuntimeFamily,
5010
+ _runtime_name: typing.Optional[builtins.str] = None,
4939
5011
  ) -> None:
4940
5012
  """Type checking stubs"""
4941
5013
  pass
@@ -4972,6 +5044,7 @@ def _typecheckingstub__dcf81e22fccedf5b193b8ec9218200abb14bc77d3601c5cd7edbedda5
4972
5044
  scope: _constructs_77d1e7e8.Construct,
4973
5045
  handler: builtins.str,
4974
5046
  family: RuntimeFamily,
5047
+ runtime_name: typing.Optional[builtins.str] = None,
4975
5048
  ) -> None:
4976
5049
  """Type checking stubs"""
4977
5050
  pass
@@ -5563,6 +5563,64 @@ class HostedZoneContextQuery(ContextLookupRoleOptions):
5563
5563
  )
5564
5564
 
5565
5565
 
5566
+ @jsii.interface(jsii_type="aws-cdk-lib.cloud_assembly_schema.ICloudAssembly")
5567
+ class ICloudAssembly(typing_extensions.Protocol):
5568
+ '''Interoperable representation of a deployable cloud application.
5569
+
5570
+ The external and interoperable contract for a Cloud Assembly is
5571
+ a directory containing a valid Cloud Assembly.
5572
+
5573
+ Implementations should use the directory to load the Cloud Assembly from disk.
5574
+ It is recommended that implementations validate loaded manifest files using
5575
+ the provided functionality from this package.
5576
+ Within an implementation, it may be prudent to keep (parts of) the Cloud Assembly
5577
+ in memory during execution and use an implementation-specific contract.
5578
+ However when an implementation is providing an external contract,
5579
+ this interface should be used.
5580
+ '''
5581
+
5582
+ @builtins.property
5583
+ @jsii.member(jsii_name="directory")
5584
+ def directory(self) -> builtins.str:
5585
+ '''The directory of the cloud assembly.
5586
+
5587
+ This directory will be used to read the Cloud Assembly from.
5588
+ Its contents (in particular ``manifest.json``) must comply with the schema defined in this package.
5589
+ '''
5590
+ ...
5591
+
5592
+
5593
+ class _ICloudAssemblyProxy:
5594
+ '''Interoperable representation of a deployable cloud application.
5595
+
5596
+ The external and interoperable contract for a Cloud Assembly is
5597
+ a directory containing a valid Cloud Assembly.
5598
+
5599
+ Implementations should use the directory to load the Cloud Assembly from disk.
5600
+ It is recommended that implementations validate loaded manifest files using
5601
+ the provided functionality from this package.
5602
+ Within an implementation, it may be prudent to keep (parts of) the Cloud Assembly
5603
+ in memory during execution and use an implementation-specific contract.
5604
+ However when an implementation is providing an external contract,
5605
+ this interface should be used.
5606
+ '''
5607
+
5608
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.cloud_assembly_schema.ICloudAssembly"
5609
+
5610
+ @builtins.property
5611
+ @jsii.member(jsii_name="directory")
5612
+ def directory(self) -> builtins.str:
5613
+ '''The directory of the cloud assembly.
5614
+
5615
+ This directory will be used to read the Cloud Assembly from.
5616
+ Its contents (in particular ``manifest.json``) must comply with the schema defined in this package.
5617
+ '''
5618
+ return typing.cast(builtins.str, jsii.get(self, "directory"))
5619
+
5620
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
5621
+ typing.cast(typing.Any, ICloudAssembly).__jsii_proxy_class__ = lambda : _ICloudAssemblyProxy
5622
+
5623
+
5566
5624
  @jsii.data_type(
5567
5625
  jsii_type="aws-cdk-lib.cloud_assembly_schema.IntegManifest",
5568
5626
  jsii_struct_bases=[],
@@ -6579,7 +6637,7 @@ class MetadataEntry:
6579
6637
  self,
6580
6638
  *,
6581
6639
  type: builtins.str,
6582
- data: typing.Optional[typing.Union[builtins.str, typing.Union[FileAssetMetadataEntry, typing.Dict[builtins.str, typing.Any]], typing.Union[ContainerImageAssetMetadataEntry, typing.Dict[builtins.str, typing.Any]], typing.Sequence[typing.Union["Tag", typing.Dict[builtins.str, typing.Any]]]]] = None,
6640
+ data: typing.Optional[typing.Union[builtins.str, jsii.Number, builtins.bool, typing.Union[FileAssetMetadataEntry, typing.Dict[builtins.str, typing.Any]], typing.Union[ContainerImageAssetMetadataEntry, typing.Dict[builtins.str, typing.Any]], typing.Sequence[typing.Union["Tag", typing.Dict[builtins.str, typing.Any]]]]] = None,
6583
6641
  trace: typing.Optional[typing.Sequence[builtins.str]] = None,
6584
6642
  ) -> None:
6585
6643
  '''A metadata entry in a cloud assembly artifact.
@@ -6627,13 +6685,13 @@ class MetadataEntry:
6627
6685
  @builtins.property
6628
6686
  def data(
6629
6687
  self,
6630
- ) -> typing.Optional[typing.Union[builtins.str, FileAssetMetadataEntry, ContainerImageAssetMetadataEntry, typing.List["Tag"]]]:
6688
+ ) -> typing.Optional[typing.Union[builtins.str, jsii.Number, builtins.bool, FileAssetMetadataEntry, ContainerImageAssetMetadataEntry, typing.List["Tag"]]]:
6631
6689
  '''The data.
6632
6690
 
6633
6691
  :default: - no data.
6634
6692
  '''
6635
6693
  result = self._values.get("data")
6636
- return typing.cast(typing.Optional[typing.Union[builtins.str, FileAssetMetadataEntry, ContainerImageAssetMetadataEntry, typing.List["Tag"]]], result)
6694
+ return typing.cast(typing.Optional[typing.Union[builtins.str, jsii.Number, builtins.bool, FileAssetMetadataEntry, ContainerImageAssetMetadataEntry, typing.List["Tag"]]], result)
6637
6695
 
6638
6696
  @builtins.property
6639
6697
  def trace(self) -> typing.Optional[typing.List[builtins.str]]:
@@ -8617,6 +8675,7 @@ __all__ = [
8617
8675
  "FileSource",
8618
8676
  "Hooks",
8619
8677
  "HostedZoneContextQuery",
8678
+ "ICloudAssembly",
8620
8679
  "IntegManifest",
8621
8680
  "KeyContextQuery",
8622
8681
  "LoadBalancerContextQuery",
@@ -9149,7 +9208,7 @@ def _typecheckingstub__87be211e9c3bb7ce042946888a960f69db963f2d5811832fbf0681bf9
9149
9208
  def _typecheckingstub__e77201bee0581d95dfd6e3150d491c958851c456cbdd8aaea71cb737197beaee(
9150
9209
  *,
9151
9210
  type: builtins.str,
9152
- data: typing.Optional[typing.Union[builtins.str, typing.Union[FileAssetMetadataEntry, typing.Dict[builtins.str, typing.Any]], typing.Union[ContainerImageAssetMetadataEntry, typing.Dict[builtins.str, typing.Any]], typing.Sequence[typing.Union[Tag, typing.Dict[builtins.str, typing.Any]]]]] = None,
9211
+ data: typing.Optional[typing.Union[builtins.str, jsii.Number, builtins.bool, typing.Union[FileAssetMetadataEntry, typing.Dict[builtins.str, typing.Any]], typing.Union[ContainerImageAssetMetadataEntry, typing.Dict[builtins.str, typing.Any]], typing.Sequence[typing.Union[Tag, typing.Dict[builtins.str, typing.Any]]]]] = None,
9153
9212
  trace: typing.Optional[typing.Sequence[builtins.str]] = None,
9154
9213
  ) -> None:
9155
9214
  """Type checking stubs"""