aws-cdk-lib 2.200.1__py3-none-any.whl → 2.201.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 (53) hide show
  1. aws_cdk/__init__.py +105 -13
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.200.1.jsii.tgz → aws-cdk-lib@2.201.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amazonmq/__init__.py +2 -3
  5. aws_cdk/aws_amplify/__init__.py +3 -3
  6. aws_cdk/aws_apigateway/__init__.py +21 -17
  7. aws_cdk/aws_apigatewayv2/__init__.py +87 -45
  8. aws_cdk/aws_appconfig/__init__.py +38 -1
  9. aws_cdk/aws_appsync/__init__.py +10 -10
  10. aws_cdk/aws_athena/__init__.py +226 -0
  11. aws_cdk/aws_autoscaling/__init__.py +38 -37
  12. aws_cdk/aws_bedrock/__init__.py +5108 -1571
  13. aws_cdk/aws_cloudfront/__init__.py +8 -0
  14. aws_cdk/aws_cloudtrail/__init__.py +178 -0
  15. aws_cdk/aws_cloudwatch/__init__.py +7 -3
  16. aws_cdk/aws_codepipeline_actions/__init__.py +746 -0
  17. aws_cdk/aws_connect/__init__.py +5 -5
  18. aws_cdk/aws_customerprofiles/__init__.py +377 -8
  19. aws_cdk/aws_datasync/__init__.py +189 -160
  20. aws_cdk/aws_datazone/__init__.py +512 -170
  21. aws_cdk/aws_deadline/__init__.py +32 -4
  22. aws_cdk/aws_dsql/__init__.py +150 -10
  23. aws_cdk/aws_ec2/__init__.py +793 -56
  24. aws_cdk/aws_ecs/__init__.py +94 -11
  25. aws_cdk/aws_efs/__init__.py +92 -12
  26. aws_cdk/aws_eks/__init__.py +166 -19
  27. aws_cdk/aws_elasticloadbalancingv2/__init__.py +2 -2
  28. aws_cdk/aws_emr/__init__.py +10 -4
  29. aws_cdk/aws_entityresolution/__init__.py +25 -10
  30. aws_cdk/aws_evs/__init__.py +2204 -0
  31. aws_cdk/aws_fsx/__init__.py +7 -7
  32. aws_cdk/aws_lambda/__init__.py +409 -32
  33. aws_cdk/aws_lightsail/__init__.py +17 -13
  34. aws_cdk/aws_logs/__init__.py +1 -0
  35. aws_cdk/aws_networkfirewall/__init__.py +562 -0
  36. aws_cdk/aws_opensearchservice/__init__.py +3 -3
  37. aws_cdk/aws_opsworkscm/__init__.py +9 -43
  38. aws_cdk/aws_rds/__init__.py +284 -87
  39. aws_cdk/aws_s3/__init__.py +23 -15
  40. aws_cdk/aws_sagemaker/__init__.py +223 -3
  41. aws_cdk/aws_securityhub/__init__.py +18 -34
  42. aws_cdk/aws_ssm/__init__.py +83 -1
  43. aws_cdk/aws_stepfunctions/__init__.py +235 -45
  44. aws_cdk/aws_synthetics/__init__.py +74 -0
  45. aws_cdk/aws_transfer/__init__.py +3 -3
  46. aws_cdk/aws_verifiedpermissions/__init__.py +17 -6
  47. aws_cdk/aws_wafv2/__init__.py +39 -2
  48. {aws_cdk_lib-2.200.1.dist-info → aws_cdk_lib-2.201.0.dist-info}/METADATA +2 -2
  49. {aws_cdk_lib-2.200.1.dist-info → aws_cdk_lib-2.201.0.dist-info}/RECORD +53 -52
  50. {aws_cdk_lib-2.200.1.dist-info → aws_cdk_lib-2.201.0.dist-info}/LICENSE +0 -0
  51. {aws_cdk_lib-2.200.1.dist-info → aws_cdk_lib-2.201.0.dist-info}/NOTICE +0 -0
  52. {aws_cdk_lib-2.200.1.dist-info → aws_cdk_lib-2.201.0.dist-info}/WHEEL +0 -0
  53. {aws_cdk_lib-2.200.1.dist-info → aws_cdk_lib-2.201.0.dist-info}/top_level.txt +0 -0
@@ -302,6 +302,29 @@ cloudwatch.Alarm(self, "CanaryAlarm",
302
302
  )
303
303
  ```
304
304
 
305
+ ### Performing safe canary updates
306
+
307
+ You can configure a canary to first perform a dry run before applying any updates. The `dryRunAndUpdate` property can be used to safely update canaries by validating the changes before they're applied.
308
+ This feature is supported for canary runtime versions `syn-nodejs-puppeteer-10.0+`, `syn-nodejs-playwright-2.0+`, and `syn-python-selenium-5.1+`.
309
+
310
+ When `dryRunAndUpdate` is set to `true`, CDK will execute a dry run to validate the changes before applying them to the canary.
311
+ If the dry run succeeds, the canary will be updated with the changes.
312
+ If the dry run fails, the CloudFormation deployment will fail with the dry run's failure reason.
313
+
314
+ ```python
315
+ canary = synthetics.Canary(self, "MyCanary",
316
+ schedule=synthetics.Schedule.rate(Duration.minutes(5)),
317
+ test=synthetics.Test.custom(
318
+ code=synthetics.Code.from_asset(path.join(__dirname, "canary")),
319
+ handler="index.handler"
320
+ ),
321
+ runtime=synthetics.Runtime.SYNTHETICS_PYTHON_SELENIUM_5_1,
322
+ dry_run_and_update=True
323
+ )
324
+ ```
325
+
326
+ For more information, see [Performing safe canary updates](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/performing-safe-canary-upgrades.html).
327
+
305
328
  ### Artifacts
306
329
 
307
330
  You can pass an S3 bucket to store artifacts from canary runs. If you do not,
@@ -573,6 +596,7 @@ class Canary(
573
596
  artifacts_bucket_location: typing.Optional[typing.Union[ArtifactsBucketLocation, typing.Dict[builtins.str, typing.Any]]] = None,
574
597
  canary_name: typing.Optional[builtins.str] = None,
575
598
  cleanup: typing.Optional["Cleanup"] = None,
599
+ dry_run_and_update: typing.Optional[builtins.bool] = None,
576
600
  environment_variables: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
577
601
  failure_retention_period: typing.Optional[_Duration_4839e8c3] = None,
578
602
  memory: typing.Optional[_Size_7b441c34] = None,
@@ -599,6 +623,7 @@ class Canary(
599
623
  :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.
600
624
  :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
601
625
  :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
626
+ :param dry_run_and_update: Specifies whether to perform a dry run before updating the canary. If set to true, CDK will execute a dry run to validate the changes before applying them to the canary. If the dry run succeeds, the canary will be updated with the changes. If the dry run fails, the CloudFormation deployment will fail with the dry run’s failure reason. If set to false or omitted, the canary will be updated directly without first performing a dry run. Default: undefined - AWS CloudWatch default is false
602
627
  :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.
603
628
  :param failure_retention_period: How many days should failed runs be retained. Default: Duration.days(31)
604
629
  :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)
@@ -627,6 +652,7 @@ class Canary(
627
652
  artifacts_bucket_location=artifacts_bucket_location,
628
653
  canary_name=canary_name,
629
654
  cleanup=cleanup,
655
+ dry_run_and_update=dry_run_and_update,
630
656
  environment_variables=environment_variables,
631
657
  failure_retention_period=failure_retention_period,
632
658
  memory=memory,
@@ -849,6 +875,7 @@ class Canary(
849
875
  "artifacts_bucket_location": "artifactsBucketLocation",
850
876
  "canary_name": "canaryName",
851
877
  "cleanup": "cleanup",
878
+ "dry_run_and_update": "dryRunAndUpdate",
852
879
  "environment_variables": "environmentVariables",
853
880
  "failure_retention_period": "failureRetentionPeriod",
854
881
  "memory": "memory",
@@ -877,6 +904,7 @@ class CanaryProps:
877
904
  artifacts_bucket_location: typing.Optional[typing.Union[ArtifactsBucketLocation, typing.Dict[builtins.str, typing.Any]]] = None,
878
905
  canary_name: typing.Optional[builtins.str] = None,
879
906
  cleanup: typing.Optional["Cleanup"] = None,
907
+ dry_run_and_update: typing.Optional[builtins.bool] = None,
880
908
  environment_variables: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
881
909
  failure_retention_period: typing.Optional[_Duration_4839e8c3] = None,
882
910
  memory: typing.Optional[_Size_7b441c34] = None,
@@ -902,6 +930,7 @@ class CanaryProps:
902
930
  :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.
903
931
  :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
904
932
  :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
933
+ :param dry_run_and_update: Specifies whether to perform a dry run before updating the canary. If set to true, CDK will execute a dry run to validate the changes before applying them to the canary. If the dry run succeeds, the canary will be updated with the changes. If the dry run fails, the CloudFormation deployment will fail with the dry run’s failure reason. If set to false or omitted, the canary will be updated directly without first performing a dry run. Default: undefined - AWS CloudWatch default is false
905
934
  :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.
906
935
  :param failure_retention_period: How many days should failed runs be retained. Default: Duration.days(31)
907
936
  :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)
@@ -948,6 +977,7 @@ class CanaryProps:
948
977
  check_type(argname="argument artifacts_bucket_location", value=artifacts_bucket_location, expected_type=type_hints["artifacts_bucket_location"])
949
978
  check_type(argname="argument canary_name", value=canary_name, expected_type=type_hints["canary_name"])
950
979
  check_type(argname="argument cleanup", value=cleanup, expected_type=type_hints["cleanup"])
980
+ check_type(argname="argument dry_run_and_update", value=dry_run_and_update, expected_type=type_hints["dry_run_and_update"])
951
981
  check_type(argname="argument environment_variables", value=environment_variables, expected_type=type_hints["environment_variables"])
952
982
  check_type(argname="argument failure_retention_period", value=failure_retention_period, expected_type=type_hints["failure_retention_period"])
953
983
  check_type(argname="argument memory", value=memory, expected_type=type_hints["memory"])
@@ -979,6 +1009,8 @@ class CanaryProps:
979
1009
  self._values["canary_name"] = canary_name
980
1010
  if cleanup is not None:
981
1011
  self._values["cleanup"] = cleanup
1012
+ if dry_run_and_update is not None:
1013
+ self._values["dry_run_and_update"] = dry_run_and_update
982
1014
  if environment_variables is not None:
983
1015
  self._values["environment_variables"] = environment_variables
984
1016
  if failure_retention_period is not None:
@@ -1122,6 +1154,23 @@ class CanaryProps:
1122
1154
  result = self._values.get("cleanup")
1123
1155
  return typing.cast(typing.Optional["Cleanup"], result)
1124
1156
 
1157
+ @builtins.property
1158
+ def dry_run_and_update(self) -> typing.Optional[builtins.bool]:
1159
+ '''Specifies whether to perform a dry run before updating the canary.
1160
+
1161
+ If set to true, CDK will execute a dry run to validate the changes before applying them to the canary.
1162
+ If the dry run succeeds, the canary will be updated with the changes.
1163
+ If the dry run fails, the CloudFormation deployment will fail with the dry run’s failure reason.
1164
+
1165
+ If set to false or omitted, the canary will be updated directly without first performing a dry run.
1166
+
1167
+ :default: undefined - AWS CloudWatch default is false
1168
+
1169
+ :see: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/performing-safe-canary-upgrades.html
1170
+ '''
1171
+ result = self._values.get("dry_run_and_update")
1172
+ return typing.cast(typing.Optional[builtins.bool], result)
1173
+
1125
1174
  @builtins.property
1126
1175
  def environment_variables(
1127
1176
  self,
@@ -3935,6 +3984,20 @@ class Runtime(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_synthetics.Run
3935
3984
  '''
3936
3985
  return typing.cast("Runtime", jsii.sget(cls, "SYNTHETICS_NODEJS_PLAYWRIGHT_1_0"))
3937
3986
 
3987
+ @jsii.python.classproperty
3988
+ @jsii.member(jsii_name="SYNTHETICS_NODEJS_PLAYWRIGHT_2_0")
3989
+ def SYNTHETICS_NODEJS_PLAYWRIGHT_2_0(cls) -> "Runtime":
3990
+ '''``syn-nodejs-playwright-2.0`` includes the following: - Lambda runtime Node.js 20.x - Playwright version 1.49.1 - Chromium version 131.0.6778.264.
3991
+
3992
+ New Features:
3993
+
3994
+ - The mismatch between total duration and sum of timings for a given request in HAR file is fixed.
3995
+ - Supports dry runs for the canary which allows for adhoc executions or performing a safe canary update.
3996
+
3997
+ :see: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_playwright.html#Synthetics_runtimeversion-syn-nodejs-playwright-2.0
3998
+ '''
3999
+ return typing.cast("Runtime", jsii.sget(cls, "SYNTHETICS_NODEJS_PLAYWRIGHT_2_0"))
4000
+
3938
4001
  @jsii.python.classproperty
3939
4002
  @jsii.member(jsii_name="SYNTHETICS_NODEJS_PUPPETEER_3_5")
3940
4003
  def SYNTHETICS_NODEJS_PUPPETEER_3_5(cls) -> "Runtime":
@@ -4345,6 +4408,15 @@ class Runtime(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_synthetics.Run
4345
4408
  '''
4346
4409
  return typing.cast("Runtime", jsii.sget(cls, "SYNTHETICS_PYTHON_SELENIUM_5_1"))
4347
4410
 
4411
+ @jsii.python.classproperty
4412
+ @jsii.member(jsii_name="SYNTHETICS_PYTHON_SELENIUM_6_0")
4413
+ def SYNTHETICS_PYTHON_SELENIUM_6_0(cls) -> "Runtime":
4414
+ '''``syn-python-selenium-6.0`` includes the following: - Lambda runtime Python 3.11 - Selenium version 4.21.0 - Chromium version 131.0.6778.264.
4415
+
4416
+ :see: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-6.0
4417
+ '''
4418
+ return typing.cast("Runtime", jsii.sget(cls, "SYNTHETICS_PYTHON_SELENIUM_6_0"))
4419
+
4348
4420
  @builtins.property
4349
4421
  @jsii.member(jsii_name="family")
4350
4422
  def family(self) -> "RuntimeFamily":
@@ -4748,6 +4820,7 @@ def _typecheckingstub__b3b6d76e5f93e31884e16cc00a9b4fc93e6782ff7db09c74aa1ef9346
4748
4820
  artifacts_bucket_location: typing.Optional[typing.Union[ArtifactsBucketLocation, typing.Dict[builtins.str, typing.Any]]] = None,
4749
4821
  canary_name: typing.Optional[builtins.str] = None,
4750
4822
  cleanup: typing.Optional[Cleanup] = None,
4823
+ dry_run_and_update: typing.Optional[builtins.bool] = None,
4751
4824
  environment_variables: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
4752
4825
  failure_retention_period: typing.Optional[_Duration_4839e8c3] = None,
4753
4826
  memory: typing.Optional[_Size_7b441c34] = None,
@@ -4776,6 +4849,7 @@ def _typecheckingstub__44ec0b14d52b66927d4daebe6f97bb070f3629bb0eb86e21668ca7862
4776
4849
  artifacts_bucket_location: typing.Optional[typing.Union[ArtifactsBucketLocation, typing.Dict[builtins.str, typing.Any]]] = None,
4777
4850
  canary_name: typing.Optional[builtins.str] = None,
4778
4851
  cleanup: typing.Optional[Cleanup] = None,
4852
+ dry_run_and_update: typing.Optional[builtins.bool] = None,
4779
4853
  environment_variables: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
4780
4854
  failure_retention_period: typing.Optional[_Duration_4839e8c3] = None,
4781
4855
  memory: typing.Optional[_Size_7b441c34] = None,
@@ -3940,7 +3940,7 @@ class CfnUser(
3940
3940
  :param role: The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.
3941
3941
  :param server_id: A system-assigned unique identifier for a server instance. This is the specific server that you added your user to.
3942
3942
  :param user_name: A unique string that identifies a user and is associated with a ``ServerId`` . This user name must be a minimum of 3 and a maximum of 100 characters long. The following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen '-', period '.', and at sign '@'. The user name can't start with a hyphen, period, or at sign.
3943
- :param home_directory: The landing directory (folder) for a user when they log in to the server using the client. A ``HomeDirectory`` example is ``/bucket_name/home/mydirectory`` . .. epigraph:: The ``HomeDirectory`` parameter is only used if ``HomeDirectoryType`` is set to ``PATH`` .
3943
+ :param home_directory: The landing directory (folder) for a user when they log in to the server using the client. A ``HomeDirectory`` example is ``/bucket_name/home/mydirectory`` . .. epigraph:: You can use the ``HomeDirectory`` parameter for ``HomeDirectoryType`` when it is set to either ``PATH`` or ``LOGICAL`` .
3944
3944
  :param home_directory_mappings: Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the ``Entry`` and ``Target`` pair, where ``Entry`` shows how the path is made visible and ``Target`` is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your AWS Identity and Access Management (IAM) role provides access to paths in ``Target`` . This value can be set only when ``HomeDirectoryType`` is set to *LOGICAL* . The following is an ``Entry`` and ``Target`` pair example. ``[ { "Entry": "/directory1", "Target": "/bucket_name/home/mydirectory" } ]`` In most cases, you can use this value instead of the session policy to lock your user down to the designated home directory (" ``chroot`` "). To do this, you can set ``Entry`` to ``/`` and set ``Target`` to the value the user should see for their home directory when they log in. The following is an ``Entry`` and ``Target`` pair example for ``chroot`` . ``[ { "Entry": "/", "Target": "/bucket_name/home/mydirectory" } ]``
3945
3945
  :param home_directory_type: The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. If you set it to ``PATH`` , the user will see the absolute Amazon S3 bucket or Amazon EFS path as is in their file transfer protocol clients. If you set it to ``LOGICAL`` , you need to provide mappings in the ``HomeDirectoryMappings`` for how you want to make Amazon S3 or Amazon EFS paths visible to your users. .. epigraph:: If ``HomeDirectoryType`` is ``LOGICAL`` , you must provide mappings, using the ``HomeDirectoryMappings`` parameter. If, on the other hand, ``HomeDirectoryType`` is ``PATH`` , you provide an absolute path using the ``HomeDirectory`` parameter. You cannot have both ``HomeDirectory`` and ``HomeDirectoryMappings`` in your template.
3946
3946
  :param policy: A session policy for your user so you can use the same IAM role across multiple users. This policy restricts user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ``${Transfer:UserName}`` , ``${Transfer:HomeDirectory}`` , and ``${Transfer:HomeBucket}`` . .. epigraph:: For session policies, AWS Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the ``Policy`` argument. For an example of a session policy, see `Example session policy <https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html>`_ . For more information, see `AssumeRole <https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html>`_ in the *AWS Security Token Service API Reference* .
@@ -4406,7 +4406,7 @@ class CfnUserProps:
4406
4406
  :param role: The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.
4407
4407
  :param server_id: A system-assigned unique identifier for a server instance. This is the specific server that you added your user to.
4408
4408
  :param user_name: A unique string that identifies a user and is associated with a ``ServerId`` . This user name must be a minimum of 3 and a maximum of 100 characters long. The following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen '-', period '.', and at sign '@'. The user name can't start with a hyphen, period, or at sign.
4409
- :param home_directory: The landing directory (folder) for a user when they log in to the server using the client. A ``HomeDirectory`` example is ``/bucket_name/home/mydirectory`` . .. epigraph:: The ``HomeDirectory`` parameter is only used if ``HomeDirectoryType`` is set to ``PATH`` .
4409
+ :param home_directory: The landing directory (folder) for a user when they log in to the server using the client. A ``HomeDirectory`` example is ``/bucket_name/home/mydirectory`` . .. epigraph:: You can use the ``HomeDirectory`` parameter for ``HomeDirectoryType`` when it is set to either ``PATH`` or ``LOGICAL`` .
4410
4410
  :param home_directory_mappings: Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the ``Entry`` and ``Target`` pair, where ``Entry`` shows how the path is made visible and ``Target`` is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your AWS Identity and Access Management (IAM) role provides access to paths in ``Target`` . This value can be set only when ``HomeDirectoryType`` is set to *LOGICAL* . The following is an ``Entry`` and ``Target`` pair example. ``[ { "Entry": "/directory1", "Target": "/bucket_name/home/mydirectory" } ]`` In most cases, you can use this value instead of the session policy to lock your user down to the designated home directory (" ``chroot`` "). To do this, you can set ``Entry`` to ``/`` and set ``Target`` to the value the user should see for their home directory when they log in. The following is an ``Entry`` and ``Target`` pair example for ``chroot`` . ``[ { "Entry": "/", "Target": "/bucket_name/home/mydirectory" } ]``
4411
4411
  :param home_directory_type: The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. If you set it to ``PATH`` , the user will see the absolute Amazon S3 bucket or Amazon EFS path as is in their file transfer protocol clients. If you set it to ``LOGICAL`` , you need to provide mappings in the ``HomeDirectoryMappings`` for how you want to make Amazon S3 or Amazon EFS paths visible to your users. .. epigraph:: If ``HomeDirectoryType`` is ``LOGICAL`` , you must provide mappings, using the ``HomeDirectoryMappings`` parameter. If, on the other hand, ``HomeDirectoryType`` is ``PATH`` , you provide an absolute path using the ``HomeDirectory`` parameter. You cannot have both ``HomeDirectory`` and ``HomeDirectoryMappings`` in your template.
4412
4412
  :param policy: A session policy for your user so you can use the same IAM role across multiple users. This policy restricts user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ``${Transfer:UserName}`` , ``${Transfer:HomeDirectory}`` , and ``${Transfer:HomeBucket}`` . .. epigraph:: For session policies, AWS Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the ``Policy`` argument. For an example of a session policy, see `Example session policy <https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html>`_ . For more information, see `AssumeRole <https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html>`_ in the *AWS Security Token Service API Reference* .
@@ -4528,7 +4528,7 @@ class CfnUserProps:
4528
4528
  A ``HomeDirectory`` example is ``/bucket_name/home/mydirectory`` .
4529
4529
  .. epigraph::
4530
4530
 
4531
- The ``HomeDirectory`` parameter is only used if ``HomeDirectoryType`` is set to ``PATH`` .
4531
+ You can use the ``HomeDirectory`` parameter for ``HomeDirectoryType`` when it is set to either ``PATH`` or ``LOGICAL`` .
4532
4532
 
4533
4533
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-user.html#cfn-transfer-user-homedirectory
4534
4534
  '''
@@ -1953,7 +1953,7 @@ class CfnPolicyStore(
1953
1953
  :param scope: Scope in which this resource is defined.
1954
1954
  :param id: Construct identifier for this resource (unique in its scope).
1955
1955
  :param validation_settings: Specifies the validation setting for this policy store. Currently, the only valid and required value is ``Mode`` . .. epigraph:: We recommend that you turn on ``STRICT`` mode only after you define a schema. If a schema doesn't exist, then ``STRICT`` mode causes any policy to fail validation, and Verified Permissions rejects the policy. You can turn off validation by using the `UpdatePolicyStore <https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_UpdatePolicyStore>`_ . Then, when you have a schema defined, use `UpdatePolicyStore <https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_UpdatePolicyStore>`_ again to turn validation back on.
1956
- :param deletion_protection:
1956
+ :param deletion_protection: Specifies whether the policy store can be deleted. If enabled, the policy store can't be deleted. The default state is ``DISABLED`` .
1957
1957
  :param description: Descriptive text that you can provide to help with identification of the current policy store.
1958
1958
  :param schema: Creates or updates the policy schema in a policy store. Cedar can use the schema to validate any Cedar policies and policy templates submitted to the policy store. Any changes to the schema validate only policies and templates submitted after the schema change. Existing policies and templates are not re-evaluated against the changed schema. If you later update a policy, then it is evaluated against the new schema at that time.
1959
1959
  :param tags: The list of key-value pairs to associate with the policy store.
@@ -2054,6 +2054,10 @@ class CfnPolicyStore(
2054
2054
  def deletion_protection(
2055
2055
  self,
2056
2056
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnPolicyStore.DeletionProtectionProperty"]]:
2057
+ '''Specifies whether the policy store can be deleted.
2058
+
2059
+ If enabled, the policy store can't be deleted.
2060
+ '''
2057
2061
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnPolicyStore.DeletionProtectionProperty"]], jsii.get(self, "deletionProtection"))
2058
2062
 
2059
2063
  @deletion_protection.setter
@@ -2117,8 +2121,9 @@ class CfnPolicyStore(
2117
2121
  )
2118
2122
  class DeletionProtectionProperty:
2119
2123
  def __init__(self, *, mode: builtins.str) -> None:
2120
- '''
2121
- :param mode: Default: - "DISABLED"
2124
+ '''Specifies whether the policy store can be deleted.
2125
+
2126
+ :param mode: Specifies whether the policy store can be deleted. If enabled, the policy store can't be deleted. The default state is ``DISABLED`` . Default: - "DISABLED"
2122
2127
 
2123
2128
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-policystore-deletionprotection.html
2124
2129
  :exampleMetadata: fixture=_generated
@@ -2142,7 +2147,10 @@ class CfnPolicyStore(
2142
2147
 
2143
2148
  @builtins.property
2144
2149
  def mode(self) -> builtins.str:
2145
- '''
2150
+ '''Specifies whether the policy store can be deleted. If enabled, the policy store can't be deleted.
2151
+
2152
+ The default state is ``DISABLED`` .
2153
+
2146
2154
  :default: - "DISABLED"
2147
2155
 
2148
2156
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-policystore-deletionprotection.html#cfn-verifiedpermissions-policystore-deletionprotection-mode
@@ -2305,7 +2313,7 @@ class CfnPolicyStoreProps:
2305
2313
  '''Properties for defining a ``CfnPolicyStore``.
2306
2314
 
2307
2315
  :param validation_settings: Specifies the validation setting for this policy store. Currently, the only valid and required value is ``Mode`` . .. epigraph:: We recommend that you turn on ``STRICT`` mode only after you define a schema. If a schema doesn't exist, then ``STRICT`` mode causes any policy to fail validation, and Verified Permissions rejects the policy. You can turn off validation by using the `UpdatePolicyStore <https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_UpdatePolicyStore>`_ . Then, when you have a schema defined, use `UpdatePolicyStore <https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_UpdatePolicyStore>`_ again to turn validation back on.
2308
- :param deletion_protection:
2316
+ :param deletion_protection: Specifies whether the policy store can be deleted. If enabled, the policy store can't be deleted. The default state is ``DISABLED`` .
2309
2317
  :param description: Descriptive text that you can provide to help with identification of the current policy store.
2310
2318
  :param schema: Creates or updates the policy schema in a policy store. Cedar can use the schema to validate any Cedar policies and policy templates submitted to the policy store. Any changes to the schema validate only policies and templates submitted after the schema change. Existing policies and templates are not re-evaluated against the changed schema. If you later update a policy, then it is evaluated against the new schema at that time.
2311
2319
  :param tags: The list of key-value pairs to associate with the policy store.
@@ -2378,7 +2386,10 @@ class CfnPolicyStoreProps:
2378
2386
  def deletion_protection(
2379
2387
  self,
2380
2388
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnPolicyStore.DeletionProtectionProperty]]:
2381
- '''
2389
+ '''Specifies whether the policy store can be deleted. If enabled, the policy store can't be deleted.
2390
+
2391
+ The default state is ``DISABLED`` .
2392
+
2382
2393
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policystore.html#cfn-verifiedpermissions-policystore-deletionprotection
2383
2394
  '''
2384
2395
  result = self._values.get("deletion_protection")
@@ -4377,7 +4377,7 @@ class CfnRuleGroup(
4377
4377
 
4378
4378
  If the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all.
4379
4379
 
4380
- This configuration is used for ``GeoMatchStatement`` and ``RateBasedStatement`` . For ``IPSetReferenceStatement`` , use ``IPSetForwardedIPConfig`` instead.
4380
+ This configuration is used for ``GeoMatchStatement`` , ``AsnMatchStatement`` , and ``RateBasedStatement`` . For ``IPSetReferenceStatement`` , use ``IPSetForwardedIPConfig`` instead.
4381
4381
 
4382
4382
  AWS WAF only evaluates the first IP address found in the specified HTTP header.
4383
4383
 
@@ -11173,6 +11173,7 @@ class CfnWebACL(
11173
11173
  data_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.DataProtectionConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
11174
11174
  description: typing.Optional[builtins.str] = None,
11175
11175
  name: typing.Optional[builtins.str] = None,
11176
+ on_source_d_do_s_protection_config: typing.Any = None,
11176
11177
  rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.RuleProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
11177
11178
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
11178
11179
  token_domains: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -11190,6 +11191,7 @@ class CfnWebACL(
11190
11191
  :param data_protection_config: Specifies data protection to apply to the web request data for the web ACL. This is a web ACL level data protection option. The data protection that you configure for the web ACL alters the data that's available for any other data collection activity, including your AWS WAF logging destinations, web ACL request sampling, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging.
11191
11192
  :param description: A description of the web ACL that helps with identification.
11192
11193
  :param name: The name of the web ACL. You cannot change the name of a web ACL after you create it.
11194
+ :param on_source_d_do_s_protection_config:
11193
11195
  :param rules: The rule statements used to identify the web requests that you want to manage. Each rule includes one top-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.
11194
11196
  :param tags: Key:value pairs associated with an AWS resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each AWS resource. .. epigraph:: To modify tags on existing resources, use the AWS WAF APIs or command line interface. With AWS CloudFormation , you can only add tags to AWS WAF resources during resource creation.
11195
11197
  :param token_domains: Specifies the domains that AWS WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When AWS WAF provides a token, it uses the domain of the AWS resource that the web ACL is protecting. If you don't specify a list of token domains, AWS WAF accepts tokens only for the domain of the protected resource. With a token domain list, AWS WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.
@@ -11209,6 +11211,7 @@ class CfnWebACL(
11209
11211
  data_protection_config=data_protection_config,
11210
11212
  description=description,
11211
11213
  name=name,
11214
+ on_source_d_do_s_protection_config=on_source_d_do_s_protection_config,
11212
11215
  rules=rules,
11213
11216
  tags=tags,
11214
11217
  token_domains=token_domains,
@@ -11466,6 +11469,18 @@ class CfnWebACL(
11466
11469
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11467
11470
  jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
11468
11471
 
11472
+ @builtins.property
11473
+ @jsii.member(jsii_name="onSourceDDoSProtectionConfig")
11474
+ def on_source_d_do_s_protection_config(self) -> typing.Any:
11475
+ return typing.cast(typing.Any, jsii.get(self, "onSourceDDoSProtectionConfig"))
11476
+
11477
+ @on_source_d_do_s_protection_config.setter
11478
+ def on_source_d_do_s_protection_config(self, value: typing.Any) -> None:
11479
+ if __debug__:
11480
+ type_hints = typing.get_type_hints(_typecheckingstub__1180464a1661a74085b880efee37841284ce892adac9d3cda8cb5c117c625ba2)
11481
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11482
+ jsii.set(self, "onSourceDDoSProtectionConfig", value) # pyright: ignore[reportArgumentType]
11483
+
11469
11484
  @builtins.property
11470
11485
  @jsii.member(jsii_name="rules")
11471
11486
  def rules(
@@ -14282,7 +14297,7 @@ class CfnWebACL(
14282
14297
 
14283
14298
  If the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all.
14284
14299
 
14285
- This configuration is used for ``GeoMatchStatement`` and ``RateBasedStatement`` . For ``IPSetReferenceStatement`` , use ``IPSetForwardedIPConfig`` instead.
14300
+ This configuration is used for ``GeoMatchStatement`` , ``AsnMatchStatement`` , and ``RateBasedStatement`` . For ``IPSetReferenceStatement`` , use ``IPSetForwardedIPConfig`` instead.
14286
14301
 
14287
14302
  AWS WAF only evaluates the first IP address found in the specified HTTP header.
14288
14303
 
@@ -20580,6 +20595,7 @@ class CfnWebACLAssociationProps:
20580
20595
  "data_protection_config": "dataProtectionConfig",
20581
20596
  "description": "description",
20582
20597
  "name": "name",
20598
+ "on_source_d_do_s_protection_config": "onSourceDDoSProtectionConfig",
20583
20599
  "rules": "rules",
20584
20600
  "tags": "tags",
20585
20601
  "token_domains": "tokenDomains",
@@ -20599,6 +20615,7 @@ class CfnWebACLProps:
20599
20615
  data_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.DataProtectionConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
20600
20616
  description: typing.Optional[builtins.str] = None,
20601
20617
  name: typing.Optional[builtins.str] = None,
20618
+ on_source_d_do_s_protection_config: typing.Any = None,
20602
20619
  rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RuleProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
20603
20620
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
20604
20621
  token_domains: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -20615,6 +20632,7 @@ class CfnWebACLProps:
20615
20632
  :param data_protection_config: Specifies data protection to apply to the web request data for the web ACL. This is a web ACL level data protection option. The data protection that you configure for the web ACL alters the data that's available for any other data collection activity, including your AWS WAF logging destinations, web ACL request sampling, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging.
20616
20633
  :param description: A description of the web ACL that helps with identification.
20617
20634
  :param name: The name of the web ACL. You cannot change the name of a web ACL after you create it.
20635
+ :param on_source_d_do_s_protection_config:
20618
20636
  :param rules: The rule statements used to identify the web requests that you want to manage. Each rule includes one top-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.
20619
20637
  :param tags: Key:value pairs associated with an AWS resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each AWS resource. .. epigraph:: To modify tags on existing resources, use the AWS WAF APIs or command line interface. With AWS CloudFormation , you can only add tags to AWS WAF resources during resource creation.
20620
20638
  :param token_domains: Specifies the domains that AWS WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When AWS WAF provides a token, it uses the domain of the AWS resource that the web ACL is protecting. If you don't specify a list of token domains, AWS WAF accepts tokens only for the domain of the protected resource. With a token domain list, AWS WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.
@@ -20638,6 +20656,7 @@ class CfnWebACLProps:
20638
20656
  check_type(argname="argument data_protection_config", value=data_protection_config, expected_type=type_hints["data_protection_config"])
20639
20657
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
20640
20658
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
20659
+ check_type(argname="argument on_source_d_do_s_protection_config", value=on_source_d_do_s_protection_config, expected_type=type_hints["on_source_d_do_s_protection_config"])
20641
20660
  check_type(argname="argument rules", value=rules, expected_type=type_hints["rules"])
20642
20661
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
20643
20662
  check_type(argname="argument token_domains", value=token_domains, expected_type=type_hints["token_domains"])
@@ -20660,6 +20679,8 @@ class CfnWebACLProps:
20660
20679
  self._values["description"] = description
20661
20680
  if name is not None:
20662
20681
  self._values["name"] = name
20682
+ if on_source_d_do_s_protection_config is not None:
20683
+ self._values["on_source_d_do_s_protection_config"] = on_source_d_do_s_protection_config
20663
20684
  if rules is not None:
20664
20685
  self._values["rules"] = rules
20665
20686
  if tags is not None:
@@ -20804,6 +20825,14 @@ class CfnWebACLProps:
20804
20825
  result = self._values.get("name")
20805
20826
  return typing.cast(typing.Optional[builtins.str], result)
20806
20827
 
20828
+ @builtins.property
20829
+ def on_source_d_do_s_protection_config(self) -> typing.Any:
20830
+ '''
20831
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html#cfn-wafv2-webacl-onsourceddosprotectionconfig
20832
+ '''
20833
+ result = self._values.get("on_source_d_do_s_protection_config")
20834
+ return typing.cast(typing.Any, result)
20835
+
20807
20836
  @builtins.property
20808
20837
  def rules(
20809
20838
  self,
@@ -21747,6 +21776,7 @@ def _typecheckingstub__03030a65c492e95a1d1ae5ddafd6acbb9efdfa7e18b6367ac7e03eb8f
21747
21776
  data_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.DataProtectionConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21748
21777
  description: typing.Optional[builtins.str] = None,
21749
21778
  name: typing.Optional[builtins.str] = None,
21779
+ on_source_d_do_s_protection_config: typing.Any = None,
21750
21780
  rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RuleProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
21751
21781
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
21752
21782
  token_domains: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -21826,6 +21856,12 @@ def _typecheckingstub__191460374393c7b9829682ab4faa571596cd3c2090e46352a427930a2
21826
21856
  """Type checking stubs"""
21827
21857
  pass
21828
21858
 
21859
+ def _typecheckingstub__1180464a1661a74085b880efee37841284ce892adac9d3cda8cb5c117c625ba2(
21860
+ value: typing.Any,
21861
+ ) -> None:
21862
+ """Type checking stubs"""
21863
+ pass
21864
+
21829
21865
  def _typecheckingstub__7e3abb4095a53abe30bca846b48411ffb15b0267398c52a824a8ffba45db4f4c(
21830
21866
  value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnWebACL.RuleProperty]]]],
21831
21867
  ) -> None:
@@ -22584,6 +22620,7 @@ def _typecheckingstub__6e738df983d65d43590c0a02c03e6e0daa3a2097ae335371d22711838
22584
22620
  data_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.DataProtectionConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22585
22621
  description: typing.Optional[builtins.str] = None,
22586
22622
  name: typing.Optional[builtins.str] = None,
22623
+ on_source_d_do_s_protection_config: typing.Any = None,
22587
22624
  rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RuleProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
22588
22625
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
22589
22626
  token_domains: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aws-cdk-lib
3
- Version: 2.200.1
3
+ Version: 2.201.0
4
4
  Summary: Version 2 of the AWS Cloud Development Kit library
5
5
  Home-page: https://github.com/aws/aws-cdk
6
6
  Author: Amazon Web Services
@@ -22,7 +22,7 @@ License-File: LICENSE
22
22
  License-File: NOTICE
23
23
  Requires-Dist: aws-cdk.asset-awscli-v1==2.2.237
24
24
  Requires-Dist: aws-cdk.asset-node-proxy-agent-v6<3.0.0,>=2.1.0
25
- Requires-Dist: aws-cdk.cloud-assembly-schema<45.0.0,>=44.1.0
25
+ Requires-Dist: aws-cdk.cloud-assembly-schema<45.0.0,>=44.2.0
26
26
  Requires-Dist: constructs<11.0.0,>=10.0.0
27
27
  Requires-Dist: jsii<2.0.0,>=1.112.0
28
28
  Requires-Dist: publication>=0.0.3