aws-cdk-lib 2.195.0__py3-none-any.whl → 2.224.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 (572) hide show
  1. aws_cdk/__init__.py +1806 -417
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.195.0.jsii.tgz → aws-cdk-lib@2.224.0.jsii.tgz} +0 -0
  4. aws_cdk/alexa_ask/__init__.py +12 -2
  5. aws_cdk/aws_accessanalyzer/__init__.py +323 -6
  6. aws_cdk/aws_acmpca/__init__.py +53 -10
  7. aws_cdk/aws_aiops/__init__.py +1019 -0
  8. aws_cdk/aws_amazonmq/__init__.py +357 -313
  9. aws_cdk/aws_amplify/__init__.py +173 -17
  10. aws_cdk/aws_amplifyuibuilder/__init__.py +35 -6
  11. aws_cdk/aws_apigateway/__init__.py +1245 -215
  12. aws_cdk/aws_apigatewayv2/__init__.py +3890 -476
  13. aws_cdk/aws_apigatewayv2_integrations/__init__.py +94 -16
  14. aws_cdk/aws_appconfig/__init__.py +618 -91
  15. aws_cdk/aws_appflow/__init__.py +151 -6
  16. aws_cdk/aws_appintegrations/__init__.py +546 -6
  17. aws_cdk/aws_applicationautoscaling/__init__.py +75 -10
  18. aws_cdk/aws_applicationinsights/__init__.py +13 -2
  19. aws_cdk/aws_applicationsignals/__init__.py +374 -6
  20. aws_cdk/aws_appmesh/__init__.py +136 -26
  21. aws_cdk/aws_apprunner/__init__.py +66 -18
  22. aws_cdk/aws_appstream/__init__.py +309 -55
  23. aws_cdk/aws_appsync/__init__.py +350 -94
  24. aws_cdk/aws_apptest/__init__.py +71 -2
  25. aws_cdk/aws_aps/__init__.py +2188 -94
  26. aws_cdk/aws_arcregionswitch/__init__.py +5095 -0
  27. aws_cdk/aws_arczonalshift/__init__.py +39 -12
  28. aws_cdk/aws_athena/__init__.py +365 -29
  29. aws_cdk/aws_auditmanager/__init__.py +71 -2
  30. aws_cdk/aws_autoscaling/__init__.py +165 -60
  31. aws_cdk/aws_autoscaling_common/__init__.py +3 -0
  32. aws_cdk/aws_autoscalingplans/__init__.py +13 -2
  33. aws_cdk/aws_b2bi/__init__.py +1819 -99
  34. aws_cdk/aws_backup/__init__.py +370 -42
  35. aws_cdk/aws_backupgateway/__init__.py +13 -2
  36. aws_cdk/aws_batch/__init__.py +1462 -163
  37. aws_cdk/aws_bcmdataexports/__init__.py +21 -2
  38. aws_cdk/aws_bedrock/__init__.py +7867 -727
  39. aws_cdk/aws_bedrockagentcore/__init__.py +10425 -0
  40. aws_cdk/aws_billingconductor/__init__.py +197 -11
  41. aws_cdk/aws_budgets/__init__.py +611 -4
  42. aws_cdk/aws_cassandra/__init__.py +247 -6
  43. aws_cdk/aws_ce/__init__.py +35 -6
  44. aws_cdk/aws_certificatemanager/__init__.py +258 -32
  45. aws_cdk/aws_chatbot/__init__.py +76 -6
  46. aws_cdk/aws_cleanrooms/__init__.py +709 -206
  47. aws_cdk/aws_cleanroomsml/__init__.py +13 -2
  48. aws_cdk/aws_cloud9/__init__.py +13 -2
  49. aws_cdk/aws_cloudformation/__init__.py +362 -189
  50. aws_cdk/aws_cloudfront/__init__.py +2188 -674
  51. aws_cdk/aws_cloudfront/experimental/__init__.py +114 -16
  52. aws_cdk/aws_cloudfront_origins/__init__.py +615 -74
  53. aws_cdk/aws_cloudtrail/__init__.py +311 -21
  54. aws_cdk/aws_cloudwatch/__init__.py +3093 -1038
  55. aws_cdk/aws_cloudwatch_actions/__init__.py +75 -1
  56. aws_cdk/aws_codeartifact/__init__.py +35 -6
  57. aws_cdk/aws_codebuild/__init__.py +1303 -135
  58. aws_cdk/aws_codecommit/__init__.py +29 -9
  59. aws_cdk/aws_codeconnections/__init__.py +13 -2
  60. aws_cdk/aws_codedeploy/__init__.py +130 -6
  61. aws_cdk/aws_codeguruprofiler/__init__.py +80 -2
  62. aws_cdk/aws_codegurureviewer/__init__.py +13 -2
  63. aws_cdk/aws_codepipeline/__init__.py +177 -71
  64. aws_cdk/aws_codepipeline_actions/__init__.py +753 -4
  65. aws_cdk/aws_codestar/__init__.py +13 -2
  66. aws_cdk/aws_codestarconnections/__init__.py +35 -6
  67. aws_cdk/aws_codestarnotifications/__init__.py +22 -2
  68. aws_cdk/aws_cognito/__init__.py +905 -92
  69. aws_cdk/aws_cognito_identitypool/__init__.py +23 -12
  70. aws_cdk/aws_comprehend/__init__.py +24 -4
  71. aws_cdk/aws_config/__init__.py +227 -30
  72. aws_cdk/aws_connect/__init__.py +2736 -191
  73. aws_cdk/aws_connectcampaigns/__init__.py +13 -2
  74. aws_cdk/aws_connectcampaignsv2/__init__.py +268 -6
  75. aws_cdk/aws_controltower/__init__.py +35 -6
  76. aws_cdk/aws_cur/__init__.py +100 -4
  77. aws_cdk/aws_customerprofiles/__init__.py +617 -27
  78. aws_cdk/aws_databrew/__init__.py +68 -12
  79. aws_cdk/aws_datapipeline/__init__.py +42 -2
  80. aws_cdk/aws_datasync/__init__.py +1514 -977
  81. aws_cdk/aws_datazone/__init__.py +7426 -1763
  82. aws_cdk/aws_dax/__init__.py +83 -6
  83. aws_cdk/aws_deadline/__init__.py +511 -36
  84. aws_cdk/aws_detective/__init__.py +35 -6
  85. aws_cdk/aws_devicefarm/__init__.py +68 -12
  86. aws_cdk/aws_devopsguru/__init__.py +37 -6
  87. aws_cdk/aws_directoryservice/__init__.py +53 -4
  88. aws_cdk/aws_dlm/__init__.py +13 -2
  89. aws_cdk/aws_dms/__init__.py +184 -27
  90. aws_cdk/aws_docdb/__init__.py +350 -49
  91. aws_cdk/aws_docdbelastic/__init__.py +13 -2
  92. aws_cdk/aws_dsql/__init__.py +386 -16
  93. aws_cdk/aws_dynamodb/__init__.py +1479 -170
  94. aws_cdk/aws_ec2/__init__.py +10465 -1335
  95. aws_cdk/aws_ecr/__init__.py +637 -43
  96. aws_cdk/aws_ecr_assets/__init__.py +10 -0
  97. aws_cdk/aws_ecs/__init__.py +6629 -490
  98. aws_cdk/aws_ecs_patterns/__init__.py +124 -12
  99. aws_cdk/aws_efs/__init__.py +276 -24
  100. aws_cdk/aws_eks/__init__.py +1132 -227
  101. aws_cdk/aws_elasticache/__init__.py +378 -25
  102. aws_cdk/aws_elasticbeanstalk/__init__.py +75 -8
  103. aws_cdk/aws_elasticloadbalancing/__init__.py +22 -2
  104. aws_cdk/aws_elasticloadbalancingv2/__init__.py +1796 -123
  105. aws_cdk/aws_elasticsearch/__init__.py +291 -9
  106. aws_cdk/aws_emr/__init__.py +219 -18
  107. aws_cdk/aws_emrcontainers/__init__.py +71 -2
  108. aws_cdk/aws_emrserverless/__init__.py +188 -3
  109. aws_cdk/aws_entityresolution/__init__.py +585 -58
  110. aws_cdk/aws_events/__init__.py +1007 -126
  111. aws_cdk/aws_events_targets/__init__.py +398 -65
  112. aws_cdk/aws_eventschemas/__init__.py +46 -8
  113. aws_cdk/aws_evidently/__init__.py +57 -10
  114. aws_cdk/aws_evs/__init__.py +2244 -0
  115. aws_cdk/aws_finspace/__init__.py +71 -2
  116. aws_cdk/aws_fis/__init__.py +26 -4
  117. aws_cdk/aws_fms/__init__.py +35 -6
  118. aws_cdk/aws_forecast/__init__.py +24 -4
  119. aws_cdk/aws_frauddetector/__init__.py +79 -14
  120. aws_cdk/aws_fsx/__init__.py +1349 -127
  121. aws_cdk/aws_gamelift/__init__.py +755 -94
  122. aws_cdk/aws_gameliftstreams/__init__.py +44 -22
  123. aws_cdk/aws_globalaccelerator/__init__.py +73 -14
  124. aws_cdk/aws_glue/__init__.py +1455 -378
  125. aws_cdk/aws_grafana/__init__.py +13 -2
  126. aws_cdk/aws_greengrass/__init__.py +654 -32
  127. aws_cdk/aws_greengrassv2/__init__.py +53 -4
  128. aws_cdk/aws_groundstation/__init__.py +122 -6
  129. aws_cdk/aws_guardduty/__init__.py +1613 -123
  130. aws_cdk/aws_healthimaging/__init__.py +71 -2
  131. aws_cdk/aws_healthlake/__init__.py +42 -2
  132. aws_cdk/aws_iam/__init__.py +921 -141
  133. aws_cdk/aws_identitystore/__init__.py +24 -4
  134. aws_cdk/aws_imagebuilder/__init__.py +1454 -199
  135. aws_cdk/aws_inspector/__init__.py +44 -6
  136. aws_cdk/aws_inspectorv2/__init__.py +2285 -243
  137. aws_cdk/aws_internetmonitor/__init__.py +71 -2
  138. aws_cdk/aws_invoicing/__init__.py +13 -2
  139. aws_cdk/aws_iot/__init__.py +1760 -64
  140. aws_cdk/aws_iotanalytics/__init__.py +162 -8
  141. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +106 -40
  142. aws_cdk/aws_iotevents/__init__.py +122 -6
  143. aws_cdk/aws_iotfleethub/__init__.py +71 -2
  144. aws_cdk/aws_iotfleetwise/__init__.py +195 -14
  145. aws_cdk/aws_iotsitewise/__init__.py +1837 -89
  146. aws_cdk/aws_iotthingsgraph/__init__.py +13 -2
  147. aws_cdk/aws_iottwinmaker/__init__.py +115 -10
  148. aws_cdk/aws_iotwireless/__init__.py +649 -22
  149. aws_cdk/aws_ivs/__init__.py +561 -57
  150. aws_cdk/aws_ivschat/__init__.py +24 -4
  151. aws_cdk/aws_kafkaconnect/__init__.py +35 -6
  152. aws_cdk/aws_kendra/__init__.py +120 -28
  153. aws_cdk/aws_kendraranking/__init__.py +13 -2
  154. aws_cdk/aws_kinesis/__init__.py +641 -23
  155. aws_cdk/aws_kinesisanalytics/__init__.py +467 -96
  156. aws_cdk/aws_kinesisanalyticsv2/__init__.py +207 -19
  157. aws_cdk/aws_kinesisfirehose/__init__.py +3087 -295
  158. aws_cdk/aws_kinesisvideo/__init__.py +24 -4
  159. aws_cdk/aws_kms/__init__.py +204 -45
  160. aws_cdk/aws_lakeformation/__init__.py +80 -15
  161. aws_cdk/aws_lambda/__init__.py +2236 -297
  162. aws_cdk/aws_lambda_event_sources/__init__.py +638 -1
  163. aws_cdk/aws_lambda_nodejs/__init__.py +63 -24
  164. aws_cdk/aws_launchwizard/__init__.py +13 -2
  165. aws_cdk/aws_lex/__init__.py +2162 -212
  166. aws_cdk/aws_licensemanager/__init__.py +24 -4
  167. aws_cdk/aws_lightsail/__init__.py +2958 -1322
  168. aws_cdk/aws_location/__init__.py +618 -14
  169. aws_cdk/aws_logs/__init__.py +6014 -923
  170. aws_cdk/aws_lookoutequipment/__init__.py +13 -2
  171. aws_cdk/aws_lookoutmetrics/__init__.py +38 -6
  172. aws_cdk/aws_lookoutvision/__init__.py +71 -2
  173. aws_cdk/aws_m2/__init__.py +94 -19
  174. aws_cdk/aws_macie/__init__.py +49 -11
  175. aws_cdk/aws_managedblockchain/__init__.py +180 -6
  176. aws_cdk/aws_mediaconnect/__init__.py +101 -18
  177. aws_cdk/aws_mediaconvert/__init__.py +35 -6
  178. aws_cdk/aws_medialive/__init__.py +1938 -532
  179. aws_cdk/aws_mediapackage/__init__.py +59 -12
  180. aws_cdk/aws_mediapackagev2/__init__.py +1616 -233
  181. aws_cdk/aws_mediastore/__init__.py +13 -2
  182. aws_cdk/aws_mediatailor/__init__.py +583 -12
  183. aws_cdk/aws_memorydb/__init__.py +271 -12
  184. aws_cdk/aws_mpa/__init__.py +1495 -0
  185. aws_cdk/aws_msk/__init__.py +108 -22
  186. aws_cdk/aws_mwaa/__init__.py +121 -9
  187. aws_cdk/aws_neptune/__init__.py +290 -78
  188. aws_cdk/aws_neptunegraph/__init__.py +24 -4
  189. aws_cdk/aws_networkfirewall/__init__.py +1184 -164
  190. aws_cdk/aws_networkmanager/__init__.py +349 -33
  191. aws_cdk/aws_nimblestudio/__init__.py +283 -408
  192. aws_cdk/aws_notifications/__init__.py +317 -12
  193. aws_cdk/aws_notificationscontacts/__init__.py +13 -2
  194. aws_cdk/aws_oam/__init__.py +24 -4
  195. aws_cdk/aws_observabilityadmin/__init__.py +2561 -0
  196. aws_cdk/aws_odb/__init__.py +5872 -0
  197. aws_cdk/aws_omics/__init__.py +2967 -162
  198. aws_cdk/aws_opensearchserverless/__init__.py +312 -37
  199. aws_cdk/aws_opensearchservice/__init__.py +501 -19
  200. aws_cdk/aws_opsworks/__init__.py +235 -139
  201. aws_cdk/aws_opsworkscm/__init__.py +16 -52
  202. aws_cdk/aws_organizations/__init__.py +70 -10
  203. aws_cdk/aws_osis/__init__.py +167 -2
  204. aws_cdk/aws_panorama/__init__.py +181 -9
  205. aws_cdk/aws_paymentcryptography/__init__.py +24 -4
  206. aws_cdk/aws_pcaconnectorad/__init__.py +59 -10
  207. aws_cdk/aws_pcaconnectorscep/__init__.py +24 -4
  208. aws_cdk/aws_pcs/__init__.py +516 -64
  209. aws_cdk/aws_personalize/__init__.py +46 -8
  210. aws_cdk/aws_pinpoint/__init__.py +329 -38
  211. aws_cdk/aws_pinpointemail/__init__.py +48 -8
  212. aws_cdk/aws_pipes/__init__.py +12 -2
  213. aws_cdk/aws_proton/__init__.py +37 -6
  214. aws_cdk/aws_qbusiness/__init__.py +635 -34
  215. aws_cdk/aws_qldb/__init__.py +24 -4
  216. aws_cdk/aws_quicksight/__init__.py +7900 -1160
  217. aws_cdk/aws_ram/__init__.py +24 -4
  218. aws_cdk/aws_rbin/__init__.py +12 -2
  219. aws_cdk/aws_rds/__init__.py +3721 -573
  220. aws_cdk/aws_redshift/__init__.py +143 -20
  221. aws_cdk/aws_redshiftserverless/__init__.py +699 -11
  222. aws_cdk/aws_refactorspaces/__init__.py +64 -14
  223. aws_cdk/aws_rekognition/__init__.py +93 -6
  224. aws_cdk/aws_resiliencehub/__init__.py +24 -4
  225. aws_cdk/aws_resourceexplorer2/__init__.py +35 -6
  226. aws_cdk/aws_resourcegroups/__init__.py +82 -4
  227. aws_cdk/aws_robomaker/__init__.py +72 -12
  228. aws_cdk/aws_rolesanywhere/__init__.py +194 -19
  229. aws_cdk/aws_route53/__init__.py +3965 -1436
  230. aws_cdk/aws_route53_targets/__init__.py +3 -0
  231. aws_cdk/aws_route53profiles/__init__.py +37 -6
  232. aws_cdk/aws_route53recoverycontrol/__init__.py +46 -8
  233. aws_cdk/aws_route53recoveryreadiness/__init__.py +104 -8
  234. aws_cdk/aws_route53resolver/__init__.py +189 -40
  235. aws_cdk/aws_rtbfabric/__init__.py +3498 -0
  236. aws_cdk/aws_rum/__init__.py +13 -2
  237. aws_cdk/aws_s3/__init__.py +1742 -221
  238. aws_cdk/aws_s3_assets/__init__.py +11 -11
  239. aws_cdk/aws_s3_deployment/__init__.py +153 -11
  240. aws_cdk/aws_s3_notifications/__init__.py +7 -7
  241. aws_cdk/aws_s3express/__init__.py +1053 -6
  242. aws_cdk/aws_s3objectlambda/__init__.py +68 -16
  243. aws_cdk/aws_s3outposts/__init__.py +46 -8
  244. aws_cdk/aws_s3tables/__init__.py +2000 -323
  245. aws_cdk/aws_s3vectors/__init__.py +1378 -0
  246. aws_cdk/aws_sagemaker/__init__.py +6848 -373
  247. aws_cdk/aws_sam/__init__.py +79 -14
  248. aws_cdk/aws_scheduler/__init__.py +249 -4
  249. aws_cdk/aws_sdb/__init__.py +12 -2
  250. aws_cdk/aws_secretsmanager/__init__.py +194 -14
  251. aws_cdk/aws_securityhub/__init__.py +3121 -176
  252. aws_cdk/aws_securitylake/__init__.py +46 -8
  253. aws_cdk/aws_servicecatalog/__init__.py +429 -246
  254. aws_cdk/aws_servicecatalogappregistry/__init__.py +164 -8
  255. aws_cdk/aws_servicediscovery/__init__.py +188 -47
  256. aws_cdk/aws_ses/__init__.py +2265 -369
  257. aws_cdk/aws_shield/__init__.py +46 -8
  258. aws_cdk/aws_signer/__init__.py +33 -4
  259. aws_cdk/aws_simspaceweaver/__init__.py +42 -2
  260. aws_cdk/aws_smsvoice/__init__.py +4716 -0
  261. aws_cdk/aws_sns/__init__.py +263 -29
  262. aws_cdk/aws_sns_subscriptions/__init__.py +265 -2
  263. aws_cdk/aws_sqs/__init__.py +223 -14
  264. aws_cdk/aws_ssm/__init__.py +413 -58
  265. aws_cdk/aws_ssmcontacts/__init__.py +98 -9
  266. aws_cdk/aws_ssmguiconnect/__init__.py +20 -9
  267. aws_cdk/aws_ssmincidents/__init__.py +24 -4
  268. aws_cdk/aws_ssmquicksetup/__init__.py +393 -8
  269. aws_cdk/aws_sso/__init__.py +70 -12
  270. aws_cdk/aws_stepfunctions/__init__.py +823 -94
  271. aws_cdk/aws_stepfunctions_tasks/__init__.py +2323 -150
  272. aws_cdk/aws_supportapp/__init__.py +39 -6
  273. aws_cdk/aws_synthetics/__init__.py +1088 -126
  274. aws_cdk/aws_systemsmanagersap/__init__.py +13 -2
  275. aws_cdk/aws_timestream/__init__.py +104 -8
  276. aws_cdk/aws_transfer/__init__.py +784 -87
  277. aws_cdk/aws_verifiedpermissions/__init__.py +306 -13
  278. aws_cdk/aws_voiceid/__init__.py +54 -5
  279. aws_cdk/aws_vpclattice/__init__.py +589 -231
  280. aws_cdk/aws_waf/__init__.py +79 -14
  281. aws_cdk/aws_wafregional/__init__.py +123 -22
  282. aws_cdk/aws_wafv2/__init__.py +1183 -64
  283. aws_cdk/aws_wisdom/__init__.py +1403 -90
  284. aws_cdk/aws_workspaces/__init__.py +134 -6
  285. aws_cdk/aws_workspacesinstances/__init__.py +3940 -0
  286. aws_cdk/aws_workspacesthinclient/__init__.py +79 -10
  287. aws_cdk/aws_workspacesweb/__init__.py +1057 -141
  288. aws_cdk/aws_xray/__init__.py +48 -8
  289. aws_cdk/cloud_assembly_schema/__init__.py +368 -48
  290. aws_cdk/custom_resources/__init__.py +58 -12
  291. aws_cdk/cx_api/__init__.py +125 -21
  292. aws_cdk/interfaces/__init__.py +739 -0
  293. aws_cdk/interfaces/alexa_ask/__init__.py +146 -0
  294. aws_cdk/interfaces/aws_accessanalyzer/__init__.py +146 -0
  295. aws_cdk/interfaces/aws_acmpca/__init__.py +501 -0
  296. aws_cdk/interfaces/aws_aiops/__init__.py +146 -0
  297. aws_cdk/interfaces/aws_amazonmq/__init__.py +386 -0
  298. aws_cdk/interfaces/aws_amplify/__init__.py +352 -0
  299. aws_cdk/interfaces/aws_amplifyuibuilder/__init__.py +454 -0
  300. aws_cdk/interfaces/aws_apigateway/__init__.py +2486 -0
  301. aws_cdk/interfaces/aws_apigatewayv2/__init__.py +1651 -0
  302. aws_cdk/interfaces/aws_appconfig/__init__.py +1020 -0
  303. aws_cdk/interfaces/aws_appflow/__init__.py +404 -0
  304. aws_cdk/interfaces/aws_appintegrations/__init__.py +396 -0
  305. aws_cdk/interfaces/aws_applicationautoscaling/__init__.py +307 -0
  306. aws_cdk/interfaces/aws_applicationinsights/__init__.py +148 -0
  307. aws_cdk/interfaces/aws_applicationsignals/__init__.py +358 -0
  308. aws_cdk/interfaces/aws_appmesh/__init__.py +888 -0
  309. aws_cdk/interfaces/aws_apprunner/__init__.py +564 -0
  310. aws_cdk/interfaces/aws_appstream/__init__.py +1482 -0
  311. aws_cdk/interfaces/aws_appsync/__init__.py +1326 -0
  312. aws_cdk/interfaces/aws_apptest/__init__.py +163 -0
  313. aws_cdk/interfaces/aws_aps/__init__.py +558 -0
  314. aws_cdk/interfaces/aws_arcregionswitch/__init__.py +146 -0
  315. aws_cdk/interfaces/aws_arczonalshift/__init__.py +273 -0
  316. aws_cdk/interfaces/aws_athena/__init__.py +575 -0
  317. aws_cdk/interfaces/aws_auditmanager/__init__.py +163 -0
  318. aws_cdk/interfaces/aws_autoscaling/__init__.py +705 -0
  319. aws_cdk/interfaces/aws_autoscalingplans/__init__.py +148 -0
  320. aws_cdk/interfaces/aws_b2bi/__init__.py +524 -0
  321. aws_cdk/interfaces/aws_backup/__init__.py +955 -0
  322. aws_cdk/interfaces/aws_backupgateway/__init__.py +146 -0
  323. aws_cdk/interfaces/aws_batch/__init__.py +681 -0
  324. aws_cdk/interfaces/aws_bcmdataexports/__init__.py +146 -0
  325. aws_cdk/interfaces/aws_bedrock/__init__.py +1942 -0
  326. aws_cdk/interfaces/aws_bedrockagentcore/__init__.py +934 -0
  327. aws_cdk/interfaces/aws_billing/__init__.py +146 -0
  328. aws_cdk/interfaces/aws_billingconductor/__init__.py +463 -0
  329. aws_cdk/interfaces/aws_budgets/__init__.py +261 -0
  330. aws_cdk/interfaces/aws_cassandra/__init__.py +381 -0
  331. aws_cdk/interfaces/aws_ce/__init__.py +352 -0
  332. aws_cdk/interfaces/aws_certificatemanager/__init__.py +251 -0
  333. aws_cdk/interfaces/aws_chatbot/__init__.py +366 -0
  334. aws_cdk/interfaces/aws_cleanrooms/__init__.py +1103 -0
  335. aws_cdk/interfaces/aws_cleanroomsml/__init__.py +148 -0
  336. aws_cdk/interfaces/aws_cloud9/__init__.py +166 -0
  337. aws_cdk/interfaces/aws_cloudformation/__init__.py +1919 -0
  338. aws_cdk/interfaces/aws_cloudfront/__init__.py +1998 -0
  339. aws_cdk/interfaces/aws_cloudtrail/__init__.py +570 -0
  340. aws_cdk/interfaces/aws_cloudwatch/__init__.py +733 -0
  341. aws_cdk/interfaces/aws_codeartifact/__init__.py +352 -0
  342. aws_cdk/interfaces/aws_codebuild/__init__.py +487 -0
  343. aws_cdk/interfaces/aws_codecommit/__init__.py +163 -0
  344. aws_cdk/interfaces/aws_codeconnections/__init__.py +146 -0
  345. aws_cdk/interfaces/aws_codedeploy/__init__.py +352 -0
  346. aws_cdk/interfaces/aws_codeguruprofiler/__init__.py +168 -0
  347. aws_cdk/interfaces/aws_codegurureviewer/__init__.py +148 -0
  348. aws_cdk/interfaces/aws_codepipeline/__init__.py +388 -0
  349. aws_cdk/interfaces/aws_codestar/__init__.py +146 -0
  350. aws_cdk/interfaces/aws_codestarconnections/__init__.py +370 -0
  351. aws_cdk/interfaces/aws_codestarnotifications/__init__.py +148 -0
  352. aws_cdk/interfaces/aws_cognito/__init__.py +1929 -0
  353. aws_cdk/interfaces/aws_comprehend/__init__.py +251 -0
  354. aws_cdk/interfaces/aws_config/__init__.py +1165 -0
  355. aws_cdk/interfaces/aws_connect/__init__.py +2949 -0
  356. aws_cdk/interfaces/aws_connectcampaigns/__init__.py +146 -0
  357. aws_cdk/interfaces/aws_connectcampaignsv2/__init__.py +146 -0
  358. aws_cdk/interfaces/aws_controltower/__init__.py +394 -0
  359. aws_cdk/interfaces/aws_cur/__init__.py +146 -0
  360. aws_cdk/interfaces/aws_customerprofiles/__init__.py +915 -0
  361. aws_cdk/interfaces/aws_databrew/__init__.py +661 -0
  362. aws_cdk/interfaces/aws_datapipeline/__init__.py +146 -0
  363. aws_cdk/interfaces/aws_datasync/__init__.py +1384 -0
  364. aws_cdk/interfaces/aws_datazone/__init__.py +2238 -0
  365. aws_cdk/interfaces/aws_dax/__init__.py +364 -0
  366. aws_cdk/interfaces/aws_deadline/__init__.py +1303 -0
  367. aws_cdk/interfaces/aws_detective/__init__.py +364 -0
  368. aws_cdk/interfaces/aws_devicefarm/__init__.py +663 -0
  369. aws_cdk/interfaces/aws_devopsguru/__init__.py +362 -0
  370. aws_cdk/interfaces/aws_directoryservice/__init__.py +251 -0
  371. aws_cdk/interfaces/aws_dlm/__init__.py +166 -0
  372. aws_cdk/interfaces/aws_dms/__init__.py +1176 -0
  373. aws_cdk/interfaces/aws_docdb/__init__.py +560 -0
  374. aws_cdk/interfaces/aws_docdbelastic/__init__.py +146 -0
  375. aws_cdk/interfaces/aws_dsql/__init__.py +146 -0
  376. aws_cdk/interfaces/aws_dynamodb/__init__.py +278 -0
  377. aws_cdk/interfaces/aws_ec2/__init__.py +11963 -0
  378. aws_cdk/interfaces/aws_ecr/__init__.py +814 -0
  379. aws_cdk/interfaces/aws_ecs/__init__.py +845 -0
  380. aws_cdk/interfaces/aws_efs/__init__.py +392 -0
  381. aws_cdk/interfaces/aws_eks/__init__.py +948 -0
  382. aws_cdk/interfaces/aws_elasticache/__init__.py +1108 -0
  383. aws_cdk/interfaces/aws_elasticbeanstalk/__init__.py +503 -0
  384. aws_cdk/interfaces/aws_elasticloadbalancing/__init__.py +148 -0
  385. aws_cdk/interfaces/aws_elasticloadbalancingv2/__init__.py +795 -0
  386. aws_cdk/interfaces/aws_elasticsearch/__init__.py +158 -0
  387. aws_cdk/interfaces/aws_emr/__init__.py +913 -0
  388. aws_cdk/interfaces/aws_emrcontainers/__init__.py +168 -0
  389. aws_cdk/interfaces/aws_emrserverless/__init__.py +166 -0
  390. aws_cdk/interfaces/aws_entityresolution/__init__.py +608 -0
  391. aws_cdk/interfaces/aws_events/__init__.py +872 -0
  392. aws_cdk/interfaces/aws_eventschemas/__init__.py +455 -0
  393. aws_cdk/interfaces/aws_evidently/__init__.py +558 -0
  394. aws_cdk/interfaces/aws_evs/__init__.py +166 -0
  395. aws_cdk/interfaces/aws_finspace/__init__.py +166 -0
  396. aws_cdk/interfaces/aws_fis/__init__.py +271 -0
  397. aws_cdk/interfaces/aws_fms/__init__.py +364 -0
  398. aws_cdk/interfaces/aws_forecast/__init__.py +249 -0
  399. aws_cdk/interfaces/aws_frauddetector/__init__.py +764 -0
  400. aws_cdk/interfaces/aws_fsx/__init__.py +663 -0
  401. aws_cdk/interfaces/aws_gamelift/__init__.py +1325 -0
  402. aws_cdk/interfaces/aws_gameliftstreams/__init__.py +249 -0
  403. aws_cdk/interfaces/aws_globalaccelerator/__init__.py +461 -0
  404. aws_cdk/interfaces/aws_glue/__init__.py +2377 -0
  405. aws_cdk/interfaces/aws_grafana/__init__.py +146 -0
  406. aws_cdk/interfaces/aws_greengrass/__init__.py +1871 -0
  407. aws_cdk/interfaces/aws_greengrassv2/__init__.py +251 -0
  408. aws_cdk/interfaces/aws_groundstation/__init__.py +396 -0
  409. aws_cdk/interfaces/aws_guardduty/__init__.py +1225 -0
  410. aws_cdk/interfaces/aws_healthimaging/__init__.py +163 -0
  411. aws_cdk/interfaces/aws_healthlake/__init__.py +146 -0
  412. aws_cdk/interfaces/aws_iam/__init__.py +1803 -0
  413. aws_cdk/interfaces/aws_identitystore/__init__.py +288 -0
  414. aws_cdk/interfaces/aws_imagebuilder/__init__.py +984 -0
  415. aws_cdk/interfaces/aws_inspector/__init__.py +354 -0
  416. aws_cdk/interfaces/aws_inspectorv2/__init__.py +467 -0
  417. aws_cdk/interfaces/aws_internetmonitor/__init__.py +163 -0
  418. aws_cdk/interfaces/aws_invoicing/__init__.py +146 -0
  419. aws_cdk/interfaces/aws_iot/__init__.py +3483 -0
  420. aws_cdk/interfaces/aws_iotanalytics/__init__.py +455 -0
  421. aws_cdk/interfaces/aws_iotcoredeviceadvisor/__init__.py +168 -0
  422. aws_cdk/interfaces/aws_iotevents/__init__.py +352 -0
  423. aws_cdk/interfaces/aws_iotfleethub/__init__.py +166 -0
  424. aws_cdk/interfaces/aws_iotfleetwise/__init__.py +892 -0
  425. aws_cdk/interfaces/aws_iotsitewise/__init__.py +1097 -0
  426. aws_cdk/interfaces/aws_iotthingsgraph/__init__.py +146 -0
  427. aws_cdk/interfaces/aws_iottwinmaker/__init__.py +711 -0
  428. aws_cdk/interfaces/aws_iotwireless/__init__.py +1401 -0
  429. aws_cdk/interfaces/aws_ivs/__init__.py +1075 -0
  430. aws_cdk/interfaces/aws_ivschat/__init__.py +251 -0
  431. aws_cdk/interfaces/aws_kafkaconnect/__init__.py +354 -0
  432. aws_cdk/interfaces/aws_kendra/__init__.py +428 -0
  433. aws_cdk/interfaces/aws_kendraranking/__init__.py +166 -0
  434. aws_cdk/interfaces/aws_kinesis/__init__.py +364 -0
  435. aws_cdk/interfaces/aws_kinesisanalytics/__init__.py +364 -0
  436. aws_cdk/interfaces/aws_kinesisanalyticsv2/__init__.py +479 -0
  437. aws_cdk/interfaces/aws_kinesisfirehose/__init__.py +168 -0
  438. aws_cdk/interfaces/aws_kinesisvideo/__init__.py +283 -0
  439. aws_cdk/interfaces/aws_kms/__init__.py +376 -0
  440. aws_cdk/interfaces/aws_lakeformation/__init__.py +860 -0
  441. aws_cdk/interfaces/aws_lambda/__init__.py +1141 -0
  442. aws_cdk/interfaces/aws_launchwizard/__init__.py +146 -0
  443. aws_cdk/interfaces/aws_lex/__init__.py +513 -0
  444. aws_cdk/interfaces/aws_licensemanager/__init__.py +249 -0
  445. aws_cdk/interfaces/aws_lightsail/__init__.py +1744 -0
  446. aws_cdk/interfaces/aws_location/__init__.py +879 -0
  447. aws_cdk/interfaces/aws_logs/__init__.py +1667 -0
  448. aws_cdk/interfaces/aws_lookoutequipment/__init__.py +168 -0
  449. aws_cdk/interfaces/aws_lookoutmetrics/__init__.py +251 -0
  450. aws_cdk/interfaces/aws_lookoutvision/__init__.py +163 -0
  451. aws_cdk/interfaces/aws_m2/__init__.py +352 -0
  452. aws_cdk/interfaces/aws_macie/__init__.py +512 -0
  453. aws_cdk/interfaces/aws_managedblockchain/__init__.py +381 -0
  454. aws_cdk/interfaces/aws_mediaconnect/__init__.py +1028 -0
  455. aws_cdk/interfaces/aws_mediaconvert/__init__.py +396 -0
  456. aws_cdk/interfaces/aws_medialive/__init__.py +1755 -0
  457. aws_cdk/interfaces/aws_mediapackage/__init__.py +644 -0
  458. aws_cdk/interfaces/aws_mediapackagev2/__init__.py +618 -0
  459. aws_cdk/interfaces/aws_mediastore/__init__.py +146 -0
  460. aws_cdk/interfaces/aws_mediatailor/__init__.py +788 -0
  461. aws_cdk/interfaces/aws_memorydb/__init__.py +685 -0
  462. aws_cdk/interfaces/aws_mpa/__init__.py +249 -0
  463. aws_cdk/interfaces/aws_msk/__init__.py +764 -0
  464. aws_cdk/interfaces/aws_mwaa/__init__.py +166 -0
  465. aws_cdk/interfaces/aws_neptune/__init__.py +663 -0
  466. aws_cdk/interfaces/aws_neptunegraph/__init__.py +265 -0
  467. aws_cdk/interfaces/aws_networkfirewall/__init__.py +669 -0
  468. aws_cdk/interfaces/aws_networkmanager/__init__.py +1832 -0
  469. aws_cdk/interfaces/aws_nimblestudio/__init__.py +388 -0
  470. aws_cdk/interfaces/aws_notifications/__init__.py +868 -0
  471. aws_cdk/interfaces/aws_notificationscontacts/__init__.py +148 -0
  472. aws_cdk/interfaces/aws_oam/__init__.py +249 -0
  473. aws_cdk/interfaces/aws_observabilityadmin/__init__.py +362 -0
  474. aws_cdk/interfaces/aws_odb/__init__.py +562 -0
  475. aws_cdk/interfaces/aws_omics/__init__.py +838 -0
  476. aws_cdk/interfaces/aws_opensearchserverless/__init__.py +859 -0
  477. aws_cdk/interfaces/aws_opensearchservice/__init__.py +283 -0
  478. aws_cdk/interfaces/aws_opsworks/__init__.py +772 -0
  479. aws_cdk/interfaces/aws_opsworkscm/__init__.py +146 -0
  480. aws_cdk/interfaces/aws_organizations/__init__.py +646 -0
  481. aws_cdk/interfaces/aws_osis/__init__.py +146 -0
  482. aws_cdk/interfaces/aws_panorama/__init__.py +420 -0
  483. aws_cdk/interfaces/aws_paymentcryptography/__init__.py +249 -0
  484. aws_cdk/interfaces/aws_pcaconnectorad/__init__.py +608 -0
  485. aws_cdk/interfaces/aws_pcaconnectorscep/__init__.py +249 -0
  486. aws_cdk/interfaces/aws_pcs/__init__.py +352 -0
  487. aws_cdk/interfaces/aws_personalize/__init__.py +455 -0
  488. aws_cdk/interfaces/aws_pinpoint/__init__.py +2125 -0
  489. aws_cdk/interfaces/aws_pinpointemail/__init__.py +467 -0
  490. aws_cdk/interfaces/aws_pipes/__init__.py +158 -0
  491. aws_cdk/interfaces/aws_proton/__init__.py +360 -0
  492. aws_cdk/interfaces/aws_qbusiness/__init__.py +1122 -0
  493. aws_cdk/interfaces/aws_qldb/__init__.py +283 -0
  494. aws_cdk/interfaces/aws_quicksight/__init__.py +1566 -0
  495. aws_cdk/interfaces/aws_ram/__init__.py +249 -0
  496. aws_cdk/interfaces/aws_rbin/__init__.py +146 -0
  497. aws_cdk/interfaces/aws_rds/__init__.py +1780 -0
  498. aws_cdk/interfaces/aws_redshift/__init__.py +1104 -0
  499. aws_cdk/interfaces/aws_redshiftserverless/__init__.py +356 -0
  500. aws_cdk/interfaces/aws_refactorspaces/__init__.py +605 -0
  501. aws_cdk/interfaces/aws_rekognition/__init__.py +406 -0
  502. aws_cdk/interfaces/aws_resiliencehub/__init__.py +251 -0
  503. aws_cdk/interfaces/aws_resourceexplorer2/__init__.py +354 -0
  504. aws_cdk/interfaces/aws_resourcegroups/__init__.py +261 -0
  505. aws_cdk/interfaces/aws_robomaker/__init__.py +673 -0
  506. aws_cdk/interfaces/aws_rolesanywhere/__init__.py +384 -0
  507. aws_cdk/interfaces/aws_route53/__init__.py +804 -0
  508. aws_cdk/interfaces/aws_route53profiles/__init__.py +368 -0
  509. aws_cdk/interfaces/aws_route53recoverycontrol/__init__.py +463 -0
  510. aws_cdk/interfaces/aws_route53recoveryreadiness/__init__.py +535 -0
  511. aws_cdk/interfaces/aws_route53resolver/__init__.py +1356 -0
  512. aws_cdk/interfaces/aws_rtbfabric/__init__.py +352 -0
  513. aws_cdk/interfaces/aws_rum/__init__.py +146 -0
  514. aws_cdk/interfaces/aws_s3/__init__.py +1171 -0
  515. aws_cdk/interfaces/aws_s3express/__init__.py +392 -0
  516. aws_cdk/interfaces/aws_s3objectlambda/__init__.py +271 -0
  517. aws_cdk/interfaces/aws_s3outposts/__init__.py +455 -0
  518. aws_cdk/interfaces/aws_s3tables/__init__.py +575 -0
  519. aws_cdk/interfaces/aws_s3vectors/__init__.py +354 -0
  520. aws_cdk/interfaces/aws_sagemaker/__init__.py +3797 -0
  521. aws_cdk/interfaces/aws_sam/__init__.py +603 -0
  522. aws_cdk/interfaces/aws_scheduler/__init__.py +286 -0
  523. aws_cdk/interfaces/aws_sdb/__init__.py +146 -0
  524. aws_cdk/interfaces/aws_secretsmanager/__init__.py +461 -0
  525. aws_cdk/interfaces/aws_securityhub/__init__.py +1499 -0
  526. aws_cdk/interfaces/aws_securitylake/__init__.py +474 -0
  527. aws_cdk/interfaces/aws_servicecatalog/__init__.py +1829 -0
  528. aws_cdk/interfaces/aws_servicecatalogappregistry/__init__.py +557 -0
  529. aws_cdk/interfaces/aws_servicediscovery/__init__.py +636 -0
  530. aws_cdk/interfaces/aws_ses/__init__.py +2018 -0
  531. aws_cdk/interfaces/aws_shield/__init__.py +455 -0
  532. aws_cdk/interfaces/aws_signer/__init__.py +266 -0
  533. aws_cdk/interfaces/aws_simspaceweaver/__init__.py +146 -0
  534. aws_cdk/interfaces/aws_smsvoice/__init__.py +892 -0
  535. aws_cdk/interfaces/aws_sns/__init__.py +455 -0
  536. aws_cdk/interfaces/aws_sqs/__init__.py +364 -0
  537. aws_cdk/interfaces/aws_ssm/__init__.py +982 -0
  538. aws_cdk/interfaces/aws_ssmcontacts/__init__.py +455 -0
  539. aws_cdk/interfaces/aws_ssmguiconnect/__init__.py +146 -0
  540. aws_cdk/interfaces/aws_ssmincidents/__init__.py +249 -0
  541. aws_cdk/interfaces/aws_ssmquicksetup/__init__.py +253 -0
  542. aws_cdk/interfaces/aws_sso/__init__.py +797 -0
  543. aws_cdk/interfaces/aws_stepfunctions/__init__.py +459 -0
  544. aws_cdk/interfaces/aws_supportapp/__init__.py +372 -0
  545. aws_cdk/interfaces/aws_synthetics/__init__.py +249 -0
  546. aws_cdk/interfaces/aws_systemsmanagersap/__init__.py +148 -0
  547. aws_cdk/interfaces/aws_timestream/__init__.py +526 -0
  548. aws_cdk/interfaces/aws_transfer/__init__.py +967 -0
  549. aws_cdk/interfaces/aws_verifiedpermissions/__init__.py +538 -0
  550. aws_cdk/interfaces/aws_voiceid/__init__.py +146 -0
  551. aws_cdk/interfaces/aws_vpclattice/__init__.py +1418 -0
  552. aws_cdk/interfaces/aws_waf/__init__.py +764 -0
  553. aws_cdk/interfaces/aws_wafregional/__init__.py +1182 -0
  554. aws_cdk/interfaces/aws_wafv2/__init__.py +870 -0
  555. aws_cdk/interfaces/aws_wisdom/__init__.py +1556 -0
  556. aws_cdk/interfaces/aws_workspaces/__init__.py +352 -0
  557. aws_cdk/interfaces/aws_workspacesinstances/__init__.py +390 -0
  558. aws_cdk/interfaces/aws_workspacesthinclient/__init__.py +168 -0
  559. aws_cdk/interfaces/aws_workspacesweb/__init__.py +1085 -0
  560. aws_cdk/interfaces/aws_xray/__init__.py +457 -0
  561. aws_cdk/lambda_layer_awscli/__init__.py +6 -0
  562. aws_cdk/lambda_layer_node_proxy_agent/__init__.py +6 -0
  563. aws_cdk/pipelines/__init__.py +202 -52
  564. aws_cdk/region_info/__init__.py +3 -0
  565. aws_cdk/triggers/__init__.py +66 -18
  566. {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/METADATA +418 -18
  567. aws_cdk_lib-2.224.0.dist-info/RECORD +584 -0
  568. aws_cdk_lib-2.195.0.dist-info/RECORD +0 -304
  569. {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/LICENSE +0 -0
  570. {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/NOTICE +0 -0
  571. {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/WHEEL +0 -0
  572. {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aws-cdk-lib
3
- Version: 2.195.0
3
+ Version: 2.224.0
4
4
  Summary: Version 2 of the AWS Cloud Development Kit library
5
5
  Home-page: https://github.com/aws/aws-cdk
6
6
  Author: Amazon Web Services
@@ -20,13 +20,13 @@ Requires-Python: ~=3.9
20
20
  Description-Content-Type: text/markdown
21
21
  License-File: LICENSE
22
22
  License-File: NOTICE
23
- Requires-Dist: aws-cdk.asset-awscli-v1<3.0.0,>=2.2.229
24
- Requires-Dist: aws-cdk.asset-node-proxy-agent-v6<3.0.0,>=2.1.0
25
- Requires-Dist: aws-cdk.cloud-assembly-schema<42.0.0,>=41.2.0
26
- Requires-Dist: constructs<11.0.0,>=10.0.0
27
- Requires-Dist: jsii<2.0.0,>=1.110.0
28
- Requires-Dist: publication>=0.0.3
29
- Requires-Dist: typeguard<4.3.0,>=2.13.3
23
+ Requires-Dist: aws-cdk.asset-awscli-v1 ==2.2.242
24
+ Requires-Dist: aws-cdk.asset-node-proxy-agent-v6 <3.0.0,>=2.1.0
25
+ Requires-Dist: aws-cdk.cloud-assembly-schema <49.0.0,>=48.6.0
26
+ Requires-Dist: constructs <11.0.0,>=10.0.0
27
+ Requires-Dist: jsii <2.0.0,>=1.119.0
28
+ Requires-Dist: publication >=0.0.3
29
+ Requires-Dist: typeguard <4.3.0,>=2.13.3
30
30
 
31
31
  # AWS Cloud Development Kit Library
32
32
 
@@ -184,6 +184,76 @@ MyStack(app, "MyStack",
184
184
  For more information on bootstrapping accounts and customizing synthesis,
185
185
  see [Bootstrapping in the CDK Developer Guide](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html).
186
186
 
187
+ ### STS Role Options
188
+
189
+ You can configure STS options that instruct the CDK CLI on which configuration should it use when assuming
190
+ the various roles that are involved in a deployment operation.
191
+
192
+ Refer to [the bootstrapping guide](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping-env.html#bootstrapping-env-roles) for further context.
193
+
194
+ These options are available via the `DefaultStackSynthesizer` properties:
195
+
196
+ ```python
197
+ class MyStack(Stack):
198
+ def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None, propertyInjectors=None):
199
+ super().__init__(scope, id,
200
+ (SpreadAssignment ...props
201
+ description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation, propertyInjectors=propertyInjectors),
202
+ synthesizer=DefaultStackSynthesizer(
203
+ deploy_role_external_id="",
204
+ deploy_role_additional_options={},
205
+ file_asset_publishing_external_id="",
206
+ file_asset_publishing_role_additional_options={},
207
+ image_asset_publishing_external_id="",
208
+ image_asset_publishing_role_additional_options={},
209
+ lookup_role_external_id="",
210
+ lookup_role_additional_options={}
211
+ )
212
+ )
213
+ ```
214
+
215
+ > Note that the `*additionalOptions` property does not allow passing `ExternalId` or `RoleArn`, as these options
216
+ > have dedicated properties that configure them.
217
+
218
+ #### Session Tags
219
+
220
+ STS session tags are used to implement [Attribute-Based Access Control](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) (ABAC).
221
+
222
+ See [IAM tutorial: Define permissions to access AWS resources based on tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html).
223
+
224
+ You can pass session tags for each [role created during bootstrap](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping-env.html#bootstrapping-env-roles) via the `*additionalOptions` property:
225
+
226
+ ```python
227
+ class MyStack(Stack):
228
+ def __init__(self, parent, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None, propertyInjectors=None):
229
+ super().__init__(parent, id,
230
+ (SpreadAssignment ...props
231
+ description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation, propertyInjectors=propertyInjectors),
232
+ synthesizer=DefaultStackSynthesizer(
233
+ deploy_role_additional_options={
234
+ "Tags": [{"Key": "Department", "Value": "Engineering"}]
235
+ },
236
+ file_asset_publishing_role_additional_options={
237
+ "Tags": [{"Key": "Department", "Value": "Engineering"}]
238
+ },
239
+ image_asset_publishing_role_additional_options={
240
+ "Tags": [{"Key": "Department", "Value": "Engineering"}]
241
+ },
242
+ lookup_role_additional_options={
243
+ "Tags": [{"Key": "Department", "Value": "Engineering"}]
244
+ }
245
+ )
246
+ )
247
+ ```
248
+
249
+ This will cause the CDK CLI to include session tags when assuming each of these roles during deployment.
250
+ Note that the trust policy of the role must contain permissions for the `sts:TagSession` action.
251
+
252
+ Refer to the [IAM user guide on session tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_permissions-required).
253
+
254
+ * If you are using a custom bootstrap template, make sure the template includes these permissions.
255
+ * If you are using the default bootstrap template from a CDK version lower than XXXX, you will need to rebootstrap your enviroment (once).
256
+
187
257
  ## Nested Stacks
188
258
 
189
259
  [Nested stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) are stacks created as part of other stacks. You create a nested stack within another stack by using the `NestedStack` construct.
@@ -202,8 +272,8 @@ class MyNestedStack(cfn.NestedStack):
202
272
  s3.Bucket(self, "NestedBucket")
203
273
 
204
274
  class MyParentStack(Stack):
205
- def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):
206
- super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)
275
+ def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None, propertyInjectors=None):
276
+ super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation, propertyInjectors=propertyInjectors)
207
277
 
208
278
  MyNestedStack(self, "Nested1")
209
279
  MyNestedStack(self, "Nested2")
@@ -426,6 +496,8 @@ CloudFormation to re-read the secret.
426
496
  `SecretValue.ssmSecure()` is only supported for a limited set of resources.
427
497
  [Click here for a list of supported resources and properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#template-parameters-dynamic-patterns-resources).
428
498
 
499
+ `SecretValue.cfnDynamicReferenceKey` takes the same parameters as `SecretValue.secretsManager` and returns a key which can be used within a [dynamic reference](#dynamic-references) to dynamically load a secret from AWS Secrets Manager.
500
+
429
501
  ## ARN manipulation
430
502
 
431
503
  Sometimes you will need to put together or pick apart Amazon Resource Names
@@ -550,6 +622,8 @@ CustomResource(self, "MyMagicalResource",
550
622
  resource_type="Custom::MyCustomResource", # must start with 'Custom::'
551
623
 
552
624
  # the resource properties
625
+ # properties like serviceToken or serviceTimeout are ported into properties automatically
626
+ # try not to use key names similar to these or there will be a risk of overwriting those values
553
627
  properties={
554
628
  "Property1": "foo",
555
629
  "Property2": "bar"
@@ -558,7 +632,10 @@ CustomResource(self, "MyMagicalResource",
558
632
  # the ARN of the provider (SNS/Lambda) which handles
559
633
  # CREATE, UPDATE or DELETE events for this resource type
560
634
  # see next section for details
561
- service_token="ARN"
635
+ service_token="ARN",
636
+
637
+ # the maximum time, in seconds, that can elapse before a custom resource operation times out.
638
+ service_timeout=Duration.seconds(60)
562
639
  )
563
640
  ```
564
641
 
@@ -588,7 +665,7 @@ Legend:
588
665
  * **Language**: which programming languages can be used to implement handlers.
589
666
  * **Footprint**: how many resources are used by the provider framework itself.
590
667
 
591
- **A NOTE ABOUT SINGLETONS**
668
+ #### A note about singletons
592
669
 
593
670
  When defining resources for a custom resource provider, you will likely want to
594
671
  define them as a *stack singleton* so that only a single instance of the
@@ -853,6 +930,18 @@ CfnOutput(self, "OutputName",
853
930
  )
854
931
  ```
855
932
 
933
+ You can also use the `exportValue` method to export values as stack outputs:
934
+
935
+ ```python
936
+ # stack: Stack
937
+
938
+
939
+ stack.export_value(my_bucket.bucket_name,
940
+ name="TheAwesomeBucket",
941
+ description="The name of an S3 bucket"
942
+ )
943
+ ```
944
+
856
945
  ### Parameters
857
946
 
858
947
  CloudFormation templates support the use of [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html) to
@@ -964,7 +1053,7 @@ The properties passed to the level 2 constructs `AutoScalingGroup` and `Instance
964
1053
  `aws-ec2` module abstract what is passed into the `CfnOption` properties `resourceSignal` and
965
1054
  `autoScalingCreationPolicy`, but when using level 1 constructs you can specify these yourself.
966
1055
 
967
- The CfnWaitCondition resource from the `aws-cloudformation` module suppports the `resourceSignal`.
1056
+ The CfnWaitCondition resource from the `aws-cloudformation` module supports the `resourceSignal`.
968
1057
  The format of the timeout is `PT#H#M#S`. In the example below AWS Cloudformation will wait for
969
1058
  3 success signals to occur within 15 minutes before the status of the resource will be set to
970
1059
  `CREATE_COMPLETE`.
@@ -1134,6 +1223,74 @@ references is done using the `CfnDynamicReference` class:
1134
1223
  CfnDynamicReference(CfnDynamicReferenceService.SECRETS_MANAGER, "secret-id:secret-string:json-key:version-stage:version-id")
1135
1224
  ```
1136
1225
 
1226
+ ## RemovalPolicies
1227
+
1228
+ The `RemovalPolicies` class provides a convenient way to manage removal policies for AWS CDK resources within a construct scope. It allows you to apply removal policies to multiple resources at once, with options to include or exclude specific resource types.
1229
+
1230
+ ```python
1231
+ # scope: Construct
1232
+ # parent: Construct
1233
+ # bucket: s3.CfnBucket
1234
+
1235
+
1236
+ # Apply DESTROY policy to all resources in a scope
1237
+ RemovalPolicies.of(scope).destroy()
1238
+
1239
+ # Apply RETAIN policy to all resources in a scope
1240
+ RemovalPolicies.of(scope).retain()
1241
+
1242
+ # Apply SNAPSHOT policy to all resources in a scope
1243
+ RemovalPolicies.of(scope).snapshot()
1244
+
1245
+ # Apply RETAIN_ON_UPDATE_OR_DELETE policy to all resources in a scope
1246
+ RemovalPolicies.of(scope).retain_on_update_or_delete()
1247
+
1248
+ # Apply RETAIN policy only to specific resource types
1249
+ RemovalPolicies.of(parent).retain(
1250
+ apply_to_resource_types=["AWS::DynamoDB::Table", bucket.cfn_resource_type, rds.CfnDBInstance.CFN_RESOURCE_TYPE_NAME
1251
+ ]
1252
+ )
1253
+
1254
+ # Apply SNAPSHOT policy excluding specific resource types
1255
+ RemovalPolicies.of(scope).snapshot(
1256
+ exclude_resource_types=["AWS::Test::Resource"]
1257
+ )
1258
+ ```
1259
+
1260
+ ### RemovalPolicies vs MissingRemovalPolicies
1261
+
1262
+ CDK provides two different classes for managing removal policies:
1263
+
1264
+ * RemovalPolicies: Always applies the specified removal policy, overriding any existing policies.
1265
+ * MissingRemovalPolicies: Applies the removal policy only to resources that don't already have a policy set.
1266
+
1267
+ ```python
1268
+ # Override any existing policies
1269
+ RemovalPolicies.of(scope).retain()
1270
+
1271
+ # Only apply to resources without existing policies
1272
+ MissingRemovalPolicies.of(scope).retain()
1273
+ ```
1274
+
1275
+ ### Aspect Priority
1276
+
1277
+ Both RemovalPolicies and MissingRemovalPolicies are implemented as [Aspects](#aspects). You can control the order in which they're applied using the priority parameter:
1278
+
1279
+ ```python
1280
+ # stack: Stack
1281
+
1282
+
1283
+ # Apply in a specific order based on priority
1284
+ RemovalPolicies.of(stack).retain(priority=100)
1285
+ RemovalPolicies.of(stack).destroy(priority=200)
1286
+ ```
1287
+
1288
+ For RemovalPolicies, the policies are applied in order of aspect execution, with the last applied policy overriding previous ones. The priority only affects the order in which aspects are applied during synthesis.
1289
+
1290
+ #### Note
1291
+
1292
+ When using MissingRemovalPolicies with priority, a warning will be issued as this can lead to unexpected behavior. This is because MissingRemovalPolicies only applies to resources without existing policies, making priority less relevant.
1293
+
1137
1294
  ### Template Options & Transform
1138
1295
 
1139
1296
  CloudFormation templates support a number of options, including which Macros or
@@ -1223,6 +1380,27 @@ stack = Stack(app, "StackName",
1223
1380
  )
1224
1381
  ```
1225
1382
 
1383
+ ### Receiving CloudFormation Stack Events
1384
+
1385
+ You can add one or more SNS Topic ARNs to any Stack:
1386
+
1387
+ ```python
1388
+ stack = Stack(app, "StackName",
1389
+ notification_arns=["arn:aws:sns:us-east-1:123456789012:Topic"]
1390
+ )
1391
+ ```
1392
+
1393
+ Stack events will be sent to any SNS Topics in this list. These ARNs are added to those specified using
1394
+ the `--notification-arns` command line option.
1395
+
1396
+ Note that in order to do delete notification ARNs entirely, you must pass an empty array ([]) instead of omitting it.
1397
+ If you omit the property, no action on existing ARNs will take place.
1398
+
1399
+ > [!NOTE]
1400
+ > Adding the `notificationArns` property (or using the `--notification-arns` CLI options) will **override**
1401
+ > any existing ARNs configured on the stack. If you have an external system managing notification ARNs,
1402
+ > either migrate to use this mechanism, or avoid specfying notification ARNs with the CDK.
1403
+
1226
1404
  ### CfnJson
1227
1405
 
1228
1406
  `CfnJson` allows you to postpone the resolution of a JSON blob from
@@ -1325,7 +1503,7 @@ App(
1325
1503
  cdk synth --context @aws-cdk/core:newStyleStackSynthesis=true
1326
1504
  ```
1327
1505
 
1328
- *cdk.json*
1506
+ #### `cdk.json`
1329
1507
 
1330
1508
  ```json
1331
1509
  {
@@ -1335,7 +1513,7 @@ cdk synth --context @aws-cdk/core:newStyleStackSynthesis=true
1335
1513
  }
1336
1514
  ```
1337
1515
 
1338
- *cdk.context.json*
1516
+ #### `cdk.context.json`
1339
1517
 
1340
1518
  ```json
1341
1519
  {
@@ -1343,7 +1521,7 @@ cdk synth --context @aws-cdk/core:newStyleStackSynthesis=true
1343
1521
  }
1344
1522
  ```
1345
1523
 
1346
- *~/.cdk.json*
1524
+ #### `~/.cdk.json`
1347
1525
 
1348
1526
  ```json
1349
1527
  {
@@ -1382,7 +1560,7 @@ generated CloudFormation templates against your policies immediately after
1382
1560
  synthesis. If there are any violations, the synthesis will fail and a report
1383
1561
  will be printed to the console or to a file (see below).
1384
1562
 
1385
- > **Note**
1563
+ > [!NOTE]
1386
1564
  > This feature is considered experimental, and both the plugin API and the
1387
1565
  > format of the validation report are subject to change in the future.
1388
1566
 
@@ -1420,7 +1598,7 @@ validation.
1420
1598
  > etc. It's your responsibility as the consumer of a plugin to verify that it is
1421
1599
  > secure to use.
1422
1600
 
1423
- By default, the report will be printed in a human readable format. If you want a
1601
+ By default, the report will be printed in a human-readable format. If you want a
1424
1602
  report in JSON format, enable it using the `@aws-cdk/core:validationReportJson`
1425
1603
  context passing it directly to the application:
1426
1604
 
@@ -1434,6 +1612,18 @@ Alternatively, you can set this context key-value pair using the `cdk.json` or
1434
1612
  `cdk.context.json` files in your project directory (see
1435
1613
  [Runtime context](https://docs.aws.amazon.com/cdk/v2/guide/context.html)).
1436
1614
 
1615
+ It is also possible to enable both JSON and human-readable formats by setting
1616
+ `@aws-cdk/core:validationReportPrettyPrint` context key explicitly:
1617
+
1618
+ ```python
1619
+ app = App(
1620
+ context={
1621
+ "@aws-cdk/core:validationReportJson": True,
1622
+ "@aws-cdk/core:validationReportPrettyPrint": True
1623
+ }
1624
+ )
1625
+ ```
1626
+
1437
1627
  If you choose the JSON format, the CDK will print the policy validation report
1438
1628
  to a file called `policy-validation-report.json` in the cloud assembly
1439
1629
  directory. For the default, human-readable format, the report will be printed to
@@ -1528,4 +1718,214 @@ warning by the `id`.
1528
1718
  Annotations.of(self).acknowledge_warning("IAM:Group:MaxPoliciesExceeded", "Account has quota increased to 20")
1529
1719
  ```
1530
1720
 
1721
+ ### Acknowledging Infos
1722
+
1723
+ Informational messages can also be emitted and acknowledged. Use `addInfoV2()`
1724
+ to add an info message that can later be suppressed with `acknowledgeInfo()`.
1725
+ Unlike warnings, info messages are not affected by the `--strict` mode and will never cause synthesis to fail.
1726
+
1727
+ ```python
1728
+ Annotations.of(self).add_info_v2("my-lib:Construct.someInfo", "Some message explaining the info")
1729
+ Annotations.of(self).acknowledge_info("my-lib:Construct.someInfo", "This info can be ignored")
1730
+ ```
1731
+
1732
+ ## Aspects
1733
+
1734
+ [Aspects](https://docs.aws.amazon.com/cdk/v2/guide/aspects.html) is a feature in CDK that allows you to apply operations or transformations across all
1735
+ constructs in a construct tree. Common use cases include tagging resources, enforcing encryption on S3 Buckets, or applying specific security or
1736
+ compliance rules to all resources in a stack.
1737
+
1738
+ Conceptually, there are two types of Aspects:
1739
+
1740
+ * **Read-only aspects** scan the construct tree but do not make changes to the tree. Common use cases of read-only aspects include performing validations
1741
+ (for example, enforcing that all S3 Buckets have versioning enabled) and logging (for example, collecting information about all deployed resources for
1742
+ audits or compliance).
1743
+ * **Mutating aspects** either (1.) add new nodes or (2.) mutate existing nodes of the tree in-place. One commonly used mutating Aspect is adding Tags to
1744
+ resources. An example of an Aspect that adds a node is one that automatically adds a security group to every EC2 instance in the construct tree if
1745
+ no default is specified.
1746
+
1747
+ Here is a simple example of creating and applying an Aspect on a Stack to enable versioning on all S3 Buckets:
1748
+
1749
+ ```python
1750
+ @jsii.implements(IAspect)
1751
+ class EnableBucketVersioning:
1752
+ def visit(self, node):
1753
+ if node instanceof s3.CfnBucket:
1754
+ node.versioning_configuration = s3.CfnBucket.VersioningConfigurationProperty(
1755
+ status="Enabled"
1756
+ )
1757
+
1758
+ app = App()
1759
+ stack = MyStack(app, "MyStack")
1760
+
1761
+ # Apply the aspect to enable versioning on all S3 Buckets
1762
+ Aspects.of(stack).add(EnableBucketVersioning())
1763
+ ```
1764
+
1765
+ ### Aspect Stabilization
1766
+
1767
+ The modern behavior is that Aspects automatically run on newly added nodes to the construct tree. This is controlled by the
1768
+ flag `@aws-cdk/core:aspectStabilization`, which is default for new projects (since version 2.172.0).
1769
+
1770
+ The old behavior of Aspects (without stabilization) was that Aspect invocation runs once on the entire construct
1771
+ tree. This meant that nested Aspects (Aspects that create new Aspects) are not invoked and nodes created by Aspects at a higher level of the construct tree are not visited.
1772
+
1773
+ To enable the stabilization behavior for older versions, use this feature by putting the following into your `cdk.context.json`:
1774
+
1775
+ ```json
1776
+ {
1777
+ "@aws-cdk/core:aspectStabilization": true
1778
+ }
1779
+ ```
1780
+
1781
+ ### Aspect Priorities
1782
+
1783
+ Users can specify the order in which Aspects are applied on a construct by using the optional priority parameter when applying an Aspect. Priority
1784
+ values must be non-negative integers, where a higher number means the Aspect will be applied later, and a lower number means it will be applied sooner.
1785
+
1786
+ By default, newly created nodes always inherit aspects. Priorities are mainly for ordering between mutating aspects on the construct tree.
1787
+
1788
+ CDK provides standard priority values for mutating and readonly aspects to help ensure consistency across different construct libraries.
1789
+ Note that Aspects that have same priority value are not guaranteed to be executed
1790
+ in a consistent order.
1791
+
1792
+ ```python
1793
+ #
1794
+ # Default Priority values for Aspects.
1795
+ #
1796
+ class AspectPriority:
1797
+ ```
1798
+
1799
+ If no priority is provided, the default value will be 500. This ensures that aspects without a specified priority run after mutating aspects but before
1800
+ any readonly aspects.
1801
+
1802
+ Correctly applying Aspects with priority values ensures that mutating aspects (such as adding tags or resources) run before validation aspects. This allows users to avoid misconfigurations and ensure that the final
1803
+ construct tree is fully validated before being synthesized.
1804
+
1805
+ ### Applying Aspects with Priority
1806
+
1807
+ ```python
1808
+ @jsii.implements(IAspect)
1809
+ class MutatingAspect:
1810
+ def visit(self, node):
1811
+ pass
1812
+
1813
+ @jsii.implements(IAspect)
1814
+ class ValidationAspect:
1815
+ def visit(self, node):
1816
+ pass
1817
+
1818
+ stack = Stack()
1819
+
1820
+ Aspects.of(stack).add(MutatingAspect(), priority=AspectPriority.MUTATING) # Run first (mutating aspects)
1821
+ Aspects.of(stack).add(ValidationAspect(), priority=AspectPriority.READONLY)
1822
+ ```
1823
+
1824
+ ### Inspecting applied aspects and changing priorities
1825
+
1826
+ We also give customers the ability to view all of their applied aspects and override the priority on these aspects.
1827
+ The `AspectApplication` class represents an Aspect that is applied to a node of the construct tree with a priority.
1828
+
1829
+ Users can access AspectApplications on a node by calling `applied` from the Aspects class as follows:
1830
+
1831
+ ```python
1832
+ # root: Construct
1833
+
1834
+ app = App()
1835
+ stack = MyStack(app, "MyStack")
1836
+
1837
+ Aspects.of(stack).add(MyAspect())
1838
+
1839
+ aspect_applications = Aspects.of(root).applied
1840
+
1841
+ for aspect_application in aspect_applications:
1842
+ # The aspect we are applying
1843
+ print(aspect_application.aspect)
1844
+ # The construct we are applying the aspect to
1845
+ print(aspect_application.construct)
1846
+ # The priority it was applied with
1847
+ print(aspect_application.priority)
1848
+
1849
+ # Change the priority
1850
+ aspect_application.priority = 700
1851
+ ```
1852
+
1853
+ ## Blueprint Property Injection
1854
+
1855
+ The goal of Blueprint Property Injection is to provide builders an automatic way to set default property values.
1856
+
1857
+ Construct authors can declare that a Construct can have it properties injected by adding `@propertyInjectable`
1858
+ class decorator and specifying `PROPERTY_INJECTION_ID` readonly property.
1859
+ All L2 Constructs will support Property Injection so organizations can write injectors to set their Construct Props.
1860
+
1861
+ Organizations can set default property values to a Construct by writing Injectors for builders to consume.
1862
+
1863
+ Here is a simple example of an Injector for APiKey that sets enabled to false.
1864
+
1865
+ ```python
1866
+ @jsii.implements(IPropertyInjector)
1867
+ class ApiKeyPropsInjector:
1868
+
1869
+ def __init__(self):
1870
+ self.construct_unique_id = api.ApiKey.PROPERTY_INJECTION_ID
1871
+
1872
+ def inject(self, original_props, *, scope, id):
1873
+ return api.ApiKeyProps(
1874
+ enabled=False,
1875
+ api_key_name=original_props.api_key_name,
1876
+ customer_id=original_props.customer_id,
1877
+ default_cors_preflight_options=original_props.default_cors_preflight_options,
1878
+ default_integration=original_props.default_integration,
1879
+ default_method_options=original_props.default_method_options,
1880
+ description=original_props.description,
1881
+ generate_distinct_id=original_props.generate_distinct_id,
1882
+ resources=original_props.resources,
1883
+ stages=original_props.stages,
1884
+ value=original_props.value
1885
+ )
1886
+ ```
1887
+
1888
+ Some notes:
1889
+
1890
+ * ApiKey must have a `PROPERTY_INJECTION_ID` property, in addition to having `@propertyInjectable` class decorator.
1891
+ * We set ApiKeyProps.enabled to false, if it is not provided; otherwise it would use the value that was passed in.
1892
+ * It is also possible to force ApiKeyProps.enabled to false, and not provide a way for the builders to overwrite it.
1893
+
1894
+ Here is an example of how builders can use the injector the org created.
1895
+
1896
+ ```python
1897
+ stack = Stack(app, "my-stack",
1898
+ property_injectors=[ApiKeyPropsInjector()]
1899
+ )
1900
+ api.ApiKey(stack, "my-api-key")
1901
+ ```
1902
+
1903
+ This is equivalent to:
1904
+
1905
+ ```python
1906
+ stack = Stack(app, "my-stack")
1907
+ api.ApiKey(stack, "my-api-key",
1908
+ enabled=False
1909
+ )
1910
+ ```
1911
+
1912
+ Some notes:
1913
+
1914
+ * We attach the injectors to Stack in this example, but we can also attach them to App or Stage.
1915
+ * All the ApiKey created in the scope of stack will get `enabled: false`.
1916
+ * Builders can overwrite the default value with `new ApiKey(stack, 'my-api-key', {enabled: true});`
1917
+
1918
+ If you specify two or more injectors for the same Constructs, the last one is in effect. In the example below, `ApiKeyPropsInjector` will never be applied.
1919
+
1920
+ ```python
1921
+ stack = Stack(app, "my-stack",
1922
+ property_injectors=[
1923
+ ApiKeyPropsInjector(),
1924
+ AnotherApiKeyPropsInjector()
1925
+ ]
1926
+ )
1927
+ ```
1928
+
1929
+ For more information, please see the [RFC](https://github.com/aws/aws-cdk-rfcs/blob/main/text/0693-property-injection.md).
1930
+
1531
1931
  <!--END CORE DOCUMENTATION-->