aws-cdk-lib 2.148.1__py3-none-any.whl → 2.150.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 (51) hide show
  1. aws_cdk/__init__.py +4 -8
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.148.1.jsii.tgz → aws-cdk-lib@2.150.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_applicationautoscaling/__init__.py +16 -12
  5. aws_cdk/aws_bedrock/__init__.py +60 -28
  6. aws_cdk/aws_cloudformation/__init__.py +4 -8
  7. aws_cdk/aws_cloudtrail/__init__.py +30 -558
  8. aws_cdk/aws_cloudwatch/__init__.py +1 -1
  9. aws_cdk/aws_codebuild/__init__.py +57 -5
  10. aws_cdk/aws_codecommit/__init__.py +103 -0
  11. aws_cdk/aws_codedeploy/__init__.py +251 -5
  12. aws_cdk/aws_codepipeline/__init__.py +80 -5
  13. aws_cdk/aws_codestarnotifications/__init__.py +90 -4
  14. aws_cdk/aws_cognito/__init__.py +1 -2
  15. aws_cdk/aws_deadline/__init__.py +9 -15
  16. aws_cdk/aws_dms/__init__.py +10 -10
  17. aws_cdk/aws_ec2/__init__.py +86 -4
  18. aws_cdk/aws_ecs/__init__.py +10 -8
  19. aws_cdk/aws_eks/__init__.py +26 -20
  20. aws_cdk/aws_elasticloadbalancingv2/__init__.py +2 -2
  21. aws_cdk/aws_emr/__init__.py +26 -28
  22. aws_cdk/aws_events/__init__.py +1 -13
  23. aws_cdk/aws_fsx/__init__.py +25 -23
  24. aws_cdk/aws_glue/__init__.py +3 -3
  25. aws_cdk/aws_guardduty/__init__.py +6 -4
  26. aws_cdk/aws_iam/__init__.py +8 -5
  27. aws_cdk/aws_kinesisanalytics/__init__.py +11 -11
  28. aws_cdk/aws_kinesisanalyticsv2/__init__.py +11 -11
  29. aws_cdk/aws_lambda/__init__.py +19 -2
  30. aws_cdk/aws_logs/__init__.py +9 -0
  31. aws_cdk/aws_qbusiness/__init__.py +21 -7
  32. aws_cdk/aws_rds/__init__.py +18 -12
  33. aws_cdk/aws_rolesanywhere/__init__.py +22 -13
  34. aws_cdk/aws_route53profiles/__init__.py +4 -4
  35. aws_cdk/aws_s3/__init__.py +15 -117
  36. aws_cdk/aws_sagemaker/__init__.py +10 -10
  37. aws_cdk/aws_ses/__init__.py +119 -102
  38. aws_cdk/aws_stepfunctions_tasks/__init__.py +215 -24
  39. aws_cdk/aws_synthetics/__init__.py +15 -1
  40. aws_cdk/aws_verifiedpermissions/__init__.py +7 -9
  41. aws_cdk/aws_wafv2/__init__.py +10 -16
  42. aws_cdk/aws_workspaces/__init__.py +86 -56
  43. aws_cdk/custom_resources/__init__.py +91 -23
  44. aws_cdk/pipelines/__init__.py +1 -1
  45. aws_cdk/region_info/__init__.py +32 -12
  46. {aws_cdk_lib-2.148.1.dist-info → aws_cdk_lib-2.150.0.dist-info}/METADATA +1 -1
  47. {aws_cdk_lib-2.148.1.dist-info → aws_cdk_lib-2.150.0.dist-info}/RECORD +51 -51
  48. {aws_cdk_lib-2.148.1.dist-info → aws_cdk_lib-2.150.0.dist-info}/LICENSE +0 -0
  49. {aws_cdk_lib-2.148.1.dist-info → aws_cdk_lib-2.150.0.dist-info}/NOTICE +0 -0
  50. {aws_cdk_lib-2.148.1.dist-info → aws_cdk_lib-2.150.0.dist-info}/WHEEL +0 -0
  51. {aws_cdk_lib-2.148.1.dist-info → aws_cdk_lib-2.150.0.dist-info}/top_level.txt +0 -0
@@ -5476,9 +5476,11 @@ class CfnRuleGroup(
5476
5476
 
5477
5477
  Example JSON: ``"JsonBody": { "MatchPattern": { "All": {} }, "MatchScope": "ALL" }``
5478
5478
 
5479
+ For additional information about this request component option, see `JSON body <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-fields-list.html#waf-rule-statement-request-component-json-body>`_ in the *AWS WAF Developer Guide* .
5480
+
5479
5481
  :param match_pattern: The patterns to look for in the JSON body. AWS WAF inspects the results of these pattern matches against the rule inspection criteria.
5480
5482
  :param match_scope: The parts of the JSON to match against using the ``MatchPattern`` . If you specify ``ALL`` , AWS WAF matches against keys and values. ``All`` does not require a match to be found in the keys and a match to be found in the values. It requires a match to be found in the keys or the values or both. To require a match in the keys and in the values, use a logical ``AND`` statement to combine two match rules, one that inspects the keys and another that inspects the values.
5481
- :param invalid_fallback_behavior: What AWS WAF should do if it fails to completely parse the JSON body. The options are the following:. - ``EVALUATE_AS_STRING`` - Inspect the body as plain text. AWS WAF applies the text transformations and inspection criteria that you defined for the JSON inspection to the body text string. - ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request. - ``NO_MATCH`` - Treat the web request as not matching the rule statement. If you don't provide this setting, AWS WAF parses and evaluates the content only up to the first parsing failure that it encounters. AWS WAF does its best to parse the entire JSON body, but might be forced to stop for reasons such as invalid characters, duplicate keys, truncation, and any content whose root node isn't an object or an array. AWS WAF parses the JSON in the following examples as two valid key, value pairs: - Missing comma: ``{"key1":"value1""key2":"value2"}`` - Missing colon: ``{"key1":"value1","key2""value2"}`` - Extra colons: ``{"key1"::"value1","key2""value2"}``
5483
+ :param invalid_fallback_behavior: What AWS WAF should do if it fails to completely parse the JSON body. The options are the following:. - ``EVALUATE_AS_STRING`` - Inspect the body as plain text. AWS WAF applies the text transformations and inspection criteria that you defined for the JSON inspection to the body text string. - ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request. - ``NO_MATCH`` - Treat the web request as not matching the rule statement. If you don't provide this setting, AWS WAF parses and evaluates the content only up to the first parsing failure that it encounters. .. epigraph:: AWS WAF parsing doesn't fully validate the input JSON string, so parsing can succeed even for invalid JSON. When parsing succeeds, AWS WAF doesn't apply the fallback behavior. For more information, see `JSON body <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-fields-list.html#waf-rule-statement-request-component-json-body>`_ in the *AWS WAF Developer Guide* .
5482
5484
  :param oversize_handling: What AWS WAF should do if the body is larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection. - For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). - For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees. The options for oversize handling are the following: - ``CONTINUE`` - Inspect the available body contents normally, according to the rule inspection criteria. - ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request. - ``NO_MATCH`` - Treat the web request as not matching the rule statement. You can combine the ``MATCH`` or ``NO_MATCH`` settings for oversize handling with your rule and web ACL action settings, so that you block any request whose body is over the limit. Default: ``CONTINUE``
5483
5485
 
5484
5486
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-jsonbody.html
@@ -5556,14 +5558,9 @@ class CfnRuleGroup(
5556
5558
  - ``NO_MATCH`` - Treat the web request as not matching the rule statement.
5557
5559
 
5558
5560
  If you don't provide this setting, AWS WAF parses and evaluates the content only up to the first parsing failure that it encounters.
5561
+ .. epigraph::
5559
5562
 
5560
- AWS WAF does its best to parse the entire JSON body, but might be forced to stop for reasons such as invalid characters, duplicate keys, truncation, and any content whose root node isn't an object or an array.
5561
-
5562
- AWS WAF parses the JSON in the following examples as two valid key, value pairs:
5563
-
5564
- - Missing comma: ``{"key1":"value1""key2":"value2"}``
5565
- - Missing colon: ``{"key1":"value1","key2""value2"}``
5566
- - Extra colons: ``{"key1"::"value1","key2""value2"}``
5563
+ AWS WAF parsing doesn't fully validate the input JSON string, so parsing can succeed even for invalid JSON. When parsing succeeds, AWS WAF doesn't apply the fallback behavior. For more information, see `JSON body <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-fields-list.html#waf-rule-statement-request-component-json-body>`_ in the *AWS WAF Developer Guide* .
5567
5564
 
5568
5565
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-jsonbody.html#cfn-wafv2-rulegroup-jsonbody-invalidfallbackbehavior
5569
5566
  '''
@@ -14956,9 +14953,11 @@ class CfnWebACL(
14956
14953
 
14957
14954
  Example JSON: ``"JsonBody": { "MatchPattern": { "All": {} }, "MatchScope": "ALL" }``
14958
14955
 
14956
+ For additional information about this request component option, see `JSON body <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-fields-list.html#waf-rule-statement-request-component-json-body>`_ in the *AWS WAF Developer Guide* .
14957
+
14959
14958
  :param match_pattern: The patterns to look for in the JSON body. AWS WAF inspects the results of these pattern matches against the rule inspection criteria.
14960
14959
  :param match_scope: The parts of the JSON to match against using the ``MatchPattern`` . If you specify ``ALL`` , AWS WAF matches against keys and values. ``All`` does not require a match to be found in the keys and a match to be found in the values. It requires a match to be found in the keys or the values or both. To require a match in the keys and in the values, use a logical ``AND`` statement to combine two match rules, one that inspects the keys and another that inspects the values.
14961
- :param invalid_fallback_behavior: What AWS WAF should do if it fails to completely parse the JSON body. The options are the following:. - ``EVALUATE_AS_STRING`` - Inspect the body as plain text. AWS WAF applies the text transformations and inspection criteria that you defined for the JSON inspection to the body text string. - ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request. - ``NO_MATCH`` - Treat the web request as not matching the rule statement. If you don't provide this setting, AWS WAF parses and evaluates the content only up to the first parsing failure that it encounters. AWS WAF does its best to parse the entire JSON body, but might be forced to stop for reasons such as invalid characters, duplicate keys, truncation, and any content whose root node isn't an object or an array. AWS WAF parses the JSON in the following examples as two valid key, value pairs: - Missing comma: ``{"key1":"value1""key2":"value2"}`` - Missing colon: ``{"key1":"value1","key2""value2"}`` - Extra colons: ``{"key1"::"value1","key2""value2"}``
14960
+ :param invalid_fallback_behavior: What AWS WAF should do if it fails to completely parse the JSON body. The options are the following:. - ``EVALUATE_AS_STRING`` - Inspect the body as plain text. AWS WAF applies the text transformations and inspection criteria that you defined for the JSON inspection to the body text string. - ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request. - ``NO_MATCH`` - Treat the web request as not matching the rule statement. If you don't provide this setting, AWS WAF parses and evaluates the content only up to the first parsing failure that it encounters. .. epigraph:: AWS WAF parsing doesn't fully validate the input JSON string, so parsing can succeed even for invalid JSON. When parsing succeeds, AWS WAF doesn't apply the fallback behavior. For more information, see `JSON body <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-fields-list.html#waf-rule-statement-request-component-json-body>`_ in the *AWS WAF Developer Guide* .
14962
14961
  :param oversize_handling: What AWS WAF should do if the body is larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection. - For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). - For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees. The options for oversize handling are the following: - ``CONTINUE`` - Inspect the available body contents normally, according to the rule inspection criteria. - ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request. - ``NO_MATCH`` - Treat the web request as not matching the rule statement. You can combine the ``MATCH`` or ``NO_MATCH`` settings for oversize handling with your rule and web ACL action settings, so that you block any request whose body is over the limit. Default: ``CONTINUE``
14963
14962
 
14964
14963
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-jsonbody.html
@@ -15036,14 +15035,9 @@ class CfnWebACL(
15036
15035
  - ``NO_MATCH`` - Treat the web request as not matching the rule statement.
15037
15036
 
15038
15037
  If you don't provide this setting, AWS WAF parses and evaluates the content only up to the first parsing failure that it encounters.
15038
+ .. epigraph::
15039
15039
 
15040
- AWS WAF does its best to parse the entire JSON body, but might be forced to stop for reasons such as invalid characters, duplicate keys, truncation, and any content whose root node isn't an object or an array.
15041
-
15042
- AWS WAF parses the JSON in the following examples as two valid key, value pairs:
15043
-
15044
- - Missing comma: ``{"key1":"value1""key2":"value2"}``
15045
- - Missing colon: ``{"key1":"value1","key2""value2"}``
15046
- - Extra colons: ``{"key1"::"value1","key2""value2"}``
15040
+ AWS WAF parsing doesn't fully validate the input JSON string, so parsing can succeed even for invalid JSON. When parsing succeeds, AWS WAF doesn't apply the fallback behavior. For more information, see `JSON body <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-fields-list.html#waf-rule-statement-request-component-json-body>`_ in the *AWS WAF Developer Guide* .
15047
15041
 
15048
15042
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-jsonbody.html#cfn-wafv2-webacl-jsonbody-invalidfallbackbehavior
15049
15043
  '''
@@ -453,11 +453,11 @@ class CfnWorkspace(
453
453
  :param id: Construct identifier for this resource (unique in its scope).
454
454
  :param bundle_id: The identifier of the bundle for the WorkSpace.
455
455
  :param directory_id: The identifier of the AWS Directory Service directory for the WorkSpace.
456
- :param user_name: The user name of the user for the WorkSpace. This user name must exist in the AWS Directory Service directory for the WorkSpace. The reserved keyword, ``[UNDEFINED]`` , is used when creating user-decoupled WorkSpaces.
456
+ :param user_name: The user name of the user for the WorkSpace. This user name must exist in the AWS Directory Service directory for the WorkSpace.
457
457
  :param root_volume_encryption_enabled: Indicates whether the data stored on the root volume is encrypted.
458
458
  :param tags: The tags for the WorkSpace.
459
459
  :param user_volume_encryption_enabled: Indicates whether the data stored on the user volume is encrypted.
460
- :param volume_encryption_key: The ARN of the symmetric AWS KMS key used to encrypt data stored on your WorkSpace. Amazon WorkSpaces does not support asymmetric KMS keys.
460
+ :param volume_encryption_key: The symmetric AWS KMS key used to encrypt data stored on your WorkSpace. Amazon WorkSpaces does not support asymmetric KMS keys.
461
461
  :param workspace_properties: The WorkSpace properties.
462
462
  '''
463
463
  if __debug__:
@@ -618,7 +618,7 @@ class CfnWorkspace(
618
618
  @builtins.property
619
619
  @jsii.member(jsii_name="volumeEncryptionKey")
620
620
  def volume_encryption_key(self) -> typing.Optional[builtins.str]:
621
- '''The ARN of the symmetric AWS KMS key used to encrypt data stored on your WorkSpace.'''
621
+ '''The symmetric AWS KMS key used to encrypt data stored on your WorkSpace.'''
622
622
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "volumeEncryptionKey"))
623
623
 
624
624
  @volume_encryption_key.setter
@@ -671,7 +671,7 @@ class CfnWorkspace(
671
671
 
672
672
  :param compute_type_name: The compute type. For more information, see `Amazon WorkSpaces Bundles <https://docs.aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles>`_ .
673
673
  :param root_volume_size_gib: The size of the root volume. For important information about how to modify the size of the root and user volumes, see `Modify a WorkSpace <https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html>`_ .
674
- :param running_mode: The running mode. For more information, see `Manage the WorkSpace Running Mode <https://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html>`_ . .. epigraph:: The ``MANUAL`` value is only supported by Amazon WorkSpaces Core. Contact your account team to be allow-listed to use this value. For more information, see `Amazon WorkSpaces Core <https://docs.aws.amazon.com/workspaces/core/>`_ .
674
+ :param running_mode: The running mode. For more information, see `Manage the WorkSpace Running Mode <https://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html>`_ .
675
675
  :param running_mode_auto_stop_timeout_in_minutes: The time after a user logs off when WorkSpaces are automatically stopped. Configured in 60-minute intervals.
676
676
  :param user_volume_size_gib: The size of the user storage. For important information about how to modify the size of the root and user volumes, see `Modify a WorkSpace <https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html>`_ .
677
677
 
@@ -735,11 +735,9 @@ class CfnWorkspace(
735
735
 
736
736
  @builtins.property
737
737
  def running_mode(self) -> typing.Optional[builtins.str]:
738
- '''The running mode. For more information, see `Manage the WorkSpace Running Mode <https://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html>`_ .
738
+ '''The running mode.
739
739
 
740
- .. epigraph::
741
-
742
- The ``MANUAL`` value is only supported by Amazon WorkSpaces Core. Contact your account team to be allow-listed to use this value. For more information, see `Amazon WorkSpaces Core <https://docs.aws.amazon.com/workspaces/core/>`_ .
740
+ For more information, see `Manage the WorkSpace Running Mode <https://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html>`_ .
743
741
 
744
742
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html#cfn-workspaces-workspace-workspaceproperties-runningmode
745
743
  '''
@@ -813,11 +811,11 @@ class CfnWorkspaceProps:
813
811
 
814
812
  :param bundle_id: The identifier of the bundle for the WorkSpace.
815
813
  :param directory_id: The identifier of the AWS Directory Service directory for the WorkSpace.
816
- :param user_name: The user name of the user for the WorkSpace. This user name must exist in the AWS Directory Service directory for the WorkSpace. The reserved keyword, ``[UNDEFINED]`` , is used when creating user-decoupled WorkSpaces.
814
+ :param user_name: The user name of the user for the WorkSpace. This user name must exist in the AWS Directory Service directory for the WorkSpace.
817
815
  :param root_volume_encryption_enabled: Indicates whether the data stored on the root volume is encrypted.
818
816
  :param tags: The tags for the WorkSpace.
819
817
  :param user_volume_encryption_enabled: Indicates whether the data stored on the user volume is encrypted.
820
- :param volume_encryption_key: The ARN of the symmetric AWS KMS key used to encrypt data stored on your WorkSpace. Amazon WorkSpaces does not support asymmetric KMS keys.
818
+ :param volume_encryption_key: The symmetric AWS KMS key used to encrypt data stored on your WorkSpace. Amazon WorkSpaces does not support asymmetric KMS keys.
821
819
  :param workspace_properties: The WorkSpace properties.
822
820
 
823
821
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html
@@ -903,8 +901,6 @@ class CfnWorkspaceProps:
903
901
 
904
902
  This user name must exist in the AWS Directory Service directory for the WorkSpace.
905
903
 
906
- The reserved keyword, ``[UNDEFINED]`` , is used when creating user-decoupled WorkSpaces.
907
-
908
904
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html#cfn-workspaces-workspace-username
909
905
  '''
910
906
  result = self._values.get("user_name")
@@ -944,7 +940,7 @@ class CfnWorkspaceProps:
944
940
 
945
941
  @builtins.property
946
942
  def volume_encryption_key(self) -> typing.Optional[builtins.str]:
947
- '''The ARN of the symmetric AWS KMS key used to encrypt data stored on your WorkSpace.
943
+ '''The symmetric AWS KMS key used to encrypt data stored on your WorkSpace.
948
944
 
949
945
  Amazon WorkSpaces does not support asymmetric KMS keys.
950
946
 
@@ -982,7 +978,7 @@ class CfnWorkspacesPool(
982
978
  metaclass=jsii.JSIIMeta,
983
979
  jsii_type="aws-cdk-lib.aws_workspaces.CfnWorkspacesPool",
984
980
  ):
985
- '''Resource Type definition for AWS::WorkSpaces::WorkspacesPool.
981
+ '''Describes a pool of WorkSpaces.
986
982
 
987
983
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspacespool.html
988
984
  :cloudformationResource: AWS::WorkSpaces::WorkspacesPool
@@ -1039,14 +1035,14 @@ class CfnWorkspacesPool(
1039
1035
  '''
1040
1036
  :param scope: Scope in which this resource is defined.
1041
1037
  :param id: Construct identifier for this resource (unique in its scope).
1042
- :param bundle_id:
1043
- :param capacity:
1044
- :param directory_id:
1045
- :param pool_name:
1046
- :param application_settings:
1047
- :param description:
1048
- :param tags:
1049
- :param timeout_settings:
1038
+ :param bundle_id: The identifier of the bundle used by the pool.
1039
+ :param capacity: Describes the user capacity for the pool.
1040
+ :param directory_id: The identifier of the directory used by the pool.
1041
+ :param pool_name: The name of the pool.
1042
+ :param application_settings: The persistent application settings for users of the pool.
1043
+ :param description: The description of the pool.
1044
+ :param tags: The tags for the pool.
1045
+ :param timeout_settings: The amount of time that a pool session remains active after users disconnect. If they try to reconnect to the pool session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new pool instance.
1050
1046
  '''
1051
1047
  if __debug__:
1052
1048
  type_hints = typing.get_type_hints(_typecheckingstub__2d46eb37beb6bc915a0a0c68f02dfa689a2d725a4252e6874da1ed60602a91e4)
@@ -1098,7 +1094,8 @@ class CfnWorkspacesPool(
1098
1094
  @builtins.property
1099
1095
  @jsii.member(jsii_name="attrCreatedAt")
1100
1096
  def attr_created_at(self) -> builtins.str:
1101
- '''
1097
+ '''The time the pool was created.
1098
+
1102
1099
  :cloudformationAttribute: CreatedAt
1103
1100
  '''
1104
1101
  return typing.cast(builtins.str, jsii.get(self, "attrCreatedAt"))
@@ -1106,7 +1103,8 @@ class CfnWorkspacesPool(
1106
1103
  @builtins.property
1107
1104
  @jsii.member(jsii_name="attrPoolArn")
1108
1105
  def attr_pool_arn(self) -> builtins.str:
1109
- '''
1106
+ '''The Amazon Resource Name (ARN) for the pool.
1107
+
1110
1108
  :cloudformationAttribute: PoolArn
1111
1109
  '''
1112
1110
  return typing.cast(builtins.str, jsii.get(self, "attrPoolArn"))
@@ -1114,7 +1112,8 @@ class CfnWorkspacesPool(
1114
1112
  @builtins.property
1115
1113
  @jsii.member(jsii_name="attrPoolId")
1116
1114
  def attr_pool_id(self) -> builtins.str:
1117
- '''
1115
+ '''The identifier of the pool.
1116
+
1118
1117
  :cloudformationAttribute: PoolId
1119
1118
  '''
1120
1119
  return typing.cast(builtins.str, jsii.get(self, "attrPoolId"))
@@ -1133,6 +1132,7 @@ class CfnWorkspacesPool(
1133
1132
  @builtins.property
1134
1133
  @jsii.member(jsii_name="bundleId")
1135
1134
  def bundle_id(self) -> builtins.str:
1135
+ '''The identifier of the bundle used by the pool.'''
1136
1136
  return typing.cast(builtins.str, jsii.get(self, "bundleId"))
1137
1137
 
1138
1138
  @bundle_id.setter
@@ -1147,6 +1147,7 @@ class CfnWorkspacesPool(
1147
1147
  def capacity(
1148
1148
  self,
1149
1149
  ) -> typing.Union[_IResolvable_da3f097b, "CfnWorkspacesPool.CapacityProperty"]:
1150
+ '''Describes the user capacity for the pool.'''
1150
1151
  return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnWorkspacesPool.CapacityProperty"], jsii.get(self, "capacity"))
1151
1152
 
1152
1153
  @capacity.setter
@@ -1162,6 +1163,7 @@ class CfnWorkspacesPool(
1162
1163
  @builtins.property
1163
1164
  @jsii.member(jsii_name="directoryId")
1164
1165
  def directory_id(self) -> builtins.str:
1166
+ '''The identifier of the directory used by the pool.'''
1165
1167
  return typing.cast(builtins.str, jsii.get(self, "directoryId"))
1166
1168
 
1167
1169
  @directory_id.setter
@@ -1174,6 +1176,7 @@ class CfnWorkspacesPool(
1174
1176
  @builtins.property
1175
1177
  @jsii.member(jsii_name="poolName")
1176
1178
  def pool_name(self) -> builtins.str:
1179
+ '''The name of the pool.'''
1177
1180
  return typing.cast(builtins.str, jsii.get(self, "poolName"))
1178
1181
 
1179
1182
  @pool_name.setter
@@ -1188,6 +1191,7 @@ class CfnWorkspacesPool(
1188
1191
  def application_settings(
1189
1192
  self,
1190
1193
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWorkspacesPool.ApplicationSettingsProperty"]]:
1194
+ '''The persistent application settings for users of the pool.'''
1191
1195
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWorkspacesPool.ApplicationSettingsProperty"]], jsii.get(self, "applicationSettings"))
1192
1196
 
1193
1197
  @application_settings.setter
@@ -1203,6 +1207,7 @@ class CfnWorkspacesPool(
1203
1207
  @builtins.property
1204
1208
  @jsii.member(jsii_name="description")
1205
1209
  def description(self) -> typing.Optional[builtins.str]:
1210
+ '''The description of the pool.'''
1206
1211
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "description"))
1207
1212
 
1208
1213
  @description.setter
@@ -1215,6 +1220,7 @@ class CfnWorkspacesPool(
1215
1220
  @builtins.property
1216
1221
  @jsii.member(jsii_name="tags")
1217
1222
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1223
+ '''The tags for the pool.'''
1218
1224
  return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
1219
1225
 
1220
1226
  @tags.setter
@@ -1229,6 +1235,7 @@ class CfnWorkspacesPool(
1229
1235
  def timeout_settings(
1230
1236
  self,
1231
1237
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWorkspacesPool.TimeoutSettingsProperty"]]:
1238
+ '''The amount of time that a pool session remains active after users disconnect.'''
1232
1239
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWorkspacesPool.TimeoutSettingsProperty"]], jsii.get(self, "timeoutSettings"))
1233
1240
 
1234
1241
  @timeout_settings.setter
@@ -1253,9 +1260,10 @@ class CfnWorkspacesPool(
1253
1260
  status: builtins.str,
1254
1261
  settings_group: typing.Optional[builtins.str] = None,
1255
1262
  ) -> None:
1256
- '''
1257
- :param status:
1258
- :param settings_group:
1263
+ '''The persistent application settings for users in the pool.
1264
+
1265
+ :param status: Enables or disables persistent application settings for users during their pool sessions.
1266
+ :param settings_group: The path prefix for the S3 bucket where users’ persistent application settings are stored.
1259
1267
 
1260
1268
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspacespool-applicationsettings.html
1261
1269
  :exampleMetadata: fixture=_generated
@@ -1285,7 +1293,8 @@ class CfnWorkspacesPool(
1285
1293
 
1286
1294
  @builtins.property
1287
1295
  def status(self) -> builtins.str:
1288
- '''
1296
+ '''Enables or disables persistent application settings for users during their pool sessions.
1297
+
1289
1298
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspacespool-applicationsettings.html#cfn-workspaces-workspacespool-applicationsettings-status
1290
1299
  '''
1291
1300
  result = self._values.get("status")
@@ -1294,7 +1303,8 @@ class CfnWorkspacesPool(
1294
1303
 
1295
1304
  @builtins.property
1296
1305
  def settings_group(self) -> typing.Optional[builtins.str]:
1297
- '''
1306
+ '''The path prefix for the S3 bucket where users’ persistent application settings are stored.
1307
+
1298
1308
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspacespool-applicationsettings.html#cfn-workspaces-workspacespool-applicationsettings-settingsgroup
1299
1309
  '''
1300
1310
  result = self._values.get("settings_group")
@@ -1318,8 +1328,9 @@ class CfnWorkspacesPool(
1318
1328
  )
1319
1329
  class CapacityProperty:
1320
1330
  def __init__(self, *, desired_user_sessions: jsii.Number) -> None:
1321
- '''
1322
- :param desired_user_sessions:
1331
+ '''Describes the user capacity for the pool.
1332
+
1333
+ :param desired_user_sessions: The desired number of user sessions for the WorkSpaces in the pool.
1323
1334
 
1324
1335
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspacespool-capacity.html
1325
1336
  :exampleMetadata: fixture=_generated
@@ -1343,7 +1354,8 @@ class CfnWorkspacesPool(
1343
1354
 
1344
1355
  @builtins.property
1345
1356
  def desired_user_sessions(self) -> jsii.Number:
1346
- '''
1357
+ '''The desired number of user sessions for the WorkSpaces in the pool.
1358
+
1347
1359
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspacespool-capacity.html#cfn-workspaces-workspacespool-capacity-desiredusersessions
1348
1360
  '''
1349
1361
  result = self._values.get("desired_user_sessions")
@@ -1378,10 +1390,11 @@ class CfnWorkspacesPool(
1378
1390
  idle_disconnect_timeout_in_seconds: typing.Optional[jsii.Number] = None,
1379
1391
  max_user_duration_in_seconds: typing.Optional[jsii.Number] = None,
1380
1392
  ) -> None:
1381
- '''
1382
- :param disconnect_timeout_in_seconds:
1383
- :param idle_disconnect_timeout_in_seconds:
1384
- :param max_user_duration_in_seconds:
1393
+ '''Describes the timeout settings for the pool.
1394
+
1395
+ :param disconnect_timeout_in_seconds: Specifies the amount of time, in seconds, that a streaming session remains active after users disconnect. If users try to reconnect to the streaming session after a disconnection or network interruption within the time set, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance.
1396
+ :param idle_disconnect_timeout_in_seconds: The amount of time in seconds a connection will stay active while idle.
1397
+ :param max_user_duration_in_seconds: Specifies the maximum amount of time, in seconds, that a streaming session can remain active. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance.
1385
1398
 
1386
1399
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspacespool-timeoutsettings.html
1387
1400
  :exampleMetadata: fixture=_generated
@@ -1413,7 +1426,10 @@ class CfnWorkspacesPool(
1413
1426
 
1414
1427
  @builtins.property
1415
1428
  def disconnect_timeout_in_seconds(self) -> typing.Optional[jsii.Number]:
1416
- '''
1429
+ '''Specifies the amount of time, in seconds, that a streaming session remains active after users disconnect.
1430
+
1431
+ If users try to reconnect to the streaming session after a disconnection or network interruption within the time set, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance.
1432
+
1417
1433
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspacespool-timeoutsettings.html#cfn-workspaces-workspacespool-timeoutsettings-disconnecttimeoutinseconds
1418
1434
  '''
1419
1435
  result = self._values.get("disconnect_timeout_in_seconds")
@@ -1421,7 +1437,8 @@ class CfnWorkspacesPool(
1421
1437
 
1422
1438
  @builtins.property
1423
1439
  def idle_disconnect_timeout_in_seconds(self) -> typing.Optional[jsii.Number]:
1424
- '''
1440
+ '''The amount of time in seconds a connection will stay active while idle.
1441
+
1425
1442
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspacespool-timeoutsettings.html#cfn-workspaces-workspacespool-timeoutsettings-idledisconnecttimeoutinseconds
1426
1443
  '''
1427
1444
  result = self._values.get("idle_disconnect_timeout_in_seconds")
@@ -1429,7 +1446,10 @@ class CfnWorkspacesPool(
1429
1446
 
1430
1447
  @builtins.property
1431
1448
  def max_user_duration_in_seconds(self) -> typing.Optional[jsii.Number]:
1432
- '''
1449
+ '''Specifies the maximum amount of time, in seconds, that a streaming session can remain active.
1450
+
1451
+ If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance.
1452
+
1433
1453
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspacespool-timeoutsettings.html#cfn-workspaces-workspacespool-timeoutsettings-maxuserdurationinseconds
1434
1454
  '''
1435
1455
  result = self._values.get("max_user_duration_in_seconds")
@@ -1476,14 +1496,14 @@ class CfnWorkspacesPoolProps:
1476
1496
  ) -> None:
1477
1497
  '''Properties for defining a ``CfnWorkspacesPool``.
1478
1498
 
1479
- :param bundle_id:
1480
- :param capacity:
1481
- :param directory_id:
1482
- :param pool_name:
1483
- :param application_settings:
1484
- :param description:
1485
- :param tags:
1486
- :param timeout_settings:
1499
+ :param bundle_id: The identifier of the bundle used by the pool.
1500
+ :param capacity: Describes the user capacity for the pool.
1501
+ :param directory_id: The identifier of the directory used by the pool.
1502
+ :param pool_name: The name of the pool.
1503
+ :param application_settings: The persistent application settings for users of the pool.
1504
+ :param description: The description of the pool.
1505
+ :param tags: The tags for the pool.
1506
+ :param timeout_settings: The amount of time that a pool session remains active after users disconnect. If they try to reconnect to the pool session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new pool instance.
1487
1507
 
1488
1508
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspacespool.html
1489
1509
  :exampleMetadata: fixture=_generated
@@ -1548,7 +1568,8 @@ class CfnWorkspacesPoolProps:
1548
1568
 
1549
1569
  @builtins.property
1550
1570
  def bundle_id(self) -> builtins.str:
1551
- '''
1571
+ '''The identifier of the bundle used by the pool.
1572
+
1552
1573
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspacespool.html#cfn-workspaces-workspacespool-bundleid
1553
1574
  '''
1554
1575
  result = self._values.get("bundle_id")
@@ -1559,7 +1580,8 @@ class CfnWorkspacesPoolProps:
1559
1580
  def capacity(
1560
1581
  self,
1561
1582
  ) -> typing.Union[_IResolvable_da3f097b, CfnWorkspacesPool.CapacityProperty]:
1562
- '''
1583
+ '''Describes the user capacity for the pool.
1584
+
1563
1585
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspacespool.html#cfn-workspaces-workspacespool-capacity
1564
1586
  '''
1565
1587
  result = self._values.get("capacity")
@@ -1568,7 +1590,8 @@ class CfnWorkspacesPoolProps:
1568
1590
 
1569
1591
  @builtins.property
1570
1592
  def directory_id(self) -> builtins.str:
1571
- '''
1593
+ '''The identifier of the directory used by the pool.
1594
+
1572
1595
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspacespool.html#cfn-workspaces-workspacespool-directoryid
1573
1596
  '''
1574
1597
  result = self._values.get("directory_id")
@@ -1577,7 +1600,8 @@ class CfnWorkspacesPoolProps:
1577
1600
 
1578
1601
  @builtins.property
1579
1602
  def pool_name(self) -> builtins.str:
1580
- '''
1603
+ '''The name of the pool.
1604
+
1581
1605
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspacespool.html#cfn-workspaces-workspacespool-poolname
1582
1606
  '''
1583
1607
  result = self._values.get("pool_name")
@@ -1588,7 +1612,8 @@ class CfnWorkspacesPoolProps:
1588
1612
  def application_settings(
1589
1613
  self,
1590
1614
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnWorkspacesPool.ApplicationSettingsProperty]]:
1591
- '''
1615
+ '''The persistent application settings for users of the pool.
1616
+
1592
1617
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspacespool.html#cfn-workspaces-workspacespool-applicationsettings
1593
1618
  '''
1594
1619
  result = self._values.get("application_settings")
@@ -1596,7 +1621,8 @@ class CfnWorkspacesPoolProps:
1596
1621
 
1597
1622
  @builtins.property
1598
1623
  def description(self) -> typing.Optional[builtins.str]:
1599
- '''
1624
+ '''The description of the pool.
1625
+
1600
1626
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspacespool.html#cfn-workspaces-workspacespool-description
1601
1627
  '''
1602
1628
  result = self._values.get("description")
@@ -1604,7 +1630,8 @@ class CfnWorkspacesPoolProps:
1604
1630
 
1605
1631
  @builtins.property
1606
1632
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1607
- '''
1633
+ '''The tags for the pool.
1634
+
1608
1635
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspacespool.html#cfn-workspaces-workspacespool-tags
1609
1636
  '''
1610
1637
  result = self._values.get("tags")
@@ -1614,7 +1641,10 @@ class CfnWorkspacesPoolProps:
1614
1641
  def timeout_settings(
1615
1642
  self,
1616
1643
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnWorkspacesPool.TimeoutSettingsProperty]]:
1617
- '''
1644
+ '''The amount of time that a pool session remains active after users disconnect.
1645
+
1646
+ If they try to reconnect to the pool session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new pool instance.
1647
+
1618
1648
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspacespool.html#cfn-workspaces-workspacespool-timeoutsettings
1619
1649
  '''
1620
1650
  result = self._values.get("timeout_settings")
@@ -158,7 +158,7 @@ The return value from `onEvent` must be a JSON object with the following fields:
158
158
  | -------------------- | ------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
159
159
  | `PhysicalResourceId` | String | No | The allocated/assigned physical ID of the resource. If omitted for `Create` events, the event's `RequestId` will be used. For `Update`, the current physical ID will be used. If a different value is returned, CloudFormation will follow with a subsequent `Delete` for the previous ID (resource replacement). For `Delete`, it will always return the current physical resource ID, and if the user returns a different one, an error will occur. |
160
160
  | `Data` | JSON | No | Resource attributes, which can later be retrieved through `Fn::GetAtt` on the custom resource object. |
161
- | `NoEcho` | Boolean | No | Whether to mask the output of the custom resource when retrieved by using the `Fn::GetAtt` function. |
161
+ | `NoEcho` | Boolean | No | Whether to mask the output of the custom resource when retrieved by using the `Fn::GetAtt` function and to mask the `Data` values. |
162
162
  | *any* | *any* | No | Any other field included in the response will be passed through to `isComplete`. This can sometimes be useful to pass state between the handlers. |
163
163
 
164
164
  ### Asynchronous Providers: isComplete
@@ -215,6 +215,48 @@ must return this name in `PhysicalResourceId` and make sure to handle
215
215
  replacement properly. The `S3File` example demonstrates this
216
216
  through the `objectKey` property.
217
217
 
218
+ ### Masking the output of log statements
219
+
220
+ When using the Provider framework to create a custom resource, the request and response
221
+ objects are logged by the provider function.If secret values are returned in the custom
222
+ resource's Data object, it would be logged and exposed which possesses security threats.
223
+
224
+ To mask the output of log statements, you can utilize the `NoEcho` field in the custom
225
+ resource handler's response.
226
+
227
+ ```python
228
+ # Create custom resource handler entrypoint
229
+ handler = lambda_.Function(self, "my-handler",
230
+ runtime=lambda_.Runtime.NODEJS_20_X,
231
+ handler="index.handler",
232
+ code=lambda_.Code.from_inline("""
233
+ exports.handler = async (event, context) => {
234
+ return {
235
+ PhysicalResourceId: '1234',
236
+ NoEcho: true,
237
+ Data: {
238
+ mySecret: 'secret-value',
239
+ hello: 'world',
240
+ ghToken: 'gho_xxxxxxx',
241
+ },
242
+ };
243
+ };""")
244
+ )
245
+
246
+ # Provision a custom resource provider framework
247
+ provider = cr.Provider(self, "my-provider",
248
+ on_event_handler=handler
249
+ )
250
+
251
+ CustomResource(self, "my-cr",
252
+ service_token=provider.service_token
253
+ )
254
+ ```
255
+
256
+ When `NoEcho` field is set to `true` in the response of custom resource handler,
257
+ it will automatically mask all values in the `Data` object in the log statements
258
+ to asterisks (*****).
259
+
218
260
  ### When there are errors
219
261
 
220
262
  As mentioned above, if any of the user handlers fail (i.e. throws an exception)
@@ -2011,18 +2053,31 @@ class Provider(
2011
2053
 
2012
2054
  Example::
2013
2055
 
2014
- # on_event: lambda.Function
2015
- # is_complete: lambda.Function
2016
- # my_role: iam.Role
2056
+ # Create custom resource handler entrypoint
2057
+ handler = lambda_.Function(self, "my-handler",
2058
+ runtime=lambda_.Runtime.NODEJS_20_X,
2059
+ handler="index.handler",
2060
+ code=lambda_.Code.from_inline("""
2061
+ exports.handler = async (event, context) => {
2062
+ return {
2063
+ PhysicalResourceId: '1234',
2064
+ NoEcho: true,
2065
+ Data: {
2066
+ mySecret: 'secret-value',
2067
+ hello: 'world',
2068
+ ghToken: 'gho_xxxxxxx',
2069
+ },
2070
+ };
2071
+ };""")
2072
+ )
2017
2073
 
2018
- my_provider = cr.Provider(self, "MyProvider",
2019
- on_event_handler=on_event,
2020
- is_complete_handler=is_complete,
2021
- log_group=logs.LogGroup(self, "MyProviderLogs",
2022
- retention=logs.RetentionDays.ONE_DAY
2023
- ),
2024
- role=my_role,
2025
- provider_function_name="the-lambda-name"
2074
+ # Provision a custom resource provider framework
2075
+ provider = cr.Provider(self, "my-provider",
2076
+ on_event_handler=handler
2077
+ )
2078
+
2079
+ CustomResource(self, "my-cr",
2080
+ service_token=provider.service_token
2026
2081
  )
2027
2082
  '''
2028
2083
 
@@ -2166,18 +2221,31 @@ class ProviderProps:
2166
2221
 
2167
2222
  Example::
2168
2223
 
2169
- # on_event: lambda.Function
2170
- # is_complete: lambda.Function
2171
- # my_role: iam.Role
2224
+ # Create custom resource handler entrypoint
2225
+ handler = lambda_.Function(self, "my-handler",
2226
+ runtime=lambda_.Runtime.NODEJS_20_X,
2227
+ handler="index.handler",
2228
+ code=lambda_.Code.from_inline("""
2229
+ exports.handler = async (event, context) => {
2230
+ return {
2231
+ PhysicalResourceId: '1234',
2232
+ NoEcho: true,
2233
+ Data: {
2234
+ mySecret: 'secret-value',
2235
+ hello: 'world',
2236
+ ghToken: 'gho_xxxxxxx',
2237
+ },
2238
+ };
2239
+ };""")
2240
+ )
2241
+
2242
+ # Provision a custom resource provider framework
2243
+ provider = cr.Provider(self, "my-provider",
2244
+ on_event_handler=handler
2245
+ )
2172
2246
 
2173
- my_provider = cr.Provider(self, "MyProvider",
2174
- on_event_handler=on_event,
2175
- is_complete_handler=is_complete,
2176
- log_group=logs.LogGroup(self, "MyProviderLogs",
2177
- retention=logs.RetentionDays.ONE_DAY
2178
- ),
2179
- role=my_role,
2180
- provider_function_name="the-lambda-name"
2247
+ CustomResource(self, "my-cr",
2248
+ service_token=provider.service_token
2181
2249
  )
2182
2250
  '''
2183
2251
  if isinstance(vpc_subnets, dict):
@@ -28,7 +28,7 @@ construct library directly.
28
28
  > engines other than CodePipeline.
29
29
  >
30
30
  > The README for the original API, as well as a migration guide, can be found in
31
- > [our GitHub repository](https://github.com/aws/aws-cdk/blob/main/packages/@aws-cdk/pipelines/ORIGINAL_API.md).
31
+ > [our GitHub repository](https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/pipelines/ORIGINAL_API.md).
32
32
 
33
33
  ## At a glance
34
34