aws-cdk-lib 2.167.2__py3-none-any.whl → 2.168.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 (44) hide show
  1. aws_cdk/__init__.py +2081 -0
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.167.2.jsii.tgz → aws-cdk-lib@2.168.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_applicationautoscaling/__init__.py +1691 -95
  5. aws_cdk/aws_applicationinsights/__init__.py +41 -0
  6. aws_cdk/aws_applicationsignals/__init__.py +117 -0
  7. aws_cdk/aws_autoscaling/__init__.py +441 -6
  8. aws_cdk/aws_batch/__init__.py +202 -5
  9. aws_cdk/aws_bedrock/__init__.py +12 -12
  10. aws_cdk/aws_cleanrooms/__init__.py +17 -8
  11. aws_cdk/aws_cloudformation/__init__.py +2571 -492
  12. aws_cdk/aws_cloudfront/__init__.py +231 -0
  13. aws_cdk/aws_cloudfront/experimental/__init__.py +5 -0
  14. aws_cdk/aws_cloudfront_origins/__init__.py +714 -132
  15. aws_cdk/aws_cloudtrail/__init__.py +52 -14
  16. aws_cdk/aws_codebuild/__init__.py +668 -2
  17. aws_cdk/aws_connectcampaignsv2/__init__.py +3376 -0
  18. aws_cdk/aws_dynamodb/__init__.py +332 -11
  19. aws_cdk/aws_ec2/__init__.py +13 -4
  20. aws_cdk/aws_ecs/__init__.py +213 -0
  21. aws_cdk/aws_elasticloadbalancingv2/__init__.py +160 -11
  22. aws_cdk/aws_fis/__init__.py +495 -0
  23. aws_cdk/aws_gamelift/__init__.py +3101 -1135
  24. aws_cdk/aws_kinesisfirehose/__init__.py +696 -5
  25. aws_cdk/aws_lambda/__init__.py +634 -259
  26. aws_cdk/aws_lambda_destinations/__init__.py +73 -0
  27. aws_cdk/aws_lambda_event_sources/__init__.py +102 -2
  28. aws_cdk/aws_location/__init__.py +18 -18
  29. aws_cdk/aws_mediastore/__init__.py +22 -10
  30. aws_cdk/aws_opensearchservice/__init__.py +6 -0
  31. aws_cdk/aws_quicksight/__init__.py +35 -19
  32. aws_cdk/aws_rds/__init__.py +51 -3
  33. aws_cdk/aws_securityhub/__init__.py +11 -14
  34. aws_cdk/aws_ses/__init__.py +58 -5
  35. aws_cdk/aws_stepfunctions_tasks/__init__.py +1601 -8
  36. aws_cdk/aws_transfer/__init__.py +0 -8
  37. aws_cdk/aws_vpclattice/__init__.py +39 -0
  38. aws_cdk/aws_wisdom/__init__.py +134 -85
  39. {aws_cdk_lib-2.167.2.dist-info → aws_cdk_lib-2.168.0.dist-info}/METADATA +1 -1
  40. {aws_cdk_lib-2.167.2.dist-info → aws_cdk_lib-2.168.0.dist-info}/RECORD +44 -43
  41. {aws_cdk_lib-2.167.2.dist-info → aws_cdk_lib-2.168.0.dist-info}/LICENSE +0 -0
  42. {aws_cdk_lib-2.167.2.dist-info → aws_cdk_lib-2.168.0.dist-info}/NOTICE +0 -0
  43. {aws_cdk_lib-2.167.2.dist-info → aws_cdk_lib-2.168.0.dist-info}/WHEEL +0 -0
  44. {aws_cdk_lib-2.167.2.dist-info → aws_cdk_lib-2.168.0.dist-info}/top_level.txt +0 -0
@@ -256,17 +256,15 @@ class CfnCustomResourceProps:
256
256
 
257
257
 
258
258
  @jsii.implements(_IInspectable_c2943556)
259
- class CfnHookDefaultVersion(
259
+ class CfnGuardHook(
260
260
  _CfnResource_9df397a6,
261
261
  metaclass=jsii.JSIIMeta,
262
- jsii_type="aws-cdk-lib.aws_cloudformation.CfnHookDefaultVersion",
262
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnGuardHook",
263
263
  ):
264
- '''The ``HookDefaultVersion`` resource specifies the default version of the hook.
265
-
266
- The default version of the hook is used in CloudFormation operations for this AWS account and AWS Region .
264
+ '''This is a CloudFormation resource for activating the first-party AWS::Hooks::GuardHook.
267
265
 
268
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html
269
- :cloudformationResource: AWS::CloudFormation::HookDefaultVersion
266
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html
267
+ :cloudformationResource: AWS::CloudFormation::GuardHook
270
268
  :exampleMetadata: fixture=_generated
271
269
 
272
270
  Example::
@@ -275,10 +273,47 @@ class CfnHookDefaultVersion(
275
273
  # The values are placeholders you should change.
276
274
  from aws_cdk import aws_cloudformation as cloudformation
277
275
 
278
- cfn_hook_default_version = cloudformation.CfnHookDefaultVersion(self, "MyCfnHookDefaultVersion",
279
- type_name="typeName",
280
- type_version_arn="typeVersionArn",
281
- version_id="versionId"
276
+ cfn_guard_hook = cloudformation.CfnGuardHook(self, "MyCfnGuardHook",
277
+ alias="alias",
278
+ execution_role="executionRole",
279
+ failure_mode="failureMode",
280
+ hook_status="hookStatus",
281
+ rule_location=cloudformation.CfnGuardHook.S3LocationProperty(
282
+ uri="uri",
283
+
284
+ # the properties below are optional
285
+ version_id="versionId"
286
+ ),
287
+ target_operations=["targetOperations"],
288
+
289
+ # the properties below are optional
290
+ log_bucket="logBucket",
291
+ options=cloudformation.CfnGuardHook.OptionsProperty(
292
+ input_params=cloudformation.CfnGuardHook.S3LocationProperty(
293
+ uri="uri",
294
+
295
+ # the properties below are optional
296
+ version_id="versionId"
297
+ )
298
+ ),
299
+ stack_filters=cloudformation.CfnGuardHook.StackFiltersProperty(
300
+ filtering_criteria="filteringCriteria",
301
+
302
+ # the properties below are optional
303
+ stack_names=cloudformation.CfnGuardHook.StackNamesProperty(
304
+ exclude=["exclude"],
305
+ include=["include"]
306
+ ),
307
+ stack_roles=cloudformation.CfnGuardHook.StackRolesProperty(
308
+ exclude=["exclude"],
309
+ include=["include"]
310
+ )
311
+ ),
312
+ target_filters=cloudformation.CfnGuardHook.TargetFiltersProperty(
313
+ actions=["actions"],
314
+ invocation_points=["invocationPoints"],
315
+ target_names=["targetNames"]
316
+ )
282
317
  )
283
318
  '''
284
319
 
@@ -287,25 +322,46 @@ class CfnHookDefaultVersion(
287
322
  scope: _constructs_77d1e7e8.Construct,
288
323
  id: builtins.str,
289
324
  *,
290
- type_name: typing.Optional[builtins.str] = None,
291
- type_version_arn: typing.Optional[builtins.str] = None,
292
- version_id: typing.Optional[builtins.str] = None,
325
+ alias: builtins.str,
326
+ execution_role: builtins.str,
327
+ failure_mode: builtins.str,
328
+ hook_status: builtins.str,
329
+ rule_location: typing.Union[_IResolvable_da3f097b, typing.Union["CfnGuardHook.S3LocationProperty", typing.Dict[builtins.str, typing.Any]]],
330
+ target_operations: typing.Sequence[builtins.str],
331
+ log_bucket: typing.Optional[builtins.str] = None,
332
+ options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnGuardHook.OptionsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
333
+ stack_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnGuardHook.StackFiltersProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
334
+ target_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnGuardHook.TargetFiltersProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
293
335
  ) -> None:
294
336
  '''
295
337
  :param scope: Scope in which this resource is defined.
296
338
  :param id: Construct identifier for this resource (unique in its scope).
297
- :param type_name: The name of the hook. You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
298
- :param type_version_arn: The version ID of the type configuration. You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
299
- :param version_id: The version ID of the type specified. You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
300
- '''
301
- if __debug__:
302
- type_hints = typing.get_type_hints(_typecheckingstub__0b8bde9f1f98ed0500179dfc97dcadf56e8ff1be4dde185bebd99abe71d79167)
339
+ :param alias: The typename alias for the hook.
340
+ :param execution_role: IAM Role ARN.
341
+ :param failure_mode: Attribute to specify CloudFormation behavior on hook failure. Default: - "WARN"
342
+ :param hook_status: Attribute to specify which stacks this hook applies to or should get invoked for. Default: - "DISABLED"
343
+ :param rule_location: S3 Source Location for the Guard files.
344
+ :param target_operations: Which operations should this Hook run against? Resource changes, stacks or change sets.
345
+ :param log_bucket: S3 Bucket where the guard validate report will be uploaded to.
346
+ :param options:
347
+ :param stack_filters: Filters to allow hooks to target specific stack attributes.
348
+ :param target_filters:
349
+ '''
350
+ if __debug__:
351
+ type_hints = typing.get_type_hints(_typecheckingstub__03161d7a487fda6efdcca08ffddf765149d688cda393f699958050fcb318e260)
303
352
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
304
353
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
305
- props = CfnHookDefaultVersionProps(
306
- type_name=type_name,
307
- type_version_arn=type_version_arn,
308
- version_id=version_id,
354
+ props = CfnGuardHookProps(
355
+ alias=alias,
356
+ execution_role=execution_role,
357
+ failure_mode=failure_mode,
358
+ hook_status=hook_status,
359
+ rule_location=rule_location,
360
+ target_operations=target_operations,
361
+ log_bucket=log_bucket,
362
+ options=options,
363
+ stack_filters=stack_filters,
364
+ target_filters=target_filters,
309
365
  )
310
366
 
311
367
  jsii.create(self.__class__, self, [scope, id, props])
@@ -317,7 +373,7 @@ class CfnHookDefaultVersion(
317
373
  :param inspector: tree inspector to collect and process attributes.
318
374
  '''
319
375
  if __debug__:
320
- type_hints = typing.get_type_hints(_typecheckingstub__9d3cffde5405816d6a41ef681bf2c43df8b5bde2710721ee16254bf382423108)
376
+ type_hints = typing.get_type_hints(_typecheckingstub__cec1fe7bbc90cf36ac842edcc8d50015b2dc2f2875aeb7e6253ff7c4e15aa338)
321
377
  check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
322
378
  return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
323
379
 
@@ -330,7 +386,7 @@ class CfnHookDefaultVersion(
330
386
  :param props: -
331
387
  '''
332
388
  if __debug__:
333
- type_hints = typing.get_type_hints(_typecheckingstub__50c67f0fb346e88146ee0ab601fd70c28799c458260663e325a155a6150756f9)
389
+ type_hints = typing.get_type_hints(_typecheckingstub__f393185921422ec7e6581035e32a48e6114791074a5875d86aeed9dcd2841a82)
334
390
  check_type(argname="argument props", value=props, expected_type=type_hints["props"])
335
391
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
336
392
 
@@ -341,13 +397,13 @@ class CfnHookDefaultVersion(
341
397
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
342
398
 
343
399
  @builtins.property
344
- @jsii.member(jsii_name="attrArn")
345
- def attr_arn(self) -> builtins.str:
346
- '''The Amazon Resource Number (ARN) of the activated extension, in this account and Region.
400
+ @jsii.member(jsii_name="attrHookArn")
401
+ def attr_hook_arn(self) -> builtins.str:
402
+ '''The Amazon Resource Name (ARN) of the activated hook.
347
403
 
348
- :cloudformationAttribute: Arn
404
+ :cloudformationAttribute: HookArn
349
405
  '''
350
- return typing.cast(builtins.str, jsii.get(self, "attrArn"))
406
+ return typing.cast(builtins.str, jsii.get(self, "attrHookArn"))
351
407
 
352
408
  @builtins.property
353
409
  @jsii.member(jsii_name="cfnProperties")
@@ -355,196 +411,1437 @@ class CfnHookDefaultVersion(
355
411
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
356
412
 
357
413
  @builtins.property
358
- @jsii.member(jsii_name="typeName")
359
- def type_name(self) -> typing.Optional[builtins.str]:
360
- '''The name of the hook.'''
361
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "typeName"))
414
+ @jsii.member(jsii_name="alias")
415
+ def alias(self) -> builtins.str:
416
+ '''The typename alias for the hook.'''
417
+ return typing.cast(builtins.str, jsii.get(self, "alias"))
362
418
 
363
- @type_name.setter
364
- def type_name(self, value: typing.Optional[builtins.str]) -> None:
419
+ @alias.setter
420
+ def alias(self, value: builtins.str) -> None:
365
421
  if __debug__:
366
- type_hints = typing.get_type_hints(_typecheckingstub__c985f39fb842ecd8d503cc1ff86e00864e1fc45b5962d3fc9c66a7b136ac654a)
422
+ type_hints = typing.get_type_hints(_typecheckingstub__77b1f76eb29c770288d0795c8dc53027c60e7bad04fcf11f03ad76a14e18731c)
367
423
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
368
- jsii.set(self, "typeName", value) # pyright: ignore[reportArgumentType]
424
+ jsii.set(self, "alias", value) # pyright: ignore[reportArgumentType]
369
425
 
370
426
  @builtins.property
371
- @jsii.member(jsii_name="typeVersionArn")
372
- def type_version_arn(self) -> typing.Optional[builtins.str]:
373
- '''The version ID of the type configuration.'''
374
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "typeVersionArn"))
427
+ @jsii.member(jsii_name="executionRole")
428
+ def execution_role(self) -> builtins.str:
429
+ '''IAM Role ARN.'''
430
+ return typing.cast(builtins.str, jsii.get(self, "executionRole"))
375
431
 
376
- @type_version_arn.setter
377
- def type_version_arn(self, value: typing.Optional[builtins.str]) -> None:
432
+ @execution_role.setter
433
+ def execution_role(self, value: builtins.str) -> None:
378
434
  if __debug__:
379
- type_hints = typing.get_type_hints(_typecheckingstub__b8fff96e0ddbd71a4aa46a88a0873bb65a9aad21cdec8f8be8016c745e513d99)
435
+ type_hints = typing.get_type_hints(_typecheckingstub__22a699f491c232b68e87da58b1e3798c0c543c42e6139bd091d5bc13dc38d691)
380
436
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
381
- jsii.set(self, "typeVersionArn", value) # pyright: ignore[reportArgumentType]
437
+ jsii.set(self, "executionRole", value) # pyright: ignore[reportArgumentType]
382
438
 
383
439
  @builtins.property
384
- @jsii.member(jsii_name="versionId")
385
- def version_id(self) -> typing.Optional[builtins.str]:
386
- '''The version ID of the type specified.'''
387
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "versionId"))
440
+ @jsii.member(jsii_name="failureMode")
441
+ def failure_mode(self) -> builtins.str:
442
+ '''Attribute to specify CloudFormation behavior on hook failure.'''
443
+ return typing.cast(builtins.str, jsii.get(self, "failureMode"))
388
444
 
389
- @version_id.setter
390
- def version_id(self, value: typing.Optional[builtins.str]) -> None:
445
+ @failure_mode.setter
446
+ def failure_mode(self, value: builtins.str) -> None:
391
447
  if __debug__:
392
- type_hints = typing.get_type_hints(_typecheckingstub__b9f9bb2d06c69bb7ef45feaaed611f94d81b89f367a377c829ab1e52ed8d53a0)
448
+ type_hints = typing.get_type_hints(_typecheckingstub__b51f06fa6d9c4bf815a03971bd117bd21aae0f56f3bcf6320d101a6affb4ee5e)
393
449
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
394
- jsii.set(self, "versionId", value) # pyright: ignore[reportArgumentType]
450
+ jsii.set(self, "failureMode", value) # pyright: ignore[reportArgumentType]
395
451
 
452
+ @builtins.property
453
+ @jsii.member(jsii_name="hookStatus")
454
+ def hook_status(self) -> builtins.str:
455
+ '''Attribute to specify which stacks this hook applies to or should get invoked for.'''
456
+ return typing.cast(builtins.str, jsii.get(self, "hookStatus"))
396
457
 
397
- @jsii.data_type(
398
- jsii_type="aws-cdk-lib.aws_cloudformation.CfnHookDefaultVersionProps",
399
- jsii_struct_bases=[],
400
- name_mapping={
401
- "type_name": "typeName",
402
- "type_version_arn": "typeVersionArn",
403
- "version_id": "versionId",
404
- },
405
- )
406
- class CfnHookDefaultVersionProps:
407
- def __init__(
458
+ @hook_status.setter
459
+ def hook_status(self, value: builtins.str) -> None:
460
+ if __debug__:
461
+ type_hints = typing.get_type_hints(_typecheckingstub__45f72bea4f6d1a361234e272fa8b7591203fb732d4833409397c312ef2b338ee)
462
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
463
+ jsii.set(self, "hookStatus", value) # pyright: ignore[reportArgumentType]
464
+
465
+ @builtins.property
466
+ @jsii.member(jsii_name="ruleLocation")
467
+ def rule_location(
408
468
  self,
409
- *,
410
- type_name: typing.Optional[builtins.str] = None,
411
- type_version_arn: typing.Optional[builtins.str] = None,
412
- version_id: typing.Optional[builtins.str] = None,
469
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnGuardHook.S3LocationProperty"]:
470
+ '''S3 Source Location for the Guard files.'''
471
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnGuardHook.S3LocationProperty"], jsii.get(self, "ruleLocation"))
472
+
473
+ @rule_location.setter
474
+ def rule_location(
475
+ self,
476
+ value: typing.Union[_IResolvable_da3f097b, "CfnGuardHook.S3LocationProperty"],
413
477
  ) -> None:
414
- '''Properties for defining a ``CfnHookDefaultVersion``.
478
+ if __debug__:
479
+ type_hints = typing.get_type_hints(_typecheckingstub__5c9be7db879b9401cebdd59ef44b8e74245c171bce7b83e3ff646a725e30990d)
480
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
481
+ jsii.set(self, "ruleLocation", value) # pyright: ignore[reportArgumentType]
415
482
 
416
- :param type_name: The name of the hook. You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
417
- :param type_version_arn: The version ID of the type configuration. You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
418
- :param version_id: The version ID of the type specified. You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
483
+ @builtins.property
484
+ @jsii.member(jsii_name="targetOperations")
485
+ def target_operations(self) -> typing.List[builtins.str]:
486
+ '''Which operations should this Hook run against?'''
487
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "targetOperations"))
419
488
 
420
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html
421
- :exampleMetadata: fixture=_generated
489
+ @target_operations.setter
490
+ def target_operations(self, value: typing.List[builtins.str]) -> None:
491
+ if __debug__:
492
+ type_hints = typing.get_type_hints(_typecheckingstub__158f2ec6b05d1bd8c5c76f62f2e4432b1caba87154d6a9367d1a4ffc6508d382)
493
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
494
+ jsii.set(self, "targetOperations", value) # pyright: ignore[reportArgumentType]
422
495
 
423
- Example::
496
+ @builtins.property
497
+ @jsii.member(jsii_name="logBucket")
498
+ def log_bucket(self) -> typing.Optional[builtins.str]:
499
+ '''S3 Bucket where the guard validate report will be uploaded to.'''
500
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "logBucket"))
424
501
 
425
- # The code below shows an example of how to instantiate this type.
426
- # The values are placeholders you should change.
427
- from aws_cdk import aws_cloudformation as cloudformation
428
-
429
- cfn_hook_default_version_props = cloudformation.CfnHookDefaultVersionProps(
430
- type_name="typeName",
431
- type_version_arn="typeVersionArn",
432
- version_id="versionId"
433
- )
434
- '''
502
+ @log_bucket.setter
503
+ def log_bucket(self, value: typing.Optional[builtins.str]) -> None:
435
504
  if __debug__:
436
- type_hints = typing.get_type_hints(_typecheckingstub__86e582779d0fb8b475195467d988078f1c65515c6a403bf9dc6b5ef8aced149f)
437
- check_type(argname="argument type_name", value=type_name, expected_type=type_hints["type_name"])
438
- check_type(argname="argument type_version_arn", value=type_version_arn, expected_type=type_hints["type_version_arn"])
439
- check_type(argname="argument version_id", value=version_id, expected_type=type_hints["version_id"])
440
- self._values: typing.Dict[builtins.str, typing.Any] = {}
441
- if type_name is not None:
442
- self._values["type_name"] = type_name
443
- if type_version_arn is not None:
444
- self._values["type_version_arn"] = type_version_arn
445
- if version_id is not None:
446
- self._values["version_id"] = version_id
505
+ type_hints = typing.get_type_hints(_typecheckingstub__52841a36e60ee2e4dda1b97a80d4d8afdce08c6923b2bff3915731c490cc1fef)
506
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
507
+ jsii.set(self, "logBucket", value) # pyright: ignore[reportArgumentType]
447
508
 
448
509
  @builtins.property
449
- def type_name(self) -> typing.Optional[builtins.str]:
450
- '''The name of the hook.
510
+ @jsii.member(jsii_name="options")
511
+ def options(
512
+ self,
513
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.OptionsProperty"]]:
514
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.OptionsProperty"]], jsii.get(self, "options"))
451
515
 
452
- You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
516
+ @options.setter
517
+ def options(
518
+ self,
519
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.OptionsProperty"]],
520
+ ) -> None:
521
+ if __debug__:
522
+ type_hints = typing.get_type_hints(_typecheckingstub__aa51fffdbd416f8c3f134e2ce1d54eb8592c7e9ab1fb1773814e14a6e9c3908c)
523
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
524
+ jsii.set(self, "options", value) # pyright: ignore[reportArgumentType]
453
525
 
454
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html#cfn-cloudformation-hookdefaultversion-typename
455
- '''
456
- result = self._values.get("type_name")
457
- return typing.cast(typing.Optional[builtins.str], result)
526
+ @builtins.property
527
+ @jsii.member(jsii_name="stackFilters")
528
+ def stack_filters(
529
+ self,
530
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.StackFiltersProperty"]]:
531
+ '''Filters to allow hooks to target specific stack attributes.'''
532
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.StackFiltersProperty"]], jsii.get(self, "stackFilters"))
533
+
534
+ @stack_filters.setter
535
+ def stack_filters(
536
+ self,
537
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.StackFiltersProperty"]],
538
+ ) -> None:
539
+ if __debug__:
540
+ type_hints = typing.get_type_hints(_typecheckingstub__ba8e46c4263c84d663638542ea2e36bf64d6c580e18d333b70f96cde334f3311)
541
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
542
+ jsii.set(self, "stackFilters", value) # pyright: ignore[reportArgumentType]
458
543
 
459
544
  @builtins.property
460
- def type_version_arn(self) -> typing.Optional[builtins.str]:
461
- '''The version ID of the type configuration.
545
+ @jsii.member(jsii_name="targetFilters")
546
+ def target_filters(
547
+ self,
548
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.TargetFiltersProperty"]]:
549
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.TargetFiltersProperty"]], jsii.get(self, "targetFilters"))
462
550
 
463
- You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
551
+ @target_filters.setter
552
+ def target_filters(
553
+ self,
554
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.TargetFiltersProperty"]],
555
+ ) -> None:
556
+ if __debug__:
557
+ type_hints = typing.get_type_hints(_typecheckingstub__c81e70f0acb044921c8947467f93bf3568ecf5bceb007dbfd1211e597c8deb39)
558
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
559
+ jsii.set(self, "targetFilters", value) # pyright: ignore[reportArgumentType]
464
560
 
465
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html#cfn-cloudformation-hookdefaultversion-typeversionarn
466
- '''
467
- result = self._values.get("type_version_arn")
468
- return typing.cast(typing.Optional[builtins.str], result)
561
+ @jsii.data_type(
562
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnGuardHook.OptionsProperty",
563
+ jsii_struct_bases=[],
564
+ name_mapping={"input_params": "inputParams"},
565
+ )
566
+ class OptionsProperty:
567
+ def __init__(
568
+ self,
569
+ *,
570
+ input_params: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnGuardHook.S3LocationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
571
+ ) -> None:
572
+ '''
573
+ :param input_params: S3 Source Location for the Guard files.
469
574
 
470
- @builtins.property
471
- def version_id(self) -> typing.Optional[builtins.str]:
472
- '''The version ID of the type specified.
575
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-options.html
576
+ :exampleMetadata: fixture=_generated
473
577
 
474
- You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
578
+ Example::
475
579
 
476
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html#cfn-cloudformation-hookdefaultversion-versionid
477
- '''
478
- result = self._values.get("version_id")
479
- return typing.cast(typing.Optional[builtins.str], result)
580
+ # The code below shows an example of how to instantiate this type.
581
+ # The values are placeholders you should change.
582
+ from aws_cdk import aws_cloudformation as cloudformation
583
+
584
+ options_property = cloudformation.CfnGuardHook.OptionsProperty(
585
+ input_params=cloudformation.CfnGuardHook.S3LocationProperty(
586
+ uri="uri",
587
+
588
+ # the properties below are optional
589
+ version_id="versionId"
590
+ )
591
+ )
592
+ '''
593
+ if __debug__:
594
+ type_hints = typing.get_type_hints(_typecheckingstub__9b598c3b73355c67dcc3aa78319cd2f0d94b1f77b3311af71cc07b20334e0eca)
595
+ check_type(argname="argument input_params", value=input_params, expected_type=type_hints["input_params"])
596
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
597
+ if input_params is not None:
598
+ self._values["input_params"] = input_params
480
599
 
481
- def __eq__(self, rhs: typing.Any) -> builtins.bool:
482
- return isinstance(rhs, self.__class__) and rhs._values == self._values
600
+ @builtins.property
601
+ def input_params(
602
+ self,
603
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.S3LocationProperty"]]:
604
+ '''S3 Source Location for the Guard files.
483
605
 
484
- def __ne__(self, rhs: typing.Any) -> builtins.bool:
485
- return not (rhs == self)
606
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-options.html#cfn-cloudformation-guardhook-options-inputparams
607
+ '''
608
+ result = self._values.get("input_params")
609
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.S3LocationProperty"]], result)
486
610
 
487
- def __repr__(self) -> str:
488
- return "CfnHookDefaultVersionProps(%s)" % ", ".join(
489
- k + "=" + repr(v) for k, v in self._values.items()
490
- )
611
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
612
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
491
613
 
614
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
615
+ return not (rhs == self)
492
616
 
493
- @jsii.implements(_IInspectable_c2943556)
494
- class CfnHookTypeConfig(
495
- _CfnResource_9df397a6,
496
- metaclass=jsii.JSIIMeta,
497
- jsii_type="aws-cdk-lib.aws_cloudformation.CfnHookTypeConfig",
498
- ):
499
- '''The ``HookTypeConfig`` resource specifies the configuration of a hook.
617
+ def __repr__(self) -> str:
618
+ return "OptionsProperty(%s)" % ", ".join(
619
+ k + "=" + repr(v) for k, v in self._values.items()
620
+ )
500
621
 
501
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html
502
- :cloudformationResource: AWS::CloudFormation::HookTypeConfig
503
- :exampleMetadata: fixture=_generated
622
+ @jsii.data_type(
623
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnGuardHook.S3LocationProperty",
624
+ jsii_struct_bases=[],
625
+ name_mapping={"uri": "uri", "version_id": "versionId"},
626
+ )
627
+ class S3LocationProperty:
628
+ def __init__(
629
+ self,
630
+ *,
631
+ uri: builtins.str,
632
+ version_id: typing.Optional[builtins.str] = None,
633
+ ) -> None:
634
+ '''S3 Source Location for the Guard files.
504
635
 
505
- Example::
636
+ :param uri: S3 uri of Guard files.
637
+ :param version_id: S3 object version.
506
638
 
507
- # The code below shows an example of how to instantiate this type.
508
- # The values are placeholders you should change.
509
- from aws_cdk import aws_cloudformation as cloudformation
510
-
511
- cfn_hook_type_config = cloudformation.CfnHookTypeConfig(self, "MyCfnHookTypeConfig",
512
- configuration="configuration",
513
-
514
- # the properties below are optional
515
- configuration_alias="configurationAlias",
516
- type_arn="typeArn",
517
- type_name="typeName"
518
- )
519
- '''
639
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-s3location.html
640
+ :exampleMetadata: fixture=_generated
520
641
 
521
- def __init__(
522
- self,
523
- scope: _constructs_77d1e7e8.Construct,
524
- id: builtins.str,
525
- *,
526
- configuration: builtins.str,
527
- configuration_alias: typing.Optional[builtins.str] = None,
528
- type_arn: typing.Optional[builtins.str] = None,
529
- type_name: typing.Optional[builtins.str] = None,
530
- ) -> None:
531
- '''
532
- :param scope: Scope in which this resource is defined.
533
- :param id: Construct identifier for this resource (unique in its scope).
534
- :param configuration: Specifies the activated hook type configuration, in this AWS account and AWS Region . You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
535
- :param configuration_alias: Specifies the activated hook type configuration, in this AWS account and AWS Region . Defaults to ``default`` alias. Hook types currently support default configuration alias. Default: - "default"
536
- :param type_arn: The Amazon Resource Number (ARN) for the hook to set ``Configuration`` for. You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
537
- :param type_name: The unique name for your hook. Specifies a three-part namespace for your hook, with a recommended pattern of ``Organization::Service::Hook`` . You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
538
- '''
539
- if __debug__:
540
- type_hints = typing.get_type_hints(_typecheckingstub__1aa75e15214f256047fa6d0b79cceb9720316dd5d5524cca649ba63b4b4613e3)
642
+ Example::
643
+
644
+ # The code below shows an example of how to instantiate this type.
645
+ # The values are placeholders you should change.
646
+ from aws_cdk import aws_cloudformation as cloudformation
647
+
648
+ s3_location_property = cloudformation.CfnGuardHook.S3LocationProperty(
649
+ uri="uri",
650
+
651
+ # the properties below are optional
652
+ version_id="versionId"
653
+ )
654
+ '''
655
+ if __debug__:
656
+ type_hints = typing.get_type_hints(_typecheckingstub__a1f9db65edb886b53a3ae52ab45b8328981676b11f96b8f1aabfebc3198bc5e5)
657
+ check_type(argname="argument uri", value=uri, expected_type=type_hints["uri"])
658
+ check_type(argname="argument version_id", value=version_id, expected_type=type_hints["version_id"])
659
+ self._values: typing.Dict[builtins.str, typing.Any] = {
660
+ "uri": uri,
661
+ }
662
+ if version_id is not None:
663
+ self._values["version_id"] = version_id
664
+
665
+ @builtins.property
666
+ def uri(self) -> builtins.str:
667
+ '''S3 uri of Guard files.
668
+
669
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-s3location.html#cfn-cloudformation-guardhook-s3location-uri
670
+ '''
671
+ result = self._values.get("uri")
672
+ assert result is not None, "Required property 'uri' is missing"
673
+ return typing.cast(builtins.str, result)
674
+
675
+ @builtins.property
676
+ def version_id(self) -> typing.Optional[builtins.str]:
677
+ '''S3 object version.
678
+
679
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-s3location.html#cfn-cloudformation-guardhook-s3location-versionid
680
+ '''
681
+ result = self._values.get("version_id")
682
+ return typing.cast(typing.Optional[builtins.str], result)
683
+
684
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
685
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
686
+
687
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
688
+ return not (rhs == self)
689
+
690
+ def __repr__(self) -> str:
691
+ return "S3LocationProperty(%s)" % ", ".join(
692
+ k + "=" + repr(v) for k, v in self._values.items()
693
+ )
694
+
695
+ @jsii.data_type(
696
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnGuardHook.StackFiltersProperty",
697
+ jsii_struct_bases=[],
698
+ name_mapping={
699
+ "filtering_criteria": "filteringCriteria",
700
+ "stack_names": "stackNames",
701
+ "stack_roles": "stackRoles",
702
+ },
703
+ )
704
+ class StackFiltersProperty:
705
+ def __init__(
706
+ self,
707
+ *,
708
+ filtering_criteria: builtins.str,
709
+ stack_names: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnGuardHook.StackNamesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
710
+ stack_roles: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnGuardHook.StackRolesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
711
+ ) -> None:
712
+ '''Filters to allow hooks to target specific stack attributes.
713
+
714
+ :param filtering_criteria: Attribute to specify the filtering behavior. ANY will make the Hook pass if one filter matches. ALL will make the Hook pass if all filters match Default: - "ALL"
715
+ :param stack_names: List of stack names as filters.
716
+ :param stack_roles: List of stack roles that are performing the stack operations.
717
+
718
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-stackfilters.html
719
+ :exampleMetadata: fixture=_generated
720
+
721
+ Example::
722
+
723
+ # The code below shows an example of how to instantiate this type.
724
+ # The values are placeholders you should change.
725
+ from aws_cdk import aws_cloudformation as cloudformation
726
+
727
+ stack_filters_property = cloudformation.CfnGuardHook.StackFiltersProperty(
728
+ filtering_criteria="filteringCriteria",
729
+
730
+ # the properties below are optional
731
+ stack_names=cloudformation.CfnGuardHook.StackNamesProperty(
732
+ exclude=["exclude"],
733
+ include=["include"]
734
+ ),
735
+ stack_roles=cloudformation.CfnGuardHook.StackRolesProperty(
736
+ exclude=["exclude"],
737
+ include=["include"]
738
+ )
739
+ )
740
+ '''
741
+ if __debug__:
742
+ type_hints = typing.get_type_hints(_typecheckingstub__1fdbc46050746c029db2f505b946b969ecb2a8c0835d3e20724e224a2c12d45b)
743
+ check_type(argname="argument filtering_criteria", value=filtering_criteria, expected_type=type_hints["filtering_criteria"])
744
+ check_type(argname="argument stack_names", value=stack_names, expected_type=type_hints["stack_names"])
745
+ check_type(argname="argument stack_roles", value=stack_roles, expected_type=type_hints["stack_roles"])
746
+ self._values: typing.Dict[builtins.str, typing.Any] = {
747
+ "filtering_criteria": filtering_criteria,
748
+ }
749
+ if stack_names is not None:
750
+ self._values["stack_names"] = stack_names
751
+ if stack_roles is not None:
752
+ self._values["stack_roles"] = stack_roles
753
+
754
+ @builtins.property
755
+ def filtering_criteria(self) -> builtins.str:
756
+ '''Attribute to specify the filtering behavior.
757
+
758
+ ANY will make the Hook pass if one filter matches. ALL will make the Hook pass if all filters match
759
+
760
+ :default: - "ALL"
761
+
762
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-stackfilters.html#cfn-cloudformation-guardhook-stackfilters-filteringcriteria
763
+ '''
764
+ result = self._values.get("filtering_criteria")
765
+ assert result is not None, "Required property 'filtering_criteria' is missing"
766
+ return typing.cast(builtins.str, result)
767
+
768
+ @builtins.property
769
+ def stack_names(
770
+ self,
771
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.StackNamesProperty"]]:
772
+ '''List of stack names as filters.
773
+
774
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-stackfilters.html#cfn-cloudformation-guardhook-stackfilters-stacknames
775
+ '''
776
+ result = self._values.get("stack_names")
777
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.StackNamesProperty"]], result)
778
+
779
+ @builtins.property
780
+ def stack_roles(
781
+ self,
782
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.StackRolesProperty"]]:
783
+ '''List of stack roles that are performing the stack operations.
784
+
785
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-stackfilters.html#cfn-cloudformation-guardhook-stackfilters-stackroles
786
+ '''
787
+ result = self._values.get("stack_roles")
788
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGuardHook.StackRolesProperty"]], result)
789
+
790
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
791
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
792
+
793
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
794
+ return not (rhs == self)
795
+
796
+ def __repr__(self) -> str:
797
+ return "StackFiltersProperty(%s)" % ", ".join(
798
+ k + "=" + repr(v) for k, v in self._values.items()
799
+ )
800
+
801
+ @jsii.data_type(
802
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnGuardHook.StackNamesProperty",
803
+ jsii_struct_bases=[],
804
+ name_mapping={"exclude": "exclude", "include": "include"},
805
+ )
806
+ class StackNamesProperty:
807
+ def __init__(
808
+ self,
809
+ *,
810
+ exclude: typing.Optional[typing.Sequence[builtins.str]] = None,
811
+ include: typing.Optional[typing.Sequence[builtins.str]] = None,
812
+ ) -> None:
813
+ '''List of stack names as filters.
814
+
815
+ :param exclude: List of stack names that the hook is going to be excluded from.
816
+ :param include: List of stack names that the hook is going to target.
817
+
818
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-stacknames.html
819
+ :exampleMetadata: fixture=_generated
820
+
821
+ Example::
822
+
823
+ # The code below shows an example of how to instantiate this type.
824
+ # The values are placeholders you should change.
825
+ from aws_cdk import aws_cloudformation as cloudformation
826
+
827
+ stack_names_property = cloudformation.CfnGuardHook.StackNamesProperty(
828
+ exclude=["exclude"],
829
+ include=["include"]
830
+ )
831
+ '''
832
+ if __debug__:
833
+ type_hints = typing.get_type_hints(_typecheckingstub__57a38a30a3ccc5bb6875c74d99f0b1fe3ed5384017a5fee82f653914194e31c5)
834
+ check_type(argname="argument exclude", value=exclude, expected_type=type_hints["exclude"])
835
+ check_type(argname="argument include", value=include, expected_type=type_hints["include"])
836
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
837
+ if exclude is not None:
838
+ self._values["exclude"] = exclude
839
+ if include is not None:
840
+ self._values["include"] = include
841
+
842
+ @builtins.property
843
+ def exclude(self) -> typing.Optional[typing.List[builtins.str]]:
844
+ '''List of stack names that the hook is going to be excluded from.
845
+
846
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-stacknames.html#cfn-cloudformation-guardhook-stacknames-exclude
847
+ '''
848
+ result = self._values.get("exclude")
849
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
850
+
851
+ @builtins.property
852
+ def include(self) -> typing.Optional[typing.List[builtins.str]]:
853
+ '''List of stack names that the hook is going to target.
854
+
855
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-stacknames.html#cfn-cloudformation-guardhook-stacknames-include
856
+ '''
857
+ result = self._values.get("include")
858
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
859
+
860
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
861
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
862
+
863
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
864
+ return not (rhs == self)
865
+
866
+ def __repr__(self) -> str:
867
+ return "StackNamesProperty(%s)" % ", ".join(
868
+ k + "=" + repr(v) for k, v in self._values.items()
869
+ )
870
+
871
+ @jsii.data_type(
872
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnGuardHook.StackRolesProperty",
873
+ jsii_struct_bases=[],
874
+ name_mapping={"exclude": "exclude", "include": "include"},
875
+ )
876
+ class StackRolesProperty:
877
+ def __init__(
878
+ self,
879
+ *,
880
+ exclude: typing.Optional[typing.Sequence[builtins.str]] = None,
881
+ include: typing.Optional[typing.Sequence[builtins.str]] = None,
882
+ ) -> None:
883
+ '''List of stack roles that are performing the stack operations.
884
+
885
+ :param exclude: List of stack roles that the hook is going to be excluded from.
886
+ :param include: List of stack roles that the hook is going to target.
887
+
888
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-stackroles.html
889
+ :exampleMetadata: fixture=_generated
890
+
891
+ Example::
892
+
893
+ # The code below shows an example of how to instantiate this type.
894
+ # The values are placeholders you should change.
895
+ from aws_cdk import aws_cloudformation as cloudformation
896
+
897
+ stack_roles_property = cloudformation.CfnGuardHook.StackRolesProperty(
898
+ exclude=["exclude"],
899
+ include=["include"]
900
+ )
901
+ '''
902
+ if __debug__:
903
+ type_hints = typing.get_type_hints(_typecheckingstub__19a166b14cd31cea92d76fbca0808b1b44774459a4d29121e91c2e20cd466e21)
904
+ check_type(argname="argument exclude", value=exclude, expected_type=type_hints["exclude"])
905
+ check_type(argname="argument include", value=include, expected_type=type_hints["include"])
906
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
907
+ if exclude is not None:
908
+ self._values["exclude"] = exclude
909
+ if include is not None:
910
+ self._values["include"] = include
911
+
912
+ @builtins.property
913
+ def exclude(self) -> typing.Optional[typing.List[builtins.str]]:
914
+ '''List of stack roles that the hook is going to be excluded from.
915
+
916
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-stackroles.html#cfn-cloudformation-guardhook-stackroles-exclude
917
+ '''
918
+ result = self._values.get("exclude")
919
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
920
+
921
+ @builtins.property
922
+ def include(self) -> typing.Optional[typing.List[builtins.str]]:
923
+ '''List of stack roles that the hook is going to target.
924
+
925
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-stackroles.html#cfn-cloudformation-guardhook-stackroles-include
926
+ '''
927
+ result = self._values.get("include")
928
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
929
+
930
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
931
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
932
+
933
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
934
+ return not (rhs == self)
935
+
936
+ def __repr__(self) -> str:
937
+ return "StackRolesProperty(%s)" % ", ".join(
938
+ k + "=" + repr(v) for k, v in self._values.items()
939
+ )
940
+
941
+ @jsii.data_type(
942
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnGuardHook.TargetFiltersProperty",
943
+ jsii_struct_bases=[],
944
+ name_mapping={
945
+ "actions": "actions",
946
+ "invocation_points": "invocationPoints",
947
+ "target_names": "targetNames",
948
+ },
949
+ )
950
+ class TargetFiltersProperty:
951
+ def __init__(
952
+ self,
953
+ *,
954
+ actions: typing.Optional[typing.Sequence[builtins.str]] = None,
955
+ invocation_points: typing.Optional[typing.Sequence[builtins.str]] = None,
956
+ target_names: typing.Optional[typing.Sequence[builtins.str]] = None,
957
+ ) -> None:
958
+ '''
959
+ :param actions: List of actions that the hook is going to target.
960
+ :param invocation_points: List of invocation points that the hook is going to target.
961
+ :param target_names: List of type names that the hook is going to target.
962
+
963
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-targetfilters.html
964
+ :exampleMetadata: fixture=_generated
965
+
966
+ Example::
967
+
968
+ # The code below shows an example of how to instantiate this type.
969
+ # The values are placeholders you should change.
970
+ from aws_cdk import aws_cloudformation as cloudformation
971
+
972
+ target_filters_property = cloudformation.CfnGuardHook.TargetFiltersProperty(
973
+ actions=["actions"],
974
+ invocation_points=["invocationPoints"],
975
+ target_names=["targetNames"]
976
+ )
977
+ '''
978
+ if __debug__:
979
+ type_hints = typing.get_type_hints(_typecheckingstub__378b3973374e7523256c5da2187494f5d2cfb4d85e28b4cc20e0b03edb7a4395)
980
+ check_type(argname="argument actions", value=actions, expected_type=type_hints["actions"])
981
+ check_type(argname="argument invocation_points", value=invocation_points, expected_type=type_hints["invocation_points"])
982
+ check_type(argname="argument target_names", value=target_names, expected_type=type_hints["target_names"])
983
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
984
+ if actions is not None:
985
+ self._values["actions"] = actions
986
+ if invocation_points is not None:
987
+ self._values["invocation_points"] = invocation_points
988
+ if target_names is not None:
989
+ self._values["target_names"] = target_names
990
+
991
+ @builtins.property
992
+ def actions(self) -> typing.Optional[typing.List[builtins.str]]:
993
+ '''List of actions that the hook is going to target.
994
+
995
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-targetfilters.html#cfn-cloudformation-guardhook-targetfilters-actions
996
+ '''
997
+ result = self._values.get("actions")
998
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
999
+
1000
+ @builtins.property
1001
+ def invocation_points(self) -> typing.Optional[typing.List[builtins.str]]:
1002
+ '''List of invocation points that the hook is going to target.
1003
+
1004
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-targetfilters.html#cfn-cloudformation-guardhook-targetfilters-invocationpoints
1005
+ '''
1006
+ result = self._values.get("invocation_points")
1007
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1008
+
1009
+ @builtins.property
1010
+ def target_names(self) -> typing.Optional[typing.List[builtins.str]]:
1011
+ '''List of type names that the hook is going to target.
1012
+
1013
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-targetfilters.html#cfn-cloudformation-guardhook-targetfilters-targetnames
1014
+ '''
1015
+ result = self._values.get("target_names")
1016
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1017
+
1018
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1019
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1020
+
1021
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1022
+ return not (rhs == self)
1023
+
1024
+ def __repr__(self) -> str:
1025
+ return "TargetFiltersProperty(%s)" % ", ".join(
1026
+ k + "=" + repr(v) for k, v in self._values.items()
1027
+ )
1028
+
1029
+
1030
+ @jsii.data_type(
1031
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnGuardHookProps",
1032
+ jsii_struct_bases=[],
1033
+ name_mapping={
1034
+ "alias": "alias",
1035
+ "execution_role": "executionRole",
1036
+ "failure_mode": "failureMode",
1037
+ "hook_status": "hookStatus",
1038
+ "rule_location": "ruleLocation",
1039
+ "target_operations": "targetOperations",
1040
+ "log_bucket": "logBucket",
1041
+ "options": "options",
1042
+ "stack_filters": "stackFilters",
1043
+ "target_filters": "targetFilters",
1044
+ },
1045
+ )
1046
+ class CfnGuardHookProps:
1047
+ def __init__(
1048
+ self,
1049
+ *,
1050
+ alias: builtins.str,
1051
+ execution_role: builtins.str,
1052
+ failure_mode: builtins.str,
1053
+ hook_status: builtins.str,
1054
+ rule_location: typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.S3LocationProperty, typing.Dict[builtins.str, typing.Any]]],
1055
+ target_operations: typing.Sequence[builtins.str],
1056
+ log_bucket: typing.Optional[builtins.str] = None,
1057
+ options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.OptionsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1058
+ stack_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.StackFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1059
+ target_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.TargetFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1060
+ ) -> None:
1061
+ '''Properties for defining a ``CfnGuardHook``.
1062
+
1063
+ :param alias: The typename alias for the hook.
1064
+ :param execution_role: IAM Role ARN.
1065
+ :param failure_mode: Attribute to specify CloudFormation behavior on hook failure. Default: - "WARN"
1066
+ :param hook_status: Attribute to specify which stacks this hook applies to or should get invoked for. Default: - "DISABLED"
1067
+ :param rule_location: S3 Source Location for the Guard files.
1068
+ :param target_operations: Which operations should this Hook run against? Resource changes, stacks or change sets.
1069
+ :param log_bucket: S3 Bucket where the guard validate report will be uploaded to.
1070
+ :param options:
1071
+ :param stack_filters: Filters to allow hooks to target specific stack attributes.
1072
+ :param target_filters:
1073
+
1074
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html
1075
+ :exampleMetadata: fixture=_generated
1076
+
1077
+ Example::
1078
+
1079
+ # The code below shows an example of how to instantiate this type.
1080
+ # The values are placeholders you should change.
1081
+ from aws_cdk import aws_cloudformation as cloudformation
1082
+
1083
+ cfn_guard_hook_props = cloudformation.CfnGuardHookProps(
1084
+ alias="alias",
1085
+ execution_role="executionRole",
1086
+ failure_mode="failureMode",
1087
+ hook_status="hookStatus",
1088
+ rule_location=cloudformation.CfnGuardHook.S3LocationProperty(
1089
+ uri="uri",
1090
+
1091
+ # the properties below are optional
1092
+ version_id="versionId"
1093
+ ),
1094
+ target_operations=["targetOperations"],
1095
+
1096
+ # the properties below are optional
1097
+ log_bucket="logBucket",
1098
+ options=cloudformation.CfnGuardHook.OptionsProperty(
1099
+ input_params=cloudformation.CfnGuardHook.S3LocationProperty(
1100
+ uri="uri",
1101
+
1102
+ # the properties below are optional
1103
+ version_id="versionId"
1104
+ )
1105
+ ),
1106
+ stack_filters=cloudformation.CfnGuardHook.StackFiltersProperty(
1107
+ filtering_criteria="filteringCriteria",
1108
+
1109
+ # the properties below are optional
1110
+ stack_names=cloudformation.CfnGuardHook.StackNamesProperty(
1111
+ exclude=["exclude"],
1112
+ include=["include"]
1113
+ ),
1114
+ stack_roles=cloudformation.CfnGuardHook.StackRolesProperty(
1115
+ exclude=["exclude"],
1116
+ include=["include"]
1117
+ )
1118
+ ),
1119
+ target_filters=cloudformation.CfnGuardHook.TargetFiltersProperty(
1120
+ actions=["actions"],
1121
+ invocation_points=["invocationPoints"],
1122
+ target_names=["targetNames"]
1123
+ )
1124
+ )
1125
+ '''
1126
+ if __debug__:
1127
+ type_hints = typing.get_type_hints(_typecheckingstub__102e29368f2c52ece5c053d50bb54873288bc91ca7d6f01a1ad3bb84ffdc3b76)
1128
+ check_type(argname="argument alias", value=alias, expected_type=type_hints["alias"])
1129
+ check_type(argname="argument execution_role", value=execution_role, expected_type=type_hints["execution_role"])
1130
+ check_type(argname="argument failure_mode", value=failure_mode, expected_type=type_hints["failure_mode"])
1131
+ check_type(argname="argument hook_status", value=hook_status, expected_type=type_hints["hook_status"])
1132
+ check_type(argname="argument rule_location", value=rule_location, expected_type=type_hints["rule_location"])
1133
+ check_type(argname="argument target_operations", value=target_operations, expected_type=type_hints["target_operations"])
1134
+ check_type(argname="argument log_bucket", value=log_bucket, expected_type=type_hints["log_bucket"])
1135
+ check_type(argname="argument options", value=options, expected_type=type_hints["options"])
1136
+ check_type(argname="argument stack_filters", value=stack_filters, expected_type=type_hints["stack_filters"])
1137
+ check_type(argname="argument target_filters", value=target_filters, expected_type=type_hints["target_filters"])
1138
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1139
+ "alias": alias,
1140
+ "execution_role": execution_role,
1141
+ "failure_mode": failure_mode,
1142
+ "hook_status": hook_status,
1143
+ "rule_location": rule_location,
1144
+ "target_operations": target_operations,
1145
+ }
1146
+ if log_bucket is not None:
1147
+ self._values["log_bucket"] = log_bucket
1148
+ if options is not None:
1149
+ self._values["options"] = options
1150
+ if stack_filters is not None:
1151
+ self._values["stack_filters"] = stack_filters
1152
+ if target_filters is not None:
1153
+ self._values["target_filters"] = target_filters
1154
+
1155
+ @builtins.property
1156
+ def alias(self) -> builtins.str:
1157
+ '''The typename alias for the hook.
1158
+
1159
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html#cfn-cloudformation-guardhook-alias
1160
+ '''
1161
+ result = self._values.get("alias")
1162
+ assert result is not None, "Required property 'alias' is missing"
1163
+ return typing.cast(builtins.str, result)
1164
+
1165
+ @builtins.property
1166
+ def execution_role(self) -> builtins.str:
1167
+ '''IAM Role ARN.
1168
+
1169
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html#cfn-cloudformation-guardhook-executionrole
1170
+ '''
1171
+ result = self._values.get("execution_role")
1172
+ assert result is not None, "Required property 'execution_role' is missing"
1173
+ return typing.cast(builtins.str, result)
1174
+
1175
+ @builtins.property
1176
+ def failure_mode(self) -> builtins.str:
1177
+ '''Attribute to specify CloudFormation behavior on hook failure.
1178
+
1179
+ :default: - "WARN"
1180
+
1181
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html#cfn-cloudformation-guardhook-failuremode
1182
+ '''
1183
+ result = self._values.get("failure_mode")
1184
+ assert result is not None, "Required property 'failure_mode' is missing"
1185
+ return typing.cast(builtins.str, result)
1186
+
1187
+ @builtins.property
1188
+ def hook_status(self) -> builtins.str:
1189
+ '''Attribute to specify which stacks this hook applies to or should get invoked for.
1190
+
1191
+ :default: - "DISABLED"
1192
+
1193
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html#cfn-cloudformation-guardhook-hookstatus
1194
+ '''
1195
+ result = self._values.get("hook_status")
1196
+ assert result is not None, "Required property 'hook_status' is missing"
1197
+ return typing.cast(builtins.str, result)
1198
+
1199
+ @builtins.property
1200
+ def rule_location(
1201
+ self,
1202
+ ) -> typing.Union[_IResolvable_da3f097b, CfnGuardHook.S3LocationProperty]:
1203
+ '''S3 Source Location for the Guard files.
1204
+
1205
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html#cfn-cloudformation-guardhook-rulelocation
1206
+ '''
1207
+ result = self._values.get("rule_location")
1208
+ assert result is not None, "Required property 'rule_location' is missing"
1209
+ return typing.cast(typing.Union[_IResolvable_da3f097b, CfnGuardHook.S3LocationProperty], result)
1210
+
1211
+ @builtins.property
1212
+ def target_operations(self) -> typing.List[builtins.str]:
1213
+ '''Which operations should this Hook run against?
1214
+
1215
+ Resource changes, stacks or change sets.
1216
+
1217
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html#cfn-cloudformation-guardhook-targetoperations
1218
+ '''
1219
+ result = self._values.get("target_operations")
1220
+ assert result is not None, "Required property 'target_operations' is missing"
1221
+ return typing.cast(typing.List[builtins.str], result)
1222
+
1223
+ @builtins.property
1224
+ def log_bucket(self) -> typing.Optional[builtins.str]:
1225
+ '''S3 Bucket where the guard validate report will be uploaded to.
1226
+
1227
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html#cfn-cloudformation-guardhook-logbucket
1228
+ '''
1229
+ result = self._values.get("log_bucket")
1230
+ return typing.cast(typing.Optional[builtins.str], result)
1231
+
1232
+ @builtins.property
1233
+ def options(
1234
+ self,
1235
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnGuardHook.OptionsProperty]]:
1236
+ '''
1237
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html#cfn-cloudformation-guardhook-options
1238
+ '''
1239
+ result = self._values.get("options")
1240
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnGuardHook.OptionsProperty]], result)
1241
+
1242
+ @builtins.property
1243
+ def stack_filters(
1244
+ self,
1245
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnGuardHook.StackFiltersProperty]]:
1246
+ '''Filters to allow hooks to target specific stack attributes.
1247
+
1248
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html#cfn-cloudformation-guardhook-stackfilters
1249
+ '''
1250
+ result = self._values.get("stack_filters")
1251
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnGuardHook.StackFiltersProperty]], result)
1252
+
1253
+ @builtins.property
1254
+ def target_filters(
1255
+ self,
1256
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnGuardHook.TargetFiltersProperty]]:
1257
+ '''
1258
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html#cfn-cloudformation-guardhook-targetfilters
1259
+ '''
1260
+ result = self._values.get("target_filters")
1261
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnGuardHook.TargetFiltersProperty]], result)
1262
+
1263
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1264
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1265
+
1266
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1267
+ return not (rhs == self)
1268
+
1269
+ def __repr__(self) -> str:
1270
+ return "CfnGuardHookProps(%s)" % ", ".join(
1271
+ k + "=" + repr(v) for k, v in self._values.items()
1272
+ )
1273
+
1274
+
1275
+ @jsii.implements(_IInspectable_c2943556)
1276
+ class CfnHookDefaultVersion(
1277
+ _CfnResource_9df397a6,
1278
+ metaclass=jsii.JSIIMeta,
1279
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnHookDefaultVersion",
1280
+ ):
1281
+ '''The ``HookDefaultVersion`` resource specifies the default version of the hook.
1282
+
1283
+ The default version of the hook is used in CloudFormation operations for this AWS account and AWS Region .
1284
+
1285
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html
1286
+ :cloudformationResource: AWS::CloudFormation::HookDefaultVersion
1287
+ :exampleMetadata: fixture=_generated
1288
+
1289
+ Example::
1290
+
1291
+ # The code below shows an example of how to instantiate this type.
1292
+ # The values are placeholders you should change.
1293
+ from aws_cdk import aws_cloudformation as cloudformation
1294
+
1295
+ cfn_hook_default_version = cloudformation.CfnHookDefaultVersion(self, "MyCfnHookDefaultVersion",
1296
+ type_name="typeName",
1297
+ type_version_arn="typeVersionArn",
1298
+ version_id="versionId"
1299
+ )
1300
+ '''
1301
+
1302
+ def __init__(
1303
+ self,
1304
+ scope: _constructs_77d1e7e8.Construct,
1305
+ id: builtins.str,
1306
+ *,
1307
+ type_name: typing.Optional[builtins.str] = None,
1308
+ type_version_arn: typing.Optional[builtins.str] = None,
1309
+ version_id: typing.Optional[builtins.str] = None,
1310
+ ) -> None:
1311
+ '''
1312
+ :param scope: Scope in which this resource is defined.
1313
+ :param id: Construct identifier for this resource (unique in its scope).
1314
+ :param type_name: The name of the hook. You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
1315
+ :param type_version_arn: The version ID of the type configuration. You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
1316
+ :param version_id: The version ID of the type specified. You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
1317
+ '''
1318
+ if __debug__:
1319
+ type_hints = typing.get_type_hints(_typecheckingstub__0b8bde9f1f98ed0500179dfc97dcadf56e8ff1be4dde185bebd99abe71d79167)
1320
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1321
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1322
+ props = CfnHookDefaultVersionProps(
1323
+ type_name=type_name,
1324
+ type_version_arn=type_version_arn,
1325
+ version_id=version_id,
1326
+ )
1327
+
1328
+ jsii.create(self.__class__, self, [scope, id, props])
1329
+
1330
+ @jsii.member(jsii_name="inspect")
1331
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
1332
+ '''Examines the CloudFormation resource and discloses attributes.
1333
+
1334
+ :param inspector: tree inspector to collect and process attributes.
1335
+ '''
1336
+ if __debug__:
1337
+ type_hints = typing.get_type_hints(_typecheckingstub__9d3cffde5405816d6a41ef681bf2c43df8b5bde2710721ee16254bf382423108)
1338
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
1339
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
1340
+
1341
+ @jsii.member(jsii_name="renderProperties")
1342
+ def _render_properties(
1343
+ self,
1344
+ props: typing.Mapping[builtins.str, typing.Any],
1345
+ ) -> typing.Mapping[builtins.str, typing.Any]:
1346
+ '''
1347
+ :param props: -
1348
+ '''
1349
+ if __debug__:
1350
+ type_hints = typing.get_type_hints(_typecheckingstub__50c67f0fb346e88146ee0ab601fd70c28799c458260663e325a155a6150756f9)
1351
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
1352
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
1353
+
1354
+ @jsii.python.classproperty
1355
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
1356
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
1357
+ '''The CloudFormation resource type name for this resource class.'''
1358
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
1359
+
1360
+ @builtins.property
1361
+ @jsii.member(jsii_name="attrArn")
1362
+ def attr_arn(self) -> builtins.str:
1363
+ '''The Amazon Resource Number (ARN) of the activated extension, in this account and Region.
1364
+
1365
+ :cloudformationAttribute: Arn
1366
+ '''
1367
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
1368
+
1369
+ @builtins.property
1370
+ @jsii.member(jsii_name="cfnProperties")
1371
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1372
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1373
+
1374
+ @builtins.property
1375
+ @jsii.member(jsii_name="typeName")
1376
+ def type_name(self) -> typing.Optional[builtins.str]:
1377
+ '''The name of the hook.'''
1378
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "typeName"))
1379
+
1380
+ @type_name.setter
1381
+ def type_name(self, value: typing.Optional[builtins.str]) -> None:
1382
+ if __debug__:
1383
+ type_hints = typing.get_type_hints(_typecheckingstub__c985f39fb842ecd8d503cc1ff86e00864e1fc45b5962d3fc9c66a7b136ac654a)
1384
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1385
+ jsii.set(self, "typeName", value) # pyright: ignore[reportArgumentType]
1386
+
1387
+ @builtins.property
1388
+ @jsii.member(jsii_name="typeVersionArn")
1389
+ def type_version_arn(self) -> typing.Optional[builtins.str]:
1390
+ '''The version ID of the type configuration.'''
1391
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "typeVersionArn"))
1392
+
1393
+ @type_version_arn.setter
1394
+ def type_version_arn(self, value: typing.Optional[builtins.str]) -> None:
1395
+ if __debug__:
1396
+ type_hints = typing.get_type_hints(_typecheckingstub__b8fff96e0ddbd71a4aa46a88a0873bb65a9aad21cdec8f8be8016c745e513d99)
1397
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1398
+ jsii.set(self, "typeVersionArn", value) # pyright: ignore[reportArgumentType]
1399
+
1400
+ @builtins.property
1401
+ @jsii.member(jsii_name="versionId")
1402
+ def version_id(self) -> typing.Optional[builtins.str]:
1403
+ '''The version ID of the type specified.'''
1404
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "versionId"))
1405
+
1406
+ @version_id.setter
1407
+ def version_id(self, value: typing.Optional[builtins.str]) -> None:
1408
+ if __debug__:
1409
+ type_hints = typing.get_type_hints(_typecheckingstub__b9f9bb2d06c69bb7ef45feaaed611f94d81b89f367a377c829ab1e52ed8d53a0)
1410
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1411
+ jsii.set(self, "versionId", value) # pyright: ignore[reportArgumentType]
1412
+
1413
+
1414
+ @jsii.data_type(
1415
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnHookDefaultVersionProps",
1416
+ jsii_struct_bases=[],
1417
+ name_mapping={
1418
+ "type_name": "typeName",
1419
+ "type_version_arn": "typeVersionArn",
1420
+ "version_id": "versionId",
1421
+ },
1422
+ )
1423
+ class CfnHookDefaultVersionProps:
1424
+ def __init__(
1425
+ self,
1426
+ *,
1427
+ type_name: typing.Optional[builtins.str] = None,
1428
+ type_version_arn: typing.Optional[builtins.str] = None,
1429
+ version_id: typing.Optional[builtins.str] = None,
1430
+ ) -> None:
1431
+ '''Properties for defining a ``CfnHookDefaultVersion``.
1432
+
1433
+ :param type_name: The name of the hook. You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
1434
+ :param type_version_arn: The version ID of the type configuration. You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
1435
+ :param version_id: The version ID of the type specified. You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
1436
+
1437
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html
1438
+ :exampleMetadata: fixture=_generated
1439
+
1440
+ Example::
1441
+
1442
+ # The code below shows an example of how to instantiate this type.
1443
+ # The values are placeholders you should change.
1444
+ from aws_cdk import aws_cloudformation as cloudformation
1445
+
1446
+ cfn_hook_default_version_props = cloudformation.CfnHookDefaultVersionProps(
1447
+ type_name="typeName",
1448
+ type_version_arn="typeVersionArn",
1449
+ version_id="versionId"
1450
+ )
1451
+ '''
1452
+ if __debug__:
1453
+ type_hints = typing.get_type_hints(_typecheckingstub__86e582779d0fb8b475195467d988078f1c65515c6a403bf9dc6b5ef8aced149f)
1454
+ check_type(argname="argument type_name", value=type_name, expected_type=type_hints["type_name"])
1455
+ check_type(argname="argument type_version_arn", value=type_version_arn, expected_type=type_hints["type_version_arn"])
1456
+ check_type(argname="argument version_id", value=version_id, expected_type=type_hints["version_id"])
1457
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1458
+ if type_name is not None:
1459
+ self._values["type_name"] = type_name
1460
+ if type_version_arn is not None:
1461
+ self._values["type_version_arn"] = type_version_arn
1462
+ if version_id is not None:
1463
+ self._values["version_id"] = version_id
1464
+
1465
+ @builtins.property
1466
+ def type_name(self) -> typing.Optional[builtins.str]:
1467
+ '''The name of the hook.
1468
+
1469
+ You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
1470
+
1471
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html#cfn-cloudformation-hookdefaultversion-typename
1472
+ '''
1473
+ result = self._values.get("type_name")
1474
+ return typing.cast(typing.Optional[builtins.str], result)
1475
+
1476
+ @builtins.property
1477
+ def type_version_arn(self) -> typing.Optional[builtins.str]:
1478
+ '''The version ID of the type configuration.
1479
+
1480
+ You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
1481
+
1482
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html#cfn-cloudformation-hookdefaultversion-typeversionarn
1483
+ '''
1484
+ result = self._values.get("type_version_arn")
1485
+ return typing.cast(typing.Optional[builtins.str], result)
1486
+
1487
+ @builtins.property
1488
+ def version_id(self) -> typing.Optional[builtins.str]:
1489
+ '''The version ID of the type specified.
1490
+
1491
+ You must specify either ``TypeVersionArn`` , or ``TypeName`` and ``VersionId`` .
1492
+
1493
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html#cfn-cloudformation-hookdefaultversion-versionid
1494
+ '''
1495
+ result = self._values.get("version_id")
1496
+ return typing.cast(typing.Optional[builtins.str], result)
1497
+
1498
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1499
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1500
+
1501
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1502
+ return not (rhs == self)
1503
+
1504
+ def __repr__(self) -> str:
1505
+ return "CfnHookDefaultVersionProps(%s)" % ", ".join(
1506
+ k + "=" + repr(v) for k, v in self._values.items()
1507
+ )
1508
+
1509
+
1510
+ @jsii.implements(_IInspectable_c2943556)
1511
+ class CfnHookTypeConfig(
1512
+ _CfnResource_9df397a6,
1513
+ metaclass=jsii.JSIIMeta,
1514
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnHookTypeConfig",
1515
+ ):
1516
+ '''The ``HookTypeConfig`` resource specifies the configuration of a hook.
1517
+
1518
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html
1519
+ :cloudformationResource: AWS::CloudFormation::HookTypeConfig
1520
+ :exampleMetadata: fixture=_generated
1521
+
1522
+ Example::
1523
+
1524
+ # The code below shows an example of how to instantiate this type.
1525
+ # The values are placeholders you should change.
1526
+ from aws_cdk import aws_cloudformation as cloudformation
1527
+
1528
+ cfn_hook_type_config = cloudformation.CfnHookTypeConfig(self, "MyCfnHookTypeConfig",
1529
+ configuration="configuration",
1530
+
1531
+ # the properties below are optional
1532
+ configuration_alias="configurationAlias",
1533
+ type_arn="typeArn",
1534
+ type_name="typeName"
1535
+ )
1536
+ '''
1537
+
1538
+ def __init__(
1539
+ self,
1540
+ scope: _constructs_77d1e7e8.Construct,
1541
+ id: builtins.str,
1542
+ *,
1543
+ configuration: builtins.str,
1544
+ configuration_alias: typing.Optional[builtins.str] = None,
1545
+ type_arn: typing.Optional[builtins.str] = None,
1546
+ type_name: typing.Optional[builtins.str] = None,
1547
+ ) -> None:
1548
+ '''
1549
+ :param scope: Scope in which this resource is defined.
1550
+ :param id: Construct identifier for this resource (unique in its scope).
1551
+ :param configuration: Specifies the activated hook type configuration, in this AWS account and AWS Region . You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
1552
+ :param configuration_alias: Specifies the activated hook type configuration, in this AWS account and AWS Region . Defaults to ``default`` alias. Hook types currently support default configuration alias. Default: - "default"
1553
+ :param type_arn: The Amazon Resource Number (ARN) for the hook to set ``Configuration`` for. You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
1554
+ :param type_name: The unique name for your hook. Specifies a three-part namespace for your hook, with a recommended pattern of ``Organization::Service::Hook`` . You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
1555
+ '''
1556
+ if __debug__:
1557
+ type_hints = typing.get_type_hints(_typecheckingstub__1aa75e15214f256047fa6d0b79cceb9720316dd5d5524cca649ba63b4b4613e3)
1558
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1559
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1560
+ props = CfnHookTypeConfigProps(
1561
+ configuration=configuration,
1562
+ configuration_alias=configuration_alias,
1563
+ type_arn=type_arn,
1564
+ type_name=type_name,
1565
+ )
1566
+
1567
+ jsii.create(self.__class__, self, [scope, id, props])
1568
+
1569
+ @jsii.member(jsii_name="inspect")
1570
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
1571
+ '''Examines the CloudFormation resource and discloses attributes.
1572
+
1573
+ :param inspector: tree inspector to collect and process attributes.
1574
+ '''
1575
+ if __debug__:
1576
+ type_hints = typing.get_type_hints(_typecheckingstub__64d031e26b8bd0eeb56b31d7de08efef921b07640fe30239018c4b9b54f75af3)
1577
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
1578
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
1579
+
1580
+ @jsii.member(jsii_name="renderProperties")
1581
+ def _render_properties(
1582
+ self,
1583
+ props: typing.Mapping[builtins.str, typing.Any],
1584
+ ) -> typing.Mapping[builtins.str, typing.Any]:
1585
+ '''
1586
+ :param props: -
1587
+ '''
1588
+ if __debug__:
1589
+ type_hints = typing.get_type_hints(_typecheckingstub__152138584317142b159bc64a674adbec428e62f1899b9285a49a4b8e3bb752bd)
1590
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
1591
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
1592
+
1593
+ @jsii.python.classproperty
1594
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
1595
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
1596
+ '''The CloudFormation resource type name for this resource class.'''
1597
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
1598
+
1599
+ @builtins.property
1600
+ @jsii.member(jsii_name="attrConfigurationArn")
1601
+ def attr_configuration_arn(self) -> builtins.str:
1602
+ '''The Amazon Resource Number (ARN) of the activated hook type configuration, in this account and Region.
1603
+
1604
+ :cloudformationAttribute: ConfigurationArn
1605
+ '''
1606
+ return typing.cast(builtins.str, jsii.get(self, "attrConfigurationArn"))
1607
+
1608
+ @builtins.property
1609
+ @jsii.member(jsii_name="cfnProperties")
1610
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1611
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1612
+
1613
+ @builtins.property
1614
+ @jsii.member(jsii_name="configuration")
1615
+ def configuration(self) -> builtins.str:
1616
+ '''Specifies the activated hook type configuration, in this AWS account and AWS Region .'''
1617
+ return typing.cast(builtins.str, jsii.get(self, "configuration"))
1618
+
1619
+ @configuration.setter
1620
+ def configuration(self, value: builtins.str) -> None:
1621
+ if __debug__:
1622
+ type_hints = typing.get_type_hints(_typecheckingstub__3847791ddd5530d8a9d2144538417d1a4cf5fb909bd613d41c5905e02d37bb9a)
1623
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1624
+ jsii.set(self, "configuration", value) # pyright: ignore[reportArgumentType]
1625
+
1626
+ @builtins.property
1627
+ @jsii.member(jsii_name="configurationAlias")
1628
+ def configuration_alias(self) -> typing.Optional[builtins.str]:
1629
+ '''Specifies the activated hook type configuration, in this AWS account and AWS Region .'''
1630
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "configurationAlias"))
1631
+
1632
+ @configuration_alias.setter
1633
+ def configuration_alias(self, value: typing.Optional[builtins.str]) -> None:
1634
+ if __debug__:
1635
+ type_hints = typing.get_type_hints(_typecheckingstub__649cdf62ea09d9e4b72042f283c05b766e052006f59f2d05f9a6d2eab2ea396a)
1636
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1637
+ jsii.set(self, "configurationAlias", value) # pyright: ignore[reportArgumentType]
1638
+
1639
+ @builtins.property
1640
+ @jsii.member(jsii_name="typeArn")
1641
+ def type_arn(self) -> typing.Optional[builtins.str]:
1642
+ '''The Amazon Resource Number (ARN) for the hook to set ``Configuration`` for.'''
1643
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "typeArn"))
1644
+
1645
+ @type_arn.setter
1646
+ def type_arn(self, value: typing.Optional[builtins.str]) -> None:
1647
+ if __debug__:
1648
+ type_hints = typing.get_type_hints(_typecheckingstub__b787dd89e7baba7e0a6ac2766dafcb836d4d6e45724a95c5ca1fdbd30ebd66b1)
1649
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1650
+ jsii.set(self, "typeArn", value) # pyright: ignore[reportArgumentType]
1651
+
1652
+ @builtins.property
1653
+ @jsii.member(jsii_name="typeName")
1654
+ def type_name(self) -> typing.Optional[builtins.str]:
1655
+ '''The unique name for your hook.'''
1656
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "typeName"))
1657
+
1658
+ @type_name.setter
1659
+ def type_name(self, value: typing.Optional[builtins.str]) -> None:
1660
+ if __debug__:
1661
+ type_hints = typing.get_type_hints(_typecheckingstub__84b67709252725d1f5ed0113558f6ddd94c0f17e7aadee85cf241f59a8eb5585)
1662
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1663
+ jsii.set(self, "typeName", value) # pyright: ignore[reportArgumentType]
1664
+
1665
+
1666
+ @jsii.data_type(
1667
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnHookTypeConfigProps",
1668
+ jsii_struct_bases=[],
1669
+ name_mapping={
1670
+ "configuration": "configuration",
1671
+ "configuration_alias": "configurationAlias",
1672
+ "type_arn": "typeArn",
1673
+ "type_name": "typeName",
1674
+ },
1675
+ )
1676
+ class CfnHookTypeConfigProps:
1677
+ def __init__(
1678
+ self,
1679
+ *,
1680
+ configuration: builtins.str,
1681
+ configuration_alias: typing.Optional[builtins.str] = None,
1682
+ type_arn: typing.Optional[builtins.str] = None,
1683
+ type_name: typing.Optional[builtins.str] = None,
1684
+ ) -> None:
1685
+ '''Properties for defining a ``CfnHookTypeConfig``.
1686
+
1687
+ :param configuration: Specifies the activated hook type configuration, in this AWS account and AWS Region . You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
1688
+ :param configuration_alias: Specifies the activated hook type configuration, in this AWS account and AWS Region . Defaults to ``default`` alias. Hook types currently support default configuration alias. Default: - "default"
1689
+ :param type_arn: The Amazon Resource Number (ARN) for the hook to set ``Configuration`` for. You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
1690
+ :param type_name: The unique name for your hook. Specifies a three-part namespace for your hook, with a recommended pattern of ``Organization::Service::Hook`` . You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
1691
+
1692
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html
1693
+ :exampleMetadata: fixture=_generated
1694
+
1695
+ Example::
1696
+
1697
+ # The code below shows an example of how to instantiate this type.
1698
+ # The values are placeholders you should change.
1699
+ from aws_cdk import aws_cloudformation as cloudformation
1700
+
1701
+ cfn_hook_type_config_props = cloudformation.CfnHookTypeConfigProps(
1702
+ configuration="configuration",
1703
+
1704
+ # the properties below are optional
1705
+ configuration_alias="configurationAlias",
1706
+ type_arn="typeArn",
1707
+ type_name="typeName"
1708
+ )
1709
+ '''
1710
+ if __debug__:
1711
+ type_hints = typing.get_type_hints(_typecheckingstub__ef5f9608def2c7b14e7449a6bceadbd90b6e5242e86707d305d4923d050f8f9a)
1712
+ check_type(argname="argument configuration", value=configuration, expected_type=type_hints["configuration"])
1713
+ check_type(argname="argument configuration_alias", value=configuration_alias, expected_type=type_hints["configuration_alias"])
1714
+ check_type(argname="argument type_arn", value=type_arn, expected_type=type_hints["type_arn"])
1715
+ check_type(argname="argument type_name", value=type_name, expected_type=type_hints["type_name"])
1716
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1717
+ "configuration": configuration,
1718
+ }
1719
+ if configuration_alias is not None:
1720
+ self._values["configuration_alias"] = configuration_alias
1721
+ if type_arn is not None:
1722
+ self._values["type_arn"] = type_arn
1723
+ if type_name is not None:
1724
+ self._values["type_name"] = type_name
1725
+
1726
+ @builtins.property
1727
+ def configuration(self) -> builtins.str:
1728
+ '''Specifies the activated hook type configuration, in this AWS account and AWS Region .
1729
+
1730
+ You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
1731
+
1732
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-configuration
1733
+ '''
1734
+ result = self._values.get("configuration")
1735
+ assert result is not None, "Required property 'configuration' is missing"
1736
+ return typing.cast(builtins.str, result)
1737
+
1738
+ @builtins.property
1739
+ def configuration_alias(self) -> typing.Optional[builtins.str]:
1740
+ '''Specifies the activated hook type configuration, in this AWS account and AWS Region .
1741
+
1742
+ Defaults to ``default`` alias. Hook types currently support default configuration alias.
1743
+
1744
+ :default: - "default"
1745
+
1746
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-configurationalias
1747
+ '''
1748
+ result = self._values.get("configuration_alias")
1749
+ return typing.cast(typing.Optional[builtins.str], result)
1750
+
1751
+ @builtins.property
1752
+ def type_arn(self) -> typing.Optional[builtins.str]:
1753
+ '''The Amazon Resource Number (ARN) for the hook to set ``Configuration`` for.
1754
+
1755
+ You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
1756
+
1757
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-typearn
1758
+ '''
1759
+ result = self._values.get("type_arn")
1760
+ return typing.cast(typing.Optional[builtins.str], result)
1761
+
1762
+ @builtins.property
1763
+ def type_name(self) -> typing.Optional[builtins.str]:
1764
+ '''The unique name for your hook.
1765
+
1766
+ Specifies a three-part namespace for your hook, with a recommended pattern of ``Organization::Service::Hook`` .
1767
+
1768
+ You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
1769
+
1770
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-typename
1771
+ '''
1772
+ result = self._values.get("type_name")
1773
+ return typing.cast(typing.Optional[builtins.str], result)
1774
+
1775
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1776
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1777
+
1778
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1779
+ return not (rhs == self)
1780
+
1781
+ def __repr__(self) -> str:
1782
+ return "CfnHookTypeConfigProps(%s)" % ", ".join(
1783
+ k + "=" + repr(v) for k, v in self._values.items()
1784
+ )
1785
+
1786
+
1787
+ @jsii.implements(_IInspectable_c2943556)
1788
+ class CfnHookVersion(
1789
+ _CfnResource_9df397a6,
1790
+ metaclass=jsii.JSIIMeta,
1791
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnHookVersion",
1792
+ ):
1793
+ '''The ``HookVersion`` resource publishes new or first hook version to the AWS CloudFormation registry.
1794
+
1795
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html
1796
+ :cloudformationResource: AWS::CloudFormation::HookVersion
1797
+ :exampleMetadata: fixture=_generated
1798
+
1799
+ Example::
1800
+
1801
+ # The code below shows an example of how to instantiate this type.
1802
+ # The values are placeholders you should change.
1803
+ from aws_cdk import aws_cloudformation as cloudformation
1804
+
1805
+ cfn_hook_version = cloudformation.CfnHookVersion(self, "MyCfnHookVersion",
1806
+ schema_handler_package="schemaHandlerPackage",
1807
+ type_name="typeName",
1808
+
1809
+ # the properties below are optional
1810
+ execution_role_arn="executionRoleArn",
1811
+ logging_config=cloudformation.CfnHookVersion.LoggingConfigProperty(
1812
+ log_group_name="logGroupName",
1813
+ log_role_arn="logRoleArn"
1814
+ )
1815
+ )
1816
+ '''
1817
+
1818
+ def __init__(
1819
+ self,
1820
+ scope: _constructs_77d1e7e8.Construct,
1821
+ id: builtins.str,
1822
+ *,
1823
+ schema_handler_package: builtins.str,
1824
+ type_name: builtins.str,
1825
+ execution_role_arn: typing.Optional[builtins.str] = None,
1826
+ logging_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnHookVersion.LoggingConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1827
+ ) -> None:
1828
+ '''
1829
+ :param scope: Scope in which this resource is defined.
1830
+ :param id: Construct identifier for this resource (unique in its scope).
1831
+ :param schema_handler_package: A URL to the Amazon S3 bucket containing the hook project package that contains the necessary files for the hook you want to register. For information on generating a schema handler package for the resource you want to register, see `submit <https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html>`_ in the *CloudFormation CLI User Guide for Extension Development* . .. epigraph:: The user registering the resource must be able to access the package in the S3 bucket. That's, the user must have `GetObject <https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html>`_ permissions for the schema handler package. For more information, see `Actions, Resources, and Condition Keys for Amazon S3 <https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html>`_ in the *AWS Identity and Access Management User Guide* .
1832
+ :param type_name: The unique name for your hook. Specifies a three-part namespace for your hook, with a recommended pattern of ``Organization::Service::Hook`` . .. epigraph:: The following organization namespaces are reserved and can't be used in your hook type names: - ``Alexa`` - ``AMZN`` - ``Amazon`` - ``ASK`` - ``AWS`` - ``Custom`` - ``Dev``
1833
+ :param execution_role_arn: The Amazon Resource Name (ARN) of the task execution role that grants the hook permission.
1834
+ :param logging_config: Contains logging configuration information for an extension.
1835
+ '''
1836
+ if __debug__:
1837
+ type_hints = typing.get_type_hints(_typecheckingstub__291bd220d9e7cd7e2d0ca851a8919b3ac012e0d7a45a664cf291d6381de23d73)
541
1838
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
542
1839
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
543
- props = CfnHookTypeConfigProps(
544
- configuration=configuration,
545
- configuration_alias=configuration_alias,
546
- type_arn=type_arn,
1840
+ props = CfnHookVersionProps(
1841
+ schema_handler_package=schema_handler_package,
547
1842
  type_name=type_name,
1843
+ execution_role_arn=execution_role_arn,
1844
+ logging_config=logging_config,
548
1845
  )
549
1846
 
550
1847
  jsii.create(self.__class__, self, [scope, id, props])
@@ -556,7 +1853,7 @@ class CfnHookTypeConfig(
556
1853
  :param inspector: tree inspector to collect and process attributes.
557
1854
  '''
558
1855
  if __debug__:
559
- type_hints = typing.get_type_hints(_typecheckingstub__64d031e26b8bd0eeb56b31d7de08efef921b07640fe30239018c4b9b54f75af3)
1856
+ type_hints = typing.get_type_hints(_typecheckingstub__19d9ff1b2b94a1214e3523199f203ce84bb6818d8221d1c9c8864607fd68ed54)
560
1857
  check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
561
1858
  return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
562
1859
 
@@ -569,7 +1866,7 @@ class CfnHookTypeConfig(
569
1866
  :param props: -
570
1867
  '''
571
1868
  if __debug__:
572
- type_hints = typing.get_type_hints(_typecheckingstub__152138584317142b159bc64a674adbec428e62f1899b9285a49a4b8e3bb752bd)
1869
+ type_hints = typing.get_type_hints(_typecheckingstub__373bbf4ceb7d1c3f9739457d175b6e990bef886865f570c651e71104ae299479)
573
1870
  check_type(argname="argument props", value=props, expected_type=type_hints["props"])
574
1871
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
575
1872
 
@@ -580,13 +1877,54 @@ class CfnHookTypeConfig(
580
1877
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
581
1878
 
582
1879
  @builtins.property
583
- @jsii.member(jsii_name="attrConfigurationArn")
584
- def attr_configuration_arn(self) -> builtins.str:
585
- '''The Amazon Resource Number (ARN) of the activated hook type configuration, in this account and Region.
1880
+ @jsii.member(jsii_name="attrArn")
1881
+ def attr_arn(self) -> builtins.str:
1882
+ '''The Amazon Resource Name (ARN) of the hook.
586
1883
 
587
- :cloudformationAttribute: ConfigurationArn
1884
+ :cloudformationAttribute: Arn
588
1885
  '''
589
- return typing.cast(builtins.str, jsii.get(self, "attrConfigurationArn"))
1886
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
1887
+
1888
+ @builtins.property
1889
+ @jsii.member(jsii_name="attrIsDefaultVersion")
1890
+ def attr_is_default_version(self) -> _IResolvable_da3f097b:
1891
+ '''Whether the specified hook version is set as the default version.
1892
+
1893
+ :cloudformationAttribute: IsDefaultVersion
1894
+ '''
1895
+ return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrIsDefaultVersion"))
1896
+
1897
+ @builtins.property
1898
+ @jsii.member(jsii_name="attrTypeArn")
1899
+ def attr_type_arn(self) -> builtins.str:
1900
+ '''The Amazon Resource Number (ARN) assigned to this version of the hook.
1901
+
1902
+ :cloudformationAttribute: TypeArn
1903
+ '''
1904
+ return typing.cast(builtins.str, jsii.get(self, "attrTypeArn"))
1905
+
1906
+ @builtins.property
1907
+ @jsii.member(jsii_name="attrVersionId")
1908
+ def attr_version_id(self) -> builtins.str:
1909
+ '''The ID of this version of the hook.
1910
+
1911
+ :cloudformationAttribute: VersionId
1912
+ '''
1913
+ return typing.cast(builtins.str, jsii.get(self, "attrVersionId"))
1914
+
1915
+ @builtins.property
1916
+ @jsii.member(jsii_name="attrVisibility")
1917
+ def attr_visibility(self) -> builtins.str:
1918
+ '''The scope at which the resource is visible and usable in CloudFormation operations.
1919
+
1920
+ Valid values include:
1921
+
1922
+ - ``PRIVATE`` : The resource is only visible and usable within the account in which it's registered. CloudFormation marks any resources you register as ``PRIVATE`` .
1923
+ - ``PUBLIC`` : The resource is publicly visible and usable within any Amazon account.
1924
+
1925
+ :cloudformationAttribute: Visibility
1926
+ '''
1927
+ return typing.cast(builtins.str, jsii.get(self, "attrVisibility"))
590
1928
 
591
1929
  @builtins.property
592
1930
  @jsii.member(jsii_name="cfnProperties")
@@ -594,85 +1932,160 @@ class CfnHookTypeConfig(
594
1932
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
595
1933
 
596
1934
  @builtins.property
597
- @jsii.member(jsii_name="configuration")
598
- def configuration(self) -> builtins.str:
599
- '''Specifies the activated hook type configuration, in this AWS account and AWS Region .'''
600
- return typing.cast(builtins.str, jsii.get(self, "configuration"))
1935
+ @jsii.member(jsii_name="schemaHandlerPackage")
1936
+ def schema_handler_package(self) -> builtins.str:
1937
+ '''A URL to the Amazon S3 bucket containing the hook project package that contains the necessary files for the hook you want to register.'''
1938
+ return typing.cast(builtins.str, jsii.get(self, "schemaHandlerPackage"))
601
1939
 
602
- @configuration.setter
603
- def configuration(self, value: builtins.str) -> None:
1940
+ @schema_handler_package.setter
1941
+ def schema_handler_package(self, value: builtins.str) -> None:
604
1942
  if __debug__:
605
- type_hints = typing.get_type_hints(_typecheckingstub__3847791ddd5530d8a9d2144538417d1a4cf5fb909bd613d41c5905e02d37bb9a)
1943
+ type_hints = typing.get_type_hints(_typecheckingstub__0efb96dfc84b17d40a50018cd6d23e3c296865fd07b6996b365c17a092ce873c)
606
1944
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
607
- jsii.set(self, "configuration", value) # pyright: ignore[reportArgumentType]
1945
+ jsii.set(self, "schemaHandlerPackage", value) # pyright: ignore[reportArgumentType]
1946
+
1947
+ @builtins.property
1948
+ @jsii.member(jsii_name="typeName")
1949
+ def type_name(self) -> builtins.str:
1950
+ '''The unique name for your hook.'''
1951
+ return typing.cast(builtins.str, jsii.get(self, "typeName"))
1952
+
1953
+ @type_name.setter
1954
+ def type_name(self, value: builtins.str) -> None:
1955
+ if __debug__:
1956
+ type_hints = typing.get_type_hints(_typecheckingstub__30df538b23952e625e940e55d9e80b1642e22eea6fc3b3850d26f16b544d134d)
1957
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1958
+ jsii.set(self, "typeName", value) # pyright: ignore[reportArgumentType]
1959
+
1960
+ @builtins.property
1961
+ @jsii.member(jsii_name="executionRoleArn")
1962
+ def execution_role_arn(self) -> typing.Optional[builtins.str]:
1963
+ '''The Amazon Resource Name (ARN) of the task execution role that grants the hook permission.'''
1964
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "executionRoleArn"))
1965
+
1966
+ @execution_role_arn.setter
1967
+ def execution_role_arn(self, value: typing.Optional[builtins.str]) -> None:
1968
+ if __debug__:
1969
+ type_hints = typing.get_type_hints(_typecheckingstub__2cb4f09410ca3ef9c85888607e8ac924121a6fe32ab21f62e93aa2cc02b1130a)
1970
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1971
+ jsii.set(self, "executionRoleArn", value) # pyright: ignore[reportArgumentType]
1972
+
1973
+ @builtins.property
1974
+ @jsii.member(jsii_name="loggingConfig")
1975
+ def logging_config(
1976
+ self,
1977
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnHookVersion.LoggingConfigProperty"]]:
1978
+ '''Contains logging configuration information for an extension.'''
1979
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnHookVersion.LoggingConfigProperty"]], jsii.get(self, "loggingConfig"))
1980
+
1981
+ @logging_config.setter
1982
+ def logging_config(
1983
+ self,
1984
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnHookVersion.LoggingConfigProperty"]],
1985
+ ) -> None:
1986
+ if __debug__:
1987
+ type_hints = typing.get_type_hints(_typecheckingstub__2b1199d24d006c1117662bdfbc72f2cbbbd5b4d4138b339988fd36100745a337)
1988
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1989
+ jsii.set(self, "loggingConfig", value) # pyright: ignore[reportArgumentType]
1990
+
1991
+ @jsii.data_type(
1992
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnHookVersion.LoggingConfigProperty",
1993
+ jsii_struct_bases=[],
1994
+ name_mapping={"log_group_name": "logGroupName", "log_role_arn": "logRoleArn"},
1995
+ )
1996
+ class LoggingConfigProperty:
1997
+ def __init__(
1998
+ self,
1999
+ *,
2000
+ log_group_name: typing.Optional[builtins.str] = None,
2001
+ log_role_arn: typing.Optional[builtins.str] = None,
2002
+ ) -> None:
2003
+ '''The ``LoggingConfig`` property type specifies logging configuration information for an extension.
2004
+
2005
+ :param log_group_name: The Amazon CloudWatch Logs group to which CloudFormation sends error logging information when invoking the extension's handlers.
2006
+ :param log_role_arn: The Amazon Resource Name (ARN) of the role that CloudFormation should assume when sending log entries to CloudWatch Logs.
2007
+
2008
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-hookversion-loggingconfig.html
2009
+ :exampleMetadata: fixture=_generated
2010
+
2011
+ Example::
2012
+
2013
+ # The code below shows an example of how to instantiate this type.
2014
+ # The values are placeholders you should change.
2015
+ from aws_cdk import aws_cloudformation as cloudformation
2016
+
2017
+ logging_config_property = cloudformation.CfnHookVersion.LoggingConfigProperty(
2018
+ log_group_name="logGroupName",
2019
+ log_role_arn="logRoleArn"
2020
+ )
2021
+ '''
2022
+ if __debug__:
2023
+ type_hints = typing.get_type_hints(_typecheckingstub__c3186540a164984c66b6fb1ac418c16e60743db883585e9275304381fae9a1cf)
2024
+ check_type(argname="argument log_group_name", value=log_group_name, expected_type=type_hints["log_group_name"])
2025
+ check_type(argname="argument log_role_arn", value=log_role_arn, expected_type=type_hints["log_role_arn"])
2026
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
2027
+ if log_group_name is not None:
2028
+ self._values["log_group_name"] = log_group_name
2029
+ if log_role_arn is not None:
2030
+ self._values["log_role_arn"] = log_role_arn
608
2031
 
609
- @builtins.property
610
- @jsii.member(jsii_name="configurationAlias")
611
- def configuration_alias(self) -> typing.Optional[builtins.str]:
612
- '''Specifies the activated hook type configuration, in this AWS account and AWS Region .'''
613
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "configurationAlias"))
2032
+ @builtins.property
2033
+ def log_group_name(self) -> typing.Optional[builtins.str]:
2034
+ '''The Amazon CloudWatch Logs group to which CloudFormation sends error logging information when invoking the extension's handlers.
614
2035
 
615
- @configuration_alias.setter
616
- def configuration_alias(self, value: typing.Optional[builtins.str]) -> None:
617
- if __debug__:
618
- type_hints = typing.get_type_hints(_typecheckingstub__649cdf62ea09d9e4b72042f283c05b766e052006f59f2d05f9a6d2eab2ea396a)
619
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
620
- jsii.set(self, "configurationAlias", value) # pyright: ignore[reportArgumentType]
2036
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-hookversion-loggingconfig.html#cfn-cloudformation-hookversion-loggingconfig-loggroupname
2037
+ '''
2038
+ result = self._values.get("log_group_name")
2039
+ return typing.cast(typing.Optional[builtins.str], result)
621
2040
 
622
- @builtins.property
623
- @jsii.member(jsii_name="typeArn")
624
- def type_arn(self) -> typing.Optional[builtins.str]:
625
- '''The Amazon Resource Number (ARN) for the hook to set ``Configuration`` for.'''
626
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "typeArn"))
2041
+ @builtins.property
2042
+ def log_role_arn(self) -> typing.Optional[builtins.str]:
2043
+ '''The Amazon Resource Name (ARN) of the role that CloudFormation should assume when sending log entries to CloudWatch Logs.
627
2044
 
628
- @type_arn.setter
629
- def type_arn(self, value: typing.Optional[builtins.str]) -> None:
630
- if __debug__:
631
- type_hints = typing.get_type_hints(_typecheckingstub__b787dd89e7baba7e0a6ac2766dafcb836d4d6e45724a95c5ca1fdbd30ebd66b1)
632
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
633
- jsii.set(self, "typeArn", value) # pyright: ignore[reportArgumentType]
2045
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-hookversion-loggingconfig.html#cfn-cloudformation-hookversion-loggingconfig-logrolearn
2046
+ '''
2047
+ result = self._values.get("log_role_arn")
2048
+ return typing.cast(typing.Optional[builtins.str], result)
634
2049
 
635
- @builtins.property
636
- @jsii.member(jsii_name="typeName")
637
- def type_name(self) -> typing.Optional[builtins.str]:
638
- '''The unique name for your hook.'''
639
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "typeName"))
2050
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2051
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
640
2052
 
641
- @type_name.setter
642
- def type_name(self, value: typing.Optional[builtins.str]) -> None:
643
- if __debug__:
644
- type_hints = typing.get_type_hints(_typecheckingstub__84b67709252725d1f5ed0113558f6ddd94c0f17e7aadee85cf241f59a8eb5585)
645
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
646
- jsii.set(self, "typeName", value) # pyright: ignore[reportArgumentType]
2053
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2054
+ return not (rhs == self)
2055
+
2056
+ def __repr__(self) -> str:
2057
+ return "LoggingConfigProperty(%s)" % ", ".join(
2058
+ k + "=" + repr(v) for k, v in self._values.items()
2059
+ )
647
2060
 
648
2061
 
649
2062
  @jsii.data_type(
650
- jsii_type="aws-cdk-lib.aws_cloudformation.CfnHookTypeConfigProps",
2063
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnHookVersionProps",
651
2064
  jsii_struct_bases=[],
652
2065
  name_mapping={
653
- "configuration": "configuration",
654
- "configuration_alias": "configurationAlias",
655
- "type_arn": "typeArn",
2066
+ "schema_handler_package": "schemaHandlerPackage",
656
2067
  "type_name": "typeName",
2068
+ "execution_role_arn": "executionRoleArn",
2069
+ "logging_config": "loggingConfig",
657
2070
  },
658
2071
  )
659
- class CfnHookTypeConfigProps:
2072
+ class CfnHookVersionProps:
660
2073
  def __init__(
661
2074
  self,
662
2075
  *,
663
- configuration: builtins.str,
664
- configuration_alias: typing.Optional[builtins.str] = None,
665
- type_arn: typing.Optional[builtins.str] = None,
666
- type_name: typing.Optional[builtins.str] = None,
2076
+ schema_handler_package: builtins.str,
2077
+ type_name: builtins.str,
2078
+ execution_role_arn: typing.Optional[builtins.str] = None,
2079
+ logging_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnHookVersion.LoggingConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
667
2080
  ) -> None:
668
- '''Properties for defining a ``CfnHookTypeConfig``.
2081
+ '''Properties for defining a ``CfnHookVersion``.
669
2082
 
670
- :param configuration: Specifies the activated hook type configuration, in this AWS account and AWS Region . You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
671
- :param configuration_alias: Specifies the activated hook type configuration, in this AWS account and AWS Region . Defaults to ``default`` alias. Hook types currently support default configuration alias. Default: - "default"
672
- :param type_arn: The Amazon Resource Number (ARN) for the hook to set ``Configuration`` for. You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
673
- :param type_name: The unique name for your hook. Specifies a three-part namespace for your hook, with a recommended pattern of ``Organization::Service::Hook`` . You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
2083
+ :param schema_handler_package: A URL to the Amazon S3 bucket containing the hook project package that contains the necessary files for the hook you want to register. For information on generating a schema handler package for the resource you want to register, see `submit <https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html>`_ in the *CloudFormation CLI User Guide for Extension Development* . .. epigraph:: The user registering the resource must be able to access the package in the S3 bucket. That's, the user must have `GetObject <https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html>`_ permissions for the schema handler package. For more information, see `Actions, Resources, and Condition Keys for Amazon S3 <https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html>`_ in the *AWS Identity and Access Management User Guide* .
2084
+ :param type_name: The unique name for your hook. Specifies a three-part namespace for your hook, with a recommended pattern of ``Organization::Service::Hook`` . .. epigraph:: The following organization namespaces are reserved and can't be used in your hook type names: - ``Alexa`` - ``AMZN`` - ``Amazon`` - ``ASK`` - ``AWS`` - ``Custom`` - ``Dev``
2085
+ :param execution_role_arn: The Amazon Resource Name (ARN) of the task execution role that grants the hook permission.
2086
+ :param logging_config: Contains logging configuration information for an extension.
674
2087
 
675
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html
2088
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html
676
2089
  :exampleMetadata: fixture=_generated
677
2090
 
678
2091
  Example::
@@ -681,79 +2094,90 @@ class CfnHookTypeConfigProps:
681
2094
  # The values are placeholders you should change.
682
2095
  from aws_cdk import aws_cloudformation as cloudformation
683
2096
 
684
- cfn_hook_type_config_props = cloudformation.CfnHookTypeConfigProps(
685
- configuration="configuration",
2097
+ cfn_hook_version_props = cloudformation.CfnHookVersionProps(
2098
+ schema_handler_package="schemaHandlerPackage",
2099
+ type_name="typeName",
686
2100
 
687
2101
  # the properties below are optional
688
- configuration_alias="configurationAlias",
689
- type_arn="typeArn",
690
- type_name="typeName"
2102
+ execution_role_arn="executionRoleArn",
2103
+ logging_config=cloudformation.CfnHookVersion.LoggingConfigProperty(
2104
+ log_group_name="logGroupName",
2105
+ log_role_arn="logRoleArn"
2106
+ )
691
2107
  )
692
2108
  '''
693
2109
  if __debug__:
694
- type_hints = typing.get_type_hints(_typecheckingstub__ef5f9608def2c7b14e7449a6bceadbd90b6e5242e86707d305d4923d050f8f9a)
695
- check_type(argname="argument configuration", value=configuration, expected_type=type_hints["configuration"])
696
- check_type(argname="argument configuration_alias", value=configuration_alias, expected_type=type_hints["configuration_alias"])
697
- check_type(argname="argument type_arn", value=type_arn, expected_type=type_hints["type_arn"])
2110
+ type_hints = typing.get_type_hints(_typecheckingstub__7a9bb2ef202f6ed27272b4d9787339d2a26c63beb648e39f3c4977200bcc65b1)
2111
+ check_type(argname="argument schema_handler_package", value=schema_handler_package, expected_type=type_hints["schema_handler_package"])
698
2112
  check_type(argname="argument type_name", value=type_name, expected_type=type_hints["type_name"])
2113
+ check_type(argname="argument execution_role_arn", value=execution_role_arn, expected_type=type_hints["execution_role_arn"])
2114
+ check_type(argname="argument logging_config", value=logging_config, expected_type=type_hints["logging_config"])
699
2115
  self._values: typing.Dict[builtins.str, typing.Any] = {
700
- "configuration": configuration,
2116
+ "schema_handler_package": schema_handler_package,
2117
+ "type_name": type_name,
701
2118
  }
702
- if configuration_alias is not None:
703
- self._values["configuration_alias"] = configuration_alias
704
- if type_arn is not None:
705
- self._values["type_arn"] = type_arn
706
- if type_name is not None:
707
- self._values["type_name"] = type_name
2119
+ if execution_role_arn is not None:
2120
+ self._values["execution_role_arn"] = execution_role_arn
2121
+ if logging_config is not None:
2122
+ self._values["logging_config"] = logging_config
708
2123
 
709
2124
  @builtins.property
710
- def configuration(self) -> builtins.str:
711
- '''Specifies the activated hook type configuration, in this AWS account and AWS Region .
2125
+ def schema_handler_package(self) -> builtins.str:
2126
+ '''A URL to the Amazon S3 bucket containing the hook project package that contains the necessary files for the hook you want to register.
712
2127
 
713
- You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
2128
+ For information on generating a schema handler package for the resource you want to register, see `submit <https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html>`_ in the *CloudFormation CLI User Guide for Extension Development* .
2129
+ .. epigraph::
714
2130
 
715
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-configuration
2131
+ The user registering the resource must be able to access the package in the S3 bucket. That's, the user must have `GetObject <https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html>`_ permissions for the schema handler package. For more information, see `Actions, Resources, and Condition Keys for Amazon S3 <https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html>`_ in the *AWS Identity and Access Management User Guide* .
2132
+
2133
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-schemahandlerpackage
716
2134
  '''
717
- result = self._values.get("configuration")
718
- assert result is not None, "Required property 'configuration' is missing"
2135
+ result = self._values.get("schema_handler_package")
2136
+ assert result is not None, "Required property 'schema_handler_package' is missing"
719
2137
  return typing.cast(builtins.str, result)
720
2138
 
721
2139
  @builtins.property
722
- def configuration_alias(self) -> typing.Optional[builtins.str]:
723
- '''Specifies the activated hook type configuration, in this AWS account and AWS Region .
2140
+ def type_name(self) -> builtins.str:
2141
+ '''The unique name for your hook.
724
2142
 
725
- Defaults to ``default`` alias. Hook types currently support default configuration alias.
2143
+ Specifies a three-part namespace for your hook, with a recommended pattern of ``Organization::Service::Hook`` .
2144
+ .. epigraph::
726
2145
 
727
- :default: - "default"
2146
+ The following organization namespaces are reserved and can't be used in your hook type names:
728
2147
 
729
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-configurationalias
2148
+ - ``Alexa``
2149
+ - ``AMZN``
2150
+ - ``Amazon``
2151
+ - ``ASK``
2152
+ - ``AWS``
2153
+ - ``Custom``
2154
+ - ``Dev``
2155
+
2156
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-typename
730
2157
  '''
731
- result = self._values.get("configuration_alias")
732
- return typing.cast(typing.Optional[builtins.str], result)
2158
+ result = self._values.get("type_name")
2159
+ assert result is not None, "Required property 'type_name' is missing"
2160
+ return typing.cast(builtins.str, result)
733
2161
 
734
2162
  @builtins.property
735
- def type_arn(self) -> typing.Optional[builtins.str]:
736
- '''The Amazon Resource Number (ARN) for the hook to set ``Configuration`` for.
737
-
738
- You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
2163
+ def execution_role_arn(self) -> typing.Optional[builtins.str]:
2164
+ '''The Amazon Resource Name (ARN) of the task execution role that grants the hook permission.
739
2165
 
740
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-typearn
2166
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-executionrolearn
741
2167
  '''
742
- result = self._values.get("type_arn")
2168
+ result = self._values.get("execution_role_arn")
743
2169
  return typing.cast(typing.Optional[builtins.str], result)
744
2170
 
745
2171
  @builtins.property
746
- def type_name(self) -> typing.Optional[builtins.str]:
747
- '''The unique name for your hook.
748
-
749
- Specifies a three-part namespace for your hook, with a recommended pattern of ``Organization::Service::Hook`` .
750
-
751
- You must specify either ``TypeName`` and ``Configuration`` or ``TypeArn`` and ``Configuration`` .
2172
+ def logging_config(
2173
+ self,
2174
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnHookVersion.LoggingConfigProperty]]:
2175
+ '''Contains logging configuration information for an extension.
752
2176
 
753
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-typename
2177
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-loggingconfig
754
2178
  '''
755
- result = self._values.get("type_name")
756
- return typing.cast(typing.Optional[builtins.str], result)
2179
+ result = self._values.get("logging_config")
2180
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnHookVersion.LoggingConfigProperty]], result)
757
2181
 
758
2182
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
759
2183
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -762,21 +2186,21 @@ class CfnHookTypeConfigProps:
762
2186
  return not (rhs == self)
763
2187
 
764
2188
  def __repr__(self) -> str:
765
- return "CfnHookTypeConfigProps(%s)" % ", ".join(
2189
+ return "CfnHookVersionProps(%s)" % ", ".join(
766
2190
  k + "=" + repr(v) for k, v in self._values.items()
767
2191
  )
768
2192
 
769
2193
 
770
2194
  @jsii.implements(_IInspectable_c2943556)
771
- class CfnHookVersion(
2195
+ class CfnLambdaHook(
772
2196
  _CfnResource_9df397a6,
773
2197
  metaclass=jsii.JSIIMeta,
774
- jsii_type="aws-cdk-lib.aws_cloudformation.CfnHookVersion",
2198
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnLambdaHook",
775
2199
  ):
776
- '''The ``HookVersion`` resource publishes new or first hook version to the AWS CloudFormation registry.
2200
+ '''This is a CloudFormation resource for the first-party AWS::Hooks::LambdaHook.
777
2201
 
778
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html
779
- :cloudformationResource: AWS::CloudFormation::HookVersion
2202
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-lambdahook.html
2203
+ :cloudformationResource: AWS::CloudFormation::LambdaHook
780
2204
  :exampleMetadata: fixture=_generated
781
2205
 
782
2206
  Example::
@@ -785,15 +2209,32 @@ class CfnHookVersion(
785
2209
  # The values are placeholders you should change.
786
2210
  from aws_cdk import aws_cloudformation as cloudformation
787
2211
 
788
- cfn_hook_version = cloudformation.CfnHookVersion(self, "MyCfnHookVersion",
789
- schema_handler_package="schemaHandlerPackage",
790
- type_name="typeName",
2212
+ cfn_lambda_hook = cloudformation.CfnLambdaHook(self, "MyCfnLambdaHook",
2213
+ alias="alias",
2214
+ execution_role="executionRole",
2215
+ failure_mode="failureMode",
2216
+ hook_status="hookStatus",
2217
+ lambda_function="lambdaFunction",
2218
+ target_operations=["targetOperations"],
791
2219
 
792
2220
  # the properties below are optional
793
- execution_role_arn="executionRoleArn",
794
- logging_config=cloudformation.CfnHookVersion.LoggingConfigProperty(
795
- log_group_name="logGroupName",
796
- log_role_arn="logRoleArn"
2221
+ stack_filters=cloudformation.CfnLambdaHook.StackFiltersProperty(
2222
+ filtering_criteria="filteringCriteria",
2223
+
2224
+ # the properties below are optional
2225
+ stack_names=cloudformation.CfnLambdaHook.StackNamesProperty(
2226
+ exclude=["exclude"],
2227
+ include=["include"]
2228
+ ),
2229
+ stack_roles=cloudformation.CfnLambdaHook.StackRolesProperty(
2230
+ exclude=["exclude"],
2231
+ include=["include"]
2232
+ )
2233
+ ),
2234
+ target_filters=cloudformation.CfnLambdaHook.TargetFiltersProperty(
2235
+ actions=["actions"],
2236
+ invocation_points=["invocationPoints"],
2237
+ target_names=["targetNames"]
797
2238
  )
798
2239
  )
799
2240
  '''
@@ -803,28 +2244,40 @@ class CfnHookVersion(
803
2244
  scope: _constructs_77d1e7e8.Construct,
804
2245
  id: builtins.str,
805
2246
  *,
806
- schema_handler_package: builtins.str,
807
- type_name: builtins.str,
808
- execution_role_arn: typing.Optional[builtins.str] = None,
809
- logging_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnHookVersion.LoggingConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2247
+ alias: builtins.str,
2248
+ execution_role: builtins.str,
2249
+ failure_mode: builtins.str,
2250
+ hook_status: builtins.str,
2251
+ lambda_function: builtins.str,
2252
+ target_operations: typing.Sequence[builtins.str],
2253
+ stack_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnLambdaHook.StackFiltersProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2254
+ target_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnLambdaHook.TargetFiltersProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
810
2255
  ) -> None:
811
2256
  '''
812
2257
  :param scope: Scope in which this resource is defined.
813
2258
  :param id: Construct identifier for this resource (unique in its scope).
814
- :param schema_handler_package: A URL to the Amazon S3 bucket containing the hook project package that contains the necessary files for the hook you want to register. For information on generating a schema handler package for the resource you want to register, see `submit <https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html>`_ in the *CloudFormation CLI User Guide for Extension Development* . .. epigraph:: The user registering the resource must be able to access the package in the S3 bucket. That's, the user must have `GetObject <https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html>`_ permissions for the schema handler package. For more information, see `Actions, Resources, and Condition Keys for Amazon S3 <https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html>`_ in the *AWS Identity and Access Management User Guide* .
815
- :param type_name: The unique name for your hook. Specifies a three-part namespace for your hook, with a recommended pattern of ``Organization::Service::Hook`` . .. epigraph:: The following organization namespaces are reserved and can't be used in your hook type names: - ``Alexa`` - ``AMZN`` - ``Amazon`` - ``ASK`` - ``AWS`` - ``Custom`` - ``Dev``
816
- :param execution_role_arn: The Amazon Resource Name (ARN) of the task execution role that grants the hook permission.
817
- :param logging_config: Contains logging configuration information for an extension.
2259
+ :param alias: The typename alias for the hook.
2260
+ :param execution_role: IAM Role ARN.
2261
+ :param failure_mode: Attribute to specify CloudFormation behavior on hook failure.
2262
+ :param hook_status: Attribute to specify which stacks this hook applies to or should get invoked for. Default: - "ENABLED"
2263
+ :param lambda_function: Amazon Resource Name (ARN), Partial ARN, name, version, or alias of the Lambda function to invoke with this hook.
2264
+ :param target_operations: Which operations should this Hook run against? Resource changes, stacks or change sets.
2265
+ :param stack_filters: Filters to allow hooks to target specific stack attributes.
2266
+ :param target_filters:
818
2267
  '''
819
2268
  if __debug__:
820
- type_hints = typing.get_type_hints(_typecheckingstub__291bd220d9e7cd7e2d0ca851a8919b3ac012e0d7a45a664cf291d6381de23d73)
2269
+ type_hints = typing.get_type_hints(_typecheckingstub__fec9ac58a382959177810e26366e5dddc9f912aaf73b09411981c9ecbce1010a)
821
2270
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
822
2271
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
823
- props = CfnHookVersionProps(
824
- schema_handler_package=schema_handler_package,
825
- type_name=type_name,
826
- execution_role_arn=execution_role_arn,
827
- logging_config=logging_config,
2272
+ props = CfnLambdaHookProps(
2273
+ alias=alias,
2274
+ execution_role=execution_role,
2275
+ failure_mode=failure_mode,
2276
+ hook_status=hook_status,
2277
+ lambda_function=lambda_function,
2278
+ target_operations=target_operations,
2279
+ stack_filters=stack_filters,
2280
+ target_filters=target_filters,
828
2281
  )
829
2282
 
830
2283
  jsii.create(self.__class__, self, [scope, id, props])
@@ -836,7 +2289,7 @@ class CfnHookVersion(
836
2289
  :param inspector: tree inspector to collect and process attributes.
837
2290
  '''
838
2291
  if __debug__:
839
- type_hints = typing.get_type_hints(_typecheckingstub__19d9ff1b2b94a1214e3523199f203ce84bb6818d8221d1c9c8864607fd68ed54)
2292
+ type_hints = typing.get_type_hints(_typecheckingstub__809877a17bb251e60b67455af692a3e858d54a83a7fd506fc495b0e744c5fa80)
840
2293
  check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
841
2294
  return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
842
2295
 
@@ -849,7 +2302,7 @@ class CfnHookVersion(
849
2302
  :param props: -
850
2303
  '''
851
2304
  if __debug__:
852
- type_hints = typing.get_type_hints(_typecheckingstub__373bbf4ceb7d1c3f9739457d175b6e990bef886865f570c651e71104ae299479)
2305
+ type_hints = typing.get_type_hints(_typecheckingstub__25c057aed795d732097fbba6a4f084b53c5450d05b120d849b723c67df1943a3)
853
2306
  check_type(argname="argument props", value=props, expected_type=type_hints["props"])
854
2307
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
855
2308
 
@@ -860,135 +2313,156 @@ class CfnHookVersion(
860
2313
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
861
2314
 
862
2315
  @builtins.property
863
- @jsii.member(jsii_name="attrArn")
864
- def attr_arn(self) -> builtins.str:
865
- '''The Amazon Resource Name (ARN) of the hook.
866
-
867
- :cloudformationAttribute: Arn
868
- '''
869
- return typing.cast(builtins.str, jsii.get(self, "attrArn"))
870
-
871
- @builtins.property
872
- @jsii.member(jsii_name="attrIsDefaultVersion")
873
- def attr_is_default_version(self) -> _IResolvable_da3f097b:
874
- '''Whether the specified hook version is set as the default version.
2316
+ @jsii.member(jsii_name="attrHookArn")
2317
+ def attr_hook_arn(self) -> builtins.str:
2318
+ '''The Amazon Resource Name (ARN) of the activated hook.
875
2319
 
876
- :cloudformationAttribute: IsDefaultVersion
2320
+ :cloudformationAttribute: HookArn
877
2321
  '''
878
- return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrIsDefaultVersion"))
2322
+ return typing.cast(builtins.str, jsii.get(self, "attrHookArn"))
879
2323
 
880
2324
  @builtins.property
881
- @jsii.member(jsii_name="attrTypeArn")
882
- def attr_type_arn(self) -> builtins.str:
883
- '''The Amazon Resource Number (ARN) assigned to this version of the hook.
884
-
885
- :cloudformationAttribute: TypeArn
886
- '''
887
- return typing.cast(builtins.str, jsii.get(self, "attrTypeArn"))
2325
+ @jsii.member(jsii_name="cfnProperties")
2326
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2327
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
888
2328
 
889
2329
  @builtins.property
890
- @jsii.member(jsii_name="attrVersionId")
891
- def attr_version_id(self) -> builtins.str:
892
- '''The ID of this version of the hook.
2330
+ @jsii.member(jsii_name="alias")
2331
+ def alias(self) -> builtins.str:
2332
+ '''The typename alias for the hook.'''
2333
+ return typing.cast(builtins.str, jsii.get(self, "alias"))
893
2334
 
894
- :cloudformationAttribute: VersionId
895
- '''
896
- return typing.cast(builtins.str, jsii.get(self, "attrVersionId"))
2335
+ @alias.setter
2336
+ def alias(self, value: builtins.str) -> None:
2337
+ if __debug__:
2338
+ type_hints = typing.get_type_hints(_typecheckingstub__30abbe1ec21200e639fa9f73b28a52e34aaa86d2d4428d4582a901ca4590f2f2)
2339
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2340
+ jsii.set(self, "alias", value) # pyright: ignore[reportArgumentType]
897
2341
 
898
- @builtins.property
899
- @jsii.member(jsii_name="attrVisibility")
900
- def attr_visibility(self) -> builtins.str:
901
- '''The scope at which the resource is visible and usable in CloudFormation operations.
2342
+ @builtins.property
2343
+ @jsii.member(jsii_name="executionRole")
2344
+ def execution_role(self) -> builtins.str:
2345
+ '''IAM Role ARN.'''
2346
+ return typing.cast(builtins.str, jsii.get(self, "executionRole"))
902
2347
 
903
- Valid values include:
2348
+ @execution_role.setter
2349
+ def execution_role(self, value: builtins.str) -> None:
2350
+ if __debug__:
2351
+ type_hints = typing.get_type_hints(_typecheckingstub__74a69bae63a6117a8c7657e3cce5476b0a9029fb6ee2a7bc15a93cd8537ab7b5)
2352
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2353
+ jsii.set(self, "executionRole", value) # pyright: ignore[reportArgumentType]
904
2354
 
905
- - ``PRIVATE`` : The resource is only visible and usable within the account in which it's registered. CloudFormation marks any resources you register as ``PRIVATE`` .
906
- - ``PUBLIC`` : The resource is publicly visible and usable within any Amazon account.
2355
+ @builtins.property
2356
+ @jsii.member(jsii_name="failureMode")
2357
+ def failure_mode(self) -> builtins.str:
2358
+ '''Attribute to specify CloudFormation behavior on hook failure.'''
2359
+ return typing.cast(builtins.str, jsii.get(self, "failureMode"))
907
2360
 
908
- :cloudformationAttribute: Visibility
909
- '''
910
- return typing.cast(builtins.str, jsii.get(self, "attrVisibility"))
2361
+ @failure_mode.setter
2362
+ def failure_mode(self, value: builtins.str) -> None:
2363
+ if __debug__:
2364
+ type_hints = typing.get_type_hints(_typecheckingstub__6284d889406f9c2de7868256183b7b1b36de24fc4d20e156592d9cef8cc351cd)
2365
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2366
+ jsii.set(self, "failureMode", value) # pyright: ignore[reportArgumentType]
911
2367
 
912
2368
  @builtins.property
913
- @jsii.member(jsii_name="cfnProperties")
914
- def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
915
- return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2369
+ @jsii.member(jsii_name="hookStatus")
2370
+ def hook_status(self) -> builtins.str:
2371
+ '''Attribute to specify which stacks this hook applies to or should get invoked for.'''
2372
+ return typing.cast(builtins.str, jsii.get(self, "hookStatus"))
2373
+
2374
+ @hook_status.setter
2375
+ def hook_status(self, value: builtins.str) -> None:
2376
+ if __debug__:
2377
+ type_hints = typing.get_type_hints(_typecheckingstub__1181d91ff3fd0986b5a5a6bb0a1eff2b0d58f9287a5a8e6d041fc0788e69a1b9)
2378
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2379
+ jsii.set(self, "hookStatus", value) # pyright: ignore[reportArgumentType]
916
2380
 
917
2381
  @builtins.property
918
- @jsii.member(jsii_name="schemaHandlerPackage")
919
- def schema_handler_package(self) -> builtins.str:
920
- '''A URL to the Amazon S3 bucket containing the hook project package that contains the necessary files for the hook you want to register.'''
921
- return typing.cast(builtins.str, jsii.get(self, "schemaHandlerPackage"))
2382
+ @jsii.member(jsii_name="lambdaFunction")
2383
+ def lambda_function(self) -> builtins.str:
2384
+ '''Amazon Resource Name (ARN), Partial ARN, name, version, or alias of the Lambda function to invoke with this hook.'''
2385
+ return typing.cast(builtins.str, jsii.get(self, "lambdaFunction"))
922
2386
 
923
- @schema_handler_package.setter
924
- def schema_handler_package(self, value: builtins.str) -> None:
2387
+ @lambda_function.setter
2388
+ def lambda_function(self, value: builtins.str) -> None:
925
2389
  if __debug__:
926
- type_hints = typing.get_type_hints(_typecheckingstub__0efb96dfc84b17d40a50018cd6d23e3c296865fd07b6996b365c17a092ce873c)
2390
+ type_hints = typing.get_type_hints(_typecheckingstub__8282c1280b41b55a28b532b0432b552d017237738107063dd37f45a932e0ccc3)
927
2391
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
928
- jsii.set(self, "schemaHandlerPackage", value) # pyright: ignore[reportArgumentType]
2392
+ jsii.set(self, "lambdaFunction", value) # pyright: ignore[reportArgumentType]
929
2393
 
930
2394
  @builtins.property
931
- @jsii.member(jsii_name="typeName")
932
- def type_name(self) -> builtins.str:
933
- '''The unique name for your hook.'''
934
- return typing.cast(builtins.str, jsii.get(self, "typeName"))
2395
+ @jsii.member(jsii_name="targetOperations")
2396
+ def target_operations(self) -> typing.List[builtins.str]:
2397
+ '''Which operations should this Hook run against?'''
2398
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "targetOperations"))
935
2399
 
936
- @type_name.setter
937
- def type_name(self, value: builtins.str) -> None:
2400
+ @target_operations.setter
2401
+ def target_operations(self, value: typing.List[builtins.str]) -> None:
938
2402
  if __debug__:
939
- type_hints = typing.get_type_hints(_typecheckingstub__30df538b23952e625e940e55d9e80b1642e22eea6fc3b3850d26f16b544d134d)
2403
+ type_hints = typing.get_type_hints(_typecheckingstub__2cec88f2fd3131502965b66fc309237a615288eee912b64bbde3b05563645394)
940
2404
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
941
- jsii.set(self, "typeName", value) # pyright: ignore[reportArgumentType]
2405
+ jsii.set(self, "targetOperations", value) # pyright: ignore[reportArgumentType]
942
2406
 
943
2407
  @builtins.property
944
- @jsii.member(jsii_name="executionRoleArn")
945
- def execution_role_arn(self) -> typing.Optional[builtins.str]:
946
- '''The Amazon Resource Name (ARN) of the task execution role that grants the hook permission.'''
947
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "executionRoleArn"))
2408
+ @jsii.member(jsii_name="stackFilters")
2409
+ def stack_filters(
2410
+ self,
2411
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLambdaHook.StackFiltersProperty"]]:
2412
+ '''Filters to allow hooks to target specific stack attributes.'''
2413
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLambdaHook.StackFiltersProperty"]], jsii.get(self, "stackFilters"))
948
2414
 
949
- @execution_role_arn.setter
950
- def execution_role_arn(self, value: typing.Optional[builtins.str]) -> None:
2415
+ @stack_filters.setter
2416
+ def stack_filters(
2417
+ self,
2418
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLambdaHook.StackFiltersProperty"]],
2419
+ ) -> None:
951
2420
  if __debug__:
952
- type_hints = typing.get_type_hints(_typecheckingstub__2cb4f09410ca3ef9c85888607e8ac924121a6fe32ab21f62e93aa2cc02b1130a)
2421
+ type_hints = typing.get_type_hints(_typecheckingstub__10bf8f291e923bd29e844f030043f31cdea31b613c9c8ad9eb3cd27ec79c080e)
953
2422
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
954
- jsii.set(self, "executionRoleArn", value) # pyright: ignore[reportArgumentType]
2423
+ jsii.set(self, "stackFilters", value) # pyright: ignore[reportArgumentType]
955
2424
 
956
2425
  @builtins.property
957
- @jsii.member(jsii_name="loggingConfig")
958
- def logging_config(
2426
+ @jsii.member(jsii_name="targetFilters")
2427
+ def target_filters(
959
2428
  self,
960
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnHookVersion.LoggingConfigProperty"]]:
961
- '''Contains logging configuration information for an extension.'''
962
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnHookVersion.LoggingConfigProperty"]], jsii.get(self, "loggingConfig"))
2429
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLambdaHook.TargetFiltersProperty"]]:
2430
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLambdaHook.TargetFiltersProperty"]], jsii.get(self, "targetFilters"))
963
2431
 
964
- @logging_config.setter
965
- def logging_config(
2432
+ @target_filters.setter
2433
+ def target_filters(
966
2434
  self,
967
- value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnHookVersion.LoggingConfigProperty"]],
2435
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLambdaHook.TargetFiltersProperty"]],
968
2436
  ) -> None:
969
2437
  if __debug__:
970
- type_hints = typing.get_type_hints(_typecheckingstub__2b1199d24d006c1117662bdfbc72f2cbbbd5b4d4138b339988fd36100745a337)
2438
+ type_hints = typing.get_type_hints(_typecheckingstub__37d3897a58b7133587d59ce7b2fc6e7c7f4c5ad1b3b3d9020dc5181c79c8e2d0)
971
2439
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
972
- jsii.set(self, "loggingConfig", value) # pyright: ignore[reportArgumentType]
2440
+ jsii.set(self, "targetFilters", value) # pyright: ignore[reportArgumentType]
973
2441
 
974
2442
  @jsii.data_type(
975
- jsii_type="aws-cdk-lib.aws_cloudformation.CfnHookVersion.LoggingConfigProperty",
2443
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnLambdaHook.StackFiltersProperty",
976
2444
  jsii_struct_bases=[],
977
- name_mapping={"log_group_name": "logGroupName", "log_role_arn": "logRoleArn"},
2445
+ name_mapping={
2446
+ "filtering_criteria": "filteringCriteria",
2447
+ "stack_names": "stackNames",
2448
+ "stack_roles": "stackRoles",
2449
+ },
978
2450
  )
979
- class LoggingConfigProperty:
2451
+ class StackFiltersProperty:
980
2452
  def __init__(
981
2453
  self,
982
2454
  *,
983
- log_group_name: typing.Optional[builtins.str] = None,
984
- log_role_arn: typing.Optional[builtins.str] = None,
2455
+ filtering_criteria: builtins.str,
2456
+ stack_names: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnLambdaHook.StackNamesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2457
+ stack_roles: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnLambdaHook.StackRolesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
985
2458
  ) -> None:
986
- '''The ``LoggingConfig`` property type specifies logging configuration information for an extension.
2459
+ '''Filters to allow hooks to target specific stack attributes.
987
2460
 
988
- :param log_group_name: The Amazon CloudWatch Logs group to which CloudFormation sends error logging information when invoking the extension's handlers.
989
- :param log_role_arn: The Amazon Resource Name (ARN) of the role that CloudFormation should assume when sending log entries to CloudWatch Logs.
2461
+ :param filtering_criteria: Attribute to specify the filtering behavior. ANY will make the Hook pass if one filter matches. ALL will make the Hook pass if all filters match Default: - "ALL"
2462
+ :param stack_names: List of stack names as filters.
2463
+ :param stack_roles: List of stack roles that are performing the stack operations.
990
2464
 
991
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-hookversion-loggingconfig.html
2465
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-lambdahook-stackfilters.html
992
2466
  :exampleMetadata: fixture=_generated
993
2467
 
994
2468
  Example::
@@ -997,38 +2471,138 @@ class CfnHookVersion(
997
2471
  # The values are placeholders you should change.
998
2472
  from aws_cdk import aws_cloudformation as cloudformation
999
2473
 
1000
- logging_config_property = cloudformation.CfnHookVersion.LoggingConfigProperty(
1001
- log_group_name="logGroupName",
1002
- log_role_arn="logRoleArn"
2474
+ stack_filters_property = cloudformation.CfnLambdaHook.StackFiltersProperty(
2475
+ filtering_criteria="filteringCriteria",
2476
+
2477
+ # the properties below are optional
2478
+ stack_names=cloudformation.CfnLambdaHook.StackNamesProperty(
2479
+ exclude=["exclude"],
2480
+ include=["include"]
2481
+ ),
2482
+ stack_roles=cloudformation.CfnLambdaHook.StackRolesProperty(
2483
+ exclude=["exclude"],
2484
+ include=["include"]
2485
+ )
1003
2486
  )
1004
2487
  '''
1005
2488
  if __debug__:
1006
- type_hints = typing.get_type_hints(_typecheckingstub__c3186540a164984c66b6fb1ac418c16e60743db883585e9275304381fae9a1cf)
1007
- check_type(argname="argument log_group_name", value=log_group_name, expected_type=type_hints["log_group_name"])
1008
- check_type(argname="argument log_role_arn", value=log_role_arn, expected_type=type_hints["log_role_arn"])
2489
+ type_hints = typing.get_type_hints(_typecheckingstub__1c6825aca96c1ce7eaa02a7e659917eb747e2a75121b6c5d50ef421a9261e58e)
2490
+ check_type(argname="argument filtering_criteria", value=filtering_criteria, expected_type=type_hints["filtering_criteria"])
2491
+ check_type(argname="argument stack_names", value=stack_names, expected_type=type_hints["stack_names"])
2492
+ check_type(argname="argument stack_roles", value=stack_roles, expected_type=type_hints["stack_roles"])
2493
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2494
+ "filtering_criteria": filtering_criteria,
2495
+ }
2496
+ if stack_names is not None:
2497
+ self._values["stack_names"] = stack_names
2498
+ if stack_roles is not None:
2499
+ self._values["stack_roles"] = stack_roles
2500
+
2501
+ @builtins.property
2502
+ def filtering_criteria(self) -> builtins.str:
2503
+ '''Attribute to specify the filtering behavior.
2504
+
2505
+ ANY will make the Hook pass if one filter matches. ALL will make the Hook pass if all filters match
2506
+
2507
+ :default: - "ALL"
2508
+
2509
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-lambdahook-stackfilters.html#cfn-cloudformation-lambdahook-stackfilters-filteringcriteria
2510
+ '''
2511
+ result = self._values.get("filtering_criteria")
2512
+ assert result is not None, "Required property 'filtering_criteria' is missing"
2513
+ return typing.cast(builtins.str, result)
2514
+
2515
+ @builtins.property
2516
+ def stack_names(
2517
+ self,
2518
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLambdaHook.StackNamesProperty"]]:
2519
+ '''List of stack names as filters.
2520
+
2521
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-lambdahook-stackfilters.html#cfn-cloudformation-lambdahook-stackfilters-stacknames
2522
+ '''
2523
+ result = self._values.get("stack_names")
2524
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLambdaHook.StackNamesProperty"]], result)
2525
+
2526
+ @builtins.property
2527
+ def stack_roles(
2528
+ self,
2529
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLambdaHook.StackRolesProperty"]]:
2530
+ '''List of stack roles that are performing the stack operations.
2531
+
2532
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-lambdahook-stackfilters.html#cfn-cloudformation-lambdahook-stackfilters-stackroles
2533
+ '''
2534
+ result = self._values.get("stack_roles")
2535
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLambdaHook.StackRolesProperty"]], result)
2536
+
2537
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2538
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2539
+
2540
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2541
+ return not (rhs == self)
2542
+
2543
+ def __repr__(self) -> str:
2544
+ return "StackFiltersProperty(%s)" % ", ".join(
2545
+ k + "=" + repr(v) for k, v in self._values.items()
2546
+ )
2547
+
2548
+ @jsii.data_type(
2549
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnLambdaHook.StackNamesProperty",
2550
+ jsii_struct_bases=[],
2551
+ name_mapping={"exclude": "exclude", "include": "include"},
2552
+ )
2553
+ class StackNamesProperty:
2554
+ def __init__(
2555
+ self,
2556
+ *,
2557
+ exclude: typing.Optional[typing.Sequence[builtins.str]] = None,
2558
+ include: typing.Optional[typing.Sequence[builtins.str]] = None,
2559
+ ) -> None:
2560
+ '''List of stack names as filters.
2561
+
2562
+ :param exclude: List of stack names that the hook is going to be excluded from.
2563
+ :param include: List of stack names that the hook is going to target.
2564
+
2565
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-lambdahook-stacknames.html
2566
+ :exampleMetadata: fixture=_generated
2567
+
2568
+ Example::
2569
+
2570
+ # The code below shows an example of how to instantiate this type.
2571
+ # The values are placeholders you should change.
2572
+ from aws_cdk import aws_cloudformation as cloudformation
2573
+
2574
+ stack_names_property = cloudformation.CfnLambdaHook.StackNamesProperty(
2575
+ exclude=["exclude"],
2576
+ include=["include"]
2577
+ )
2578
+ '''
2579
+ if __debug__:
2580
+ type_hints = typing.get_type_hints(_typecheckingstub__b7566684a011915bedffb46298f71959895c8280827b3628a664f48b68aa5599)
2581
+ check_type(argname="argument exclude", value=exclude, expected_type=type_hints["exclude"])
2582
+ check_type(argname="argument include", value=include, expected_type=type_hints["include"])
1009
2583
  self._values: typing.Dict[builtins.str, typing.Any] = {}
1010
- if log_group_name is not None:
1011
- self._values["log_group_name"] = log_group_name
1012
- if log_role_arn is not None:
1013
- self._values["log_role_arn"] = log_role_arn
2584
+ if exclude is not None:
2585
+ self._values["exclude"] = exclude
2586
+ if include is not None:
2587
+ self._values["include"] = include
1014
2588
 
1015
2589
  @builtins.property
1016
- def log_group_name(self) -> typing.Optional[builtins.str]:
1017
- '''The Amazon CloudWatch Logs group to which CloudFormation sends error logging information when invoking the extension's handlers.
2590
+ def exclude(self) -> typing.Optional[typing.List[builtins.str]]:
2591
+ '''List of stack names that the hook is going to be excluded from.
1018
2592
 
1019
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-hookversion-loggingconfig.html#cfn-cloudformation-hookversion-loggingconfig-loggroupname
2593
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-lambdahook-stacknames.html#cfn-cloudformation-lambdahook-stacknames-exclude
1020
2594
  '''
1021
- result = self._values.get("log_group_name")
1022
- return typing.cast(typing.Optional[builtins.str], result)
2595
+ result = self._values.get("exclude")
2596
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1023
2597
 
1024
2598
  @builtins.property
1025
- def log_role_arn(self) -> typing.Optional[builtins.str]:
1026
- '''The Amazon Resource Name (ARN) of the role that CloudFormation should assume when sending log entries to CloudWatch Logs.
2599
+ def include(self) -> typing.Optional[typing.List[builtins.str]]:
2600
+ '''List of stack names that the hook is going to target.
1027
2601
 
1028
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-hookversion-loggingconfig.html#cfn-cloudformation-hookversion-loggingconfig-logrolearn
2602
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-lambdahook-stacknames.html#cfn-cloudformation-lambdahook-stacknames-include
1029
2603
  '''
1030
- result = self._values.get("log_role_arn")
1031
- return typing.cast(typing.Optional[builtins.str], result)
2604
+ result = self._values.get("include")
2605
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1032
2606
 
1033
2607
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
1034
2608
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -1037,38 +2611,208 @@ class CfnHookVersion(
1037
2611
  return not (rhs == self)
1038
2612
 
1039
2613
  def __repr__(self) -> str:
1040
- return "LoggingConfigProperty(%s)" % ", ".join(
2614
+ return "StackNamesProperty(%s)" % ", ".join(
2615
+ k + "=" + repr(v) for k, v in self._values.items()
2616
+ )
2617
+
2618
+ @jsii.data_type(
2619
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnLambdaHook.StackRolesProperty",
2620
+ jsii_struct_bases=[],
2621
+ name_mapping={"exclude": "exclude", "include": "include"},
2622
+ )
2623
+ class StackRolesProperty:
2624
+ def __init__(
2625
+ self,
2626
+ *,
2627
+ exclude: typing.Optional[typing.Sequence[builtins.str]] = None,
2628
+ include: typing.Optional[typing.Sequence[builtins.str]] = None,
2629
+ ) -> None:
2630
+ '''List of stack roles that are performing the stack operations.
2631
+
2632
+ :param exclude: List of stack roles that the hook is going to be excluded from.
2633
+ :param include: List of stack roles that the hook is going to target.
2634
+
2635
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-lambdahook-stackroles.html
2636
+ :exampleMetadata: fixture=_generated
2637
+
2638
+ Example::
2639
+
2640
+ # The code below shows an example of how to instantiate this type.
2641
+ # The values are placeholders you should change.
2642
+ from aws_cdk import aws_cloudformation as cloudformation
2643
+
2644
+ stack_roles_property = cloudformation.CfnLambdaHook.StackRolesProperty(
2645
+ exclude=["exclude"],
2646
+ include=["include"]
2647
+ )
2648
+ '''
2649
+ if __debug__:
2650
+ type_hints = typing.get_type_hints(_typecheckingstub__5b3429ffb1654464d2c3e5029831647a0bf3172b44a425681964d5585c6cf02c)
2651
+ check_type(argname="argument exclude", value=exclude, expected_type=type_hints["exclude"])
2652
+ check_type(argname="argument include", value=include, expected_type=type_hints["include"])
2653
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
2654
+ if exclude is not None:
2655
+ self._values["exclude"] = exclude
2656
+ if include is not None:
2657
+ self._values["include"] = include
2658
+
2659
+ @builtins.property
2660
+ def exclude(self) -> typing.Optional[typing.List[builtins.str]]:
2661
+ '''List of stack roles that the hook is going to be excluded from.
2662
+
2663
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-lambdahook-stackroles.html#cfn-cloudformation-lambdahook-stackroles-exclude
2664
+ '''
2665
+ result = self._values.get("exclude")
2666
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2667
+
2668
+ @builtins.property
2669
+ def include(self) -> typing.Optional[typing.List[builtins.str]]:
2670
+ '''List of stack roles that the hook is going to target.
2671
+
2672
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-lambdahook-stackroles.html#cfn-cloudformation-lambdahook-stackroles-include
2673
+ '''
2674
+ result = self._values.get("include")
2675
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2676
+
2677
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2678
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2679
+
2680
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2681
+ return not (rhs == self)
2682
+
2683
+ def __repr__(self) -> str:
2684
+ return "StackRolesProperty(%s)" % ", ".join(
2685
+ k + "=" + repr(v) for k, v in self._values.items()
2686
+ )
2687
+
2688
+ @jsii.data_type(
2689
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnLambdaHook.TargetFiltersProperty",
2690
+ jsii_struct_bases=[],
2691
+ name_mapping={
2692
+ "actions": "actions",
2693
+ "invocation_points": "invocationPoints",
2694
+ "target_names": "targetNames",
2695
+ },
2696
+ )
2697
+ class TargetFiltersProperty:
2698
+ def __init__(
2699
+ self,
2700
+ *,
2701
+ actions: typing.Optional[typing.Sequence[builtins.str]] = None,
2702
+ invocation_points: typing.Optional[typing.Sequence[builtins.str]] = None,
2703
+ target_names: typing.Optional[typing.Sequence[builtins.str]] = None,
2704
+ ) -> None:
2705
+ '''
2706
+ :param actions: List of actions that the hook is going to target.
2707
+ :param invocation_points: List of invocation points that the hook is going to target.
2708
+ :param target_names: List of type names that the hook is going to target.
2709
+
2710
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-lambdahook-targetfilters.html
2711
+ :exampleMetadata: fixture=_generated
2712
+
2713
+ Example::
2714
+
2715
+ # The code below shows an example of how to instantiate this type.
2716
+ # The values are placeholders you should change.
2717
+ from aws_cdk import aws_cloudformation as cloudformation
2718
+
2719
+ target_filters_property = cloudformation.CfnLambdaHook.TargetFiltersProperty(
2720
+ actions=["actions"],
2721
+ invocation_points=["invocationPoints"],
2722
+ target_names=["targetNames"]
2723
+ )
2724
+ '''
2725
+ if __debug__:
2726
+ type_hints = typing.get_type_hints(_typecheckingstub__6b7d133718b35659d76ef50f7b0d36492c3da19aa89cd0ec0d90af415b1383ba)
2727
+ check_type(argname="argument actions", value=actions, expected_type=type_hints["actions"])
2728
+ check_type(argname="argument invocation_points", value=invocation_points, expected_type=type_hints["invocation_points"])
2729
+ check_type(argname="argument target_names", value=target_names, expected_type=type_hints["target_names"])
2730
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
2731
+ if actions is not None:
2732
+ self._values["actions"] = actions
2733
+ if invocation_points is not None:
2734
+ self._values["invocation_points"] = invocation_points
2735
+ if target_names is not None:
2736
+ self._values["target_names"] = target_names
2737
+
2738
+ @builtins.property
2739
+ def actions(self) -> typing.Optional[typing.List[builtins.str]]:
2740
+ '''List of actions that the hook is going to target.
2741
+
2742
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-lambdahook-targetfilters.html#cfn-cloudformation-lambdahook-targetfilters-actions
2743
+ '''
2744
+ result = self._values.get("actions")
2745
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2746
+
2747
+ @builtins.property
2748
+ def invocation_points(self) -> typing.Optional[typing.List[builtins.str]]:
2749
+ '''List of invocation points that the hook is going to target.
2750
+
2751
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-lambdahook-targetfilters.html#cfn-cloudformation-lambdahook-targetfilters-invocationpoints
2752
+ '''
2753
+ result = self._values.get("invocation_points")
2754
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2755
+
2756
+ @builtins.property
2757
+ def target_names(self) -> typing.Optional[typing.List[builtins.str]]:
2758
+ '''List of type names that the hook is going to target.
2759
+
2760
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-lambdahook-targetfilters.html#cfn-cloudformation-lambdahook-targetfilters-targetnames
2761
+ '''
2762
+ result = self._values.get("target_names")
2763
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2764
+
2765
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2766
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2767
+
2768
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2769
+ return not (rhs == self)
2770
+
2771
+ def __repr__(self) -> str:
2772
+ return "TargetFiltersProperty(%s)" % ", ".join(
1041
2773
  k + "=" + repr(v) for k, v in self._values.items()
1042
2774
  )
1043
2775
 
1044
2776
 
1045
2777
  @jsii.data_type(
1046
- jsii_type="aws-cdk-lib.aws_cloudformation.CfnHookVersionProps",
2778
+ jsii_type="aws-cdk-lib.aws_cloudformation.CfnLambdaHookProps",
1047
2779
  jsii_struct_bases=[],
1048
2780
  name_mapping={
1049
- "schema_handler_package": "schemaHandlerPackage",
1050
- "type_name": "typeName",
1051
- "execution_role_arn": "executionRoleArn",
1052
- "logging_config": "loggingConfig",
2781
+ "alias": "alias",
2782
+ "execution_role": "executionRole",
2783
+ "failure_mode": "failureMode",
2784
+ "hook_status": "hookStatus",
2785
+ "lambda_function": "lambdaFunction",
2786
+ "target_operations": "targetOperations",
2787
+ "stack_filters": "stackFilters",
2788
+ "target_filters": "targetFilters",
1053
2789
  },
1054
- )
1055
- class CfnHookVersionProps:
1056
- def __init__(
1057
- self,
1058
- *,
1059
- schema_handler_package: builtins.str,
1060
- type_name: builtins.str,
1061
- execution_role_arn: typing.Optional[builtins.str] = None,
1062
- logging_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnHookVersion.LoggingConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1063
- ) -> None:
1064
- '''Properties for defining a ``CfnHookVersion``.
1065
-
1066
- :param schema_handler_package: A URL to the Amazon S3 bucket containing the hook project package that contains the necessary files for the hook you want to register. For information on generating a schema handler package for the resource you want to register, see `submit <https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html>`_ in the *CloudFormation CLI User Guide for Extension Development* . .. epigraph:: The user registering the resource must be able to access the package in the S3 bucket. That's, the user must have `GetObject <https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html>`_ permissions for the schema handler package. For more information, see `Actions, Resources, and Condition Keys for Amazon S3 <https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html>`_ in the *AWS Identity and Access Management User Guide* .
1067
- :param type_name: The unique name for your hook. Specifies a three-part namespace for your hook, with a recommended pattern of ``Organization::Service::Hook`` . .. epigraph:: The following organization namespaces are reserved and can't be used in your hook type names: - ``Alexa`` - ``AMZN`` - ``Amazon`` - ``ASK`` - ``AWS`` - ``Custom`` - ``Dev``
1068
- :param execution_role_arn: The Amazon Resource Name (ARN) of the task execution role that grants the hook permission.
1069
- :param logging_config: Contains logging configuration information for an extension.
1070
-
1071
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html
2790
+ )
2791
+ class CfnLambdaHookProps:
2792
+ def __init__(
2793
+ self,
2794
+ *,
2795
+ alias: builtins.str,
2796
+ execution_role: builtins.str,
2797
+ failure_mode: builtins.str,
2798
+ hook_status: builtins.str,
2799
+ lambda_function: builtins.str,
2800
+ target_operations: typing.Sequence[builtins.str],
2801
+ stack_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLambdaHook.StackFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2802
+ target_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLambdaHook.TargetFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2803
+ ) -> None:
2804
+ '''Properties for defining a ``CfnLambdaHook``.
2805
+
2806
+ :param alias: The typename alias for the hook.
2807
+ :param execution_role: IAM Role ARN.
2808
+ :param failure_mode: Attribute to specify CloudFormation behavior on hook failure.
2809
+ :param hook_status: Attribute to specify which stacks this hook applies to or should get invoked for. Default: - "ENABLED"
2810
+ :param lambda_function: Amazon Resource Name (ARN), Partial ARN, name, version, or alias of the Lambda function to invoke with this hook.
2811
+ :param target_operations: Which operations should this Hook run against? Resource changes, stacks or change sets.
2812
+ :param stack_filters: Filters to allow hooks to target specific stack attributes.
2813
+ :param target_filters:
2814
+
2815
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-lambdahook.html
1072
2816
  :exampleMetadata: fixture=_generated
1073
2817
 
1074
2818
  Example::
@@ -1077,90 +2821,142 @@ class CfnHookVersionProps:
1077
2821
  # The values are placeholders you should change.
1078
2822
  from aws_cdk import aws_cloudformation as cloudformation
1079
2823
 
1080
- cfn_hook_version_props = cloudformation.CfnHookVersionProps(
1081
- schema_handler_package="schemaHandlerPackage",
1082
- type_name="typeName",
2824
+ cfn_lambda_hook_props = cloudformation.CfnLambdaHookProps(
2825
+ alias="alias",
2826
+ execution_role="executionRole",
2827
+ failure_mode="failureMode",
2828
+ hook_status="hookStatus",
2829
+ lambda_function="lambdaFunction",
2830
+ target_operations=["targetOperations"],
1083
2831
 
1084
2832
  # the properties below are optional
1085
- execution_role_arn="executionRoleArn",
1086
- logging_config=cloudformation.CfnHookVersion.LoggingConfigProperty(
1087
- log_group_name="logGroupName",
1088
- log_role_arn="logRoleArn"
2833
+ stack_filters=cloudformation.CfnLambdaHook.StackFiltersProperty(
2834
+ filtering_criteria="filteringCriteria",
2835
+
2836
+ # the properties below are optional
2837
+ stack_names=cloudformation.CfnLambdaHook.StackNamesProperty(
2838
+ exclude=["exclude"],
2839
+ include=["include"]
2840
+ ),
2841
+ stack_roles=cloudformation.CfnLambdaHook.StackRolesProperty(
2842
+ exclude=["exclude"],
2843
+ include=["include"]
2844
+ )
2845
+ ),
2846
+ target_filters=cloudformation.CfnLambdaHook.TargetFiltersProperty(
2847
+ actions=["actions"],
2848
+ invocation_points=["invocationPoints"],
2849
+ target_names=["targetNames"]
1089
2850
  )
1090
2851
  )
1091
2852
  '''
1092
2853
  if __debug__:
1093
- type_hints = typing.get_type_hints(_typecheckingstub__7a9bb2ef202f6ed27272b4d9787339d2a26c63beb648e39f3c4977200bcc65b1)
1094
- check_type(argname="argument schema_handler_package", value=schema_handler_package, expected_type=type_hints["schema_handler_package"])
1095
- check_type(argname="argument type_name", value=type_name, expected_type=type_hints["type_name"])
1096
- check_type(argname="argument execution_role_arn", value=execution_role_arn, expected_type=type_hints["execution_role_arn"])
1097
- check_type(argname="argument logging_config", value=logging_config, expected_type=type_hints["logging_config"])
2854
+ type_hints = typing.get_type_hints(_typecheckingstub__08ef8befa45effdca3c0a1b699ffb2fae0aaed2060b19e128bdcc021cfcb0b95)
2855
+ check_type(argname="argument alias", value=alias, expected_type=type_hints["alias"])
2856
+ check_type(argname="argument execution_role", value=execution_role, expected_type=type_hints["execution_role"])
2857
+ check_type(argname="argument failure_mode", value=failure_mode, expected_type=type_hints["failure_mode"])
2858
+ check_type(argname="argument hook_status", value=hook_status, expected_type=type_hints["hook_status"])
2859
+ check_type(argname="argument lambda_function", value=lambda_function, expected_type=type_hints["lambda_function"])
2860
+ check_type(argname="argument target_operations", value=target_operations, expected_type=type_hints["target_operations"])
2861
+ check_type(argname="argument stack_filters", value=stack_filters, expected_type=type_hints["stack_filters"])
2862
+ check_type(argname="argument target_filters", value=target_filters, expected_type=type_hints["target_filters"])
1098
2863
  self._values: typing.Dict[builtins.str, typing.Any] = {
1099
- "schema_handler_package": schema_handler_package,
1100
- "type_name": type_name,
2864
+ "alias": alias,
2865
+ "execution_role": execution_role,
2866
+ "failure_mode": failure_mode,
2867
+ "hook_status": hook_status,
2868
+ "lambda_function": lambda_function,
2869
+ "target_operations": target_operations,
1101
2870
  }
1102
- if execution_role_arn is not None:
1103
- self._values["execution_role_arn"] = execution_role_arn
1104
- if logging_config is not None:
1105
- self._values["logging_config"] = logging_config
2871
+ if stack_filters is not None:
2872
+ self._values["stack_filters"] = stack_filters
2873
+ if target_filters is not None:
2874
+ self._values["target_filters"] = target_filters
1106
2875
 
1107
2876
  @builtins.property
1108
- def schema_handler_package(self) -> builtins.str:
1109
- '''A URL to the Amazon S3 bucket containing the hook project package that contains the necessary files for the hook you want to register.
2877
+ def alias(self) -> builtins.str:
2878
+ '''The typename alias for the hook.
1110
2879
 
1111
- For information on generating a schema handler package for the resource you want to register, see `submit <https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html>`_ in the *CloudFormation CLI User Guide for Extension Development* .
1112
- .. epigraph::
2880
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-lambdahook.html#cfn-cloudformation-lambdahook-alias
2881
+ '''
2882
+ result = self._values.get("alias")
2883
+ assert result is not None, "Required property 'alias' is missing"
2884
+ return typing.cast(builtins.str, result)
1113
2885
 
1114
- The user registering the resource must be able to access the package in the S3 bucket. That's, the user must have `GetObject <https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html>`_ permissions for the schema handler package. For more information, see `Actions, Resources, and Condition Keys for Amazon S3 <https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html>`_ in the *AWS Identity and Access Management User Guide* .
2886
+ @builtins.property
2887
+ def execution_role(self) -> builtins.str:
2888
+ '''IAM Role ARN.
1115
2889
 
1116
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-schemahandlerpackage
2890
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-lambdahook.html#cfn-cloudformation-lambdahook-executionrole
1117
2891
  '''
1118
- result = self._values.get("schema_handler_package")
1119
- assert result is not None, "Required property 'schema_handler_package' is missing"
2892
+ result = self._values.get("execution_role")
2893
+ assert result is not None, "Required property 'execution_role' is missing"
1120
2894
  return typing.cast(builtins.str, result)
1121
2895
 
1122
2896
  @builtins.property
1123
- def type_name(self) -> builtins.str:
1124
- '''The unique name for your hook.
2897
+ def failure_mode(self) -> builtins.str:
2898
+ '''Attribute to specify CloudFormation behavior on hook failure.
1125
2899
 
1126
- Specifies a three-part namespace for your hook, with a recommended pattern of ``Organization::Service::Hook`` .
1127
- .. epigraph::
2900
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-lambdahook.html#cfn-cloudformation-lambdahook-failuremode
2901
+ '''
2902
+ result = self._values.get("failure_mode")
2903
+ assert result is not None, "Required property 'failure_mode' is missing"
2904
+ return typing.cast(builtins.str, result)
1128
2905
 
1129
- The following organization namespaces are reserved and can't be used in your hook type names:
2906
+ @builtins.property
2907
+ def hook_status(self) -> builtins.str:
2908
+ '''Attribute to specify which stacks this hook applies to or should get invoked for.
1130
2909
 
1131
- - ``Alexa``
1132
- - ``AMZN``
1133
- - ``Amazon``
1134
- - ``ASK``
1135
- - ``AWS``
1136
- - ``Custom``
1137
- - ``Dev``
2910
+ :default: - "ENABLED"
1138
2911
 
1139
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-typename
2912
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-lambdahook.html#cfn-cloudformation-lambdahook-hookstatus
1140
2913
  '''
1141
- result = self._values.get("type_name")
1142
- assert result is not None, "Required property 'type_name' is missing"
2914
+ result = self._values.get("hook_status")
2915
+ assert result is not None, "Required property 'hook_status' is missing"
1143
2916
  return typing.cast(builtins.str, result)
1144
2917
 
1145
2918
  @builtins.property
1146
- def execution_role_arn(self) -> typing.Optional[builtins.str]:
1147
- '''The Amazon Resource Name (ARN) of the task execution role that grants the hook permission.
2919
+ def lambda_function(self) -> builtins.str:
2920
+ '''Amazon Resource Name (ARN), Partial ARN, name, version, or alias of the Lambda function to invoke with this hook.
1148
2921
 
1149
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-executionrolearn
2922
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-lambdahook.html#cfn-cloudformation-lambdahook-lambdafunction
1150
2923
  '''
1151
- result = self._values.get("execution_role_arn")
1152
- return typing.cast(typing.Optional[builtins.str], result)
2924
+ result = self._values.get("lambda_function")
2925
+ assert result is not None, "Required property 'lambda_function' is missing"
2926
+ return typing.cast(builtins.str, result)
1153
2927
 
1154
2928
  @builtins.property
1155
- def logging_config(
2929
+ def target_operations(self) -> typing.List[builtins.str]:
2930
+ '''Which operations should this Hook run against?
2931
+
2932
+ Resource changes, stacks or change sets.
2933
+
2934
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-lambdahook.html#cfn-cloudformation-lambdahook-targetoperations
2935
+ '''
2936
+ result = self._values.get("target_operations")
2937
+ assert result is not None, "Required property 'target_operations' is missing"
2938
+ return typing.cast(typing.List[builtins.str], result)
2939
+
2940
+ @builtins.property
2941
+ def stack_filters(
1156
2942
  self,
1157
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnHookVersion.LoggingConfigProperty]]:
1158
- '''Contains logging configuration information for an extension.
2943
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnLambdaHook.StackFiltersProperty]]:
2944
+ '''Filters to allow hooks to target specific stack attributes.
1159
2945
 
1160
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-loggingconfig
2946
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-lambdahook.html#cfn-cloudformation-lambdahook-stackfilters
1161
2947
  '''
1162
- result = self._values.get("logging_config")
1163
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnHookVersion.LoggingConfigProperty]], result)
2948
+ result = self._values.get("stack_filters")
2949
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnLambdaHook.StackFiltersProperty]], result)
2950
+
2951
+ @builtins.property
2952
+ def target_filters(
2953
+ self,
2954
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnLambdaHook.TargetFiltersProperty]]:
2955
+ '''
2956
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-lambdahook.html#cfn-cloudformation-lambdahook-targetfilters
2957
+ '''
2958
+ result = self._values.get("target_filters")
2959
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnLambdaHook.TargetFiltersProperty]], result)
1164
2960
 
1165
2961
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
1166
2962
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -1169,7 +2965,7 @@ class CfnHookVersionProps:
1169
2965
  return not (rhs == self)
1170
2966
 
1171
2967
  def __repr__(self) -> str:
1172
- return "CfnHookVersionProps(%s)" % ", ".join(
2968
+ return "CfnLambdaHookProps(%s)" % ", ".join(
1173
2969
  k + "=" + repr(v) for k, v in self._values.items()
1174
2970
  )
1175
2971
 
@@ -6188,12 +7984,16 @@ class CfnWaitConditionProps:
6188
7984
  __all__ = [
6189
7985
  "CfnCustomResource",
6190
7986
  "CfnCustomResourceProps",
7987
+ "CfnGuardHook",
7988
+ "CfnGuardHookProps",
6191
7989
  "CfnHookDefaultVersion",
6192
7990
  "CfnHookDefaultVersionProps",
6193
7991
  "CfnHookTypeConfig",
6194
7992
  "CfnHookTypeConfigProps",
6195
7993
  "CfnHookVersion",
6196
7994
  "CfnHookVersionProps",
7995
+ "CfnLambdaHook",
7996
+ "CfnLambdaHookProps",
6197
7997
  "CfnMacro",
6198
7998
  "CfnMacroProps",
6199
7999
  "CfnModuleDefaultVersion",
@@ -6264,6 +8064,161 @@ def _typecheckingstub__f766b9f5ea2582bff4d2cb33b19a38fbdabfbe380c61d04a056e8e0d2
6264
8064
  """Type checking stubs"""
6265
8065
  pass
6266
8066
 
8067
+ def _typecheckingstub__03161d7a487fda6efdcca08ffddf765149d688cda393f699958050fcb318e260(
8068
+ scope: _constructs_77d1e7e8.Construct,
8069
+ id: builtins.str,
8070
+ *,
8071
+ alias: builtins.str,
8072
+ execution_role: builtins.str,
8073
+ failure_mode: builtins.str,
8074
+ hook_status: builtins.str,
8075
+ rule_location: typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.S3LocationProperty, typing.Dict[builtins.str, typing.Any]]],
8076
+ target_operations: typing.Sequence[builtins.str],
8077
+ log_bucket: typing.Optional[builtins.str] = None,
8078
+ options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.OptionsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8079
+ stack_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.StackFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8080
+ target_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.TargetFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8081
+ ) -> None:
8082
+ """Type checking stubs"""
8083
+ pass
8084
+
8085
+ def _typecheckingstub__cec1fe7bbc90cf36ac842edcc8d50015b2dc2f2875aeb7e6253ff7c4e15aa338(
8086
+ inspector: _TreeInspector_488e0dd5,
8087
+ ) -> None:
8088
+ """Type checking stubs"""
8089
+ pass
8090
+
8091
+ def _typecheckingstub__f393185921422ec7e6581035e32a48e6114791074a5875d86aeed9dcd2841a82(
8092
+ props: typing.Mapping[builtins.str, typing.Any],
8093
+ ) -> None:
8094
+ """Type checking stubs"""
8095
+ pass
8096
+
8097
+ def _typecheckingstub__77b1f76eb29c770288d0795c8dc53027c60e7bad04fcf11f03ad76a14e18731c(
8098
+ value: builtins.str,
8099
+ ) -> None:
8100
+ """Type checking stubs"""
8101
+ pass
8102
+
8103
+ def _typecheckingstub__22a699f491c232b68e87da58b1e3798c0c543c42e6139bd091d5bc13dc38d691(
8104
+ value: builtins.str,
8105
+ ) -> None:
8106
+ """Type checking stubs"""
8107
+ pass
8108
+
8109
+ def _typecheckingstub__b51f06fa6d9c4bf815a03971bd117bd21aae0f56f3bcf6320d101a6affb4ee5e(
8110
+ value: builtins.str,
8111
+ ) -> None:
8112
+ """Type checking stubs"""
8113
+ pass
8114
+
8115
+ def _typecheckingstub__45f72bea4f6d1a361234e272fa8b7591203fb732d4833409397c312ef2b338ee(
8116
+ value: builtins.str,
8117
+ ) -> None:
8118
+ """Type checking stubs"""
8119
+ pass
8120
+
8121
+ def _typecheckingstub__5c9be7db879b9401cebdd59ef44b8e74245c171bce7b83e3ff646a725e30990d(
8122
+ value: typing.Union[_IResolvable_da3f097b, CfnGuardHook.S3LocationProperty],
8123
+ ) -> None:
8124
+ """Type checking stubs"""
8125
+ pass
8126
+
8127
+ def _typecheckingstub__158f2ec6b05d1bd8c5c76f62f2e4432b1caba87154d6a9367d1a4ffc6508d382(
8128
+ value: typing.List[builtins.str],
8129
+ ) -> None:
8130
+ """Type checking stubs"""
8131
+ pass
8132
+
8133
+ def _typecheckingstub__52841a36e60ee2e4dda1b97a80d4d8afdce08c6923b2bff3915731c490cc1fef(
8134
+ value: typing.Optional[builtins.str],
8135
+ ) -> None:
8136
+ """Type checking stubs"""
8137
+ pass
8138
+
8139
+ def _typecheckingstub__aa51fffdbd416f8c3f134e2ce1d54eb8592c7e9ab1fb1773814e14a6e9c3908c(
8140
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnGuardHook.OptionsProperty]],
8141
+ ) -> None:
8142
+ """Type checking stubs"""
8143
+ pass
8144
+
8145
+ def _typecheckingstub__ba8e46c4263c84d663638542ea2e36bf64d6c580e18d333b70f96cde334f3311(
8146
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnGuardHook.StackFiltersProperty]],
8147
+ ) -> None:
8148
+ """Type checking stubs"""
8149
+ pass
8150
+
8151
+ def _typecheckingstub__c81e70f0acb044921c8947467f93bf3568ecf5bceb007dbfd1211e597c8deb39(
8152
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnGuardHook.TargetFiltersProperty]],
8153
+ ) -> None:
8154
+ """Type checking stubs"""
8155
+ pass
8156
+
8157
+ def _typecheckingstub__9b598c3b73355c67dcc3aa78319cd2f0d94b1f77b3311af71cc07b20334e0eca(
8158
+ *,
8159
+ input_params: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.S3LocationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8160
+ ) -> None:
8161
+ """Type checking stubs"""
8162
+ pass
8163
+
8164
+ def _typecheckingstub__a1f9db65edb886b53a3ae52ab45b8328981676b11f96b8f1aabfebc3198bc5e5(
8165
+ *,
8166
+ uri: builtins.str,
8167
+ version_id: typing.Optional[builtins.str] = None,
8168
+ ) -> None:
8169
+ """Type checking stubs"""
8170
+ pass
8171
+
8172
+ def _typecheckingstub__1fdbc46050746c029db2f505b946b969ecb2a8c0835d3e20724e224a2c12d45b(
8173
+ *,
8174
+ filtering_criteria: builtins.str,
8175
+ stack_names: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.StackNamesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8176
+ stack_roles: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.StackRolesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8177
+ ) -> None:
8178
+ """Type checking stubs"""
8179
+ pass
8180
+
8181
+ def _typecheckingstub__57a38a30a3ccc5bb6875c74d99f0b1fe3ed5384017a5fee82f653914194e31c5(
8182
+ *,
8183
+ exclude: typing.Optional[typing.Sequence[builtins.str]] = None,
8184
+ include: typing.Optional[typing.Sequence[builtins.str]] = None,
8185
+ ) -> None:
8186
+ """Type checking stubs"""
8187
+ pass
8188
+
8189
+ def _typecheckingstub__19a166b14cd31cea92d76fbca0808b1b44774459a4d29121e91c2e20cd466e21(
8190
+ *,
8191
+ exclude: typing.Optional[typing.Sequence[builtins.str]] = None,
8192
+ include: typing.Optional[typing.Sequence[builtins.str]] = None,
8193
+ ) -> None:
8194
+ """Type checking stubs"""
8195
+ pass
8196
+
8197
+ def _typecheckingstub__378b3973374e7523256c5da2187494f5d2cfb4d85e28b4cc20e0b03edb7a4395(
8198
+ *,
8199
+ actions: typing.Optional[typing.Sequence[builtins.str]] = None,
8200
+ invocation_points: typing.Optional[typing.Sequence[builtins.str]] = None,
8201
+ target_names: typing.Optional[typing.Sequence[builtins.str]] = None,
8202
+ ) -> None:
8203
+ """Type checking stubs"""
8204
+ pass
8205
+
8206
+ def _typecheckingstub__102e29368f2c52ece5c053d50bb54873288bc91ca7d6f01a1ad3bb84ffdc3b76(
8207
+ *,
8208
+ alias: builtins.str,
8209
+ execution_role: builtins.str,
8210
+ failure_mode: builtins.str,
8211
+ hook_status: builtins.str,
8212
+ rule_location: typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.S3LocationProperty, typing.Dict[builtins.str, typing.Any]]],
8213
+ target_operations: typing.Sequence[builtins.str],
8214
+ log_bucket: typing.Optional[builtins.str] = None,
8215
+ options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.OptionsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8216
+ stack_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.StackFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8217
+ target_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGuardHook.TargetFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8218
+ ) -> None:
8219
+ """Type checking stubs"""
8220
+ pass
8221
+
6267
8222
  def _typecheckingstub__0b8bde9f1f98ed0500179dfc97dcadf56e8ff1be4dde185bebd99abe71d79167(
6268
8223
  scope: _constructs_77d1e7e8.Construct,
6269
8224
  id: builtins.str,
@@ -6438,6 +8393,130 @@ def _typecheckingstub__7a9bb2ef202f6ed27272b4d9787339d2a26c63beb648e39f3c4977200
6438
8393
  """Type checking stubs"""
6439
8394
  pass
6440
8395
 
8396
+ def _typecheckingstub__fec9ac58a382959177810e26366e5dddc9f912aaf73b09411981c9ecbce1010a(
8397
+ scope: _constructs_77d1e7e8.Construct,
8398
+ id: builtins.str,
8399
+ *,
8400
+ alias: builtins.str,
8401
+ execution_role: builtins.str,
8402
+ failure_mode: builtins.str,
8403
+ hook_status: builtins.str,
8404
+ lambda_function: builtins.str,
8405
+ target_operations: typing.Sequence[builtins.str],
8406
+ stack_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLambdaHook.StackFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8407
+ target_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLambdaHook.TargetFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8408
+ ) -> None:
8409
+ """Type checking stubs"""
8410
+ pass
8411
+
8412
+ def _typecheckingstub__809877a17bb251e60b67455af692a3e858d54a83a7fd506fc495b0e744c5fa80(
8413
+ inspector: _TreeInspector_488e0dd5,
8414
+ ) -> None:
8415
+ """Type checking stubs"""
8416
+ pass
8417
+
8418
+ def _typecheckingstub__25c057aed795d732097fbba6a4f084b53c5450d05b120d849b723c67df1943a3(
8419
+ props: typing.Mapping[builtins.str, typing.Any],
8420
+ ) -> None:
8421
+ """Type checking stubs"""
8422
+ pass
8423
+
8424
+ def _typecheckingstub__30abbe1ec21200e639fa9f73b28a52e34aaa86d2d4428d4582a901ca4590f2f2(
8425
+ value: builtins.str,
8426
+ ) -> None:
8427
+ """Type checking stubs"""
8428
+ pass
8429
+
8430
+ def _typecheckingstub__74a69bae63a6117a8c7657e3cce5476b0a9029fb6ee2a7bc15a93cd8537ab7b5(
8431
+ value: builtins.str,
8432
+ ) -> None:
8433
+ """Type checking stubs"""
8434
+ pass
8435
+
8436
+ def _typecheckingstub__6284d889406f9c2de7868256183b7b1b36de24fc4d20e156592d9cef8cc351cd(
8437
+ value: builtins.str,
8438
+ ) -> None:
8439
+ """Type checking stubs"""
8440
+ pass
8441
+
8442
+ def _typecheckingstub__1181d91ff3fd0986b5a5a6bb0a1eff2b0d58f9287a5a8e6d041fc0788e69a1b9(
8443
+ value: builtins.str,
8444
+ ) -> None:
8445
+ """Type checking stubs"""
8446
+ pass
8447
+
8448
+ def _typecheckingstub__8282c1280b41b55a28b532b0432b552d017237738107063dd37f45a932e0ccc3(
8449
+ value: builtins.str,
8450
+ ) -> None:
8451
+ """Type checking stubs"""
8452
+ pass
8453
+
8454
+ def _typecheckingstub__2cec88f2fd3131502965b66fc309237a615288eee912b64bbde3b05563645394(
8455
+ value: typing.List[builtins.str],
8456
+ ) -> None:
8457
+ """Type checking stubs"""
8458
+ pass
8459
+
8460
+ def _typecheckingstub__10bf8f291e923bd29e844f030043f31cdea31b613c9c8ad9eb3cd27ec79c080e(
8461
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnLambdaHook.StackFiltersProperty]],
8462
+ ) -> None:
8463
+ """Type checking stubs"""
8464
+ pass
8465
+
8466
+ def _typecheckingstub__37d3897a58b7133587d59ce7b2fc6e7c7f4c5ad1b3b3d9020dc5181c79c8e2d0(
8467
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnLambdaHook.TargetFiltersProperty]],
8468
+ ) -> None:
8469
+ """Type checking stubs"""
8470
+ pass
8471
+
8472
+ def _typecheckingstub__1c6825aca96c1ce7eaa02a7e659917eb747e2a75121b6c5d50ef421a9261e58e(
8473
+ *,
8474
+ filtering_criteria: builtins.str,
8475
+ stack_names: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLambdaHook.StackNamesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8476
+ stack_roles: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLambdaHook.StackRolesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8477
+ ) -> None:
8478
+ """Type checking stubs"""
8479
+ pass
8480
+
8481
+ def _typecheckingstub__b7566684a011915bedffb46298f71959895c8280827b3628a664f48b68aa5599(
8482
+ *,
8483
+ exclude: typing.Optional[typing.Sequence[builtins.str]] = None,
8484
+ include: typing.Optional[typing.Sequence[builtins.str]] = None,
8485
+ ) -> None:
8486
+ """Type checking stubs"""
8487
+ pass
8488
+
8489
+ def _typecheckingstub__5b3429ffb1654464d2c3e5029831647a0bf3172b44a425681964d5585c6cf02c(
8490
+ *,
8491
+ exclude: typing.Optional[typing.Sequence[builtins.str]] = None,
8492
+ include: typing.Optional[typing.Sequence[builtins.str]] = None,
8493
+ ) -> None:
8494
+ """Type checking stubs"""
8495
+ pass
8496
+
8497
+ def _typecheckingstub__6b7d133718b35659d76ef50f7b0d36492c3da19aa89cd0ec0d90af415b1383ba(
8498
+ *,
8499
+ actions: typing.Optional[typing.Sequence[builtins.str]] = None,
8500
+ invocation_points: typing.Optional[typing.Sequence[builtins.str]] = None,
8501
+ target_names: typing.Optional[typing.Sequence[builtins.str]] = None,
8502
+ ) -> None:
8503
+ """Type checking stubs"""
8504
+ pass
8505
+
8506
+ def _typecheckingstub__08ef8befa45effdca3c0a1b699ffb2fae0aaed2060b19e128bdcc021cfcb0b95(
8507
+ *,
8508
+ alias: builtins.str,
8509
+ execution_role: builtins.str,
8510
+ failure_mode: builtins.str,
8511
+ hook_status: builtins.str,
8512
+ lambda_function: builtins.str,
8513
+ target_operations: typing.Sequence[builtins.str],
8514
+ stack_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLambdaHook.StackFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8515
+ target_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLambdaHook.TargetFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8516
+ ) -> None:
8517
+ """Type checking stubs"""
8518
+ pass
8519
+
6441
8520
  def _typecheckingstub__459b4551acd819b198938843c729caa68cfe3bcc1ac16be0f4fd2dcd90f33831(
6442
8521
  scope: _constructs_77d1e7e8.Construct,
6443
8522
  id: builtins.str,