aws-cdk-lib 2.156.0__py3-none-any.whl → 2.158.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 (294) hide show
  1. aws_cdk/__init__.py +42 -23
  2. aws_cdk/_jsii/__init__.py +17 -2
  3. aws_cdk/_jsii/{aws-cdk-lib@2.156.0.jsii.tgz → aws-cdk-lib@2.158.0.jsii.tgz} +0 -0
  4. aws_cdk/alexa_ask/__init__.py +16 -1
  5. aws_cdk/assertions/__init__.py +16 -1
  6. aws_cdk/aws_accessanalyzer/__init__.py +16 -1
  7. aws_cdk/aws_acmpca/__init__.py +26 -76
  8. aws_cdk/aws_amazonmq/__init__.py +16 -1
  9. aws_cdk/aws_amplify/__init__.py +122 -1
  10. aws_cdk/aws_amplifyuibuilder/__init__.py +16 -1
  11. aws_cdk/aws_apigateway/__init__.py +16 -1
  12. aws_cdk/aws_apigatewayv2/__init__.py +97 -14
  13. aws_cdk/aws_apigatewayv2_authorizers/__init__.py +16 -1
  14. aws_cdk/aws_apigatewayv2_integrations/__init__.py +16 -1
  15. aws_cdk/aws_appconfig/__init__.py +16 -1
  16. aws_cdk/aws_appflow/__init__.py +16 -1
  17. aws_cdk/aws_appintegrations/__init__.py +30 -15
  18. aws_cdk/aws_applicationautoscaling/__init__.py +16 -1
  19. aws_cdk/aws_applicationinsights/__init__.py +16 -1
  20. aws_cdk/aws_applicationsignals/__init__.py +766 -2
  21. aws_cdk/aws_appmesh/__init__.py +16 -1
  22. aws_cdk/aws_apprunner/__init__.py +16 -1
  23. aws_cdk/aws_appstream/__init__.py +16 -1
  24. aws_cdk/aws_appsync/__init__.py +66 -19
  25. aws_cdk/aws_apptest/__init__.py +16 -1
  26. aws_cdk/aws_aps/__init__.py +16 -1
  27. aws_cdk/aws_arczonalshift/__init__.py +16 -1
  28. aws_cdk/aws_athena/__init__.py +16 -1
  29. aws_cdk/aws_auditmanager/__init__.py +16 -1
  30. aws_cdk/aws_autoscaling/__init__.py +22 -7
  31. aws_cdk/aws_autoscaling_common/__init__.py +16 -1
  32. aws_cdk/aws_autoscaling_hooktargets/__init__.py +16 -1
  33. aws_cdk/aws_autoscalingplans/__init__.py +16 -1
  34. aws_cdk/aws_b2bi/__init__.py +16 -1
  35. aws_cdk/aws_backup/__init__.py +55 -1
  36. aws_cdk/aws_backupgateway/__init__.py +16 -1
  37. aws_cdk/aws_batch/__init__.py +57 -1
  38. aws_cdk/aws_bcmdataexports/__init__.py +16 -1
  39. aws_cdk/aws_bedrock/__init__.py +1529 -95
  40. aws_cdk/aws_billingconductor/__init__.py +16 -1
  41. aws_cdk/aws_budgets/__init__.py +16 -1
  42. aws_cdk/aws_cassandra/__init__.py +16 -1
  43. aws_cdk/aws_ce/__init__.py +16 -1
  44. aws_cdk/aws_certificatemanager/__init__.py +16 -1
  45. aws_cdk/aws_chatbot/__init__.py +22 -7
  46. aws_cdk/aws_cleanrooms/__init__.py +16 -1
  47. aws_cdk/aws_cleanroomsml/__init__.py +16 -1
  48. aws_cdk/aws_cloud9/__init__.py +16 -1
  49. aws_cdk/aws_cloudformation/__init__.py +38 -23
  50. aws_cdk/aws_cloudfront/__init__.py +16 -1
  51. aws_cdk/aws_cloudfront/experimental/__init__.py +46 -4
  52. aws_cdk/aws_cloudfront_origins/__init__.py +16 -1
  53. aws_cdk/aws_cloudtrail/__init__.py +16 -1
  54. aws_cdk/aws_cloudwatch/__init__.py +16 -1
  55. aws_cdk/aws_cloudwatch_actions/__init__.py +16 -1
  56. aws_cdk/aws_codeartifact/__init__.py +16 -1
  57. aws_cdk/aws_codebuild/__init__.py +16 -1
  58. aws_cdk/aws_codecommit/__init__.py +16 -1
  59. aws_cdk/aws_codeconnections/__init__.py +16 -1
  60. aws_cdk/aws_codedeploy/__init__.py +16 -1
  61. aws_cdk/aws_codeguruprofiler/__init__.py +16 -1
  62. aws_cdk/aws_codegurureviewer/__init__.py +16 -1
  63. aws_cdk/aws_codepipeline/__init__.py +16 -1
  64. aws_cdk/aws_codepipeline_actions/__init__.py +16 -1
  65. aws_cdk/aws_codestar/__init__.py +16 -1
  66. aws_cdk/aws_codestarconnections/__init__.py +16 -1
  67. aws_cdk/aws_codestarnotifications/__init__.py +16 -1
  68. aws_cdk/aws_cognito/__init__.py +16 -1
  69. aws_cdk/aws_comprehend/__init__.py +16 -1
  70. aws_cdk/aws_config/__init__.py +16 -1
  71. aws_cdk/aws_connect/__init__.py +16 -1
  72. aws_cdk/aws_connectcampaigns/__init__.py +16 -1
  73. aws_cdk/aws_controltower/__init__.py +16 -1
  74. aws_cdk/aws_cur/__init__.py +16 -1
  75. aws_cdk/aws_customerprofiles/__init__.py +16 -1
  76. aws_cdk/aws_databrew/__init__.py +16 -1
  77. aws_cdk/aws_datapipeline/__init__.py +16 -1
  78. aws_cdk/aws_datasync/__init__.py +56 -30
  79. aws_cdk/aws_datazone/__init__.py +16 -1
  80. aws_cdk/aws_dax/__init__.py +16 -1
  81. aws_cdk/aws_deadline/__init__.py +16 -1
  82. aws_cdk/aws_detective/__init__.py +16 -1
  83. aws_cdk/aws_devicefarm/__init__.py +16 -1
  84. aws_cdk/aws_devopsguru/__init__.py +16 -1
  85. aws_cdk/aws_directoryservice/__init__.py +16 -1
  86. aws_cdk/aws_dlm/__init__.py +16 -1
  87. aws_cdk/aws_dms/__init__.py +16 -1
  88. aws_cdk/aws_docdb/__init__.py +16 -1
  89. aws_cdk/aws_docdbelastic/__init__.py +16 -1
  90. aws_cdk/aws_dynamodb/__init__.py +16 -1
  91. aws_cdk/aws_ec2/__init__.py +389 -50
  92. aws_cdk/aws_ecr/__init__.py +16 -1
  93. aws_cdk/aws_ecr_assets/__init__.py +16 -1
  94. aws_cdk/aws_ecs/__init__.py +269 -88
  95. aws_cdk/aws_ecs_patterns/__init__.py +16 -1
  96. aws_cdk/aws_efs/__init__.py +16 -1
  97. aws_cdk/aws_eks/__init__.py +16 -1
  98. aws_cdk/aws_elasticache/__init__.py +16 -1
  99. aws_cdk/aws_elasticbeanstalk/__init__.py +16 -1
  100. aws_cdk/aws_elasticloadbalancing/__init__.py +16 -1
  101. aws_cdk/aws_elasticloadbalancingv2/__init__.py +20 -5
  102. aws_cdk/aws_elasticloadbalancingv2_actions/__init__.py +16 -1
  103. aws_cdk/aws_elasticloadbalancingv2_targets/__init__.py +16 -1
  104. aws_cdk/aws_elasticsearch/__init__.py +16 -1
  105. aws_cdk/aws_emr/__init__.py +16 -1
  106. aws_cdk/aws_emrcontainers/__init__.py +16 -1
  107. aws_cdk/aws_emrserverless/__init__.py +16 -1
  108. aws_cdk/aws_entityresolution/__init__.py +133 -5
  109. aws_cdk/aws_events/__init__.py +16 -1
  110. aws_cdk/aws_events_targets/__init__.py +16 -1
  111. aws_cdk/aws_eventschemas/__init__.py +16 -1
  112. aws_cdk/aws_evidently/__init__.py +16 -1
  113. aws_cdk/aws_finspace/__init__.py +16 -1
  114. aws_cdk/aws_fis/__init__.py +16 -1
  115. aws_cdk/aws_fms/__init__.py +16 -1
  116. aws_cdk/aws_forecast/__init__.py +16 -1
  117. aws_cdk/aws_frauddetector/__init__.py +16 -1
  118. aws_cdk/aws_fsx/__init__.py +16 -1
  119. aws_cdk/aws_gamelift/__init__.py +16 -1
  120. aws_cdk/aws_globalaccelerator/__init__.py +16 -1
  121. aws_cdk/aws_globalaccelerator_endpoints/__init__.py +16 -1
  122. aws_cdk/aws_glue/__init__.py +16 -9
  123. aws_cdk/aws_grafana/__init__.py +16 -1
  124. aws_cdk/aws_greengrass/__init__.py +16 -1
  125. aws_cdk/aws_greengrassv2/__init__.py +16 -1
  126. aws_cdk/aws_groundstation/__init__.py +43 -17
  127. aws_cdk/aws_guardduty/__init__.py +42 -15
  128. aws_cdk/aws_healthimaging/__init__.py +16 -1
  129. aws_cdk/aws_healthlake/__init__.py +16 -1
  130. aws_cdk/aws_iam/__init__.py +16 -1
  131. aws_cdk/aws_identitystore/__init__.py +16 -1
  132. aws_cdk/aws_imagebuilder/__init__.py +16 -1
  133. aws_cdk/aws_inspector/__init__.py +16 -1
  134. aws_cdk/aws_inspectorv2/__init__.py +16 -1
  135. aws_cdk/aws_internetmonitor/__init__.py +16 -1
  136. aws_cdk/aws_iot/__init__.py +16 -1
  137. aws_cdk/aws_iot1click/__init__.py +16 -1
  138. aws_cdk/aws_iotanalytics/__init__.py +16 -1
  139. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +16 -1
  140. aws_cdk/aws_iotevents/__init__.py +16 -1
  141. aws_cdk/aws_iotfleethub/__init__.py +16 -1
  142. aws_cdk/aws_iotfleetwise/__init__.py +124 -1
  143. aws_cdk/aws_iotsitewise/__init__.py +16 -1
  144. aws_cdk/aws_iotthingsgraph/__init__.py +16 -1
  145. aws_cdk/aws_iottwinmaker/__init__.py +16 -1
  146. aws_cdk/aws_iotwireless/__init__.py +16 -1
  147. aws_cdk/aws_ivs/__init__.py +16 -1
  148. aws_cdk/aws_ivschat/__init__.py +16 -1
  149. aws_cdk/aws_kafkaconnect/__init__.py +16 -1
  150. aws_cdk/aws_kendra/__init__.py +16 -1
  151. aws_cdk/aws_kendraranking/__init__.py +16 -1
  152. aws_cdk/aws_kinesis/__init__.py +16 -1
  153. aws_cdk/aws_kinesisanalytics/__init__.py +16 -1
  154. aws_cdk/aws_kinesisanalyticsv2/__init__.py +16 -1
  155. aws_cdk/aws_kinesisfirehose/__init__.py +16 -1
  156. aws_cdk/aws_kinesisvideo/__init__.py +16 -1
  157. aws_cdk/aws_kms/__init__.py +16 -1
  158. aws_cdk/aws_lakeformation/__init__.py +16 -1
  159. aws_cdk/aws_lambda/__init__.py +163 -18
  160. aws_cdk/aws_lambda_destinations/__init__.py +16 -1
  161. aws_cdk/aws_lambda_event_sources/__init__.py +16 -1
  162. aws_cdk/aws_lambda_nodejs/__init__.py +46 -4
  163. aws_cdk/aws_launchwizard/__init__.py +16 -1
  164. aws_cdk/aws_lex/__init__.py +16 -1
  165. aws_cdk/aws_licensemanager/__init__.py +16 -1
  166. aws_cdk/aws_lightsail/__init__.py +16 -1
  167. aws_cdk/aws_location/__init__.py +16 -1
  168. aws_cdk/aws_logs/__init__.py +16 -1
  169. aws_cdk/aws_logs_destinations/__init__.py +16 -1
  170. aws_cdk/aws_lookoutequipment/__init__.py +16 -1
  171. aws_cdk/aws_lookoutmetrics/__init__.py +16 -1
  172. aws_cdk/aws_lookoutvision/__init__.py +16 -1
  173. aws_cdk/aws_m2/__init__.py +16 -1
  174. aws_cdk/aws_macie/__init__.py +20 -5
  175. aws_cdk/aws_managedblockchain/__init__.py +16 -1
  176. aws_cdk/aws_mediaconnect/__init__.py +16 -1
  177. aws_cdk/aws_mediaconvert/__init__.py +16 -1
  178. aws_cdk/aws_medialive/__init__.py +364 -1
  179. aws_cdk/aws_mediapackage/__init__.py +16 -1
  180. aws_cdk/aws_mediapackagev2/__init__.py +54 -39
  181. aws_cdk/aws_mediastore/__init__.py +16 -1
  182. aws_cdk/aws_mediatailor/__init__.py +16 -1
  183. aws_cdk/aws_memorydb/__init__.py +16 -1
  184. aws_cdk/aws_msk/__init__.py +16 -1
  185. aws_cdk/aws_mwaa/__init__.py +16 -1
  186. aws_cdk/aws_neptune/__init__.py +30 -9
  187. aws_cdk/aws_neptunegraph/__init__.py +16 -1
  188. aws_cdk/aws_networkfirewall/__init__.py +16 -1
  189. aws_cdk/aws_networkmanager/__init__.py +16 -1
  190. aws_cdk/aws_nimblestudio/__init__.py +16 -1
  191. aws_cdk/aws_oam/__init__.py +16 -1
  192. aws_cdk/aws_omics/__init__.py +16 -1
  193. aws_cdk/aws_opensearchserverless/__init__.py +16 -1
  194. aws_cdk/aws_opensearchservice/__init__.py +210 -1
  195. aws_cdk/aws_opsworks/__init__.py +16 -1
  196. aws_cdk/aws_opsworkscm/__init__.py +16 -1
  197. aws_cdk/aws_organizations/__init__.py +16 -1
  198. aws_cdk/aws_osis/__init__.py +16 -1
  199. aws_cdk/aws_panorama/__init__.py +16 -1
  200. aws_cdk/aws_paymentcryptography/__init__.py +16 -1
  201. aws_cdk/aws_pcaconnectorad/__init__.py +16 -1
  202. aws_cdk/aws_pcaconnectorscep/__init__.py +899 -0
  203. aws_cdk/aws_personalize/__init__.py +18 -3
  204. aws_cdk/aws_pinpoint/__init__.py +16 -1
  205. aws_cdk/aws_pinpointemail/__init__.py +16 -1
  206. aws_cdk/aws_pipes/__init__.py +38 -23
  207. aws_cdk/aws_proton/__init__.py +16 -1
  208. aws_cdk/aws_qbusiness/__init__.py +691 -7
  209. aws_cdk/aws_qldb/__init__.py +16 -1
  210. aws_cdk/aws_quicksight/__init__.py +3301 -1
  211. aws_cdk/aws_ram/__init__.py +16 -1
  212. aws_cdk/aws_rds/__init__.py +58 -5
  213. aws_cdk/aws_redshift/__init__.py +16 -1
  214. aws_cdk/aws_redshiftserverless/__init__.py +16 -1
  215. aws_cdk/aws_refactorspaces/__init__.py +16 -1
  216. aws_cdk/aws_rekognition/__init__.py +16 -1
  217. aws_cdk/aws_resiliencehub/__init__.py +16 -1
  218. aws_cdk/aws_resourceexplorer2/__init__.py +16 -1
  219. aws_cdk/aws_resourcegroups/__init__.py +16 -1
  220. aws_cdk/aws_robomaker/__init__.py +16 -1
  221. aws_cdk/aws_rolesanywhere/__init__.py +16 -1
  222. aws_cdk/aws_route53/__init__.py +16 -1
  223. aws_cdk/aws_route53_patterns/__init__.py +16 -1
  224. aws_cdk/aws_route53_targets/__init__.py +16 -1
  225. aws_cdk/aws_route53profiles/__init__.py +16 -1
  226. aws_cdk/aws_route53recoverycontrol/__init__.py +16 -1
  227. aws_cdk/aws_route53recoveryreadiness/__init__.py +16 -1
  228. aws_cdk/aws_route53resolver/__init__.py +16 -1
  229. aws_cdk/aws_rum/__init__.py +16 -1
  230. aws_cdk/aws_s3/__init__.py +16 -1
  231. aws_cdk/aws_s3_assets/__init__.py +16 -1
  232. aws_cdk/aws_s3_deployment/__init__.py +16 -1
  233. aws_cdk/aws_s3_notifications/__init__.py +16 -1
  234. aws_cdk/aws_s3express/__init__.py +16 -1
  235. aws_cdk/aws_s3objectlambda/__init__.py +16 -1
  236. aws_cdk/aws_s3outposts/__init__.py +16 -1
  237. aws_cdk/aws_sagemaker/__init__.py +1183 -1
  238. aws_cdk/aws_sam/__init__.py +16 -1
  239. aws_cdk/aws_scheduler/__init__.py +16 -1
  240. aws_cdk/aws_sdb/__init__.py +16 -1
  241. aws_cdk/aws_secretsmanager/__init__.py +18 -4
  242. aws_cdk/aws_securityhub/__init__.py +124 -104
  243. aws_cdk/aws_securitylake/__init__.py +16 -1
  244. aws_cdk/aws_servicecatalog/__init__.py +16 -1
  245. aws_cdk/aws_servicecatalogappregistry/__init__.py +16 -1
  246. aws_cdk/aws_servicediscovery/__init__.py +16 -1
  247. aws_cdk/aws_ses/__init__.py +47 -1
  248. aws_cdk/aws_ses_actions/__init__.py +16 -1
  249. aws_cdk/aws_shield/__init__.py +16 -1
  250. aws_cdk/aws_signer/__init__.py +16 -1
  251. aws_cdk/aws_simspaceweaver/__init__.py +16 -1
  252. aws_cdk/aws_sns/__init__.py +35 -14
  253. aws_cdk/aws_sns_subscriptions/__init__.py +16 -1
  254. aws_cdk/aws_sqs/__init__.py +16 -1
  255. aws_cdk/aws_ssm/__init__.py +26 -7
  256. aws_cdk/aws_ssmcontacts/__init__.py +16 -1
  257. aws_cdk/aws_ssmincidents/__init__.py +16 -1
  258. aws_cdk/aws_ssmquicksetup/__init__.py +982 -0
  259. aws_cdk/aws_sso/__init__.py +16 -1
  260. aws_cdk/aws_stepfunctions/__init__.py +16 -1
  261. aws_cdk/aws_stepfunctions_tasks/__init__.py +20 -5
  262. aws_cdk/aws_supportapp/__init__.py +16 -1
  263. aws_cdk/aws_synthetics/__init__.py +16 -1
  264. aws_cdk/aws_systemsmanagersap/__init__.py +16 -1
  265. aws_cdk/aws_timestream/__init__.py +16 -1
  266. aws_cdk/aws_transfer/__init__.py +16 -1
  267. aws_cdk/aws_verifiedpermissions/__init__.py +16 -1
  268. aws_cdk/aws_voiceid/__init__.py +16 -1
  269. aws_cdk/aws_vpclattice/__init__.py +16 -1
  270. aws_cdk/aws_waf/__init__.py +16 -1
  271. aws_cdk/aws_wafregional/__init__.py +16 -1
  272. aws_cdk/aws_wafv2/__init__.py +16 -1
  273. aws_cdk/aws_wisdom/__init__.py +16 -1
  274. aws_cdk/aws_workspaces/__init__.py +16 -1
  275. aws_cdk/aws_workspacesthinclient/__init__.py +16 -1
  276. aws_cdk/aws_workspacesweb/__init__.py +16 -1
  277. aws_cdk/aws_xray/__init__.py +16 -1
  278. aws_cdk/cloud_assembly_schema/__init__.py +16 -1
  279. aws_cdk/cloudformation_include/__init__.py +16 -1
  280. aws_cdk/custom_resources/__init__.py +16 -1
  281. aws_cdk/cx_api/__init__.py +16 -1
  282. aws_cdk/lambda_layer_awscli/__init__.py +16 -1
  283. aws_cdk/lambda_layer_kubectl/__init__.py +16 -1
  284. aws_cdk/lambda_layer_node_proxy_agent/__init__.py +16 -1
  285. aws_cdk/pipelines/__init__.py +16 -1
  286. aws_cdk/region_info/__init__.py +16 -1
  287. aws_cdk/triggers/__init__.py +46 -4
  288. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.158.0.dist-info}/METADATA +5 -5
  289. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.158.0.dist-info}/NOTICE +27 -8
  290. aws_cdk_lib-2.158.0.dist-info/RECORD +294 -0
  291. aws_cdk_lib-2.156.0.dist-info/RECORD +0 -292
  292. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.158.0.dist-info}/LICENSE +0 -0
  293. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.158.0.dist-info}/WHEEL +0 -0
  294. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.158.0.dist-info}/top_level.txt +0 -0
@@ -38,7 +38,22 @@ import jsii
38
38
  import publication
39
39
  import typing_extensions
40
40
 
41
- from typeguard import check_type
41
+ import typeguard
42
+ from importlib.metadata import version as _metadata_package_version
43
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
44
+
45
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
46
+ if TYPEGUARD_MAJOR_VERSION <= 2:
47
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
48
+ else:
49
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
50
+ pass
51
+ else:
52
+ if TYPEGUARD_MAJOR_VERSION == 3:
53
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
54
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
55
+ else:
56
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
42
57
 
43
58
  from .._jsii import *
44
59
 
@@ -38,7 +38,22 @@ import jsii
38
38
  import publication
39
39
  import typing_extensions
40
40
 
41
- from typeguard import check_type
41
+ import typeguard
42
+ from importlib.metadata import version as _metadata_package_version
43
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
44
+
45
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
46
+ if TYPEGUARD_MAJOR_VERSION <= 2:
47
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
48
+ else:
49
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
50
+ pass
51
+ else:
52
+ if TYPEGUARD_MAJOR_VERSION == 3:
53
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
54
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
55
+ else:
56
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
42
57
 
43
58
  from .._jsii import *
44
59
 
@@ -38,7 +38,22 @@ import jsii
38
38
  import publication
39
39
  import typing_extensions
40
40
 
41
- from typeguard import check_type
41
+ import typeguard
42
+ from importlib.metadata import version as _metadata_package_version
43
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
44
+
45
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
46
+ if TYPEGUARD_MAJOR_VERSION <= 2:
47
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
48
+ else:
49
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
50
+ pass
51
+ else:
52
+ if TYPEGUARD_MAJOR_VERSION == 3:
53
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
54
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
55
+ else:
56
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
42
57
 
43
58
  from .._jsii import *
44
59
 
@@ -317,7 +317,22 @@ import jsii
317
317
  import publication
318
318
  import typing_extensions
319
319
 
320
- from typeguard import check_type
320
+ import typeguard
321
+ from importlib.metadata import version as _metadata_package_version
322
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
323
+
324
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
325
+ if TYPEGUARD_MAJOR_VERSION <= 2:
326
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
327
+ else:
328
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
329
+ pass
330
+ else:
331
+ if TYPEGUARD_MAJOR_VERSION == 3:
332
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
333
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
334
+ else:
335
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
321
336
 
322
337
  from .._jsii import *
323
338
 
@@ -2251,7 +2266,7 @@ class CfnSecretTargetAttachment(
2251
2266
  :param id: Construct identifier for this resource (unique in its scope).
2252
2267
  :param secret_id: The ARN or name of the secret. To reference a secret also created in this template, use the see `Ref <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html>`_ function with the secret's logical ID.
2253
2268
  :param target_id: The ID of the database or cluster.
2254
- :param target_type: A string that defines the type of service or database associated with the secret. This value instructs Secrets Manager how to update the secret with the details of the service or database. This value must be one of the following: - AWS::RDS::DBInstance - AWS::RDS::DBCluster - AWS::Redshift::Cluster - AWS::DocDB::DBInstance - AWS::DocDB::DBCluster - AWS::DocDBElastic::Cluster
2269
+ :param target_type: A string that defines the type of service or database associated with the secret. This value instructs Secrets Manager how to update the secret with the details of the service or database. This value must be one of the following: - AWS::RDS::DBInstance - AWS::RDS::DBCluster - AWS::Redshift::Cluster - AWS::DocDB::DBInstance - AWS::DocDB::DBCluster
2255
2270
  '''
2256
2271
  if __debug__:
2257
2272
  type_hints = typing.get_type_hints(_typecheckingstub__f27548ced74eb3d06a9cd3710e7d562d307b5a2c264476a3e685fcb94ccdee58)
@@ -2367,7 +2382,7 @@ class CfnSecretTargetAttachmentProps:
2367
2382
 
2368
2383
  :param secret_id: The ARN or name of the secret. To reference a secret also created in this template, use the see `Ref <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html>`_ function with the secret's logical ID.
2369
2384
  :param target_id: The ID of the database or cluster.
2370
- :param target_type: A string that defines the type of service or database associated with the secret. This value instructs Secrets Manager how to update the secret with the details of the service or database. This value must be one of the following: - AWS::RDS::DBInstance - AWS::RDS::DBCluster - AWS::Redshift::Cluster - AWS::DocDB::DBInstance - AWS::DocDB::DBCluster - AWS::DocDBElastic::Cluster
2385
+ :param target_type: A string that defines the type of service or database associated with the secret. This value instructs Secrets Manager how to update the secret with the details of the service or database. This value must be one of the following: - AWS::RDS::DBInstance - AWS::RDS::DBCluster - AWS::Redshift::Cluster - AWS::DocDB::DBInstance - AWS::DocDB::DBCluster
2371
2386
 
2372
2387
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html
2373
2388
  :exampleMetadata: fixture=_generated
@@ -2428,7 +2443,6 @@ class CfnSecretTargetAttachmentProps:
2428
2443
  - AWS::Redshift::Cluster
2429
2444
  - AWS::DocDB::DBInstance
2430
2445
  - AWS::DocDB::DBCluster
2431
- - AWS::DocDBElastic::Cluster
2432
2446
 
2433
2447
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html#cfn-secretsmanager-secrettargetattachment-targettype
2434
2448
  '''
@@ -38,7 +38,22 @@ import jsii
38
38
  import publication
39
39
  import typing_extensions
40
40
 
41
- from typeguard import check_type
41
+ import typeguard
42
+ from importlib.metadata import version as _metadata_package_version
43
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
44
+
45
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
46
+ if TYPEGUARD_MAJOR_VERSION <= 2:
47
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
48
+ else:
49
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
50
+ pass
51
+ else:
52
+ if TYPEGUARD_MAJOR_VERSION == 3:
53
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
54
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
55
+ else:
56
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
42
57
 
43
58
  from .._jsii import *
44
59
 
@@ -274,9 +289,11 @@ class CfnAutomationRule(
274
289
  )]
275
290
  ),
276
291
  description="description",
277
- is_terminal=False,
278
292
  rule_name="ruleName",
279
293
  rule_order=123,
294
+
295
+ # the properties below are optional
296
+ is_terminal=False,
280
297
  rule_status="ruleStatus",
281
298
  tags={
282
299
  "tags_key": "tags"
@@ -289,12 +306,12 @@ class CfnAutomationRule(
289
306
  scope: _constructs_77d1e7e8.Construct,
290
307
  id: builtins.str,
291
308
  *,
292
- actions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRule.AutomationRulesActionProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
293
- criteria: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRule.AutomationRulesFindingFiltersProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
294
- description: typing.Optional[builtins.str] = None,
309
+ actions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRule.AutomationRulesActionProperty", typing.Dict[builtins.str, typing.Any]]]]],
310
+ criteria: typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRule.AutomationRulesFindingFiltersProperty", typing.Dict[builtins.str, typing.Any]]],
311
+ description: builtins.str,
312
+ rule_name: builtins.str,
313
+ rule_order: jsii.Number,
295
314
  is_terminal: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
296
- rule_name: typing.Optional[builtins.str] = None,
297
- rule_order: typing.Optional[jsii.Number] = None,
298
315
  rule_status: typing.Optional[builtins.str] = None,
299
316
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
300
317
  ) -> None:
@@ -304,9 +321,9 @@ class CfnAutomationRule(
304
321
  :param actions: One or more actions to update finding fields if a finding matches the conditions specified in ``Criteria`` .
305
322
  :param criteria: A set of `AWS Security Finding Format (ASFF) <https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html>`_ finding field attributes and corresponding expected values that Security Hub uses to filter findings. If a rule is enabled and a finding matches the criteria specified in this parameter, Security Hub applies the rule action to the finding.
306
323
  :param description: A description of the rule.
307
- :param is_terminal: Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.
308
324
  :param rule_name: The name of the rule.
309
325
  :param rule_order: An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings. Security Hub applies rules with lower values for this parameter first.
326
+ :param is_terminal: Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.
310
327
  :param rule_status: Whether the rule is active after it is created. If this parameter is equal to ``ENABLED`` , Security Hub applies the rule to findings and finding updates after the rule is created.
311
328
  :param tags: User-defined tags associated with an automation rule.
312
329
  '''
@@ -318,9 +335,9 @@ class CfnAutomationRule(
318
335
  actions=actions,
319
336
  criteria=criteria,
320
337
  description=description,
321
- is_terminal=is_terminal,
322
338
  rule_name=rule_name,
323
339
  rule_order=rule_order,
340
+ is_terminal=is_terminal,
324
341
  rule_status=rule_status,
325
342
  tags=tags,
326
343
  )
@@ -416,14 +433,14 @@ class CfnAutomationRule(
416
433
  @jsii.member(jsii_name="actions")
417
434
  def actions(
418
435
  self,
419
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesActionProperty"]]]]:
436
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesActionProperty"]]]:
420
437
  '''One or more actions to update finding fields if a finding matches the conditions specified in ``Criteria`` .'''
421
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesActionProperty"]]]], jsii.get(self, "actions"))
438
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesActionProperty"]]], jsii.get(self, "actions"))
422
439
 
423
440
  @actions.setter
424
441
  def actions(
425
442
  self,
426
- value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesActionProperty"]]]],
443
+ value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesActionProperty"]]],
427
444
  ) -> None:
428
445
  if __debug__:
429
446
  type_hints = typing.get_type_hints(_typecheckingstub__90988dc6b536563439917056373f7379ca48a864b5a3471a7b3552f6c9b40897)
@@ -434,14 +451,14 @@ class CfnAutomationRule(
434
451
  @jsii.member(jsii_name="criteria")
435
452
  def criteria(
436
453
  self,
437
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesFindingFiltersProperty"]]:
454
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesFindingFiltersProperty"]:
438
455
  '''A set of `AWS Security Finding Format (ASFF) <https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html>`_ finding field attributes and corresponding expected values that Security Hub uses to filter findings. If a rule is enabled and a finding matches the criteria specified in this parameter, Security Hub applies the rule action to the finding.'''
439
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesFindingFiltersProperty"]], jsii.get(self, "criteria"))
456
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesFindingFiltersProperty"], jsii.get(self, "criteria"))
440
457
 
441
458
  @criteria.setter
442
459
  def criteria(
443
460
  self,
444
- value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesFindingFiltersProperty"]],
461
+ value: typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesFindingFiltersProperty"],
445
462
  ) -> None:
446
463
  if __debug__:
447
464
  type_hints = typing.get_type_hints(_typecheckingstub__cc91daff88300654f2c8a9e4e5aad76fd0c26ae9c62e118febc7d1bff9733c5f)
@@ -450,43 +467,25 @@ class CfnAutomationRule(
450
467
 
451
468
  @builtins.property
452
469
  @jsii.member(jsii_name="description")
453
- def description(self) -> typing.Optional[builtins.str]:
470
+ def description(self) -> builtins.str:
454
471
  '''A description of the rule.'''
455
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "description"))
472
+ return typing.cast(builtins.str, jsii.get(self, "description"))
456
473
 
457
474
  @description.setter
458
- def description(self, value: typing.Optional[builtins.str]) -> None:
475
+ def description(self, value: builtins.str) -> None:
459
476
  if __debug__:
460
477
  type_hints = typing.get_type_hints(_typecheckingstub__13e710145ba6564ce42bac7fc3465ec7406a15699f473acd70e62bf605c1f259)
461
478
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
462
479
  jsii.set(self, "description", value) # pyright: ignore[reportArgumentType]
463
480
 
464
- @builtins.property
465
- @jsii.member(jsii_name="isTerminal")
466
- def is_terminal(
467
- self,
468
- ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
469
- '''Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria.'''
470
- return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "isTerminal"))
471
-
472
- @is_terminal.setter
473
- def is_terminal(
474
- self,
475
- value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
476
- ) -> None:
477
- if __debug__:
478
- type_hints = typing.get_type_hints(_typecheckingstub__11031a77a18a3180e3bf703420372155750c7001d9c920558ff50230e0111537)
479
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
480
- jsii.set(self, "isTerminal", value) # pyright: ignore[reportArgumentType]
481
-
482
481
  @builtins.property
483
482
  @jsii.member(jsii_name="ruleName")
484
- def rule_name(self) -> typing.Optional[builtins.str]:
483
+ def rule_name(self) -> builtins.str:
485
484
  '''The name of the rule.'''
486
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "ruleName"))
485
+ return typing.cast(builtins.str, jsii.get(self, "ruleName"))
487
486
 
488
487
  @rule_name.setter
489
- def rule_name(self, value: typing.Optional[builtins.str]) -> None:
488
+ def rule_name(self, value: builtins.str) -> None:
490
489
  if __debug__:
491
490
  type_hints = typing.get_type_hints(_typecheckingstub__ffff694fc9dee0bbe561a13e56455e4e3a3b12c8c47e7c20a7fe2e8c13c0725c)
492
491
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
@@ -494,17 +493,35 @@ class CfnAutomationRule(
494
493
 
495
494
  @builtins.property
496
495
  @jsii.member(jsii_name="ruleOrder")
497
- def rule_order(self) -> typing.Optional[jsii.Number]:
496
+ def rule_order(self) -> jsii.Number:
498
497
  '''An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings.'''
499
- return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "ruleOrder"))
498
+ return typing.cast(jsii.Number, jsii.get(self, "ruleOrder"))
500
499
 
501
500
  @rule_order.setter
502
- def rule_order(self, value: typing.Optional[jsii.Number]) -> None:
501
+ def rule_order(self, value: jsii.Number) -> None:
503
502
  if __debug__:
504
503
  type_hints = typing.get_type_hints(_typecheckingstub__db37e60211fd885d4c7d0aa9af521faa3786061d7fa1712b86f54f3646a4738b)
505
504
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
506
505
  jsii.set(self, "ruleOrder", value) # pyright: ignore[reportArgumentType]
507
506
 
507
+ @builtins.property
508
+ @jsii.member(jsii_name="isTerminal")
509
+ def is_terminal(
510
+ self,
511
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
512
+ '''Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria.'''
513
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "isTerminal"))
514
+
515
+ @is_terminal.setter
516
+ def is_terminal(
517
+ self,
518
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
519
+ ) -> None:
520
+ if __debug__:
521
+ type_hints = typing.get_type_hints(_typecheckingstub__11031a77a18a3180e3bf703420372155750c7001d9c920558ff50230e0111537)
522
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
523
+ jsii.set(self, "isTerminal", value) # pyright: ignore[reportArgumentType]
524
+
508
525
  @builtins.property
509
526
  @jsii.member(jsii_name="ruleStatus")
510
527
  def rule_status(self) -> typing.Optional[builtins.str]:
@@ -2554,9 +2571,9 @@ class CfnAutomationRule(
2554
2571
  "actions": "actions",
2555
2572
  "criteria": "criteria",
2556
2573
  "description": "description",
2557
- "is_terminal": "isTerminal",
2558
2574
  "rule_name": "ruleName",
2559
2575
  "rule_order": "ruleOrder",
2576
+ "is_terminal": "isTerminal",
2560
2577
  "rule_status": "ruleStatus",
2561
2578
  "tags": "tags",
2562
2579
  },
@@ -2565,12 +2582,12 @@ class CfnAutomationRuleProps:
2565
2582
  def __init__(
2566
2583
  self,
2567
2584
  *,
2568
- actions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesActionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
2569
- criteria: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesFindingFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2570
- description: typing.Optional[builtins.str] = None,
2585
+ actions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesActionProperty, typing.Dict[builtins.str, typing.Any]]]]],
2586
+ criteria: typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesFindingFiltersProperty, typing.Dict[builtins.str, typing.Any]]],
2587
+ description: builtins.str,
2588
+ rule_name: builtins.str,
2589
+ rule_order: jsii.Number,
2571
2590
  is_terminal: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2572
- rule_name: typing.Optional[builtins.str] = None,
2573
- rule_order: typing.Optional[jsii.Number] = None,
2574
2591
  rule_status: typing.Optional[builtins.str] = None,
2575
2592
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
2576
2593
  ) -> None:
@@ -2579,9 +2596,9 @@ class CfnAutomationRuleProps:
2579
2596
  :param actions: One or more actions to update finding fields if a finding matches the conditions specified in ``Criteria`` .
2580
2597
  :param criteria: A set of `AWS Security Finding Format (ASFF) <https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html>`_ finding field attributes and corresponding expected values that Security Hub uses to filter findings. If a rule is enabled and a finding matches the criteria specified in this parameter, Security Hub applies the rule action to the finding.
2581
2598
  :param description: A description of the rule.
2582
- :param is_terminal: Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.
2583
2599
  :param rule_name: The name of the rule.
2584
2600
  :param rule_order: An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings. Security Hub applies rules with lower values for this parameter first.
2601
+ :param is_terminal: Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.
2585
2602
  :param rule_status: Whether the rule is active after it is created. If this parameter is equal to ``ENABLED`` , Security Hub applies the rule to findings and finding updates after the rule is created.
2586
2603
  :param tags: User-defined tags associated with an automation rule.
2587
2604
 
@@ -2794,9 +2811,11 @@ class CfnAutomationRuleProps:
2794
2811
  )]
2795
2812
  ),
2796
2813
  description="description",
2797
- is_terminal=False,
2798
2814
  rule_name="ruleName",
2799
2815
  rule_order=123,
2816
+
2817
+ # the properties below are optional
2818
+ is_terminal=False,
2800
2819
  rule_status="ruleStatus",
2801
2820
  tags={
2802
2821
  "tags_key": "tags"
@@ -2808,24 +2827,20 @@ class CfnAutomationRuleProps:
2808
2827
  check_type(argname="argument actions", value=actions, expected_type=type_hints["actions"])
2809
2828
  check_type(argname="argument criteria", value=criteria, expected_type=type_hints["criteria"])
2810
2829
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
2811
- check_type(argname="argument is_terminal", value=is_terminal, expected_type=type_hints["is_terminal"])
2812
2830
  check_type(argname="argument rule_name", value=rule_name, expected_type=type_hints["rule_name"])
2813
2831
  check_type(argname="argument rule_order", value=rule_order, expected_type=type_hints["rule_order"])
2832
+ check_type(argname="argument is_terminal", value=is_terminal, expected_type=type_hints["is_terminal"])
2814
2833
  check_type(argname="argument rule_status", value=rule_status, expected_type=type_hints["rule_status"])
2815
2834
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
2816
- self._values: typing.Dict[builtins.str, typing.Any] = {}
2817
- if actions is not None:
2818
- self._values["actions"] = actions
2819
- if criteria is not None:
2820
- self._values["criteria"] = criteria
2821
- if description is not None:
2822
- self._values["description"] = description
2835
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2836
+ "actions": actions,
2837
+ "criteria": criteria,
2838
+ "description": description,
2839
+ "rule_name": rule_name,
2840
+ "rule_order": rule_order,
2841
+ }
2823
2842
  if is_terminal is not None:
2824
2843
  self._values["is_terminal"] = is_terminal
2825
- if rule_name is not None:
2826
- self._values["rule_name"] = rule_name
2827
- if rule_order is not None:
2828
- self._values["rule_order"] = rule_order
2829
2844
  if rule_status is not None:
2830
2845
  self._values["rule_status"] = rule_status
2831
2846
  if tags is not None:
@@ -2834,58 +2849,49 @@ class CfnAutomationRuleProps:
2834
2849
  @builtins.property
2835
2850
  def actions(
2836
2851
  self,
2837
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesActionProperty]]]]:
2852
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesActionProperty]]]:
2838
2853
  '''One or more actions to update finding fields if a finding matches the conditions specified in ``Criteria`` .
2839
2854
 
2840
2855
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html#cfn-securityhub-automationrule-actions
2841
2856
  '''
2842
2857
  result = self._values.get("actions")
2843
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesActionProperty]]]], result)
2858
+ assert result is not None, "Required property 'actions' is missing"
2859
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesActionProperty]]], result)
2844
2860
 
2845
2861
  @builtins.property
2846
2862
  def criteria(
2847
2863
  self,
2848
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesFindingFiltersProperty]]:
2864
+ ) -> typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesFindingFiltersProperty]:
2849
2865
  '''A set of `AWS Security Finding Format (ASFF) <https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html>`_ finding field attributes and corresponding expected values that Security Hub uses to filter findings. If a rule is enabled and a finding matches the criteria specified in this parameter, Security Hub applies the rule action to the finding.
2850
2866
 
2851
2867
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html#cfn-securityhub-automationrule-criteria
2852
2868
  '''
2853
2869
  result = self._values.get("criteria")
2854
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesFindingFiltersProperty]], result)
2870
+ assert result is not None, "Required property 'criteria' is missing"
2871
+ return typing.cast(typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesFindingFiltersProperty], result)
2855
2872
 
2856
2873
  @builtins.property
2857
- def description(self) -> typing.Optional[builtins.str]:
2874
+ def description(self) -> builtins.str:
2858
2875
  '''A description of the rule.
2859
2876
 
2860
2877
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html#cfn-securityhub-automationrule-description
2861
2878
  '''
2862
2879
  result = self._values.get("description")
2863
- return typing.cast(typing.Optional[builtins.str], result)
2864
-
2865
- @builtins.property
2866
- def is_terminal(
2867
- self,
2868
- ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2869
- '''Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria.
2870
-
2871
- This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.
2872
-
2873
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html#cfn-securityhub-automationrule-isterminal
2874
- '''
2875
- result = self._values.get("is_terminal")
2876
- return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
2880
+ assert result is not None, "Required property 'description' is missing"
2881
+ return typing.cast(builtins.str, result)
2877
2882
 
2878
2883
  @builtins.property
2879
- def rule_name(self) -> typing.Optional[builtins.str]:
2884
+ def rule_name(self) -> builtins.str:
2880
2885
  '''The name of the rule.
2881
2886
 
2882
2887
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html#cfn-securityhub-automationrule-rulename
2883
2888
  '''
2884
2889
  result = self._values.get("rule_name")
2885
- return typing.cast(typing.Optional[builtins.str], result)
2890
+ assert result is not None, "Required property 'rule_name' is missing"
2891
+ return typing.cast(builtins.str, result)
2886
2892
 
2887
2893
  @builtins.property
2888
- def rule_order(self) -> typing.Optional[jsii.Number]:
2894
+ def rule_order(self) -> jsii.Number:
2889
2895
  '''An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings.
2890
2896
 
2891
2897
  Security Hub applies rules with lower values for this parameter first.
@@ -2893,7 +2899,21 @@ class CfnAutomationRuleProps:
2893
2899
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html#cfn-securityhub-automationrule-ruleorder
2894
2900
  '''
2895
2901
  result = self._values.get("rule_order")
2896
- return typing.cast(typing.Optional[jsii.Number], result)
2902
+ assert result is not None, "Required property 'rule_order' is missing"
2903
+ return typing.cast(jsii.Number, result)
2904
+
2905
+ @builtins.property
2906
+ def is_terminal(
2907
+ self,
2908
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2909
+ '''Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria.
2910
+
2911
+ This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.
2912
+
2913
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html#cfn-securityhub-automationrule-isterminal
2914
+ '''
2915
+ result = self._values.get("is_terminal")
2916
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
2897
2917
 
2898
2918
  @builtins.property
2899
2919
  def rule_status(self) -> typing.Optional[builtins.str]:
@@ -10314,12 +10334,12 @@ def _typecheckingstub__90c663d2946359b509542feafdcb3d89f11ca9e30a214aae02ea3d6b3
10314
10334
  scope: _constructs_77d1e7e8.Construct,
10315
10335
  id: builtins.str,
10316
10336
  *,
10317
- actions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesActionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
10318
- criteria: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesFindingFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
10319
- description: typing.Optional[builtins.str] = None,
10337
+ actions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesActionProperty, typing.Dict[builtins.str, typing.Any]]]]],
10338
+ criteria: typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesFindingFiltersProperty, typing.Dict[builtins.str, typing.Any]]],
10339
+ description: builtins.str,
10340
+ rule_name: builtins.str,
10341
+ rule_order: jsii.Number,
10320
10342
  is_terminal: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
10321
- rule_name: typing.Optional[builtins.str] = None,
10322
- rule_order: typing.Optional[jsii.Number] = None,
10323
10343
  rule_status: typing.Optional[builtins.str] = None,
10324
10344
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
10325
10345
  ) -> None:
@@ -10339,37 +10359,37 @@ def _typecheckingstub__cc6a8a522560219490822e00b9ec3810152de6616cf975f073c37fc9d
10339
10359
  pass
10340
10360
 
10341
10361
  def _typecheckingstub__90988dc6b536563439917056373f7379ca48a864b5a3471a7b3552f6c9b40897(
10342
- value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesActionProperty]]]],
10362
+ value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesActionProperty]]],
10343
10363
  ) -> None:
10344
10364
  """Type checking stubs"""
10345
10365
  pass
10346
10366
 
10347
10367
  def _typecheckingstub__cc91daff88300654f2c8a9e4e5aad76fd0c26ae9c62e118febc7d1bff9733c5f(
10348
- value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesFindingFiltersProperty]],
10368
+ value: typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesFindingFiltersProperty],
10349
10369
  ) -> None:
10350
10370
  """Type checking stubs"""
10351
10371
  pass
10352
10372
 
10353
10373
  def _typecheckingstub__13e710145ba6564ce42bac7fc3465ec7406a15699f473acd70e62bf605c1f259(
10354
- value: typing.Optional[builtins.str],
10374
+ value: builtins.str,
10355
10375
  ) -> None:
10356
10376
  """Type checking stubs"""
10357
10377
  pass
10358
10378
 
10359
- def _typecheckingstub__11031a77a18a3180e3bf703420372155750c7001d9c920558ff50230e0111537(
10360
- value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
10379
+ def _typecheckingstub__ffff694fc9dee0bbe561a13e56455e4e3a3b12c8c47e7c20a7fe2e8c13c0725c(
10380
+ value: builtins.str,
10361
10381
  ) -> None:
10362
10382
  """Type checking stubs"""
10363
10383
  pass
10364
10384
 
10365
- def _typecheckingstub__ffff694fc9dee0bbe561a13e56455e4e3a3b12c8c47e7c20a7fe2e8c13c0725c(
10366
- value: typing.Optional[builtins.str],
10385
+ def _typecheckingstub__db37e60211fd885d4c7d0aa9af521faa3786061d7fa1712b86f54f3646a4738b(
10386
+ value: jsii.Number,
10367
10387
  ) -> None:
10368
10388
  """Type checking stubs"""
10369
10389
  pass
10370
10390
 
10371
- def _typecheckingstub__db37e60211fd885d4c7d0aa9af521faa3786061d7fa1712b86f54f3646a4738b(
10372
- value: typing.Optional[jsii.Number],
10391
+ def _typecheckingstub__11031a77a18a3180e3bf703420372155750c7001d9c920558ff50230e0111537(
10392
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
10373
10393
  ) -> None:
10374
10394
  """Type checking stubs"""
10375
10395
  pass
@@ -10527,12 +10547,12 @@ def _typecheckingstub__e47be336b722bb880cce3edf7d5752dceac8f243282fcb2bc5094d82b
10527
10547
 
10528
10548
  def _typecheckingstub__221241b44c93ea569fcf69aaaade0ce7cf31b7343bc3d072d74ccd16895d9a2d(
10529
10549
  *,
10530
- actions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesActionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
10531
- criteria: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesFindingFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
10532
- description: typing.Optional[builtins.str] = None,
10550
+ actions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesActionProperty, typing.Dict[builtins.str, typing.Any]]]]],
10551
+ criteria: typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesFindingFiltersProperty, typing.Dict[builtins.str, typing.Any]]],
10552
+ description: builtins.str,
10553
+ rule_name: builtins.str,
10554
+ rule_order: jsii.Number,
10533
10555
  is_terminal: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
10534
- rule_name: typing.Optional[builtins.str] = None,
10535
- rule_order: typing.Optional[jsii.Number] = None,
10536
10556
  rule_status: typing.Optional[builtins.str] = None,
10537
10557
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
10538
10558
  ) -> None:
@@ -48,7 +48,22 @@ import jsii
48
48
  import publication
49
49
  import typing_extensions
50
50
 
51
- from typeguard import check_type
51
+ import typeguard
52
+ from importlib.metadata import version as _metadata_package_version
53
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
54
+
55
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
56
+ if TYPEGUARD_MAJOR_VERSION <= 2:
57
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
58
+ else:
59
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
60
+ pass
61
+ else:
62
+ if TYPEGUARD_MAJOR_VERSION == 3:
63
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
64
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
65
+ else:
66
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
52
67
 
53
68
  from .._jsii import *
54
69
 
@@ -585,7 +585,22 @@ import jsii
585
585
  import publication
586
586
  import typing_extensions
587
587
 
588
- from typeguard import check_type
588
+ import typeguard
589
+ from importlib.metadata import version as _metadata_package_version
590
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
591
+
592
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
593
+ if TYPEGUARD_MAJOR_VERSION <= 2:
594
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
595
+ else:
596
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
597
+ pass
598
+ else:
599
+ if TYPEGUARD_MAJOR_VERSION == 3:
600
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
601
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
602
+ else:
603
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
589
604
 
590
605
  from .._jsii import *
591
606