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
@@ -43,7 +43,22 @@ import jsii
43
43
  import publication
44
44
  import typing_extensions
45
45
 
46
- from typeguard import check_type
46
+ import typeguard
47
+ from importlib.metadata import version as _metadata_package_version
48
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
49
+
50
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
51
+ if TYPEGUARD_MAJOR_VERSION <= 2:
52
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
53
+ else:
54
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
55
+ pass
56
+ else:
57
+ if TYPEGUARD_MAJOR_VERSION == 3:
58
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
59
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
60
+ else:
61
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
47
62
 
48
63
  from .._jsii import *
49
64
 
@@ -174,7 +174,22 @@ import jsii
174
174
  import publication
175
175
  import typing_extensions
176
176
 
177
- from typeguard import check_type
177
+ import typeguard
178
+ from importlib.metadata import version as _metadata_package_version
179
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
180
+
181
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
182
+ if TYPEGUARD_MAJOR_VERSION <= 2:
183
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
184
+ else:
185
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
186
+ pass
187
+ else:
188
+ if TYPEGUARD_MAJOR_VERSION == 3:
189
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
190
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
191
+ else:
192
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
178
193
 
179
194
  from .._jsii import *
180
195
 
@@ -269,7 +269,22 @@ import jsii
269
269
  import publication
270
270
  import typing_extensions
271
271
 
272
- from typeguard import check_type
272
+ import typeguard
273
+ from importlib.metadata import version as _metadata_package_version
274
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
275
+
276
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
277
+ if TYPEGUARD_MAJOR_VERSION <= 2:
278
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
279
+ else:
280
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
281
+ pass
282
+ else:
283
+ if TYPEGUARD_MAJOR_VERSION == 3:
284
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
285
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
286
+ else:
287
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
273
288
 
274
289
  from .._jsii import *
275
290
 
@@ -9944,6 +9959,7 @@ class CfnReceiptRule(
9944
9959
  bucket_name="bucketName",
9945
9960
 
9946
9961
  # the properties below are optional
9962
+ iam_role_arn="iamRoleArn",
9947
9963
  kms_key_arn="kmsKeyArn",
9948
9964
  object_key_prefix="objectKeyPrefix",
9949
9965
  topic_arn="topicArn"
@@ -10164,6 +10180,7 @@ class CfnReceiptRule(
10164
10180
  bucket_name="bucketName",
10165
10181
 
10166
10182
  # the properties below are optional
10183
+ iam_role_arn="iamRoleArn",
10167
10184
  kms_key_arn="kmsKeyArn",
10168
10185
  object_key_prefix="objectKeyPrefix",
10169
10186
  topic_arn="topicArn"
@@ -10686,6 +10703,7 @@ class CfnReceiptRule(
10686
10703
  bucket_name="bucketName",
10687
10704
 
10688
10705
  # the properties below are optional
10706
+ iam_role_arn="iamRoleArn",
10689
10707
  kms_key_arn="kmsKeyArn",
10690
10708
  object_key_prefix="objectKeyPrefix",
10691
10709
  topic_arn="topicArn"
@@ -10826,6 +10844,7 @@ class CfnReceiptRule(
10826
10844
  jsii_struct_bases=[],
10827
10845
  name_mapping={
10828
10846
  "bucket_name": "bucketName",
10847
+ "iam_role_arn": "iamRoleArn",
10829
10848
  "kms_key_arn": "kmsKeyArn",
10830
10849
  "object_key_prefix": "objectKeyPrefix",
10831
10850
  "topic_arn": "topicArn",
@@ -10836,6 +10855,7 @@ class CfnReceiptRule(
10836
10855
  self,
10837
10856
  *,
10838
10857
  bucket_name: builtins.str,
10858
+ iam_role_arn: typing.Optional[builtins.str] = None,
10839
10859
  kms_key_arn: typing.Optional[builtins.str] = None,
10840
10860
  object_key_prefix: typing.Optional[builtins.str] = None,
10841
10861
  topic_arn: typing.Optional[builtins.str] = None,
@@ -10850,6 +10870,7 @@ class CfnReceiptRule(
10850
10870
  For information about specifying Amazon S3 actions in receipt rules, see the `Amazon SES Developer Guide <https://docs.aws.amazon.com/ses/latest/dg/receiving-email-action-s3.html>`_ .
10851
10871
 
10852
10872
  :param bucket_name: The name of the Amazon S3 bucket for incoming email.
10873
+ :param iam_role_arn: The ARN of the IAM role to be used by Amazon Simple Email Service while writing to the Amazon S3 bucket, optionally encrypting your mail via the provided customer managed key, and publishing to the Amazon SNS topic. This role should have access to the following APIs: - ``s3:PutObject`` , ``kms:Encrypt`` and ``kms:GenerateDataKey`` for the given Amazon S3 bucket. - ``kms:GenerateDataKey`` for the given AWS KMS customer managed key. - ``sns:Publish`` for the given Amazon SNS topic. .. epigraph:: If an IAM role ARN is provided, the role (and only the role) is used to access all the given resources (Amazon S3 bucket, AWS KMS customer managed key and Amazon SNS topic). Therefore, setting up individual resource access permissions is not required.
10853
10874
  :param kms_key_arn: The customer managed key that Amazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket. You can use the AWS managed key or a customer managed key that you created in AWS KMS as follows: - To use the AWS managed key, provide an ARN in the form of ``arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses`` . For example, if your AWS account ID is 123456789012 and you want to use the AWS managed key in the US West (Oregon) Region, the ARN of the AWS managed key would be ``arn:aws:kms:us-west-2:123456789012:alias/aws/ses`` . If you use the AWS managed key, you don't need to perform any extra steps to give Amazon SES permission to use the key. - To use a customer managed key that you created in AWS KMS, provide the ARN of the customer managed key and ensure that you add a statement to your key's policy to give Amazon SES permission to use it. For more information about giving permissions, see the `Amazon SES Developer Guide <https://docs.aws.amazon.com/ses/latest/dg/receiving-email-permissions.html>`_ . For more information about key policies, see the `AWS KMS Developer Guide <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html>`_ . If you do not specify an AWS KMS key, Amazon SES does not encrypt your emails. .. epigraph:: Your mail is encrypted by Amazon SES using the Amazon S3 encryption client before the mail is submitted to Amazon S3 for storage. It is not encrypted using Amazon S3 server-side encryption. This means that you must use the Amazon S3 encryption client to decrypt the email after retrieving it from Amazon S3, as the service has no access to use your AWS KMS keys for decryption. This encryption client is currently available with the `AWS SDK for Java <https://docs.aws.amazon.com/sdk-for-java/>`_ and `AWS SDK for Ruby <https://docs.aws.amazon.com/sdk-for-ruby/>`_ only. For more information about client-side encryption using AWS KMS managed keys, see the `Amazon S3 Developer Guide <https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html>`_ .
10854
10875
  :param object_key_prefix: The key prefix of the Amazon S3 bucket. The key prefix is similar to a directory name that enables you to store similar data under the same directory in a bucket.
10855
10876
  :param topic_arn: The ARN of the Amazon SNS topic to notify when the message is saved to the Amazon S3 bucket. You can find the ARN of a topic by using the `ListTopics <https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html>`_ operation in Amazon SNS. For more information about Amazon SNS topics, see the `Amazon SNS Developer Guide <https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html>`_ .
@@ -10867,6 +10888,7 @@ class CfnReceiptRule(
10867
10888
  bucket_name="bucketName",
10868
10889
 
10869
10890
  # the properties below are optional
10891
+ iam_role_arn="iamRoleArn",
10870
10892
  kms_key_arn="kmsKeyArn",
10871
10893
  object_key_prefix="objectKeyPrefix",
10872
10894
  topic_arn="topicArn"
@@ -10875,12 +10897,15 @@ class CfnReceiptRule(
10875
10897
  if __debug__:
10876
10898
  type_hints = typing.get_type_hints(_typecheckingstub__39d61a089bfe9f0df546774b89ce5903a571f298fca9c95b6767da42860a40aa)
10877
10899
  check_type(argname="argument bucket_name", value=bucket_name, expected_type=type_hints["bucket_name"])
10900
+ check_type(argname="argument iam_role_arn", value=iam_role_arn, expected_type=type_hints["iam_role_arn"])
10878
10901
  check_type(argname="argument kms_key_arn", value=kms_key_arn, expected_type=type_hints["kms_key_arn"])
10879
10902
  check_type(argname="argument object_key_prefix", value=object_key_prefix, expected_type=type_hints["object_key_prefix"])
10880
10903
  check_type(argname="argument topic_arn", value=topic_arn, expected_type=type_hints["topic_arn"])
10881
10904
  self._values: typing.Dict[builtins.str, typing.Any] = {
10882
10905
  "bucket_name": bucket_name,
10883
10906
  }
10907
+ if iam_role_arn is not None:
10908
+ self._values["iam_role_arn"] = iam_role_arn
10884
10909
  if kms_key_arn is not None:
10885
10910
  self._values["kms_key_arn"] = kms_key_arn
10886
10911
  if object_key_prefix is not None:
@@ -10898,6 +10923,25 @@ class CfnReceiptRule(
10898
10923
  assert result is not None, "Required property 'bucket_name' is missing"
10899
10924
  return typing.cast(builtins.str, result)
10900
10925
 
10926
+ @builtins.property
10927
+ def iam_role_arn(self) -> typing.Optional[builtins.str]:
10928
+ '''The ARN of the IAM role to be used by Amazon Simple Email Service while writing to the Amazon S3 bucket, optionally encrypting your mail via the provided customer managed key, and publishing to the Amazon SNS topic.
10929
+
10930
+ This role should have access to the following APIs:
10931
+
10932
+ - ``s3:PutObject`` , ``kms:Encrypt`` and ``kms:GenerateDataKey`` for the given Amazon S3 bucket.
10933
+ - ``kms:GenerateDataKey`` for the given AWS KMS customer managed key.
10934
+ - ``sns:Publish`` for the given Amazon SNS topic.
10935
+
10936
+ .. epigraph::
10937
+
10938
+ If an IAM role ARN is provided, the role (and only the role) is used to access all the given resources (Amazon S3 bucket, AWS KMS customer managed key and Amazon SNS topic). Therefore, setting up individual resource access permissions is not required.
10939
+
10940
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html#cfn-ses-receiptrule-s3action-iamrolearn
10941
+ '''
10942
+ result = self._values.get("iam_role_arn")
10943
+ return typing.cast(typing.Optional[builtins.str], result)
10944
+
10901
10945
  @builtins.property
10902
10946
  def kms_key_arn(self) -> typing.Optional[builtins.str]:
10903
10947
  '''The customer managed key that Amazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket.
@@ -11261,6 +11305,7 @@ class CfnReceiptRuleProps:
11261
11305
  bucket_name="bucketName",
11262
11306
 
11263
11307
  # the properties below are optional
11308
+ iam_role_arn="iamRoleArn",
11264
11309
  kms_key_arn="kmsKeyArn",
11265
11310
  object_key_prefix="objectKeyPrefix",
11266
11311
  topic_arn="topicArn"
@@ -17674,6 +17719,7 @@ def _typecheckingstub__597a4926fee926f01951cda574fa9265912d5bc1c5bf1e98c3410d25d
17674
17719
  def _typecheckingstub__39d61a089bfe9f0df546774b89ce5903a571f298fca9c95b6767da42860a40aa(
17675
17720
  *,
17676
17721
  bucket_name: builtins.str,
17722
+ iam_role_arn: typing.Optional[builtins.str] = None,
17677
17723
  kms_key_arn: typing.Optional[builtins.str] = None,
17678
17724
  object_key_prefix: typing.Optional[builtins.str] = None,
17679
17725
  topic_arn: typing.Optional[builtins.str] = None,
@@ -29,7 +29,22 @@ import jsii
29
29
  import publication
30
30
  import typing_extensions
31
31
 
32
- from typeguard import check_type
32
+ import typeguard
33
+ from importlib.metadata import version as _metadata_package_version
34
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
35
+
36
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
37
+ if TYPEGUARD_MAJOR_VERSION <= 2:
38
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
39
+ else:
40
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
41
+ pass
42
+ else:
43
+ if TYPEGUARD_MAJOR_VERSION == 3:
44
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
45
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
46
+ else:
47
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
33
48
 
34
49
  from .._jsii import *
35
50
 
@@ -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
 
@@ -53,7 +53,22 @@ import jsii
53
53
  import publication
54
54
  import typing_extensions
55
55
 
56
- from typeguard import check_type
56
+ import typeguard
57
+ from importlib.metadata import version as _metadata_package_version
58
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
59
+
60
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
61
+ if TYPEGUARD_MAJOR_VERSION <= 2:
62
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
63
+ else:
64
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
65
+ pass
66
+ else:
67
+ if TYPEGUARD_MAJOR_VERSION == 3:
68
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
69
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
70
+ else:
71
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
57
72
 
58
73
  from .._jsii import *
59
74
 
@@ -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
 
@@ -365,7 +365,22 @@ import jsii
365
365
  import publication
366
366
  import typing_extensions
367
367
 
368
- from typeguard import check_type
368
+ import typeguard
369
+ from importlib.metadata import version as _metadata_package_version
370
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
371
+
372
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
373
+ if TYPEGUARD_MAJOR_VERSION <= 2:
374
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
375
+ else:
376
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
377
+ pass
378
+ else:
379
+ if TYPEGUARD_MAJOR_VERSION == 3:
380
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
381
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
382
+ else:
383
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
369
384
 
370
385
  from .._jsii import *
371
386
 
@@ -608,6 +623,15 @@ class CfnSubscription(
608
623
  '''The CloudFormation resource type name for this resource class.'''
609
624
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
610
625
 
626
+ @builtins.property
627
+ @jsii.member(jsii_name="attrArn")
628
+ def attr_arn(self) -> builtins.str:
629
+ '''Arn of the subscription.
630
+
631
+ :cloudformationAttribute: Arn
632
+ '''
633
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
634
+
611
635
  @builtins.property
612
636
  @jsii.member(jsii_name="attrId")
613
637
  def attr_id(self) -> builtins.str:
@@ -1104,8 +1128,8 @@ class CfnTopic(
1104
1128
  '''
1105
1129
  :param scope: Scope in which this resource is defined.
1106
1130
  :param id: Construct identifier for this resource (unique in its scope).
1107
- :param archive_policy: The archive policy determines the number of days Amazon SNS retains messages. You can set a retention period from 1 to 365 days.
1108
- :param content_based_deduplication: Enables content-based deduplication for FIFO topics. - By default, ``ContentBasedDeduplication`` is set to ``false`` . If you create a FIFO topic and this attribute is ``false`` , you must specify a value for the ``MessageDeduplicationId`` parameter for the `Publish <https://docs.aws.amazon.com/sns/latest/api/API_Publish.html>`_ action. - When you set ``ContentBasedDeduplication`` to ``true`` , Amazon SNS uses a SHA-256 hash to generate the ``MessageDeduplicationId`` using the body of the message (but not the attributes of the message). (Optional) To override the generated value, you can specify a value for the the ``MessageDeduplicationId`` parameter for the ``Publish`` action.
1131
+ :param archive_policy: The ``ArchivePolicy`` determines the number of days Amazon SNS retains messages in FIFO topics. You can set a retention period ranging from 1 to 365 days. This property is only applicable to FIFO topics; attempting to use it with standard topics will result in a creation failure.
1132
+ :param content_based_deduplication: ``ContentBasedDeduplication`` enables deduplication of messages based on their content for FIFO topics. By default, this property is set to false. If you create a FIFO topic with ``ContentBasedDeduplication`` set to false, you must provide a ``MessageDeduplicationId`` for each ``Publish`` action. When set to true, Amazon SNS automatically generates a ``MessageDeduplicationId`` using a SHA-256 hash of the message body (excluding message attributes). You can optionally override this generated value by specifying a ``MessageDeduplicationId`` in the ``Publish`` action. Note that this property only applies to FIFO topics; using it with standard topics will cause the creation to fail.
1109
1133
  :param data_protection_policy: The body of the policy document you want to use for this topic. You can only add one policy per topic. The policy must be in JSON string format. Length Constraints: Maximum length of 30,720.
1110
1134
  :param delivery_status_logging: The ``DeliveryStatusLogging`` configuration enables you to log the delivery status of messages sent from your Amazon SNS topic to subscribed endpoints with the following supported delivery protocols:. - HTTP - Amazon Kinesis Data Firehose - AWS Lambda - Platform application endpoint - Amazon Simple Queue Service Once configured, log entries are sent to Amazon CloudWatch Logs.
1111
1135
  :param display_name: The display name to use for an Amazon SNS topic with SMS subscriptions. The display name must be maximum 100 characters long, including hyphens (-), underscores (_), spaces, and tabs.
@@ -1200,7 +1224,7 @@ class CfnTopic(
1200
1224
  @builtins.property
1201
1225
  @jsii.member(jsii_name="archivePolicy")
1202
1226
  def archive_policy(self) -> typing.Any:
1203
- '''The archive policy determines the number of days Amazon SNS retains messages.'''
1227
+ '''The ``ArchivePolicy`` determines the number of days Amazon SNS retains messages in FIFO topics.'''
1204
1228
  return typing.cast(typing.Any, jsii.get(self, "archivePolicy"))
1205
1229
 
1206
1230
  @archive_policy.setter
@@ -1215,7 +1239,7 @@ class CfnTopic(
1215
1239
  def content_based_deduplication(
1216
1240
  self,
1217
1241
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
1218
- '''Enables content-based deduplication for FIFO topics.'''
1242
+ '''``ContentBasedDeduplication`` enables deduplication of messages based on their content for FIFO topics.'''
1219
1243
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "contentBasedDeduplication"))
1220
1244
 
1221
1245
  @content_based_deduplication.setter
@@ -1977,8 +2001,8 @@ class CfnTopicProps:
1977
2001
  ) -> None:
1978
2002
  '''Properties for defining a ``CfnTopic``.
1979
2003
 
1980
- :param archive_policy: The archive policy determines the number of days Amazon SNS retains messages. You can set a retention period from 1 to 365 days.
1981
- :param content_based_deduplication: Enables content-based deduplication for FIFO topics. - By default, ``ContentBasedDeduplication`` is set to ``false`` . If you create a FIFO topic and this attribute is ``false`` , you must specify a value for the ``MessageDeduplicationId`` parameter for the `Publish <https://docs.aws.amazon.com/sns/latest/api/API_Publish.html>`_ action. - When you set ``ContentBasedDeduplication`` to ``true`` , Amazon SNS uses a SHA-256 hash to generate the ``MessageDeduplicationId`` using the body of the message (but not the attributes of the message). (Optional) To override the generated value, you can specify a value for the the ``MessageDeduplicationId`` parameter for the ``Publish`` action.
2004
+ :param archive_policy: The ``ArchivePolicy`` determines the number of days Amazon SNS retains messages in FIFO topics. You can set a retention period ranging from 1 to 365 days. This property is only applicable to FIFO topics; attempting to use it with standard topics will result in a creation failure.
2005
+ :param content_based_deduplication: ``ContentBasedDeduplication`` enables deduplication of messages based on their content for FIFO topics. By default, this property is set to false. If you create a FIFO topic with ``ContentBasedDeduplication`` set to false, you must provide a ``MessageDeduplicationId`` for each ``Publish`` action. When set to true, Amazon SNS automatically generates a ``MessageDeduplicationId`` using a SHA-256 hash of the message body (excluding message attributes). You can optionally override this generated value by specifying a ``MessageDeduplicationId`` in the ``Publish`` action. Note that this property only applies to FIFO topics; using it with standard topics will cause the creation to fail.
1982
2006
  :param data_protection_policy: The body of the policy document you want to use for this topic. You can only add one policy per topic. The policy must be in JSON string format. Length Constraints: Maximum length of 30,720.
1983
2007
  :param delivery_status_logging: The ``DeliveryStatusLogging`` configuration enables you to log the delivery status of messages sent from your Amazon SNS topic to subscribed endpoints with the following supported delivery protocols:. - HTTP - Amazon Kinesis Data Firehose - AWS Lambda - Platform application endpoint - Amazon Simple Queue Service Once configured, log entries are sent to Amazon CloudWatch Logs.
1984
2008
  :param display_name: The display name to use for an Amazon SNS topic with SMS subscriptions. The display name must be maximum 100 characters long, including hyphens (-), underscores (_), spaces, and tabs.
@@ -2072,9 +2096,9 @@ class CfnTopicProps:
2072
2096
 
2073
2097
  @builtins.property
2074
2098
  def archive_policy(self) -> typing.Any:
2075
- '''The archive policy determines the number of days Amazon SNS retains messages.
2099
+ '''The ``ArchivePolicy`` determines the number of days Amazon SNS retains messages in FIFO topics.
2076
2100
 
2077
- You can set a retention period from 1 to 365 days.
2101
+ You can set a retention period ranging from 1 to 365 days. This property is only applicable to FIFO topics; attempting to use it with standard topics will result in a creation failure.
2078
2102
 
2079
2103
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-archivepolicy
2080
2104
  '''
@@ -2085,12 +2109,9 @@ class CfnTopicProps:
2085
2109
  def content_based_deduplication(
2086
2110
  self,
2087
2111
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2088
- '''Enables content-based deduplication for FIFO topics.
2089
-
2090
- - By default, ``ContentBasedDeduplication`` is set to ``false`` . If you create a FIFO topic and this attribute is ``false`` , you must specify a value for the ``MessageDeduplicationId`` parameter for the `Publish <https://docs.aws.amazon.com/sns/latest/api/API_Publish.html>`_ action.
2091
- - When you set ``ContentBasedDeduplication`` to ``true`` , Amazon SNS uses a SHA-256 hash to generate the ``MessageDeduplicationId`` using the body of the message (but not the attributes of the message).
2112
+ '''``ContentBasedDeduplication`` enables deduplication of messages based on their content for FIFO topics.
2092
2113
 
2093
- (Optional) To override the generated value, you can specify a value for the the ``MessageDeduplicationId`` parameter for the ``Publish`` action.
2114
+ By default, this property is set to false. If you create a FIFO topic with ``ContentBasedDeduplication`` set to false, you must provide a ``MessageDeduplicationId`` for each ``Publish`` action. When set to true, Amazon SNS automatically generates a ``MessageDeduplicationId`` using a SHA-256 hash of the message body (excluding message attributes). You can optionally override this generated value by specifying a ``MessageDeduplicationId`` in the ``Publish`` action. Note that this property only applies to FIFO topics; using it with standard topics will cause the creation to fail.
2094
2115
 
2095
2116
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-contentbaseddeduplication
2096
2117
  '''
@@ -133,7 +133,22 @@ import jsii
133
133
  import publication
134
134
  import typing_extensions
135
135
 
136
- from typeguard import check_type
136
+ import typeguard
137
+ from importlib.metadata import version as _metadata_package_version
138
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
139
+
140
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
141
+ if TYPEGUARD_MAJOR_VERSION <= 2:
142
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
143
+ else:
144
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
145
+ pass
146
+ else:
147
+ if TYPEGUARD_MAJOR_VERSION == 3:
148
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
149
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
150
+ else:
151
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
137
152
 
138
153
  from .._jsii import *
139
154
 
@@ -122,7 +122,22 @@ import jsii
122
122
  import publication
123
123
  import typing_extensions
124
124
 
125
- from typeguard import check_type
125
+ import typeguard
126
+ from importlib.metadata import version as _metadata_package_version
127
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
128
+
129
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
130
+ if TYPEGUARD_MAJOR_VERSION <= 2:
131
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
132
+ else:
133
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
134
+ pass
135
+ else:
136
+ if TYPEGUARD_MAJOR_VERSION == 3:
137
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
138
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
139
+ else:
140
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
126
141
 
127
142
  from .._jsii import *
128
143
 
@@ -214,7 +214,22 @@ import jsii
214
214
  import publication
215
215
  import typing_extensions
216
216
 
217
- from typeguard import check_type
217
+ import typeguard
218
+ from importlib.metadata import version as _metadata_package_version
219
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
220
+
221
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
222
+ if TYPEGUARD_MAJOR_VERSION <= 2:
223
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
224
+ else:
225
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
226
+ pass
227
+ else:
228
+ if TYPEGUARD_MAJOR_VERSION == 3:
229
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
230
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
231
+ else:
232
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
218
233
 
219
234
  from .._jsii import *
220
235
 
@@ -5879,8 +5894,8 @@ class CfnPatchBaseline(
5879
5894
 
5880
5895
  The ``PatchRules`` property of the `RuleGroup <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rulegroup.html>`_ property type contains a list of ``Rule`` property types.
5881
5896
 
5882
- :param approve_after_days: The number of days after the release date of each patch matched by the rule that the patch is marked as approved in the patch baseline. For example, a value of ``7`` means that patches are approved seven days after they are released. .. epigraph:: This parameter is marked as not required, but your request must include a value for either ``ApproveAfterDays`` or ``ApproveUntilDate`` . Not supported for Debian Server or Ubuntu Server.
5883
- :param approve_until_date: The cutoff date for auto approval of released patches. Any patches released on or before this date are installed automatically. Enter dates in the format ``YYYY-MM-DD`` . For example, ``2024-12-31`` . .. epigraph:: This parameter is marked as not required, but your request must include a value for either ``ApproveUntilDate`` or ``ApproveAfterDays`` . Not supported for Debian Server or Ubuntu Server.
5897
+ :param approve_after_days: The number of days after the release date of each patch matched by the rule that the patch is marked as approved in the patch baseline. For example, a value of ``7`` means that patches are approved seven days after they are released. This parameter is marked as ``Required: No`` , but your request must include a value for either ``ApproveAfterDays`` or ``ApproveUntilDate`` . Not supported for Debian Server or Ubuntu Server. .. epigraph:: Use caution when setting this value for Windows Server patch baselines. Because patch updates that are replaced by later updates are removed, setting too broad a value for this parameter can result in crucial patches not being installed. For more information, see the *Windows Server* tab in the topic `How security patches are selected <https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-selecting-patches.html>`_ in the *AWS Systems Manager User Guide* .
5898
+ :param approve_until_date: The cutoff date for auto approval of released patches. Any patches released on or before this date are installed automatically. Enter dates in the format ``YYYY-MM-DD`` . For example, ``2024-12-31`` . This parameter is marked as ``Required: No`` , but your request must include a value for either ``ApproveUntilDate`` or ``ApproveAfterDays`` . Not supported for Debian Server or Ubuntu Server. .. epigraph:: Use caution when setting this value for Windows Server patch baselines. Because patch updates that are replaced by later updates are removed, setting too broad a value for this parameter can result in crucial patches not being installed. For more information, see the *Windows Server* tab in the topic `How security patches are selected <https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-selecting-patches.html>`_ in the *AWS Systems Manager User Guide* .
5884
5899
  :param compliance_level: A compliance severity level for all approved patches in a patch baseline. Valid compliance severity levels include the following: ``UNSPECIFIED`` , ``CRITICAL`` , ``HIGH`` , ``MEDIUM`` , ``LOW`` , and ``INFORMATIONAL`` .
5885
5900
  :param enable_non_security: For managed nodes identified by the approval rule filters, enables a patch baseline to apply non-security updates available in the specified repository. The default value is ``false`` . Applies to Linux managed nodes only. Default: - false
5886
5901
  :param patch_filter_group: The patch filter group that defines the criteria for the rule.
@@ -5931,11 +5946,13 @@ class CfnPatchBaseline(
5931
5946
  '''The number of days after the release date of each patch matched by the rule that the patch is marked as approved in the patch baseline.
5932
5947
 
5933
5948
  For example, a value of ``7`` means that patches are approved seven days after they are released.
5934
- .. epigraph::
5935
5949
 
5936
- This parameter is marked as not required, but your request must include a value for either ``ApproveAfterDays`` or ``ApproveUntilDate`` .
5950
+ This parameter is marked as ``Required: No`` , but your request must include a value for either ``ApproveAfterDays`` or ``ApproveUntilDate`` .
5937
5951
 
5938
5952
  Not supported for Debian Server or Ubuntu Server.
5953
+ .. epigraph::
5954
+
5955
+ Use caution when setting this value for Windows Server patch baselines. Because patch updates that are replaced by later updates are removed, setting too broad a value for this parameter can result in crucial patches not being installed. For more information, see the *Windows Server* tab in the topic `How security patches are selected <https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-selecting-patches.html>`_ in the *AWS Systems Manager User Guide* .
5939
5956
 
5940
5957
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html#cfn-ssm-patchbaseline-rule-approveafterdays
5941
5958
  '''
@@ -5949,11 +5966,13 @@ class CfnPatchBaseline(
5949
5966
  Any patches released on or before this date are installed automatically.
5950
5967
 
5951
5968
  Enter dates in the format ``YYYY-MM-DD`` . For example, ``2024-12-31`` .
5952
- .. epigraph::
5953
5969
 
5954
- This parameter is marked as not required, but your request must include a value for either ``ApproveUntilDate`` or ``ApproveAfterDays`` .
5970
+ This parameter is marked as ``Required: No`` , but your request must include a value for either ``ApproveUntilDate`` or ``ApproveAfterDays`` .
5955
5971
 
5956
5972
  Not supported for Debian Server or Ubuntu Server.
5973
+ .. epigraph::
5974
+
5975
+ Use caution when setting this value for Windows Server patch baselines. Because patch updates that are replaced by later updates are removed, setting too broad a value for this parameter can result in crucial patches not being installed. For more information, see the *Windows Server* tab in the topic `How security patches are selected <https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-selecting-patches.html>`_ in the *AWS Systems Manager User Guide* .
5957
5976
 
5958
5977
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html#cfn-ssm-patchbaseline-rule-approveuntildate
5959
5978
  '''
@@ -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