aws-cdk-lib 2.200.2__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 (569) hide show
  1. aws_cdk/__init__.py +1349 -373
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.200.2.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 +1017 -155
  12. aws_cdk/aws_apigatewayv2/__init__.py +2796 -379
  13. aws_cdk/aws_apigatewayv2_integrations/__init__.py +94 -16
  14. aws_cdk/aws_appconfig/__init__.py +298 -43
  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 +29 -6
  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 +94 -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 +227 -53
  24. aws_cdk/aws_apptest/__init__.py +71 -2
  25. aws_cdk/aws_aps/__init__.py +1875 -132
  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 +135 -55
  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 +317 -28
  35. aws_cdk/aws_backupgateway/__init__.py +13 -2
  36. aws_cdk/aws_batch/__init__.py +1405 -178
  37. aws_cdk/aws_bcmdataexports/__init__.py +21 -2
  38. aws_cdk/aws_bedrock/__init__.py +6747 -627
  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 +42 -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 +237 -32
  45. aws_cdk/aws_chatbot/__init__.py +70 -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 +345 -166
  50. aws_cdk/aws_cloudfront/__init__.py +2101 -680
  51. aws_cdk/aws_cloudfront/experimental/__init__.py +108 -16
  52. aws_cdk/aws_cloudfront_origins/__init__.py +614 -73
  53. aws_cdk/aws_cloudtrail/__init__.py +301 -17
  54. aws_cdk/aws_cloudwatch/__init__.py +1414 -153
  55. aws_cdk/aws_codeartifact/__init__.py +35 -6
  56. aws_cdk/aws_codebuild/__init__.py +1103 -118
  57. aws_cdk/aws_codecommit/__init__.py +23 -9
  58. aws_cdk/aws_codeconnections/__init__.py +13 -2
  59. aws_cdk/aws_codedeploy/__init__.py +67 -6
  60. aws_cdk/aws_codeguruprofiler/__init__.py +74 -2
  61. aws_cdk/aws_codegurureviewer/__init__.py +13 -2
  62. aws_cdk/aws_codepipeline/__init__.py +127 -64
  63. aws_cdk/aws_codepipeline_actions/__init__.py +749 -0
  64. aws_cdk/aws_codestar/__init__.py +13 -2
  65. aws_cdk/aws_codestarconnections/__init__.py +35 -6
  66. aws_cdk/aws_codestarnotifications/__init__.py +16 -2
  67. aws_cdk/aws_cognito/__init__.py +814 -80
  68. aws_cdk/aws_cognito_identitypool/__init__.py +17 -12
  69. aws_cdk/aws_comprehend/__init__.py +24 -4
  70. aws_cdk/aws_config/__init__.py +191 -30
  71. aws_cdk/aws_connect/__init__.py +2736 -191
  72. aws_cdk/aws_connectcampaigns/__init__.py +13 -2
  73. aws_cdk/aws_connectcampaignsv2/__init__.py +268 -6
  74. aws_cdk/aws_controltower/__init__.py +35 -6
  75. aws_cdk/aws_cur/__init__.py +100 -4
  76. aws_cdk/aws_customerprofiles/__init__.py +617 -27
  77. aws_cdk/aws_databrew/__init__.py +68 -12
  78. aws_cdk/aws_datapipeline/__init__.py +42 -2
  79. aws_cdk/aws_datasync/__init__.py +723 -203
  80. aws_cdk/aws_datazone/__init__.py +4425 -608
  81. aws_cdk/aws_dax/__init__.py +83 -6
  82. aws_cdk/aws_deadline/__init__.py +321 -32
  83. aws_cdk/aws_detective/__init__.py +35 -6
  84. aws_cdk/aws_devicefarm/__init__.py +68 -12
  85. aws_cdk/aws_devopsguru/__init__.py +37 -6
  86. aws_cdk/aws_directoryservice/__init__.py +53 -4
  87. aws_cdk/aws_dlm/__init__.py +13 -2
  88. aws_cdk/aws_dms/__init__.py +184 -27
  89. aws_cdk/aws_docdb/__init__.py +323 -46
  90. aws_cdk/aws_docdbelastic/__init__.py +13 -2
  91. aws_cdk/aws_dsql/__init__.py +340 -12
  92. aws_cdk/aws_dynamodb/__init__.py +1463 -166
  93. aws_cdk/aws_ec2/__init__.py +9636 -1120
  94. aws_cdk/aws_ecr/__init__.py +631 -43
  95. aws_cdk/aws_ecr_assets/__init__.py +4 -0
  96. aws_cdk/aws_ecs/__init__.py +6524 -497
  97. aws_cdk/aws_ecs_patterns/__init__.py +2 -0
  98. aws_cdk/aws_efs/__init__.py +264 -24
  99. aws_cdk/aws_eks/__init__.py +1050 -218
  100. aws_cdk/aws_elasticache/__init__.py +373 -20
  101. aws_cdk/aws_elasticbeanstalk/__init__.py +75 -8
  102. aws_cdk/aws_elasticloadbalancing/__init__.py +16 -2
  103. aws_cdk/aws_elasticloadbalancingv2/__init__.py +1670 -106
  104. aws_cdk/aws_elasticsearch/__init__.py +282 -9
  105. aws_cdk/aws_emr/__init__.py +187 -20
  106. aws_cdk/aws_emrcontainers/__init__.py +71 -2
  107. aws_cdk/aws_emrserverless/__init__.py +188 -3
  108. aws_cdk/aws_entityresolution/__init__.py +585 -58
  109. aws_cdk/aws_events/__init__.py +969 -124
  110. aws_cdk/aws_events_targets/__init__.py +310 -54
  111. aws_cdk/aws_eventschemas/__init__.py +46 -8
  112. aws_cdk/aws_evidently/__init__.py +57 -10
  113. aws_cdk/aws_evs/__init__.py +2244 -0
  114. aws_cdk/aws_finspace/__init__.py +71 -2
  115. aws_cdk/aws_fis/__init__.py +26 -4
  116. aws_cdk/aws_fms/__init__.py +35 -6
  117. aws_cdk/aws_forecast/__init__.py +24 -4
  118. aws_cdk/aws_frauddetector/__init__.py +79 -14
  119. aws_cdk/aws_fsx/__init__.py +1236 -142
  120. aws_cdk/aws_gamelift/__init__.py +653 -78
  121. aws_cdk/aws_gameliftstreams/__init__.py +38 -16
  122. aws_cdk/aws_globalaccelerator/__init__.py +55 -14
  123. aws_cdk/aws_glue/__init__.py +1368 -320
  124. aws_cdk/aws_grafana/__init__.py +13 -2
  125. aws_cdk/aws_greengrass/__init__.py +654 -32
  126. aws_cdk/aws_greengrassv2/__init__.py +53 -4
  127. aws_cdk/aws_groundstation/__init__.py +122 -6
  128. aws_cdk/aws_guardduty/__init__.py +1613 -123
  129. aws_cdk/aws_healthimaging/__init__.py +71 -2
  130. aws_cdk/aws_healthlake/__init__.py +42 -2
  131. aws_cdk/aws_iam/__init__.py +480 -140
  132. aws_cdk/aws_identitystore/__init__.py +24 -4
  133. aws_cdk/aws_imagebuilder/__init__.py +1433 -183
  134. aws_cdk/aws_inspector/__init__.py +38 -6
  135. aws_cdk/aws_inspectorv2/__init__.py +2285 -243
  136. aws_cdk/aws_internetmonitor/__init__.py +71 -2
  137. aws_cdk/aws_invoicing/__init__.py +13 -2
  138. aws_cdk/aws_iot/__init__.py +1730 -86
  139. aws_cdk/aws_iotanalytics/__init__.py +162 -8
  140. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +106 -40
  141. aws_cdk/aws_iotevents/__init__.py +122 -6
  142. aws_cdk/aws_iotfleethub/__init__.py +71 -2
  143. aws_cdk/aws_iotfleetwise/__init__.py +195 -14
  144. aws_cdk/aws_iotsitewise/__init__.py +1837 -89
  145. aws_cdk/aws_iotthingsgraph/__init__.py +13 -2
  146. aws_cdk/aws_iottwinmaker/__init__.py +115 -10
  147. aws_cdk/aws_iotwireless/__init__.py +649 -22
  148. aws_cdk/aws_ivs/__init__.py +561 -57
  149. aws_cdk/aws_ivschat/__init__.py +24 -4
  150. aws_cdk/aws_kafkaconnect/__init__.py +35 -6
  151. aws_cdk/aws_kendra/__init__.py +120 -28
  152. aws_cdk/aws_kendraranking/__init__.py +13 -2
  153. aws_cdk/aws_kinesis/__init__.py +622 -22
  154. aws_cdk/aws_kinesisanalytics/__init__.py +467 -94
  155. aws_cdk/aws_kinesisanalyticsv2/__init__.py +201 -11
  156. aws_cdk/aws_kinesisfirehose/__init__.py +3077 -295
  157. aws_cdk/aws_kinesisvideo/__init__.py +24 -4
  158. aws_cdk/aws_kms/__init__.py +188 -41
  159. aws_cdk/aws_lakeformation/__init__.py +80 -15
  160. aws_cdk/aws_lambda/__init__.py +2101 -252
  161. aws_cdk/aws_lambda_event_sources/__init__.py +638 -1
  162. aws_cdk/aws_lambda_nodejs/__init__.py +63 -24
  163. aws_cdk/aws_launchwizard/__init__.py +13 -2
  164. aws_cdk/aws_lex/__init__.py +871 -8
  165. aws_cdk/aws_licensemanager/__init__.py +24 -4
  166. aws_cdk/aws_lightsail/__init__.py +2159 -975
  167. aws_cdk/aws_location/__init__.py +618 -14
  168. aws_cdk/aws_logs/__init__.py +5904 -956
  169. aws_cdk/aws_lookoutequipment/__init__.py +13 -2
  170. aws_cdk/aws_lookoutmetrics/__init__.py +38 -6
  171. aws_cdk/aws_lookoutvision/__init__.py +71 -2
  172. aws_cdk/aws_m2/__init__.py +94 -19
  173. aws_cdk/aws_macie/__init__.py +49 -11
  174. aws_cdk/aws_managedblockchain/__init__.py +180 -6
  175. aws_cdk/aws_mediaconnect/__init__.py +101 -18
  176. aws_cdk/aws_mediaconvert/__init__.py +35 -6
  177. aws_cdk/aws_medialive/__init__.py +1239 -35
  178. aws_cdk/aws_mediapackage/__init__.py +59 -12
  179. aws_cdk/aws_mediapackagev2/__init__.py +1607 -225
  180. aws_cdk/aws_mediastore/__init__.py +13 -2
  181. aws_cdk/aws_mediatailor/__init__.py +583 -12
  182. aws_cdk/aws_memorydb/__init__.py +271 -12
  183. aws_cdk/aws_mpa/__init__.py +1495 -0
  184. aws_cdk/aws_msk/__init__.py +104 -18
  185. aws_cdk/aws_mwaa/__init__.py +121 -9
  186. aws_cdk/aws_neptune/__init__.py +290 -78
  187. aws_cdk/aws_neptunegraph/__init__.py +24 -4
  188. aws_cdk/aws_networkfirewall/__init__.py +1289 -273
  189. aws_cdk/aws_networkmanager/__init__.py +349 -33
  190. aws_cdk/aws_nimblestudio/__init__.py +75 -8
  191. aws_cdk/aws_notifications/__init__.py +317 -12
  192. aws_cdk/aws_notificationscontacts/__init__.py +13 -2
  193. aws_cdk/aws_oam/__init__.py +24 -4
  194. aws_cdk/aws_observabilityadmin/__init__.py +2561 -0
  195. aws_cdk/aws_odb/__init__.py +5872 -0
  196. aws_cdk/aws_omics/__init__.py +2495 -529
  197. aws_cdk/aws_opensearchserverless/__init__.py +312 -37
  198. aws_cdk/aws_opensearchservice/__init__.py +495 -19
  199. aws_cdk/aws_opsworks/__init__.py +235 -139
  200. aws_cdk/aws_opsworkscm/__init__.py +16 -52
  201. aws_cdk/aws_organizations/__init__.py +70 -10
  202. aws_cdk/aws_osis/__init__.py +167 -2
  203. aws_cdk/aws_panorama/__init__.py +151 -6
  204. aws_cdk/aws_paymentcryptography/__init__.py +24 -4
  205. aws_cdk/aws_pcaconnectorad/__init__.py +59 -10
  206. aws_cdk/aws_pcaconnectorscep/__init__.py +24 -4
  207. aws_cdk/aws_pcs/__init__.py +387 -68
  208. aws_cdk/aws_personalize/__init__.py +46 -8
  209. aws_cdk/aws_pinpoint/__init__.py +329 -38
  210. aws_cdk/aws_pinpointemail/__init__.py +48 -8
  211. aws_cdk/aws_pipes/__init__.py +12 -2
  212. aws_cdk/aws_proton/__init__.py +37 -6
  213. aws_cdk/aws_qbusiness/__init__.py +635 -34
  214. aws_cdk/aws_qldb/__init__.py +24 -4
  215. aws_cdk/aws_quicksight/__init__.py +7900 -1160
  216. aws_cdk/aws_ram/__init__.py +24 -4
  217. aws_cdk/aws_rbin/__init__.py +12 -2
  218. aws_cdk/aws_rds/__init__.py +3345 -512
  219. aws_cdk/aws_redshift/__init__.py +143 -20
  220. aws_cdk/aws_redshiftserverless/__init__.py +692 -4
  221. aws_cdk/aws_refactorspaces/__init__.py +64 -14
  222. aws_cdk/aws_rekognition/__init__.py +93 -6
  223. aws_cdk/aws_resiliencehub/__init__.py +24 -4
  224. aws_cdk/aws_resourceexplorer2/__init__.py +35 -6
  225. aws_cdk/aws_resourcegroups/__init__.py +82 -4
  226. aws_cdk/aws_robomaker/__init__.py +72 -12
  227. aws_cdk/aws_rolesanywhere/__init__.py +180 -6
  228. aws_cdk/aws_route53/__init__.py +3273 -1442
  229. aws_cdk/aws_route53_targets/__init__.py +3 -0
  230. aws_cdk/aws_route53profiles/__init__.py +37 -6
  231. aws_cdk/aws_route53recoverycontrol/__init__.py +46 -8
  232. aws_cdk/aws_route53recoveryreadiness/__init__.py +104 -8
  233. aws_cdk/aws_route53resolver/__init__.py +226 -36
  234. aws_cdk/aws_rtbfabric/__init__.py +3498 -0
  235. aws_cdk/aws_rum/__init__.py +13 -2
  236. aws_cdk/aws_s3/__init__.py +1291 -158
  237. aws_cdk/aws_s3_assets/__init__.py +11 -11
  238. aws_cdk/aws_s3_deployment/__init__.py +147 -11
  239. aws_cdk/aws_s3_notifications/__init__.py +7 -7
  240. aws_cdk/aws_s3express/__init__.py +266 -8
  241. aws_cdk/aws_s3objectlambda/__init__.py +68 -16
  242. aws_cdk/aws_s3outposts/__init__.py +46 -8
  243. aws_cdk/aws_s3tables/__init__.py +2000 -323
  244. aws_cdk/aws_s3vectors/__init__.py +1378 -0
  245. aws_cdk/aws_sagemaker/__init__.py +6617 -363
  246. aws_cdk/aws_sam/__init__.py +79 -14
  247. aws_cdk/aws_scheduler/__init__.py +237 -4
  248. aws_cdk/aws_sdb/__init__.py +12 -2
  249. aws_cdk/aws_secretsmanager/__init__.py +170 -14
  250. aws_cdk/aws_securityhub/__init__.py +3121 -176
  251. aws_cdk/aws_securitylake/__init__.py +46 -8
  252. aws_cdk/aws_servicecatalog/__init__.py +405 -246
  253. aws_cdk/aws_servicecatalogappregistry/__init__.py +164 -8
  254. aws_cdk/aws_servicediscovery/__init__.py +140 -47
  255. aws_cdk/aws_ses/__init__.py +1231 -140
  256. aws_cdk/aws_shield/__init__.py +46 -8
  257. aws_cdk/aws_signer/__init__.py +27 -4
  258. aws_cdk/aws_simspaceweaver/__init__.py +42 -2
  259. aws_cdk/aws_smsvoice/__init__.py +4716 -0
  260. aws_cdk/aws_sns/__init__.py +245 -29
  261. aws_cdk/aws_sns_subscriptions/__init__.py +3 -1
  262. aws_cdk/aws_sqs/__init__.py +211 -14
  263. aws_cdk/aws_ssm/__init__.py +401 -58
  264. aws_cdk/aws_ssmcontacts/__init__.py +46 -8
  265. aws_cdk/aws_ssmguiconnect/__init__.py +13 -2
  266. aws_cdk/aws_ssmincidents/__init__.py +24 -4
  267. aws_cdk/aws_ssmquicksetup/__init__.py +383 -6
  268. aws_cdk/aws_sso/__init__.py +70 -12
  269. aws_cdk/aws_stepfunctions/__init__.py +615 -70
  270. aws_cdk/aws_stepfunctions_tasks/__init__.py +781 -144
  271. aws_cdk/aws_supportapp/__init__.py +39 -6
  272. aws_cdk/aws_synthetics/__init__.py +861 -75
  273. aws_cdk/aws_systemsmanagersap/__init__.py +13 -2
  274. aws_cdk/aws_timestream/__init__.py +104 -8
  275. aws_cdk/aws_transfer/__init__.py +784 -87
  276. aws_cdk/aws_verifiedpermissions/__init__.py +145 -17
  277. aws_cdk/aws_voiceid/__init__.py +41 -2
  278. aws_cdk/aws_vpclattice/__init__.py +376 -30
  279. aws_cdk/aws_waf/__init__.py +79 -14
  280. aws_cdk/aws_wafregional/__init__.py +123 -22
  281. aws_cdk/aws_wafv2/__init__.py +1179 -60
  282. aws_cdk/aws_wisdom/__init__.py +1401 -90
  283. aws_cdk/aws_workspaces/__init__.py +93 -6
  284. aws_cdk/aws_workspacesinstances/__init__.py +3940 -0
  285. aws_cdk/aws_workspacesthinclient/__init__.py +79 -10
  286. aws_cdk/aws_workspacesweb/__init__.py +1057 -141
  287. aws_cdk/aws_xray/__init__.py +48 -8
  288. aws_cdk/cloud_assembly_schema/__init__.py +231 -6
  289. aws_cdk/custom_resources/__init__.py +40 -12
  290. aws_cdk/cx_api/__init__.py +85 -14
  291. aws_cdk/interfaces/__init__.py +739 -0
  292. aws_cdk/interfaces/alexa_ask/__init__.py +146 -0
  293. aws_cdk/interfaces/aws_accessanalyzer/__init__.py +146 -0
  294. aws_cdk/interfaces/aws_acmpca/__init__.py +501 -0
  295. aws_cdk/interfaces/aws_aiops/__init__.py +146 -0
  296. aws_cdk/interfaces/aws_amazonmq/__init__.py +386 -0
  297. aws_cdk/interfaces/aws_amplify/__init__.py +352 -0
  298. aws_cdk/interfaces/aws_amplifyuibuilder/__init__.py +454 -0
  299. aws_cdk/interfaces/aws_apigateway/__init__.py +2486 -0
  300. aws_cdk/interfaces/aws_apigatewayv2/__init__.py +1651 -0
  301. aws_cdk/interfaces/aws_appconfig/__init__.py +1020 -0
  302. aws_cdk/interfaces/aws_appflow/__init__.py +404 -0
  303. aws_cdk/interfaces/aws_appintegrations/__init__.py +396 -0
  304. aws_cdk/interfaces/aws_applicationautoscaling/__init__.py +307 -0
  305. aws_cdk/interfaces/aws_applicationinsights/__init__.py +148 -0
  306. aws_cdk/interfaces/aws_applicationsignals/__init__.py +358 -0
  307. aws_cdk/interfaces/aws_appmesh/__init__.py +888 -0
  308. aws_cdk/interfaces/aws_apprunner/__init__.py +564 -0
  309. aws_cdk/interfaces/aws_appstream/__init__.py +1482 -0
  310. aws_cdk/interfaces/aws_appsync/__init__.py +1326 -0
  311. aws_cdk/interfaces/aws_apptest/__init__.py +163 -0
  312. aws_cdk/interfaces/aws_aps/__init__.py +558 -0
  313. aws_cdk/interfaces/aws_arcregionswitch/__init__.py +146 -0
  314. aws_cdk/interfaces/aws_arczonalshift/__init__.py +273 -0
  315. aws_cdk/interfaces/aws_athena/__init__.py +575 -0
  316. aws_cdk/interfaces/aws_auditmanager/__init__.py +163 -0
  317. aws_cdk/interfaces/aws_autoscaling/__init__.py +705 -0
  318. aws_cdk/interfaces/aws_autoscalingplans/__init__.py +148 -0
  319. aws_cdk/interfaces/aws_b2bi/__init__.py +524 -0
  320. aws_cdk/interfaces/aws_backup/__init__.py +955 -0
  321. aws_cdk/interfaces/aws_backupgateway/__init__.py +146 -0
  322. aws_cdk/interfaces/aws_batch/__init__.py +681 -0
  323. aws_cdk/interfaces/aws_bcmdataexports/__init__.py +146 -0
  324. aws_cdk/interfaces/aws_bedrock/__init__.py +1942 -0
  325. aws_cdk/interfaces/aws_bedrockagentcore/__init__.py +934 -0
  326. aws_cdk/interfaces/aws_billing/__init__.py +146 -0
  327. aws_cdk/interfaces/aws_billingconductor/__init__.py +463 -0
  328. aws_cdk/interfaces/aws_budgets/__init__.py +261 -0
  329. aws_cdk/interfaces/aws_cassandra/__init__.py +381 -0
  330. aws_cdk/interfaces/aws_ce/__init__.py +352 -0
  331. aws_cdk/interfaces/aws_certificatemanager/__init__.py +251 -0
  332. aws_cdk/interfaces/aws_chatbot/__init__.py +366 -0
  333. aws_cdk/interfaces/aws_cleanrooms/__init__.py +1103 -0
  334. aws_cdk/interfaces/aws_cleanroomsml/__init__.py +148 -0
  335. aws_cdk/interfaces/aws_cloud9/__init__.py +166 -0
  336. aws_cdk/interfaces/aws_cloudformation/__init__.py +1919 -0
  337. aws_cdk/interfaces/aws_cloudfront/__init__.py +1998 -0
  338. aws_cdk/interfaces/aws_cloudtrail/__init__.py +570 -0
  339. aws_cdk/interfaces/aws_cloudwatch/__init__.py +733 -0
  340. aws_cdk/interfaces/aws_codeartifact/__init__.py +352 -0
  341. aws_cdk/interfaces/aws_codebuild/__init__.py +487 -0
  342. aws_cdk/interfaces/aws_codecommit/__init__.py +163 -0
  343. aws_cdk/interfaces/aws_codeconnections/__init__.py +146 -0
  344. aws_cdk/interfaces/aws_codedeploy/__init__.py +352 -0
  345. aws_cdk/interfaces/aws_codeguruprofiler/__init__.py +168 -0
  346. aws_cdk/interfaces/aws_codegurureviewer/__init__.py +148 -0
  347. aws_cdk/interfaces/aws_codepipeline/__init__.py +388 -0
  348. aws_cdk/interfaces/aws_codestar/__init__.py +146 -0
  349. aws_cdk/interfaces/aws_codestarconnections/__init__.py +370 -0
  350. aws_cdk/interfaces/aws_codestarnotifications/__init__.py +148 -0
  351. aws_cdk/interfaces/aws_cognito/__init__.py +1929 -0
  352. aws_cdk/interfaces/aws_comprehend/__init__.py +251 -0
  353. aws_cdk/interfaces/aws_config/__init__.py +1165 -0
  354. aws_cdk/interfaces/aws_connect/__init__.py +2949 -0
  355. aws_cdk/interfaces/aws_connectcampaigns/__init__.py +146 -0
  356. aws_cdk/interfaces/aws_connectcampaignsv2/__init__.py +146 -0
  357. aws_cdk/interfaces/aws_controltower/__init__.py +394 -0
  358. aws_cdk/interfaces/aws_cur/__init__.py +146 -0
  359. aws_cdk/interfaces/aws_customerprofiles/__init__.py +915 -0
  360. aws_cdk/interfaces/aws_databrew/__init__.py +661 -0
  361. aws_cdk/interfaces/aws_datapipeline/__init__.py +146 -0
  362. aws_cdk/interfaces/aws_datasync/__init__.py +1384 -0
  363. aws_cdk/interfaces/aws_datazone/__init__.py +2238 -0
  364. aws_cdk/interfaces/aws_dax/__init__.py +364 -0
  365. aws_cdk/interfaces/aws_deadline/__init__.py +1303 -0
  366. aws_cdk/interfaces/aws_detective/__init__.py +364 -0
  367. aws_cdk/interfaces/aws_devicefarm/__init__.py +663 -0
  368. aws_cdk/interfaces/aws_devopsguru/__init__.py +362 -0
  369. aws_cdk/interfaces/aws_directoryservice/__init__.py +251 -0
  370. aws_cdk/interfaces/aws_dlm/__init__.py +166 -0
  371. aws_cdk/interfaces/aws_dms/__init__.py +1176 -0
  372. aws_cdk/interfaces/aws_docdb/__init__.py +560 -0
  373. aws_cdk/interfaces/aws_docdbelastic/__init__.py +146 -0
  374. aws_cdk/interfaces/aws_dsql/__init__.py +146 -0
  375. aws_cdk/interfaces/aws_dynamodb/__init__.py +278 -0
  376. aws_cdk/interfaces/aws_ec2/__init__.py +11963 -0
  377. aws_cdk/interfaces/aws_ecr/__init__.py +814 -0
  378. aws_cdk/interfaces/aws_ecs/__init__.py +845 -0
  379. aws_cdk/interfaces/aws_efs/__init__.py +392 -0
  380. aws_cdk/interfaces/aws_eks/__init__.py +948 -0
  381. aws_cdk/interfaces/aws_elasticache/__init__.py +1108 -0
  382. aws_cdk/interfaces/aws_elasticbeanstalk/__init__.py +503 -0
  383. aws_cdk/interfaces/aws_elasticloadbalancing/__init__.py +148 -0
  384. aws_cdk/interfaces/aws_elasticloadbalancingv2/__init__.py +795 -0
  385. aws_cdk/interfaces/aws_elasticsearch/__init__.py +158 -0
  386. aws_cdk/interfaces/aws_emr/__init__.py +913 -0
  387. aws_cdk/interfaces/aws_emrcontainers/__init__.py +168 -0
  388. aws_cdk/interfaces/aws_emrserverless/__init__.py +166 -0
  389. aws_cdk/interfaces/aws_entityresolution/__init__.py +608 -0
  390. aws_cdk/interfaces/aws_events/__init__.py +872 -0
  391. aws_cdk/interfaces/aws_eventschemas/__init__.py +455 -0
  392. aws_cdk/interfaces/aws_evidently/__init__.py +558 -0
  393. aws_cdk/interfaces/aws_evs/__init__.py +166 -0
  394. aws_cdk/interfaces/aws_finspace/__init__.py +166 -0
  395. aws_cdk/interfaces/aws_fis/__init__.py +271 -0
  396. aws_cdk/interfaces/aws_fms/__init__.py +364 -0
  397. aws_cdk/interfaces/aws_forecast/__init__.py +249 -0
  398. aws_cdk/interfaces/aws_frauddetector/__init__.py +764 -0
  399. aws_cdk/interfaces/aws_fsx/__init__.py +663 -0
  400. aws_cdk/interfaces/aws_gamelift/__init__.py +1325 -0
  401. aws_cdk/interfaces/aws_gameliftstreams/__init__.py +249 -0
  402. aws_cdk/interfaces/aws_globalaccelerator/__init__.py +461 -0
  403. aws_cdk/interfaces/aws_glue/__init__.py +2377 -0
  404. aws_cdk/interfaces/aws_grafana/__init__.py +146 -0
  405. aws_cdk/interfaces/aws_greengrass/__init__.py +1871 -0
  406. aws_cdk/interfaces/aws_greengrassv2/__init__.py +251 -0
  407. aws_cdk/interfaces/aws_groundstation/__init__.py +396 -0
  408. aws_cdk/interfaces/aws_guardduty/__init__.py +1225 -0
  409. aws_cdk/interfaces/aws_healthimaging/__init__.py +163 -0
  410. aws_cdk/interfaces/aws_healthlake/__init__.py +146 -0
  411. aws_cdk/interfaces/aws_iam/__init__.py +1803 -0
  412. aws_cdk/interfaces/aws_identitystore/__init__.py +288 -0
  413. aws_cdk/interfaces/aws_imagebuilder/__init__.py +984 -0
  414. aws_cdk/interfaces/aws_inspector/__init__.py +354 -0
  415. aws_cdk/interfaces/aws_inspectorv2/__init__.py +467 -0
  416. aws_cdk/interfaces/aws_internetmonitor/__init__.py +163 -0
  417. aws_cdk/interfaces/aws_invoicing/__init__.py +146 -0
  418. aws_cdk/interfaces/aws_iot/__init__.py +3483 -0
  419. aws_cdk/interfaces/aws_iotanalytics/__init__.py +455 -0
  420. aws_cdk/interfaces/aws_iotcoredeviceadvisor/__init__.py +168 -0
  421. aws_cdk/interfaces/aws_iotevents/__init__.py +352 -0
  422. aws_cdk/interfaces/aws_iotfleethub/__init__.py +166 -0
  423. aws_cdk/interfaces/aws_iotfleetwise/__init__.py +892 -0
  424. aws_cdk/interfaces/aws_iotsitewise/__init__.py +1097 -0
  425. aws_cdk/interfaces/aws_iotthingsgraph/__init__.py +146 -0
  426. aws_cdk/interfaces/aws_iottwinmaker/__init__.py +711 -0
  427. aws_cdk/interfaces/aws_iotwireless/__init__.py +1401 -0
  428. aws_cdk/interfaces/aws_ivs/__init__.py +1075 -0
  429. aws_cdk/interfaces/aws_ivschat/__init__.py +251 -0
  430. aws_cdk/interfaces/aws_kafkaconnect/__init__.py +354 -0
  431. aws_cdk/interfaces/aws_kendra/__init__.py +428 -0
  432. aws_cdk/interfaces/aws_kendraranking/__init__.py +166 -0
  433. aws_cdk/interfaces/aws_kinesis/__init__.py +364 -0
  434. aws_cdk/interfaces/aws_kinesisanalytics/__init__.py +364 -0
  435. aws_cdk/interfaces/aws_kinesisanalyticsv2/__init__.py +479 -0
  436. aws_cdk/interfaces/aws_kinesisfirehose/__init__.py +168 -0
  437. aws_cdk/interfaces/aws_kinesisvideo/__init__.py +283 -0
  438. aws_cdk/interfaces/aws_kms/__init__.py +376 -0
  439. aws_cdk/interfaces/aws_lakeformation/__init__.py +860 -0
  440. aws_cdk/interfaces/aws_lambda/__init__.py +1141 -0
  441. aws_cdk/interfaces/aws_launchwizard/__init__.py +146 -0
  442. aws_cdk/interfaces/aws_lex/__init__.py +513 -0
  443. aws_cdk/interfaces/aws_licensemanager/__init__.py +249 -0
  444. aws_cdk/interfaces/aws_lightsail/__init__.py +1744 -0
  445. aws_cdk/interfaces/aws_location/__init__.py +879 -0
  446. aws_cdk/interfaces/aws_logs/__init__.py +1667 -0
  447. aws_cdk/interfaces/aws_lookoutequipment/__init__.py +168 -0
  448. aws_cdk/interfaces/aws_lookoutmetrics/__init__.py +251 -0
  449. aws_cdk/interfaces/aws_lookoutvision/__init__.py +163 -0
  450. aws_cdk/interfaces/aws_m2/__init__.py +352 -0
  451. aws_cdk/interfaces/aws_macie/__init__.py +512 -0
  452. aws_cdk/interfaces/aws_managedblockchain/__init__.py +381 -0
  453. aws_cdk/interfaces/aws_mediaconnect/__init__.py +1028 -0
  454. aws_cdk/interfaces/aws_mediaconvert/__init__.py +396 -0
  455. aws_cdk/interfaces/aws_medialive/__init__.py +1755 -0
  456. aws_cdk/interfaces/aws_mediapackage/__init__.py +644 -0
  457. aws_cdk/interfaces/aws_mediapackagev2/__init__.py +618 -0
  458. aws_cdk/interfaces/aws_mediastore/__init__.py +146 -0
  459. aws_cdk/interfaces/aws_mediatailor/__init__.py +788 -0
  460. aws_cdk/interfaces/aws_memorydb/__init__.py +685 -0
  461. aws_cdk/interfaces/aws_mpa/__init__.py +249 -0
  462. aws_cdk/interfaces/aws_msk/__init__.py +764 -0
  463. aws_cdk/interfaces/aws_mwaa/__init__.py +166 -0
  464. aws_cdk/interfaces/aws_neptune/__init__.py +663 -0
  465. aws_cdk/interfaces/aws_neptunegraph/__init__.py +265 -0
  466. aws_cdk/interfaces/aws_networkfirewall/__init__.py +669 -0
  467. aws_cdk/interfaces/aws_networkmanager/__init__.py +1832 -0
  468. aws_cdk/interfaces/aws_nimblestudio/__init__.py +388 -0
  469. aws_cdk/interfaces/aws_notifications/__init__.py +868 -0
  470. aws_cdk/interfaces/aws_notificationscontacts/__init__.py +148 -0
  471. aws_cdk/interfaces/aws_oam/__init__.py +249 -0
  472. aws_cdk/interfaces/aws_observabilityadmin/__init__.py +362 -0
  473. aws_cdk/interfaces/aws_odb/__init__.py +562 -0
  474. aws_cdk/interfaces/aws_omics/__init__.py +838 -0
  475. aws_cdk/interfaces/aws_opensearchserverless/__init__.py +859 -0
  476. aws_cdk/interfaces/aws_opensearchservice/__init__.py +283 -0
  477. aws_cdk/interfaces/aws_opsworks/__init__.py +772 -0
  478. aws_cdk/interfaces/aws_opsworkscm/__init__.py +146 -0
  479. aws_cdk/interfaces/aws_organizations/__init__.py +646 -0
  480. aws_cdk/interfaces/aws_osis/__init__.py +146 -0
  481. aws_cdk/interfaces/aws_panorama/__init__.py +420 -0
  482. aws_cdk/interfaces/aws_paymentcryptography/__init__.py +249 -0
  483. aws_cdk/interfaces/aws_pcaconnectorad/__init__.py +608 -0
  484. aws_cdk/interfaces/aws_pcaconnectorscep/__init__.py +249 -0
  485. aws_cdk/interfaces/aws_pcs/__init__.py +352 -0
  486. aws_cdk/interfaces/aws_personalize/__init__.py +455 -0
  487. aws_cdk/interfaces/aws_pinpoint/__init__.py +2125 -0
  488. aws_cdk/interfaces/aws_pinpointemail/__init__.py +467 -0
  489. aws_cdk/interfaces/aws_pipes/__init__.py +158 -0
  490. aws_cdk/interfaces/aws_proton/__init__.py +360 -0
  491. aws_cdk/interfaces/aws_qbusiness/__init__.py +1122 -0
  492. aws_cdk/interfaces/aws_qldb/__init__.py +283 -0
  493. aws_cdk/interfaces/aws_quicksight/__init__.py +1566 -0
  494. aws_cdk/interfaces/aws_ram/__init__.py +249 -0
  495. aws_cdk/interfaces/aws_rbin/__init__.py +146 -0
  496. aws_cdk/interfaces/aws_rds/__init__.py +1780 -0
  497. aws_cdk/interfaces/aws_redshift/__init__.py +1104 -0
  498. aws_cdk/interfaces/aws_redshiftserverless/__init__.py +356 -0
  499. aws_cdk/interfaces/aws_refactorspaces/__init__.py +605 -0
  500. aws_cdk/interfaces/aws_rekognition/__init__.py +406 -0
  501. aws_cdk/interfaces/aws_resiliencehub/__init__.py +251 -0
  502. aws_cdk/interfaces/aws_resourceexplorer2/__init__.py +354 -0
  503. aws_cdk/interfaces/aws_resourcegroups/__init__.py +261 -0
  504. aws_cdk/interfaces/aws_robomaker/__init__.py +673 -0
  505. aws_cdk/interfaces/aws_rolesanywhere/__init__.py +384 -0
  506. aws_cdk/interfaces/aws_route53/__init__.py +804 -0
  507. aws_cdk/interfaces/aws_route53profiles/__init__.py +368 -0
  508. aws_cdk/interfaces/aws_route53recoverycontrol/__init__.py +463 -0
  509. aws_cdk/interfaces/aws_route53recoveryreadiness/__init__.py +535 -0
  510. aws_cdk/interfaces/aws_route53resolver/__init__.py +1356 -0
  511. aws_cdk/interfaces/aws_rtbfabric/__init__.py +352 -0
  512. aws_cdk/interfaces/aws_rum/__init__.py +146 -0
  513. aws_cdk/interfaces/aws_s3/__init__.py +1171 -0
  514. aws_cdk/interfaces/aws_s3express/__init__.py +392 -0
  515. aws_cdk/interfaces/aws_s3objectlambda/__init__.py +271 -0
  516. aws_cdk/interfaces/aws_s3outposts/__init__.py +455 -0
  517. aws_cdk/interfaces/aws_s3tables/__init__.py +575 -0
  518. aws_cdk/interfaces/aws_s3vectors/__init__.py +354 -0
  519. aws_cdk/interfaces/aws_sagemaker/__init__.py +3797 -0
  520. aws_cdk/interfaces/aws_sam/__init__.py +603 -0
  521. aws_cdk/interfaces/aws_scheduler/__init__.py +286 -0
  522. aws_cdk/interfaces/aws_sdb/__init__.py +146 -0
  523. aws_cdk/interfaces/aws_secretsmanager/__init__.py +461 -0
  524. aws_cdk/interfaces/aws_securityhub/__init__.py +1499 -0
  525. aws_cdk/interfaces/aws_securitylake/__init__.py +474 -0
  526. aws_cdk/interfaces/aws_servicecatalog/__init__.py +1829 -0
  527. aws_cdk/interfaces/aws_servicecatalogappregistry/__init__.py +557 -0
  528. aws_cdk/interfaces/aws_servicediscovery/__init__.py +636 -0
  529. aws_cdk/interfaces/aws_ses/__init__.py +2018 -0
  530. aws_cdk/interfaces/aws_shield/__init__.py +455 -0
  531. aws_cdk/interfaces/aws_signer/__init__.py +266 -0
  532. aws_cdk/interfaces/aws_simspaceweaver/__init__.py +146 -0
  533. aws_cdk/interfaces/aws_smsvoice/__init__.py +892 -0
  534. aws_cdk/interfaces/aws_sns/__init__.py +455 -0
  535. aws_cdk/interfaces/aws_sqs/__init__.py +364 -0
  536. aws_cdk/interfaces/aws_ssm/__init__.py +982 -0
  537. aws_cdk/interfaces/aws_ssmcontacts/__init__.py +455 -0
  538. aws_cdk/interfaces/aws_ssmguiconnect/__init__.py +146 -0
  539. aws_cdk/interfaces/aws_ssmincidents/__init__.py +249 -0
  540. aws_cdk/interfaces/aws_ssmquicksetup/__init__.py +253 -0
  541. aws_cdk/interfaces/aws_sso/__init__.py +797 -0
  542. aws_cdk/interfaces/aws_stepfunctions/__init__.py +459 -0
  543. aws_cdk/interfaces/aws_supportapp/__init__.py +372 -0
  544. aws_cdk/interfaces/aws_synthetics/__init__.py +249 -0
  545. aws_cdk/interfaces/aws_systemsmanagersap/__init__.py +148 -0
  546. aws_cdk/interfaces/aws_timestream/__init__.py +526 -0
  547. aws_cdk/interfaces/aws_transfer/__init__.py +967 -0
  548. aws_cdk/interfaces/aws_verifiedpermissions/__init__.py +538 -0
  549. aws_cdk/interfaces/aws_voiceid/__init__.py +146 -0
  550. aws_cdk/interfaces/aws_vpclattice/__init__.py +1418 -0
  551. aws_cdk/interfaces/aws_waf/__init__.py +764 -0
  552. aws_cdk/interfaces/aws_wafregional/__init__.py +1182 -0
  553. aws_cdk/interfaces/aws_wafv2/__init__.py +870 -0
  554. aws_cdk/interfaces/aws_wisdom/__init__.py +1556 -0
  555. aws_cdk/interfaces/aws_workspaces/__init__.py +352 -0
  556. aws_cdk/interfaces/aws_workspacesinstances/__init__.py +390 -0
  557. aws_cdk/interfaces/aws_workspacesthinclient/__init__.py +168 -0
  558. aws_cdk/interfaces/aws_workspacesweb/__init__.py +1085 -0
  559. aws_cdk/interfaces/aws_xray/__init__.py +457 -0
  560. aws_cdk/pipelines/__init__.py +192 -42
  561. aws_cdk/region_info/__init__.py +3 -0
  562. aws_cdk/triggers/__init__.py +60 -18
  563. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/METADATA +338 -16
  564. aws_cdk_lib-2.224.0.dist-info/RECORD +584 -0
  565. aws_cdk_lib-2.200.2.dist-info/RECORD +0 -304
  566. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/LICENSE +0 -0
  567. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/NOTICE +0 -0
  568. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/WHEEL +0 -0
  569. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/top_level.txt +0 -0
@@ -1029,6 +1029,41 @@ from .. import (
1029
1029
  TagManager as _TagManager_0a598cb3,
1030
1030
  TreeInspector as _TreeInspector_488e0dd5,
1031
1031
  )
1032
+ from ..interfaces import IEnvironmentAware as _IEnvironmentAware_f39049ee
1033
+ from ..interfaces.aws_iam import (
1034
+ AccessKeyReference as _AccessKeyReference_2bdfd122,
1035
+ GroupPolicyReference as _GroupPolicyReference_d179b98e,
1036
+ GroupReference as _GroupReference_cd6b1d81,
1037
+ IAccessKeyRef as _IAccessKeyRef_e97ef40a,
1038
+ IGroupPolicyRef as _IGroupPolicyRef_35f73c8c,
1039
+ IGroupRef as _IGroupRef_aeb1d9f6,
1040
+ IInstanceProfileRef as _IInstanceProfileRef_d6832c90,
1041
+ IManagedPolicyRef as _IManagedPolicyRef_a7a65687,
1042
+ IOIDCProviderRef as _IOIDCProviderRef_a866c7c8,
1043
+ IPolicyRef as _IPolicyRef_5e74a0ba,
1044
+ IRolePolicyRef as _IRolePolicyRef_26b13525,
1045
+ IRoleRef as _IRoleRef_8400221f,
1046
+ ISAMLProviderRef as _ISAMLProviderRef_6e369856,
1047
+ IServerCertificateRef as _IServerCertificateRef_005ddfcc,
1048
+ IServiceLinkedRoleRef as _IServiceLinkedRoleRef_ba92e11b,
1049
+ IUserPolicyRef as _IUserPolicyRef_e6abac3e,
1050
+ IUserRef as _IUserRef_b0ccca76,
1051
+ IUserToGroupAdditionRef as _IUserToGroupAdditionRef_e1276f9a,
1052
+ IVirtualMFADeviceRef as _IVirtualMFADeviceRef_fec1f13e,
1053
+ InstanceProfileReference as _InstanceProfileReference_5eee4bbb,
1054
+ ManagedPolicyReference as _ManagedPolicyReference_078bf7cb,
1055
+ OIDCProviderReference as _OIDCProviderReference_9a12fabd,
1056
+ PolicyReference as _PolicyReference_b83371a5,
1057
+ RolePolicyReference as _RolePolicyReference_0cf19357,
1058
+ RoleReference as _RoleReference_447077bb,
1059
+ SAMLProviderReference as _SAMLProviderReference_08e1fac1,
1060
+ ServerCertificateReference as _ServerCertificateReference_0e96ef93,
1061
+ ServiceLinkedRoleReference as _ServiceLinkedRoleReference_863fd3da,
1062
+ UserPolicyReference as _UserPolicyReference_4aa6daa0,
1063
+ UserReference as _UserReference_6bf884c6,
1064
+ UserToGroupAdditionReference as _UserToGroupAdditionReference_94731a73,
1065
+ VirtualMFADeviceReference as _VirtualMFADeviceReference_dd7d7c2b,
1066
+ )
1032
1067
 
1033
1068
 
1034
1069
  @jsii.data_type(
@@ -1136,6 +1171,8 @@ class AccessKeyStatus(enum.Enum):
1136
1171
 
1137
1172
  An inactive key cannot be used to make API calls.
1138
1173
  '''
1174
+ EXPIRED = "EXPIRED"
1175
+ '''An expired access key.'''
1139
1176
 
1140
1177
 
1141
1178
  @jsii.data_type(
@@ -1289,7 +1326,7 @@ class AddToResourcePolicyResult:
1289
1326
  )
1290
1327
 
1291
1328
 
1292
- @jsii.implements(_IInspectable_c2943556)
1329
+ @jsii.implements(_IInspectable_c2943556, _IAccessKeyRef_e97ef40a)
1293
1330
  class CfnAccessKey(
1294
1331
  _CfnResource_9df397a6,
1295
1332
  metaclass=jsii.JSIIMeta,
@@ -1332,7 +1369,8 @@ class CfnAccessKey(
1332
1369
  serial: typing.Optional[jsii.Number] = None,
1333
1370
  status: typing.Optional[builtins.str] = None,
1334
1371
  ) -> None:
1335
- '''
1372
+ '''Create a new ``AWS::IAM::AccessKey``.
1373
+
1336
1374
  :param scope: Scope in which this resource is defined.
1337
1375
  :param id: Construct identifier for this resource (unique in its scope).
1338
1376
  :param user_name: The name of the IAM user that the new key will belong to. This parameter allows (through its `regex pattern <https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex>`_ ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
@@ -1377,6 +1415,12 @@ class CfnAccessKey(
1377
1415
  '''The CloudFormation resource type name for this resource class.'''
1378
1416
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
1379
1417
 
1418
+ @builtins.property
1419
+ @jsii.member(jsii_name="accessKeyRef")
1420
+ def access_key_ref(self) -> _AccessKeyReference_2bdfd122:
1421
+ '''A reference to a AccessKey resource.'''
1422
+ return typing.cast(_AccessKeyReference_2bdfd122, jsii.get(self, "accessKeyRef"))
1423
+
1380
1424
  @builtins.property
1381
1425
  @jsii.member(jsii_name="attrId")
1382
1426
  def attr_id(self) -> builtins.str:
@@ -1537,7 +1581,7 @@ class CfnAccessKeyProps:
1537
1581
  )
1538
1582
 
1539
1583
 
1540
- @jsii.implements(_IInspectable_c2943556)
1584
+ @jsii.implements(_IInspectable_c2943556, _IGroupRef_aeb1d9f6)
1541
1585
  class CfnGroup(
1542
1586
  _CfnResource_9df397a6,
1543
1587
  metaclass=jsii.JSIIMeta,
@@ -1580,7 +1624,8 @@ class CfnGroup(
1580
1624
  path: typing.Optional[builtins.str] = None,
1581
1625
  policies: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnGroup.PolicyProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
1582
1626
  ) -> None:
1583
- '''
1627
+ '''Create a new ``AWS::IAM::Group``.
1628
+
1584
1629
  :param scope: Scope in which this resource is defined.
1585
1630
  :param id: Construct identifier for this resource (unique in its scope).
1586
1631
  :param group_name: The name of the group to create. Do not include the path in this value. The group name must be unique within the account. Group names are not distinguished by case. For example, you cannot create groups named both "ADMINS" and "admins". If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the group name. .. epigraph:: If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see `Acknowledging IAM Resources in AWS CloudFormation Templates <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities>`_ . .. epigraph:: Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}`` .
@@ -1647,6 +1692,12 @@ class CfnGroup(
1647
1692
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1648
1693
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1649
1694
 
1695
+ @builtins.property
1696
+ @jsii.member(jsii_name="groupRef")
1697
+ def group_ref(self) -> _GroupReference_cd6b1d81:
1698
+ '''A reference to a Group resource.'''
1699
+ return typing.cast(_GroupReference_cd6b1d81, jsii.get(self, "groupRef"))
1700
+
1650
1701
  @builtins.property
1651
1702
  @jsii.member(jsii_name="groupName")
1652
1703
  def group_name(self) -> typing.Optional[builtins.str]:
@@ -1794,7 +1845,7 @@ class CfnGroup(
1794
1845
  )
1795
1846
 
1796
1847
 
1797
- @jsii.implements(_IInspectable_c2943556)
1848
+ @jsii.implements(_IInspectable_c2943556, _IGroupPolicyRef_35f73c8c)
1798
1849
  class CfnGroupPolicy(
1799
1850
  _CfnResource_9df397a6,
1800
1851
  metaclass=jsii.JSIIMeta,
@@ -1836,7 +1887,8 @@ class CfnGroupPolicy(
1836
1887
  policy_name: builtins.str,
1837
1888
  policy_document: typing.Any = None,
1838
1889
  ) -> None:
1839
- '''
1890
+ '''Create a new ``AWS::IAM::GroupPolicy``.
1891
+
1840
1892
  :param scope: Scope in which this resource is defined.
1841
1893
  :param id: Construct identifier for this resource (unique in its scope).
1842
1894
  :param group_name: The name of the group to associate the policy with. This parameter allows (through its `regex pattern <https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex>`_ ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-.
@@ -1890,6 +1942,12 @@ class CfnGroupPolicy(
1890
1942
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1891
1943
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1892
1944
 
1945
+ @builtins.property
1946
+ @jsii.member(jsii_name="groupPolicyRef")
1947
+ def group_policy_ref(self) -> _GroupPolicyReference_d179b98e:
1948
+ '''A reference to a GroupPolicy resource.'''
1949
+ return typing.cast(_GroupPolicyReference_d179b98e, jsii.get(self, "groupPolicyRef"))
1950
+
1893
1951
  @builtins.property
1894
1952
  @jsii.member(jsii_name="groupName")
1895
1953
  def group_name(self) -> builtins.str:
@@ -2173,7 +2231,7 @@ class CfnGroupProps:
2173
2231
  )
2174
2232
 
2175
2233
 
2176
- @jsii.implements(_IInspectable_c2943556)
2234
+ @jsii.implements(_IInspectable_c2943556, _IInstanceProfileRef_d6832c90)
2177
2235
  class CfnInstanceProfile(
2178
2236
  _CfnResource_9df397a6,
2179
2237
  metaclass=jsii.JSIIMeta,
@@ -2211,7 +2269,8 @@ class CfnInstanceProfile(
2211
2269
  instance_profile_name: typing.Optional[builtins.str] = None,
2212
2270
  path: typing.Optional[builtins.str] = None,
2213
2271
  ) -> None:
2214
- '''
2272
+ '''Create a new ``AWS::IAM::InstanceProfile``.
2273
+
2215
2274
  :param scope: Scope in which this resource is defined.
2216
2275
  :param id: Construct identifier for this resource (unique in its scope).
2217
2276
  :param roles: The name of the role to associate with the instance profile. Only one role can be assigned to an EC2 instance at a time, and all applications on the instance share the same role and permissions.
@@ -2276,6 +2335,12 @@ class CfnInstanceProfile(
2276
2335
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2277
2336
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2278
2337
 
2338
+ @builtins.property
2339
+ @jsii.member(jsii_name="instanceProfileRef")
2340
+ def instance_profile_ref(self) -> _InstanceProfileReference_5eee4bbb:
2341
+ '''A reference to a InstanceProfile resource.'''
2342
+ return typing.cast(_InstanceProfileReference_5eee4bbb, jsii.get(self, "instanceProfileRef"))
2343
+
2279
2344
  @builtins.property
2280
2345
  @jsii.member(jsii_name="roles")
2281
2346
  def roles(self) -> typing.List[builtins.str]:
@@ -2419,7 +2484,7 @@ class CfnInstanceProfileProps:
2419
2484
  )
2420
2485
 
2421
2486
 
2422
- @jsii.implements(_IInspectable_c2943556)
2487
+ @jsii.implements(_IInspectable_c2943556, _IManagedPolicyRef_a7a65687)
2423
2488
  class CfnManagedPolicy(
2424
2489
  _CfnResource_9df397a6,
2425
2490
  metaclass=jsii.JSIIMeta,
@@ -2471,7 +2536,8 @@ class CfnManagedPolicy(
2471
2536
  roles: typing.Optional[typing.Sequence[builtins.str]] = None,
2472
2537
  users: typing.Optional[typing.Sequence[builtins.str]] = None,
2473
2538
  ) -> None:
2474
- '''
2539
+ '''Create a new ``AWS::IAM::ManagedPolicy``.
2540
+
2475
2541
  :param scope: Scope in which this resource is defined.
2476
2542
  :param id: Construct identifier for this resource (unique in its scope).
2477
2543
  :param policy_document: The JSON policy document that you want to use as the content for the new policy. You must provide policies in JSON format in IAM. However, for AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. AWS CloudFormation always converts a YAML policy to JSON format before submitting it to IAM. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see `IAM and AWS STS character quotas <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length>`_ . To learn more about JSON policy grammar, see `Grammar of the IAM JSON policy language <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html>`_ in the *IAM User Guide* . The `regex pattern <https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex>`_ used to validate this parameter is a string of characters consisting of the following: - Any printable ASCII character ranging from the space character ( ``\\u0020`` ) through the end of the ASCII character range - The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF`` ) - The special characters tab ( ``\\u0009`` ), line feed ( ``\\u000A`` ), and carriage return ( ``\\u000D`` )
@@ -2615,6 +2681,12 @@ class CfnManagedPolicy(
2615
2681
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2616
2682
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2617
2683
 
2684
+ @builtins.property
2685
+ @jsii.member(jsii_name="managedPolicyRef")
2686
+ def managed_policy_ref(self) -> _ManagedPolicyReference_078bf7cb:
2687
+ '''A reference to a ManagedPolicy resource.'''
2688
+ return typing.cast(_ManagedPolicyReference_078bf7cb, jsii.get(self, "managedPolicyRef"))
2689
+
2618
2690
  @builtins.property
2619
2691
  @jsii.member(jsii_name="policyDocument")
2620
2692
  def policy_document(self) -> typing.Any:
@@ -2911,7 +2983,7 @@ class CfnManagedPolicyProps:
2911
2983
  )
2912
2984
 
2913
2985
 
2914
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
2986
+ @jsii.implements(_IInspectable_c2943556, _IOIDCProviderRef_a866c7c8, _ITaggable_36806126)
2915
2987
  class CfnOIDCProvider(
2916
2988
  _CfnResource_9df397a6,
2917
2989
  metaclass=jsii.JSIIMeta,
@@ -2972,7 +3044,8 @@ class CfnOIDCProvider(
2972
3044
  thumbprint_list: typing.Optional[typing.Sequence[builtins.str]] = None,
2973
3045
  url: typing.Optional[builtins.str] = None,
2974
3046
  ) -> None:
2975
- '''
3047
+ '''Create a new ``AWS::IAM::OIDCProvider``.
3048
+
2976
3049
  :param scope: Scope in which this resource is defined.
2977
3050
  :param id: Construct identifier for this resource (unique in its scope).
2978
3051
  :param client_id_list: A list of client IDs (also known as audiences) that are associated with the specified IAM OIDC provider resource object. For more information, see `CreateOpenIDConnectProvider <https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html>`_ .
@@ -3037,6 +3110,12 @@ class CfnOIDCProvider(
3037
3110
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3038
3111
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
3039
3112
 
3113
+ @builtins.property
3114
+ @jsii.member(jsii_name="oidcProviderRef")
3115
+ def oidc_provider_ref(self) -> _OIDCProviderReference_9a12fabd:
3116
+ '''A reference to a OIDCProvider resource.'''
3117
+ return typing.cast(_OIDCProviderReference_9a12fabd, jsii.get(self, "oidcProviderRef"))
3118
+
3040
3119
  @builtins.property
3041
3120
  @jsii.member(jsii_name="tags")
3042
3121
  def tags(self) -> _TagManager_0a598cb3:
@@ -3218,7 +3297,7 @@ class CfnOIDCProviderProps:
3218
3297
  )
3219
3298
 
3220
3299
 
3221
- @jsii.implements(_IInspectable_c2943556)
3300
+ @jsii.implements(_IInspectable_c2943556, _IPolicyRef_5e74a0ba)
3222
3301
  class CfnPolicy(
3223
3302
  _CfnResource_9df397a6,
3224
3303
  metaclass=jsii.JSIIMeta,
@@ -3230,7 +3309,7 @@ class CfnPolicy(
3230
3309
 
3231
3310
  The Groups, Roles, and Users properties are optional. However, you must specify at least one of these properties.
3232
3311
 
3233
- For information about policy documents see `Creating IAM policies <https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html>`_ in the *IAM User Guide* .
3312
+ For information about policy documents, see `Creating IAM policies <https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html>`_ in the *IAM User Guide* .
3234
3313
 
3235
3314
  For information about limits on the number of inline policies that you can embed in an identity, see `Limitations on IAM Entities <https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html>`_ in the *IAM User Guide* .
3236
3315
  .. epigraph::
@@ -3275,7 +3354,8 @@ class CfnPolicy(
3275
3354
  roles: typing.Optional[typing.Sequence[builtins.str]] = None,
3276
3355
  users: typing.Optional[typing.Sequence[builtins.str]] = None,
3277
3356
  ) -> None:
3278
- '''
3357
+ '''Create a new ``AWS::IAM::Policy``.
3358
+
3279
3359
  :param scope: Scope in which this resource is defined.
3280
3360
  :param id: Construct identifier for this resource (unique in its scope).
3281
3361
  :param policy_document: The policy document. You must provide policies in JSON format in IAM. However, for AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. AWS CloudFormation always converts a YAML policy to JSON format before submitting it to IAM. The `regex pattern <https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex>`_ used to validate this parameter is a string of characters consisting of the following: - Any printable ASCII character ranging from the space character ( ``\\u0020`` ) through the end of the ASCII character range - The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF`` ) - The special characters tab ( ``\\u0009`` ), line feed ( ``\\u000A`` ), and carriage return ( ``\\u000D`` )
@@ -3344,6 +3424,12 @@ class CfnPolicy(
3344
3424
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3345
3425
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
3346
3426
 
3427
+ @builtins.property
3428
+ @jsii.member(jsii_name="policyRef")
3429
+ def policy_ref(self) -> _PolicyReference_b83371a5:
3430
+ '''A reference to a Policy resource.'''
3431
+ return typing.cast(_PolicyReference_b83371a5, jsii.get(self, "policyRef"))
3432
+
3347
3433
  @builtins.property
3348
3434
  @jsii.member(jsii_name="policyDocument")
3349
3435
  def policy_document(self) -> typing.Any:
@@ -3556,7 +3642,7 @@ class CfnPolicyProps:
3556
3642
  )
3557
3643
 
3558
3644
 
3559
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
3645
+ @jsii.implements(_IInspectable_c2943556, _IRoleRef_8400221f, _ITaggable_36806126)
3560
3646
  class CfnRole(
3561
3647
  _CfnResource_9df397a6,
3562
3648
  metaclass=jsii.JSIIMeta,
@@ -3615,7 +3701,8 @@ class CfnRole(
3615
3701
  role_name: typing.Optional[builtins.str] = None,
3616
3702
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
3617
3703
  ) -> None:
3618
- '''
3704
+ '''Create a new ``AWS::IAM::Role``.
3705
+
3619
3706
  :param scope: Scope in which this resource is defined.
3620
3707
  :param id: Construct identifier for this resource (unique in its scope).
3621
3708
  :param assume_role_policy_document: The trust policy that is associated with this role. Trust policies define which entities can assume the role. You can associate only one trust policy with a role. For an example of a policy that can be used to assume a role, see `Template Examples <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#aws-resource-iam-role--examples>`_ . For more information about the elements that you can use in an IAM policy, see `IAM Policy Elements Reference <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html>`_ in the *IAM User Guide* .
@@ -3705,6 +3792,12 @@ class CfnRole(
3705
3792
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3706
3793
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
3707
3794
 
3795
+ @builtins.property
3796
+ @jsii.member(jsii_name="roleRef")
3797
+ def role_ref(self) -> _RoleReference_447077bb:
3798
+ '''A reference to a Role resource.'''
3799
+ return typing.cast(_RoleReference_447077bb, jsii.get(self, "roleRef"))
3800
+
3708
3801
  @builtins.property
3709
3802
  @jsii.member(jsii_name="tags")
3710
3803
  def tags(self) -> _TagManager_0a598cb3:
@@ -3922,7 +4015,7 @@ class CfnRole(
3922
4015
  )
3923
4016
 
3924
4017
 
3925
- @jsii.implements(_IInspectable_c2943556)
4018
+ @jsii.implements(_IInspectable_c2943556, _IRolePolicyRef_26b13525)
3926
4019
  class CfnRolePolicy(
3927
4020
  _CfnResource_9df397a6,
3928
4021
  metaclass=jsii.JSIIMeta,
@@ -3966,7 +4059,8 @@ class CfnRolePolicy(
3966
4059
  role_name: builtins.str,
3967
4060
  policy_document: typing.Any = None,
3968
4061
  ) -> None:
3969
- '''
4062
+ '''Create a new ``AWS::IAM::RolePolicy``.
4063
+
3970
4064
  :param scope: Scope in which this resource is defined.
3971
4065
  :param id: Construct identifier for this resource (unique in its scope).
3972
4066
  :param policy_name: The name of the policy document. This parameter allows (through its `regex pattern <https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex>`_ ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
@@ -4020,6 +4114,12 @@ class CfnRolePolicy(
4020
4114
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
4021
4115
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
4022
4116
 
4117
+ @builtins.property
4118
+ @jsii.member(jsii_name="rolePolicyRef")
4119
+ def role_policy_ref(self) -> _RolePolicyReference_0cf19357:
4120
+ '''A reference to a RolePolicy resource.'''
4121
+ return typing.cast(_RolePolicyReference_0cf19357, jsii.get(self, "rolePolicyRef"))
4122
+
4023
4123
  @builtins.property
4024
4124
  @jsii.member(jsii_name="policyName")
4025
4125
  def policy_name(self) -> builtins.str:
@@ -4405,7 +4505,7 @@ class CfnRoleProps:
4405
4505
  )
4406
4506
 
4407
4507
 
4408
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
4508
+ @jsii.implements(_IInspectable_c2943556, _ISAMLProviderRef_6e369856, _ITaggable_36806126)
4409
4509
  class CfnSAMLProvider(
4410
4510
  _CfnResource_9df397a6,
4411
4511
  metaclass=jsii.JSIIMeta,
@@ -4462,7 +4562,8 @@ class CfnSAMLProvider(
4462
4562
  saml_metadata_document: typing.Optional[builtins.str] = None,
4463
4563
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4464
4564
  ) -> None:
4465
- '''
4565
+ '''Create a new ``AWS::IAM::SAMLProvider``.
4566
+
4466
4567
  :param scope: Scope in which this resource is defined.
4467
4568
  :param id: Construct identifier for this resource (unique in its scope).
4468
4569
  :param add_private_key: Specifies the new private key from your external identity provider. The private key must be a .pem file that uses AES-GCM or AES-CBC encryption algorithm to decrypt SAML assertions.
@@ -4542,6 +4643,12 @@ class CfnSAMLProvider(
4542
4643
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
4543
4644
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
4544
4645
 
4646
+ @builtins.property
4647
+ @jsii.member(jsii_name="samlProviderRef")
4648
+ def saml_provider_ref(self) -> _SAMLProviderReference_08e1fac1:
4649
+ '''A reference to a SAMLProvider resource.'''
4650
+ return typing.cast(_SAMLProviderReference_08e1fac1, jsii.get(self, "samlProviderRef"))
4651
+
4545
4652
  @builtins.property
4546
4653
  @jsii.member(jsii_name="tags")
4547
4654
  def tags(self) -> _TagManager_0a598cb3:
@@ -4886,7 +4993,7 @@ class CfnSAMLProviderProps:
4886
4993
  )
4887
4994
 
4888
4995
 
4889
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
4996
+ @jsii.implements(_IInspectable_c2943556, _IServerCertificateRef_005ddfcc, _ITaggable_36806126)
4890
4997
  class CfnServerCertificate(
4891
4998
  _CfnResource_9df397a6,
4892
4999
  metaclass=jsii.JSIIMeta,
@@ -4896,7 +5003,7 @@ class CfnServerCertificate(
4896
5003
 
4897
5004
  The server certificate entity includes a public key certificate, a private key, and an optional certificate chain, which should all be PEM-encoded.
4898
5005
 
4899
- We recommend that you use `AWS Certificate Manager <https://docs.aws.amazon.com/acm/>`_ to provision, manage, and deploy your server certificates. With ACM you can request a certificate, deploy it to AWS resources, and let ACM handle certificate renewals for you. Certificates provided by ACM are free. For more information about using ACM, see the `AWS Certificate Manager User Guide <https://docs.aws.amazon.com/acm/latest/userguide/>`_ .
5006
+ We recommend that you use `Certificate Manager <https://docs.aws.amazon.com/acm/>`_ to provision, manage, and deploy your server certificates. With ACM you can request a certificate, deploy it to AWS resources, and let ACM handle certificate renewals for you. Certificates provided by ACM are free. For more information about using ACM, see the `Certificate Manager User Guide <https://docs.aws.amazon.com/acm/latest/userguide/>`_ .
4900
5007
 
4901
5008
  For more information about working with server certificates, see `Working with server certificates <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html>`_ in the *IAM User Guide* . This topic includes a list of AWS services that can use the server certificates that you manage with IAM.
4902
5009
 
@@ -4940,7 +5047,8 @@ class CfnServerCertificate(
4940
5047
  server_certificate_name: typing.Optional[builtins.str] = None,
4941
5048
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4942
5049
  ) -> None:
4943
- '''
5050
+ '''Create a new ``AWS::IAM::ServerCertificate``.
5051
+
4944
5052
  :param scope: Scope in which this resource is defined.
4945
5053
  :param id: Construct identifier for this resource (unique in its scope).
4946
5054
  :param certificate_body: The contents of the public key certificate.
@@ -5009,6 +5117,12 @@ class CfnServerCertificate(
5009
5117
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
5010
5118
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
5011
5119
 
5120
+ @builtins.property
5121
+ @jsii.member(jsii_name="serverCertificateRef")
5122
+ def server_certificate_ref(self) -> _ServerCertificateReference_0e96ef93:
5123
+ '''A reference to a ServerCertificate resource.'''
5124
+ return typing.cast(_ServerCertificateReference_0e96ef93, jsii.get(self, "serverCertificateRef"))
5125
+
5012
5126
  @builtins.property
5013
5127
  @jsii.member(jsii_name="tags")
5014
5128
  def tags(self) -> _TagManager_0a598cb3:
@@ -5254,7 +5368,7 @@ class CfnServerCertificateProps:
5254
5368
  )
5255
5369
 
5256
5370
 
5257
- @jsii.implements(_IInspectable_c2943556)
5371
+ @jsii.implements(_IInspectable_c2943556, _IServiceLinkedRoleRef_ba92e11b)
5258
5372
  class CfnServiceLinkedRole(
5259
5373
  _CfnResource_9df397a6,
5260
5374
  metaclass=jsii.JSIIMeta,
@@ -5286,7 +5400,8 @@ class CfnServiceLinkedRole(
5286
5400
  custom_suffix: typing.Optional[builtins.str] = None,
5287
5401
  description: typing.Optional[builtins.str] = None,
5288
5402
  ) -> None:
5289
- '''
5403
+ '''Create a new ``AWS::IAM::ServiceLinkedRole``.
5404
+
5290
5405
  :param scope: Scope in which this resource is defined.
5291
5406
  :param id: Construct identifier for this resource (unique in its scope).
5292
5407
  :param aws_service_name: The service principal for the AWS service to which this role is attached. You use a string similar to a URL but without the http:// in front. For example: ``elasticbeanstalk.amazonaws.com`` . Service principals are unique and case-sensitive. To find the exact service principal for your service-linked role, see `AWS services that work with IAM <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html>`_ in the *IAM User Guide* . Look for the services that have *Yes* in the *Service-Linked Role* column. Choose the *Yes* link to view the service-linked role documentation for that service.
@@ -5351,6 +5466,12 @@ class CfnServiceLinkedRole(
5351
5466
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
5352
5467
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
5353
5468
 
5469
+ @builtins.property
5470
+ @jsii.member(jsii_name="serviceLinkedRoleRef")
5471
+ def service_linked_role_ref(self) -> _ServiceLinkedRoleReference_863fd3da:
5472
+ '''A reference to a ServiceLinkedRole resource.'''
5473
+ return typing.cast(_ServiceLinkedRoleReference_863fd3da, jsii.get(self, "serviceLinkedRoleRef"))
5474
+
5354
5475
  @builtins.property
5355
5476
  @jsii.member(jsii_name="awsServiceName")
5356
5477
  def aws_service_name(self) -> typing.Optional[builtins.str]:
@@ -5483,7 +5604,7 @@ class CfnServiceLinkedRoleProps:
5483
5604
  )
5484
5605
 
5485
5606
 
5486
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
5607
+ @jsii.implements(_IInspectable_c2943556, _IUserRef_b0ccca76, _ITaggable_36806126)
5487
5608
  class CfnUser(
5488
5609
  _CfnResource_9df397a6,
5489
5610
  metaclass=jsii.JSIIMeta,
@@ -5542,7 +5663,8 @@ class CfnUser(
5542
5663
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
5543
5664
  user_name: typing.Optional[builtins.str] = None,
5544
5665
  ) -> None:
5545
- '''
5666
+ '''Create a new ``AWS::IAM::User``.
5667
+
5546
5668
  :param scope: Scope in which this resource is defined.
5547
5669
  :param id: Construct identifier for this resource (unique in its scope).
5548
5670
  :param groups: A list of group names to which you want to add the user.
@@ -5623,6 +5745,12 @@ class CfnUser(
5623
5745
  '''Tag Manager which manages the tags for this resource.'''
5624
5746
  return typing.cast(_TagManager_0a598cb3, jsii.get(self, "tags"))
5625
5747
 
5748
+ @builtins.property
5749
+ @jsii.member(jsii_name="userRef")
5750
+ def user_ref(self) -> _UserReference_6bf884c6:
5751
+ '''A reference to a User resource.'''
5752
+ return typing.cast(_UserReference_6bf884c6, jsii.get(self, "userRef"))
5753
+
5626
5754
  @builtins.property
5627
5755
  @jsii.member(jsii_name="groups")
5628
5756
  def groups(self) -> typing.Optional[typing.List[builtins.str]]:
@@ -5906,7 +6034,7 @@ class CfnUser(
5906
6034
  )
5907
6035
 
5908
6036
 
5909
- @jsii.implements(_IInspectable_c2943556)
6037
+ @jsii.implements(_IInspectable_c2943556, _IUserPolicyRef_e6abac3e)
5910
6038
  class CfnUserPolicy(
5911
6039
  _CfnResource_9df397a6,
5912
6040
  metaclass=jsii.JSIIMeta,
@@ -5948,7 +6076,8 @@ class CfnUserPolicy(
5948
6076
  user_name: builtins.str,
5949
6077
  policy_document: typing.Any = None,
5950
6078
  ) -> None:
5951
- '''
6079
+ '''Create a new ``AWS::IAM::UserPolicy``.
6080
+
5952
6081
  :param scope: Scope in which this resource is defined.
5953
6082
  :param id: Construct identifier for this resource (unique in its scope).
5954
6083
  :param policy_name: The name of the policy document. This parameter allows (through its `regex pattern <https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex>`_ ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
@@ -6002,6 +6131,12 @@ class CfnUserPolicy(
6002
6131
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
6003
6132
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
6004
6133
 
6134
+ @builtins.property
6135
+ @jsii.member(jsii_name="userPolicyRef")
6136
+ def user_policy_ref(self) -> _UserPolicyReference_4aa6daa0:
6137
+ '''A reference to a UserPolicy resource.'''
6138
+ return typing.cast(_UserPolicyReference_4aa6daa0, jsii.get(self, "userPolicyRef"))
6139
+
6005
6140
  @builtins.property
6006
6141
  @jsii.member(jsii_name="policyName")
6007
6142
  def policy_name(self) -> builtins.str:
@@ -6375,7 +6510,7 @@ class CfnUserProps:
6375
6510
  )
6376
6511
 
6377
6512
 
6378
- @jsii.implements(_IInspectable_c2943556)
6513
+ @jsii.implements(_IInspectable_c2943556, _IUserToGroupAdditionRef_e1276f9a)
6379
6514
  class CfnUserToGroupAddition(
6380
6515
  _CfnResource_9df397a6,
6381
6516
  metaclass=jsii.JSIIMeta,
@@ -6407,7 +6542,8 @@ class CfnUserToGroupAddition(
6407
6542
  group_name: builtins.str,
6408
6543
  users: typing.Sequence[builtins.str],
6409
6544
  ) -> None:
6410
- '''
6545
+ '''Create a new ``AWS::IAM::UserToGroupAddition``.
6546
+
6411
6547
  :param scope: Scope in which this resource is defined.
6412
6548
  :param id: Construct identifier for this resource (unique in its scope).
6413
6549
  :param group_name: The name of the group to update. This parameter allows (through its `regex pattern <https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex>`_ ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
@@ -6467,6 +6603,12 @@ class CfnUserToGroupAddition(
6467
6603
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
6468
6604
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
6469
6605
 
6606
+ @builtins.property
6607
+ @jsii.member(jsii_name="userToGroupAdditionRef")
6608
+ def user_to_group_addition_ref(self) -> _UserToGroupAdditionReference_94731a73:
6609
+ '''A reference to a UserToGroupAddition resource.'''
6610
+ return typing.cast(_UserToGroupAdditionReference_94731a73, jsii.get(self, "userToGroupAdditionRef"))
6611
+
6470
6612
  @builtins.property
6471
6613
  @jsii.member(jsii_name="groupName")
6472
6614
  def group_name(self) -> builtins.str:
@@ -6568,7 +6710,7 @@ class CfnUserToGroupAdditionProps:
6568
6710
  )
6569
6711
 
6570
6712
 
6571
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
6713
+ @jsii.implements(_IInspectable_c2943556, _IVirtualMFADeviceRef_fec1f13e, _ITaggable_36806126)
6572
6714
  class CfnVirtualMFADevice(
6573
6715
  _CfnResource_9df397a6,
6574
6716
  metaclass=jsii.JSIIMeta,
@@ -6616,7 +6758,8 @@ class CfnVirtualMFADevice(
6616
6758
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
6617
6759
  virtual_mfa_device_name: typing.Optional[builtins.str] = None,
6618
6760
  ) -> None:
6619
- '''
6761
+ '''Create a new ``AWS::IAM::VirtualMFADevice``.
6762
+
6620
6763
  :param scope: Scope in which this resource is defined.
6621
6764
  :param id: Construct identifier for this resource (unique in its scope).
6622
6765
  :param users: The IAM user associated with this virtual MFA device.
@@ -6687,6 +6830,12 @@ class CfnVirtualMFADevice(
6687
6830
  '''Tag Manager which manages the tags for this resource.'''
6688
6831
  return typing.cast(_TagManager_0a598cb3, jsii.get(self, "tags"))
6689
6832
 
6833
+ @builtins.property
6834
+ @jsii.member(jsii_name="virtualMfaDeviceRef")
6835
+ def virtual_mfa_device_ref(self) -> _VirtualMFADeviceReference_dd7d7c2b:
6836
+ '''A reference to a VirtualMFADevice resource.'''
6837
+ return typing.cast(_VirtualMFADeviceReference_dd7d7c2b, jsii.get(self, "virtualMfaDeviceRef"))
6838
+
6690
6839
  @builtins.property
6691
6840
  @jsii.member(jsii_name="users")
6692
6841
  def users(self) -> typing.List[builtins.str]:
@@ -7422,7 +7571,7 @@ class Grant(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_iam.Grant"):
7422
7571
  cls,
7423
7572
  *,
7424
7573
  statement: "PolicyStatement",
7425
- resource: "IResourceWithPolicy",
7574
+ resource: "IResourceWithPolicyV2",
7426
7575
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
7427
7576
  actions: typing.Sequence[builtins.str],
7428
7577
  grantee: "IGrantable",
@@ -7449,7 +7598,7 @@ class Grant(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_iam.Grant"):
7449
7598
  from the provided statement, depending on the resource's implementation of
7450
7599
  addToResourcePolicy.
7451
7600
 
7452
- :param statement: The policy statement to add to the resource's policy. This statement will be passed to the resource's addToResourcePolicy method. The actual handling of the statement depends on the specific IResourceWithPolicy implementation.
7601
+ :param statement: The policy statement to add to the resource's policy. This statement will be passed to the resource's addToResourcePolicy method. The actual handling of the statement depends on the specific IResourceWithPolicyV2 implementation.
7453
7602
  :param resource: The resource with a resource policy. The statement will be added to the resource policy if it couldn't be added to the principal policy.
7454
7603
  :param resource_self_arns: When referring to the resource in a resource policy, use this as ARN. (Depending on the resource type, this needs to be '*' in a resource policy). Default: Same as regular resource ARNs
7455
7604
  :param actions: The actions to grant.
@@ -7513,7 +7662,7 @@ class Grant(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_iam.Grant"):
7513
7662
  Absence of a principal leads to a warning, but failing to add
7514
7663
  the permissions to a present principal is not an error.
7515
7664
 
7516
- :param scope: Construct to report warnings on in case grant could not be registered. Default: - the construct in which this construct is defined
7665
+ :param scope: (deprecated) Construct to report warnings on in case grant could not be registered. Default: - the construct in which this construct is defined
7517
7666
  :param actions: The actions to grant.
7518
7667
  :param grantee: The principal to grant to. Default: if principal is undefined, no work is done.
7519
7668
  :param resource_arns: The resource ARNs to grant to.
@@ -7534,7 +7683,7 @@ class Grant(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_iam.Grant"):
7534
7683
  def add_to_principal_and_resource(
7535
7684
  cls,
7536
7685
  *,
7537
- resource: "IResourceWithPolicy",
7686
+ resource: "IResourceWithPolicyV2",
7538
7687
  resource_policy_principal: typing.Optional["IPrincipal"] = None,
7539
7688
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
7540
7689
  actions: typing.Sequence[builtins.str],
@@ -7575,7 +7724,7 @@ class Grant(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_iam.Grant"):
7575
7724
  def add_to_principal_or_resource(
7576
7725
  cls,
7577
7726
  *,
7578
- resource: "IResourceWithPolicy",
7727
+ resource: "IResourceWithPolicyV2",
7579
7728
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
7580
7729
  actions: typing.Sequence[builtins.str],
7581
7730
  grantee: "IGrantable",
@@ -7721,7 +7870,7 @@ class GrantOnPrincipalAndResourceOptions(CommonGrantOptions):
7721
7870
  grantee: "IGrantable",
7722
7871
  resource_arns: typing.Sequence[builtins.str],
7723
7872
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
7724
- resource: "IResourceWithPolicy",
7873
+ resource: "IResourceWithPolicyV2",
7725
7874
  resource_policy_principal: typing.Optional["IPrincipal"] = None,
7726
7875
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
7727
7876
  ) -> None:
@@ -7746,12 +7895,12 @@ class GrantOnPrincipalAndResourceOptions(CommonGrantOptions):
7746
7895
  # conditions: Any
7747
7896
  # grantable: iam.IGrantable
7748
7897
  # principal: iam.IPrincipal
7749
- # resource_with_policy: iam.IResourceWithPolicy
7898
+ # resource_with_policy_v2: iam.IResourceWithPolicyV2
7750
7899
 
7751
7900
  grant_on_principal_and_resource_options = iam.GrantOnPrincipalAndResourceOptions(
7752
7901
  actions=["actions"],
7753
7902
  grantee=grantable,
7754
- resource=resource_with_policy,
7903
+ resource=resource_with_policy_v2,
7755
7904
  resource_arns=["resourceArns"],
7756
7905
 
7757
7906
  # the properties below are optional
@@ -7822,14 +7971,14 @@ class GrantOnPrincipalAndResourceOptions(CommonGrantOptions):
7822
7971
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]], result)
7823
7972
 
7824
7973
  @builtins.property
7825
- def resource(self) -> "IResourceWithPolicy":
7974
+ def resource(self) -> "IResourceWithPolicyV2":
7826
7975
  '''The resource with a resource policy.
7827
7976
 
7828
7977
  The statement will always be added to the resource policy.
7829
7978
  '''
7830
7979
  result = self._values.get("resource")
7831
7980
  assert result is not None, "Required property 'resource' is missing"
7832
- return typing.cast("IResourceWithPolicy", result)
7981
+ return typing.cast("IResourceWithPolicyV2", result)
7833
7982
 
7834
7983
  @builtins.property
7835
7984
  def resource_policy_principal(self) -> typing.Optional["IPrincipal"]:
@@ -7890,7 +8039,7 @@ class GrantOnPrincipalOptions(CommonGrantOptions):
7890
8039
  :param grantee: The principal to grant to. Default: if principal is undefined, no work is done.
7891
8040
  :param resource_arns: The resource ARNs to grant to.
7892
8041
  :param conditions: Any conditions to attach to the grant. Default: - No conditions
7893
- :param scope: Construct to report warnings on in case grant could not be registered. Default: - the construct in which this construct is defined
8042
+ :param scope: (deprecated) Construct to report warnings on in case grant could not be registered. Default: - the construct in which this construct is defined
7894
8043
 
7895
8044
  :exampleMetadata: fixture=_generated
7896
8045
 
@@ -7973,9 +8122,13 @@ class GrantOnPrincipalOptions(CommonGrantOptions):
7973
8122
 
7974
8123
  @builtins.property
7975
8124
  def scope(self) -> typing.Optional[_constructs_77d1e7e8.IConstruct]:
7976
- '''Construct to report warnings on in case grant could not be registered.
8125
+ '''(deprecated) Construct to report warnings on in case grant could not be registered.
7977
8126
 
7978
8127
  :default: - the construct in which this construct is defined
8128
+
8129
+ :deprecated: The scope argument is currently unused.
8130
+
8131
+ :stability: deprecated
7979
8132
  '''
7980
8133
  result = self._values.get("scope")
7981
8134
  return typing.cast(typing.Optional[_constructs_77d1e7e8.IConstruct], result)
@@ -8012,7 +8165,7 @@ class GrantWithResourceOptions(CommonGrantOptions):
8012
8165
  grantee: "IGrantable",
8013
8166
  resource_arns: typing.Sequence[builtins.str],
8014
8167
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
8015
- resource: "IResourceWithPolicy",
8168
+ resource: "IResourceWithPolicyV2",
8016
8169
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
8017
8170
  ) -> None:
8018
8171
  '''Options for a grant operation.
@@ -8034,12 +8187,12 @@ class GrantWithResourceOptions(CommonGrantOptions):
8034
8187
 
8035
8188
  # conditions: Any
8036
8189
  # grantable: iam.IGrantable
8037
- # resource_with_policy: iam.IResourceWithPolicy
8190
+ # resource_with_policy_v2: iam.IResourceWithPolicyV2
8038
8191
 
8039
8192
  grant_with_resource_options = iam.GrantWithResourceOptions(
8040
8193
  actions=["actions"],
8041
8194
  grantee=grantable,
8042
- resource=resource_with_policy,
8195
+ resource=resource_with_policy_v2,
8043
8196
  resource_arns=["resourceArns"],
8044
8197
 
8045
8198
  # the properties below are optional
@@ -8106,7 +8259,7 @@ class GrantWithResourceOptions(CommonGrantOptions):
8106
8259
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]], result)
8107
8260
 
8108
8261
  @builtins.property
8109
- def resource(self) -> "IResourceWithPolicy":
8262
+ def resource(self) -> "IResourceWithPolicyV2":
8110
8263
  '''The resource with a resource policy.
8111
8264
 
8112
8265
  The statement will be added to the resource policy if it couldn't be
@@ -8114,7 +8267,7 @@ class GrantWithResourceOptions(CommonGrantOptions):
8114
8267
  '''
8115
8268
  result = self._values.get("resource")
8116
8269
  assert result is not None, "Required property 'resource' is missing"
8117
- return typing.cast("IResourceWithPolicy", result)
8270
+ return typing.cast("IResourceWithPolicyV2", result)
8118
8271
 
8119
8272
  @builtins.property
8120
8273
  def resource_self_arns(self) -> typing.Optional[typing.List[builtins.str]]:
@@ -8247,7 +8400,11 @@ class GroupProps:
8247
8400
 
8248
8401
 
8249
8402
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IAccessKey")
8250
- class IAccessKey(_IResource_c80c4260, typing_extensions.Protocol):
8403
+ class IAccessKey(
8404
+ _IResource_c80c4260,
8405
+ _IAccessKeyRef_e97ef40a,
8406
+ typing_extensions.Protocol,
8407
+ ):
8251
8408
  '''Represents an IAM Access Key.
8252
8409
 
8253
8410
  :see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html
@@ -8274,6 +8431,7 @@ class IAccessKey(_IResource_c80c4260, typing_extensions.Protocol):
8274
8431
 
8275
8432
  class _IAccessKeyProxy(
8276
8433
  jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8434
+ jsii.proxy_for(_IAccessKeyRef_e97ef40a), # type: ignore[misc]
8277
8435
  ):
8278
8436
  '''Represents an IAM Access Key.
8279
8437
 
@@ -8331,7 +8489,11 @@ typing.cast(typing.Any, IGrantable).__jsii_proxy_class__ = lambda : _IGrantableP
8331
8489
 
8332
8490
 
8333
8491
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IInstanceProfile")
8334
- class IInstanceProfile(_IResource_c80c4260, typing_extensions.Protocol):
8492
+ class IInstanceProfile(
8493
+ _IResource_c80c4260,
8494
+ _IInstanceProfileRef_d6832c90,
8495
+ typing_extensions.Protocol,
8496
+ ):
8335
8497
  '''Represents an IAM Instance Profile.'''
8336
8498
 
8337
8499
  @builtins.property
@@ -8361,6 +8523,7 @@ class IInstanceProfile(_IResource_c80c4260, typing_extensions.Protocol):
8361
8523
 
8362
8524
  class _IInstanceProfileProxy(
8363
8525
  jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8526
+ jsii.proxy_for(_IInstanceProfileRef_d6832c90), # type: ignore[misc]
8364
8527
  ):
8365
8528
  '''Represents an IAM Instance Profile.'''
8366
8529
 
@@ -8395,7 +8558,7 @@ typing.cast(typing.Any, IInstanceProfile).__jsii_proxy_class__ = lambda : _IInst
8395
8558
 
8396
8559
 
8397
8560
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IManagedPolicy")
8398
- class IManagedPolicy(typing_extensions.Protocol):
8561
+ class IManagedPolicy(_IManagedPolicyRef_a7a65687, typing_extensions.Protocol):
8399
8562
  '''A managed policy.'''
8400
8563
 
8401
8564
  @builtins.property
@@ -8408,7 +8571,9 @@ class IManagedPolicy(typing_extensions.Protocol):
8408
8571
  ...
8409
8572
 
8410
8573
 
8411
- class _IManagedPolicyProxy:
8574
+ class _IManagedPolicyProxy(
8575
+ jsii.proxy_for(_IManagedPolicyRef_a7a65687), # type: ignore[misc]
8576
+ ):
8412
8577
  '''A managed policy.'''
8413
8578
 
8414
8579
  __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_iam.IManagedPolicy"
@@ -8427,7 +8592,11 @@ typing.cast(typing.Any, IManagedPolicy).__jsii_proxy_class__ = lambda : _IManage
8427
8592
 
8428
8593
 
8429
8594
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IOidcProvider")
8430
- class IOidcProvider(_IResource_c80c4260, typing_extensions.Protocol):
8595
+ class IOidcProvider(
8596
+ _IResource_c80c4260,
8597
+ _IOIDCProviderRef_a866c7c8,
8598
+ typing_extensions.Protocol,
8599
+ ):
8431
8600
  '''Represents an IAM OpenID Connect provider.'''
8432
8601
 
8433
8602
  @builtins.property
@@ -8451,6 +8620,7 @@ class IOidcProvider(_IResource_c80c4260, typing_extensions.Protocol):
8451
8620
 
8452
8621
  class _IOidcProviderProxy(
8453
8622
  jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8623
+ jsii.proxy_for(_IOIDCProviderRef_a866c7c8), # type: ignore[misc]
8454
8624
  ):
8455
8625
  '''Represents an IAM OpenID Connect provider.'''
8456
8626
 
@@ -8479,7 +8649,11 @@ typing.cast(typing.Any, IOidcProvider).__jsii_proxy_class__ = lambda : _IOidcPro
8479
8649
 
8480
8650
 
8481
8651
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IOpenIdConnectProvider")
8482
- class IOpenIdConnectProvider(_IResource_c80c4260, typing_extensions.Protocol):
8652
+ class IOpenIdConnectProvider(
8653
+ _IResource_c80c4260,
8654
+ _IOIDCProviderRef_a866c7c8,
8655
+ typing_extensions.Protocol,
8656
+ ):
8483
8657
  '''Represents an IAM OpenID Connect provider.'''
8484
8658
 
8485
8659
  @builtins.property
@@ -8497,6 +8671,7 @@ class IOpenIdConnectProvider(_IResource_c80c4260, typing_extensions.Protocol):
8497
8671
 
8498
8672
  class _IOpenIdConnectProviderProxy(
8499
8673
  jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8674
+ jsii.proxy_for(_IOIDCProviderRef_a866c7c8), # type: ignore[misc]
8500
8675
  ):
8501
8676
  '''Represents an IAM OpenID Connect provider.'''
8502
8677
 
@@ -8519,7 +8694,7 @@ typing.cast(typing.Any, IOpenIdConnectProvider).__jsii_proxy_class__ = lambda :
8519
8694
 
8520
8695
 
8521
8696
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IPolicy")
8522
- class IPolicy(_IResource_c80c4260, typing_extensions.Protocol):
8697
+ class IPolicy(_IResource_c80c4260, _IPolicyRef_5e74a0ba, typing_extensions.Protocol):
8523
8698
  '''Represents an IAM Policy.
8524
8699
 
8525
8700
  :see: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html
@@ -8537,6 +8712,7 @@ class IPolicy(_IResource_c80c4260, typing_extensions.Protocol):
8537
8712
 
8538
8713
  class _IPolicyProxy(
8539
8714
  jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8715
+ jsii.proxy_for(_IPolicyRef_5e74a0ba), # type: ignore[misc]
8540
8716
  ):
8541
8717
  '''Represents an IAM Policy.
8542
8718
 
@@ -8677,8 +8853,8 @@ class _IPrincipalProxy(
8677
8853
  typing.cast(typing.Any, IPrincipal).__jsii_proxy_class__ = lambda : _IPrincipalProxy
8678
8854
 
8679
8855
 
8680
- @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IResourceWithPolicy")
8681
- class IResourceWithPolicy(_IResource_c80c4260, typing_extensions.Protocol):
8856
+ @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IResourceWithPolicyV2")
8857
+ class IResourceWithPolicyV2(_IEnvironmentAware_f39049ee, typing_extensions.Protocol):
8682
8858
  '''A resource with a resource policy that can be added to.'''
8683
8859
 
8684
8860
  @jsii.member(jsii_name="addToResourcePolicy")
@@ -8693,12 +8869,12 @@ class IResourceWithPolicy(_IResource_c80c4260, typing_extensions.Protocol):
8693
8869
  ...
8694
8870
 
8695
8871
 
8696
- class _IResourceWithPolicyProxy(
8697
- jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8872
+ class _IResourceWithPolicyV2Proxy(
8873
+ jsii.proxy_for(_IEnvironmentAware_f39049ee), # type: ignore[misc]
8698
8874
  ):
8699
8875
  '''A resource with a resource policy that can be added to.'''
8700
8876
 
8701
- __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_iam.IResourceWithPolicy"
8877
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_iam.IResourceWithPolicyV2"
8702
8878
 
8703
8879
  @jsii.member(jsii_name="addToResourcePolicy")
8704
8880
  def add_to_resource_policy(
@@ -8710,16 +8886,20 @@ class _IResourceWithPolicyProxy(
8710
8886
  :param statement: -
8711
8887
  '''
8712
8888
  if __debug__:
8713
- type_hints = typing.get_type_hints(_typecheckingstub__dc0b619bfbc345bc9140fcc58d59f27472a211b09306f5c2e6b0147efcef6b18)
8889
+ type_hints = typing.get_type_hints(_typecheckingstub__d0411047245e16030f540e191ce067fdd2216fb84afd5f47032486efe2dddfda)
8714
8890
  check_type(argname="argument statement", value=statement, expected_type=type_hints["statement"])
8715
8891
  return typing.cast(AddToResourcePolicyResult, jsii.invoke(self, "addToResourcePolicy", [statement]))
8716
8892
 
8717
8893
  # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
8718
- typing.cast(typing.Any, IResourceWithPolicy).__jsii_proxy_class__ = lambda : _IResourceWithPolicyProxy
8894
+ typing.cast(typing.Any, IResourceWithPolicyV2).__jsii_proxy_class__ = lambda : _IResourceWithPolicyV2Proxy
8719
8895
 
8720
8896
 
8721
8897
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.ISamlProvider")
8722
- class ISamlProvider(_IResource_c80c4260, typing_extensions.Protocol):
8898
+ class ISamlProvider(
8899
+ _IResource_c80c4260,
8900
+ _ISAMLProviderRef_6e369856,
8901
+ typing_extensions.Protocol,
8902
+ ):
8723
8903
  '''A SAML provider.'''
8724
8904
 
8725
8905
  @builtins.property
@@ -8734,6 +8914,7 @@ class ISamlProvider(_IResource_c80c4260, typing_extensions.Protocol):
8734
8914
 
8735
8915
  class _ISamlProviderProxy(
8736
8916
  jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8917
+ jsii.proxy_for(_ISAMLProviderRef_6e369856), # type: ignore[misc]
8737
8918
  ):
8738
8919
  '''A SAML provider.'''
8739
8920
 
@@ -8764,14 +8945,25 @@ class InstanceProfile(
8764
8945
 
8765
8946
  Example::
8766
8947
 
8948
+ # vpc: ec2.Vpc
8949
+
8950
+
8767
8951
  role = iam.Role(self, "Role",
8768
8952
  assumed_by=iam.ServicePrincipal("ec2.amazonaws.com")
8769
8953
  )
8770
-
8771
- instance_profile = iam.InstanceProfile.from_instance_profile_attributes(self, "ImportedInstanceProfile",
8772
- instance_profile_arn="arn:aws:iam::account-id:instance-profile/MyInstanceProfile",
8954
+ instance_profile = iam.InstanceProfile(self, "InstanceProfile",
8773
8955
  role=role
8774
8956
  )
8957
+
8958
+ template = ec2.LaunchTemplate(self, "LaunchTemplate",
8959
+ launch_template_name="MyTemplateV1",
8960
+ version_description="This is my v1 template",
8961
+ machine_image=ec2.MachineImage.latest_amazon_linux2023(),
8962
+ security_group=ec2.SecurityGroup(self, "LaunchTemplateSG",
8963
+ vpc=vpc
8964
+ ),
8965
+ instance_profile=instance_profile
8966
+ )
8775
8967
  '''
8776
8968
 
8777
8969
  def __init__(
@@ -8893,6 +9085,12 @@ class InstanceProfile(
8893
9085
  '''Returns the name of this InstanceProfile.'''
8894
9086
  return typing.cast(builtins.str, jsii.get(self, "instanceProfileName"))
8895
9087
 
9088
+ @builtins.property
9089
+ @jsii.member(jsii_name="instanceProfileRef")
9090
+ def instance_profile_ref(self) -> _InstanceProfileReference_5eee4bbb:
9091
+ '''A reference to a InstanceProfile resource.'''
9092
+ return typing.cast(_InstanceProfileReference_5eee4bbb, jsii.get(self, "instanceProfileRef"))
9093
+
8896
9094
  @builtins.property
8897
9095
  @jsii.member(jsii_name="role")
8898
9096
  def role(self) -> typing.Optional["IRole"]:
@@ -8998,14 +9196,24 @@ class InstanceProfileProps:
8998
9196
 
8999
9197
  Example::
9000
9198
 
9199
+ # vpc: ec2.Vpc
9200
+
9201
+
9001
9202
  role = iam.Role(self, "Role",
9002
9203
  assumed_by=iam.ServicePrincipal("ec2.amazonaws.com")
9003
9204
  )
9004
-
9005
9205
  instance_profile = iam.InstanceProfile(self, "InstanceProfile",
9006
- role=role,
9007
- instance_profile_name="MyInstanceProfile",
9008
- path="/sample/path/"
9206
+ role=role
9207
+ )
9208
+
9209
+ template = ec2.LaunchTemplate(self, "LaunchTemplate",
9210
+ launch_template_name="MyTemplateV1",
9211
+ version_description="This is my v1 template",
9212
+ machine_image=ec2.MachineImage.latest_amazon_linux2023(),
9213
+ security_group=ec2.SecurityGroup(self, "LaunchTemplateSG",
9214
+ vpc=vpc
9215
+ ),
9216
+ instance_profile=instance_profile
9009
9217
  )
9010
9218
  '''
9011
9219
  if __debug__:
@@ -9110,7 +9318,7 @@ class ManagedPolicy(
9110
9318
  *,
9111
9319
  description: typing.Optional[builtins.str] = None,
9112
9320
  document: typing.Optional["PolicyDocument"] = None,
9113
- groups: typing.Optional[typing.Sequence["IGroup"]] = None,
9321
+ groups: typing.Optional[typing.Sequence[_IGroupRef_aeb1d9f6]] = None,
9114
9322
  managed_policy_name: typing.Optional[builtins.str] = None,
9115
9323
  path: typing.Optional[builtins.str] = None,
9116
9324
  roles: typing.Optional[typing.Sequence["IRole"]] = None,
@@ -9235,7 +9443,7 @@ class ManagedPolicy(
9235
9443
  return typing.cast(None, jsii.invoke(self, "addStatements", [*statement]))
9236
9444
 
9237
9445
  @jsii.member(jsii_name="attachToGroup")
9238
- def attach_to_group(self, group: "IGroup") -> None:
9446
+ def attach_to_group(self, group: _IGroupRef_aeb1d9f6) -> None:
9239
9447
  '''Attaches this policy to a group.
9240
9448
 
9241
9449
  :param group: -
@@ -9257,7 +9465,7 @@ class ManagedPolicy(
9257
9465
  return typing.cast(None, jsii.invoke(self, "attachToRole", [role]))
9258
9466
 
9259
9467
  @jsii.member(jsii_name="attachToUser")
9260
- def attach_to_user(self, user: "IUser") -> None:
9468
+ def attach_to_user(self, user: _IUserRef_b0ccca76) -> None:
9261
9469
  '''Attaches this policy to a user.
9262
9470
 
9263
9471
  :param user: -
@@ -9312,6 +9520,12 @@ class ManagedPolicy(
9312
9520
  '''
9313
9521
  return typing.cast(builtins.str, jsii.get(self, "managedPolicyName"))
9314
9522
 
9523
+ @builtins.property
9524
+ @jsii.member(jsii_name="managedPolicyRef")
9525
+ def managed_policy_ref(self) -> _ManagedPolicyReference_078bf7cb:
9526
+ '''A reference to a ManagedPolicy resource.'''
9527
+ return typing.cast(_ManagedPolicyReference_078bf7cb, jsii.get(self, "managedPolicyRef"))
9528
+
9315
9529
  @builtins.property
9316
9530
  @jsii.member(jsii_name="path")
9317
9531
  def path(self) -> builtins.str:
@@ -9342,7 +9556,7 @@ class ManagedPolicyProps:
9342
9556
  *,
9343
9557
  description: typing.Optional[builtins.str] = None,
9344
9558
  document: typing.Optional["PolicyDocument"] = None,
9345
- groups: typing.Optional[typing.Sequence["IGroup"]] = None,
9559
+ groups: typing.Optional[typing.Sequence[_IGroupRef_aeb1d9f6]] = None,
9346
9560
  managed_policy_name: typing.Optional[builtins.str] = None,
9347
9561
  path: typing.Optional[builtins.str] = None,
9348
9562
  roles: typing.Optional[typing.Sequence["IRole"]] = None,
@@ -9454,7 +9668,7 @@ class ManagedPolicyProps:
9454
9668
  return typing.cast(typing.Optional["PolicyDocument"], result)
9455
9669
 
9456
9670
  @builtins.property
9457
- def groups(self) -> typing.Optional[typing.List["IGroup"]]:
9671
+ def groups(self) -> typing.Optional[typing.List[_IGroupRef_aeb1d9f6]]:
9458
9672
  '''Groups to attach this policy to.
9459
9673
 
9460
9674
  You can also use ``attachToGroup(group)`` to attach this policy to a group.
@@ -9462,7 +9676,7 @@ class ManagedPolicyProps:
9462
9676
  :default: - No groups.
9463
9677
  '''
9464
9678
  result = self._values.get("groups")
9465
- return typing.cast(typing.Optional[typing.List["IGroup"]], result)
9679
+ return typing.cast(typing.Optional[typing.List[_IGroupRef_aeb1d9f6]], result)
9466
9680
 
9467
9681
  @builtins.property
9468
9682
  def managed_policy_name(self) -> typing.Optional[builtins.str]:
@@ -9642,6 +9856,12 @@ class OidcProviderNative(
9642
9856
  '''
9643
9857
  return typing.cast(builtins.str, jsii.get(self, "oidcProviderIssuer"))
9644
9858
 
9859
+ @builtins.property
9860
+ @jsii.member(jsii_name="oidcProviderRef")
9861
+ def oidc_provider_ref(self) -> _OIDCProviderReference_9a12fabd:
9862
+ '''A reference to a OIDCProvider resource.'''
9863
+ return typing.cast(_OIDCProviderReference_9a12fabd, jsii.get(self, "oidcProviderRef"))
9864
+
9645
9865
  @builtins.property
9646
9866
  @jsii.member(jsii_name="oidcProviderThumbprints")
9647
9867
  def oidc_provider_thumbprints(self) -> builtins.str:
@@ -9811,6 +10031,24 @@ class OpenIdConnectProvider(
9811
10031
  requires access to AWS resources, but you don't want to create custom sign-in
9812
10032
  code or manage your own user identities.
9813
10033
 
10034
+ ⚠️ **IMPORTANT NOTICE FOR CONTRIBUTORS** ⚠️
10035
+
10036
+ **DO NOT ADD NEW FEATURES TO THIS CONSTRUCT**
10037
+
10038
+ This construct uses a custom resource with Lambda functions and is maintained
10039
+ for backward compatibility only. We cannot deprecate it due to its usage in
10040
+ existing services like EKS (see https://github.com/aws/aws-cdk/pull/28634#discussion_r1842962697).
10041
+
10042
+ For new functionality, developers should use ``OidcProviderNative`` instead, which
10043
+ utilizes the native CloudFormation resource ``AWS::IAM::OIDCProvider`` and provides
10044
+ the same functionality with less complexity.
10045
+
10046
+ If you are considering adding features to this construct, please:
10047
+
10048
+ 1. Consider implementing the feature in ``OidcProviderNative`` instead
10049
+ 2. Discuss with the CDK team before proceeding
10050
+ 3. Ensure any changes maintain strict backward compatibility
10051
+
9814
10052
  :see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html
9815
10053
  :resource: AWS::CloudFormation::CustomResource
9816
10054
  :exampleMetadata: infused
@@ -9877,6 +10115,12 @@ class OpenIdConnectProvider(
9877
10115
  '''Uniquely identifies this class.'''
9878
10116
  return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
9879
10117
 
10118
+ @builtins.property
10119
+ @jsii.member(jsii_name="oidcProviderRef")
10120
+ def oidc_provider_ref(self) -> _OIDCProviderReference_9a12fabd:
10121
+ '''A reference to a OIDCProvider resource.'''
10122
+ return typing.cast(_OIDCProviderReference_9a12fabd, jsii.get(self, "oidcProviderRef"))
10123
+
9880
10124
  @builtins.property
9881
10125
  @jsii.member(jsii_name="openIdConnectProviderArn")
9882
10126
  def open_id_connect_provider_arn(self) -> builtins.str:
@@ -10234,6 +10478,12 @@ class Policy(
10234
10478
  '''
10235
10479
  return typing.cast(builtins.str, jsii.get(self, "policyName"))
10236
10480
 
10481
+ @builtins.property
10482
+ @jsii.member(jsii_name="policyRef")
10483
+ def policy_ref(self) -> _PolicyReference_b83371a5:
10484
+ '''A reference to a Policy resource.'''
10485
+ return typing.cast(_PolicyReference_b83371a5, jsii.get(self, "policyRef"))
10486
+
10237
10487
 
10238
10488
  @jsii.implements(_IResolvable_da3f097b)
10239
10489
  class PolicyDocument(
@@ -11841,18 +12091,18 @@ class SamlMetadataDocument(
11841
12091
  ):
11842
12092
  '''A SAML metadata document.
11843
12093
 
11844
- :exampleMetadata: infused
12094
+ :exampleMetadata: fixture=client-vpn infused
11845
12095
 
11846
12096
  Example::
11847
12097
 
11848
- provider = iam.SamlProvider(self, "Provider",
11849
- metadata_document=iam.SamlMetadataDocument.from_file("/path/to/saml-metadata-document.xml")
12098
+ vpc.add_client_vpn_endpoint("Endpoint",
12099
+ cidr="10.100.0.0/16",
12100
+ server_certificate_arn="arn:aws:acm:us-east-1:123456789012:certificate/server-certificate-id",
12101
+ # Mutual authentication
12102
+ client_certificate_arn="arn:aws:acm:us-east-1:123456789012:certificate/client-certificate-id",
12103
+ # User-based authentication
12104
+ user_based_authentication=ec2.ClientVpnUserBasedAuthentication.federated(saml_provider)
11850
12105
  )
11851
- principal = iam.SamlPrincipal(provider, {
11852
- "StringEquals": {
11853
- "SAML:iss": "issuer"
11854
- }
11855
- })
11856
12106
  '''
11857
12107
 
11858
12108
  def __init__(self) -> None:
@@ -11976,6 +12226,12 @@ class SamlProvider(
11976
12226
  '''The Amazon Resource Name (ARN) of the provider.'''
11977
12227
  return typing.cast(builtins.str, jsii.get(self, "samlProviderArn"))
11978
12228
 
12229
+ @builtins.property
12230
+ @jsii.member(jsii_name="samlProviderRef")
12231
+ def saml_provider_ref(self) -> _SAMLProviderReference_08e1fac1:
12232
+ '''A reference to a SAMLProvider resource.'''
12233
+ return typing.cast(_SAMLProviderReference_08e1fac1, jsii.get(self, "samlProviderRef"))
12234
+
11979
12235
 
11980
12236
  @jsii.data_type(
11981
12237
  jsii_type="aws-cdk-lib.aws_iam.SamlProviderProps",
@@ -12621,6 +12877,12 @@ class AccessKey(
12621
12877
  '''The Access Key ID.'''
12622
12878
  return typing.cast(builtins.str, jsii.get(self, "accessKeyId"))
12623
12879
 
12880
+ @builtins.property
12881
+ @jsii.member(jsii_name="accessKeyRef")
12882
+ def access_key_ref(self) -> _AccessKeyReference_2bdfd122:
12883
+ '''A reference to a AccessKey resource.'''
12884
+ return typing.cast(_AccessKeyReference_2bdfd122, jsii.get(self, "accessKeyRef"))
12885
+
12624
12886
  @builtins.property
12625
12887
  @jsii.member(jsii_name="secretAccessKey")
12626
12888
  def secret_access_key(self) -> _SecretValue_3dd0ddae:
@@ -12649,7 +12911,7 @@ class GrantPolicyWithResourceOptions(GrantWithResourceOptions):
12649
12911
  grantee: IGrantable,
12650
12912
  resource_arns: typing.Sequence[builtins.str],
12651
12913
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
12652
- resource: IResourceWithPolicy,
12914
+ resource: IResourceWithPolicyV2,
12653
12915
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
12654
12916
  statement: PolicyStatement,
12655
12917
  ) -> None:
@@ -12665,7 +12927,7 @@ class GrantPolicyWithResourceOptions(GrantWithResourceOptions):
12665
12927
  :param conditions: Any conditions to attach to the grant. Default: - No conditions
12666
12928
  :param resource: The resource with a resource policy. The statement will be added to the resource policy if it couldn't be added to the principal policy.
12667
12929
  :param resource_self_arns: When referring to the resource in a resource policy, use this as ARN. (Depending on the resource type, this needs to be '*' in a resource policy). Default: Same as regular resource ARNs
12668
- :param statement: The policy statement to add to the resource's policy. This statement will be passed to the resource's addToResourcePolicy method. The actual handling of the statement depends on the specific IResourceWithPolicy implementation.
12930
+ :param statement: The policy statement to add to the resource's policy. This statement will be passed to the resource's addToResourcePolicy method. The actual handling of the statement depends on the specific IResourceWithPolicyV2 implementation.
12669
12931
 
12670
12932
  :exampleMetadata: infused
12671
12933
 
@@ -12752,7 +13014,7 @@ class GrantPolicyWithResourceOptions(GrantWithResourceOptions):
12752
13014
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]], result)
12753
13015
 
12754
13016
  @builtins.property
12755
- def resource(self) -> IResourceWithPolicy:
13017
+ def resource(self) -> IResourceWithPolicyV2:
12756
13018
  '''The resource with a resource policy.
12757
13019
 
12758
13020
  The statement will be added to the resource policy if it couldn't be
@@ -12760,7 +13022,7 @@ class GrantPolicyWithResourceOptions(GrantWithResourceOptions):
12760
13022
  '''
12761
13023
  result = self._values.get("resource")
12762
13024
  assert result is not None, "Required property 'resource' is missing"
12763
- return typing.cast(IResourceWithPolicy, result)
13025
+ return typing.cast(IResourceWithPolicyV2, result)
12764
13026
 
12765
13027
  @builtins.property
12766
13028
  def resource_self_arns(self) -> typing.Optional[typing.List[builtins.str]]:
@@ -12778,7 +13040,7 @@ class GrantPolicyWithResourceOptions(GrantWithResourceOptions):
12778
13040
  '''The policy statement to add to the resource's policy.
12779
13041
 
12780
13042
  This statement will be passed to the resource's addToResourcePolicy method.
12781
- The actual handling of the statement depends on the specific IResourceWithPolicy
13043
+ The actual handling of the statement depends on the specific IResourceWithPolicyV2
12782
13044
  implementation.
12783
13045
  '''
12784
13046
  result = self._values.get("statement")
@@ -12945,8 +13207,48 @@ class _IIdentityProxy(
12945
13207
  typing.cast(typing.Any, IIdentity).__jsii_proxy_class__ = lambda : _IIdentityProxy
12946
13208
 
12947
13209
 
13210
+ @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IResourceWithPolicy")
13211
+ class IResourceWithPolicy(
13212
+ IResourceWithPolicyV2,
13213
+ _IResource_c80c4260,
13214
+ typing_extensions.Protocol,
13215
+ ):
13216
+ '''(deprecated) A resource with a resource policy that can be added to.
13217
+
13218
+ This interface is maintained for backwards compatibility, but should
13219
+ not be used in new code. Prefer ``IResourceWithPolicyV2`` instead.
13220
+
13221
+ :deprecated: Implement ``IResourceWithPolicyV2`` instead.
13222
+
13223
+ :stability: deprecated
13224
+ '''
13225
+
13226
+ pass
13227
+
13228
+
13229
+ class _IResourceWithPolicyProxy(
13230
+ jsii.proxy_for(IResourceWithPolicyV2), # type: ignore[misc]
13231
+ jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
13232
+ ):
13233
+ '''(deprecated) A resource with a resource policy that can be added to.
13234
+
13235
+ This interface is maintained for backwards compatibility, but should
13236
+ not be used in new code. Prefer ``IResourceWithPolicyV2`` instead.
13237
+
13238
+ :deprecated: Implement ``IResourceWithPolicyV2`` instead.
13239
+
13240
+ :stability: deprecated
13241
+ '''
13242
+
13243
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_iam.IResourceWithPolicy"
13244
+ pass
13245
+
13246
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
13247
+ typing.cast(typing.Any, IResourceWithPolicy).__jsii_proxy_class__ = lambda : _IResourceWithPolicyProxy
13248
+
13249
+
12948
13250
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IRole")
12949
- class IRole(IIdentity, typing_extensions.Protocol):
13251
+ class IRole(IIdentity, _IRoleRef_8400221f, typing_extensions.Protocol):
12950
13252
  '''A Role object.'''
12951
13253
 
12952
13254
  @builtins.property
@@ -12995,6 +13297,7 @@ class IRole(IIdentity, typing_extensions.Protocol):
12995
13297
 
12996
13298
  class _IRoleProxy(
12997
13299
  jsii.proxy_for(IIdentity), # type: ignore[misc]
13300
+ jsii.proxy_for(_IRoleRef_8400221f), # type: ignore[misc]
12998
13301
  ):
12999
13302
  '''A Role object.'''
13000
13303
 
@@ -13058,7 +13361,7 @@ typing.cast(typing.Any, IRole).__jsii_proxy_class__ = lambda : _IRoleProxy
13058
13361
 
13059
13362
 
13060
13363
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IUser")
13061
- class IUser(IIdentity, typing_extensions.Protocol):
13364
+ class IUser(IIdentity, _IUserRef_b0ccca76, typing_extensions.Protocol):
13062
13365
  '''Represents an IAM user.
13063
13366
 
13064
13367
  :see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html
@@ -13093,6 +13396,7 @@ class IUser(IIdentity, typing_extensions.Protocol):
13093
13396
 
13094
13397
  class _IUserProxy(
13095
13398
  jsii.proxy_for(IIdentity), # type: ignore[misc]
13399
+ jsii.proxy_for(_IUserRef_b0ccca76), # type: ignore[misc]
13096
13400
  ):
13097
13401
  '''Represents an IAM user.
13098
13402
 
@@ -13354,6 +13658,12 @@ class LazyRole(
13354
13658
  '''Returns the name of this role.'''
13355
13659
  return typing.cast(builtins.str, jsii.get(self, "roleName"))
13356
13660
 
13661
+ @builtins.property
13662
+ @jsii.member(jsii_name="roleRef")
13663
+ def role_ref(self) -> _RoleReference_447077bb:
13664
+ '''A reference to a Role resource.'''
13665
+ return typing.cast(_RoleReference_447077bb, jsii.get(self, "roleRef"))
13666
+
13357
13667
  @builtins.property
13358
13668
  @jsii.member(jsii_name="principalAccount")
13359
13669
  def principal_account(self) -> typing.Optional[builtins.str]:
@@ -13964,25 +14274,25 @@ class Role(
13964
14274
  Defines an IAM role. The role is created with an assume policy document associated with
13965
14275
  the specified AWS service principal defined in ``serviceAssumeRole``.
13966
14276
 
13967
- :exampleMetadata: infused
14277
+ :exampleMetadata: fixture=default infused
13968
14278
 
13969
14279
  Example::
13970
14280
 
13971
- # Option 3: Create a new role that allows the account root principal to assume. Add this role in the `system:masters` and witch to this role from the AWS console.
13972
- # cluster: eks.Cluster
13973
-
13974
-
13975
- console_read_only_role = iam.Role(self, "ConsoleReadOnlyRole",
13976
- assumed_by=iam.ArnPrincipal("arn_for_trusted_principal")
14281
+ # Create a custom execution role
14282
+ execution_role = iam.Role(self, "BrowserExecutionRole",
14283
+ assumed_by=iam.ServicePrincipal("bedrock-agentcore.amazonaws.com"),
14284
+ managed_policies=[
14285
+ iam.ManagedPolicy.from_aws_managed_policy_name("AmazonBedrockAgentCoreBrowserExecutionRolePolicy")
14286
+ ]
13977
14287
  )
13978
- console_read_only_role.add_to_policy(iam.PolicyStatement(
13979
- actions=["eks:AccessKubernetesApi", "eks:Describe*", "eks:List*"
13980
- ],
13981
- resources=[cluster.cluster_arn]
13982
- ))
13983
14288
 
13984
- # Add this role to system:masters RBAC group
13985
- cluster.aws_auth.add_masters_role(console_read_only_role)
14289
+ # Create browser with custom execution role
14290
+ browser = agentcore.BrowserCustom(self, "MyBrowser",
14291
+ browser_custom_name="my_browser",
14292
+ description="Browser with custom execution role",
14293
+ network_configuration=agentcore.BrowserNetworkConfiguration.using_public_network(),
14294
+ execution_role=execution_role
14295
+ )
13986
14296
  '''
13987
14297
 
13988
14298
  def __init__(
@@ -14373,6 +14683,12 @@ class Role(
14373
14683
  '''Returns the name of the role.'''
14374
14684
  return typing.cast(builtins.str, jsii.get(self, "roleName"))
14375
14685
 
14686
+ @builtins.property
14687
+ @jsii.member(jsii_name="roleRef")
14688
+ def role_ref(self) -> _RoleReference_447077bb:
14689
+ '''A reference to a Role resource.'''
14690
+ return typing.cast(_RoleReference_447077bb, jsii.get(self, "roleRef"))
14691
+
14376
14692
  @builtins.property
14377
14693
  @jsii.member(jsii_name="assumeRolePolicy")
14378
14694
  def assume_role_policy(self) -> typing.Optional[PolicyDocument]:
@@ -14405,20 +14721,25 @@ class ServicePrincipal(
14405
14721
  ):
14406
14722
  '''An IAM principal that represents an AWS service (i.e. ``sqs.amazonaws.com``).
14407
14723
 
14408
- :exampleMetadata: infused
14724
+ :exampleMetadata: fixture=default infused
14409
14725
 
14410
14726
  Example::
14411
14727
 
14412
- # definition: sfn.IChainable
14413
- role = iam.Role(self, "Role",
14414
- assumed_by=iam.ServicePrincipal("lambda.amazonaws.com")
14415
- )
14416
- state_machine = sfn.StateMachine(self, "StateMachine",
14417
- definition_body=sfn.DefinitionBody.from_chainable(definition)
14728
+ # Create a custom execution role
14729
+ execution_role = iam.Role(self, "BrowserExecutionRole",
14730
+ assumed_by=iam.ServicePrincipal("bedrock-agentcore.amazonaws.com"),
14731
+ managed_policies=[
14732
+ iam.ManagedPolicy.from_aws_managed_policy_name("AmazonBedrockAgentCoreBrowserExecutionRolePolicy")
14733
+ ]
14418
14734
  )
14419
14735
 
14420
- # Give role permission to get execution history of ALL executions for the state machine
14421
- state_machine.grant_execution(role, "states:GetExecutionHistory")
14736
+ # Create browser with custom execution role
14737
+ browser = agentcore.BrowserCustom(self, "MyBrowser",
14738
+ browser_custom_name="my_browser",
14739
+ description="Browser with custom execution role",
14740
+ network_configuration=agentcore.BrowserNetworkConfiguration.using_public_network(),
14741
+ execution_role=execution_role
14742
+ )
14422
14743
  '''
14423
14744
 
14424
14745
  def __init__(
@@ -14907,6 +15228,12 @@ class User(
14907
15228
  '''
14908
15229
  return typing.cast(builtins.str, jsii.get(self, "userName"))
14909
15230
 
15231
+ @builtins.property
15232
+ @jsii.member(jsii_name="userRef")
15233
+ def user_ref(self) -> _UserReference_6bf884c6:
15234
+ '''A reference to a User resource.'''
15235
+ return typing.cast(_UserReference_6bf884c6, jsii.get(self, "userRef"))
15236
+
14910
15237
  @builtins.property
14911
15238
  @jsii.member(jsii_name="permissionsBoundary")
14912
15239
  def permissions_boundary(self) -> typing.Optional[IManagedPolicy]:
@@ -14942,7 +15269,7 @@ class ArnPrincipal(
14942
15269
  Example::
14943
15270
 
14944
15271
  # Option 2: create your custom mastersRole with scoped assumeBy arn as the Cluster prop. Switch to this role from the AWS console.
14945
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
15272
+ from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
14946
15273
  # vpc: ec2.Vpc
14947
15274
 
14948
15275
 
@@ -14952,8 +15279,8 @@ class ArnPrincipal(
14952
15279
 
14953
15280
  cluster = eks.Cluster(self, "EksCluster",
14954
15281
  vpc=vpc,
14955
- version=eks.KubernetesVersion.V1_32,
14956
- kubectl_layer=KubectlV32Layer(self, "KubectlLayer"),
15282
+ version=eks.KubernetesVersion.V1_34,
15283
+ kubectl_layer=KubectlV34Layer(self, "KubectlLayer"),
14957
15284
  masters_role=masters_role
14958
15285
  )
14959
15286
 
@@ -15250,7 +15577,7 @@ class FederatedPrincipal(
15250
15577
 
15251
15578
 
15252
15579
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IGroup")
15253
- class IGroup(IIdentity, typing_extensions.Protocol):
15580
+ class IGroup(IIdentity, _IGroupRef_aeb1d9f6, typing_extensions.Protocol):
15254
15581
  '''Represents an IAM Group.
15255
15582
 
15256
15583
  :see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html
@@ -15277,6 +15604,7 @@ class IGroup(IIdentity, typing_extensions.Protocol):
15277
15604
 
15278
15605
  class _IGroupProxy(
15279
15606
  jsii.proxy_for(IIdentity), # type: ignore[misc]
15607
+ jsii.proxy_for(_IGroupRef_aeb1d9f6), # type: ignore[misc]
15280
15608
  ):
15281
15609
  '''Represents an IAM Group.
15282
15610
 
@@ -15383,7 +15711,7 @@ class SamlPrincipal(
15383
15711
 
15384
15712
  def __init__(
15385
15713
  self,
15386
- saml_provider: ISamlProvider,
15714
+ saml_provider: _ISAMLProviderRef_6e369856,
15387
15715
  conditions: typing.Mapping[builtins.str, typing.Any],
15388
15716
  ) -> None:
15389
15717
  '''
@@ -15512,13 +15840,15 @@ class AccountRootPrincipal(
15512
15840
 
15513
15841
  Example::
15514
15842
 
15515
- bucket = s3.Bucket(self, "MyBucket")
15516
- result = bucket.add_to_resource_policy(
15517
- iam.PolicyStatement(
15518
- actions=["s3:GetObject"],
15519
- resources=[bucket.arn_for_objects("file.txt")],
15520
- principals=[iam.AccountRootPrincipal()]
15521
- ))
15843
+ # Adds to IAM user's policy (not resource policy)
15844
+ # user: iam.User
15845
+ table = dynamodb.TableV2(self, "Table",
15846
+ partition_key=dynamodb.Attribute(name="pk", type=dynamodb.AttributeType.STRING)
15847
+ )
15848
+
15849
+ # Automatically adds to table's resource policy (same account)
15850
+ table.grant_read_data(iam.AccountRootPrincipal())
15851
+ table.grant_read_data(user)
15522
15852
  '''
15523
15853
 
15524
15854
  def __init__(self) -> None:
@@ -15761,6 +16091,12 @@ class Group(
15761
16091
  '''Returns the IAM Group Name.'''
15762
16092
  return typing.cast(builtins.str, jsii.get(self, "groupName"))
15763
16093
 
16094
+ @builtins.property
16095
+ @jsii.member(jsii_name="groupRef")
16096
+ def group_ref(self) -> _GroupReference_cd6b1d81:
16097
+ '''A reference to a Group resource.'''
16098
+ return typing.cast(_GroupReference_cd6b1d81, jsii.get(self, "groupRef"))
16099
+
15764
16100
  @builtins.property
15765
16101
  @jsii.member(jsii_name="policyFragment")
15766
16102
  def policy_fragment(self) -> PrincipalPolicyFragment:
@@ -15800,7 +16136,7 @@ class OpenIdConnectPrincipal(
15800
16136
 
15801
16137
  def __init__(
15802
16138
  self,
15803
- open_id_connect_provider: IOpenIdConnectProvider,
16139
+ open_id_connect_provider: _IOIDCProviderRef_a866c7c8,
15804
16140
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
15805
16141
  ) -> None:
15806
16142
  '''
@@ -15937,6 +16273,7 @@ __all__ = [
15937
16273
  "IPolicy",
15938
16274
  "IPrincipal",
15939
16275
  "IResourceWithPolicy",
16276
+ "IResourceWithPolicyV2",
15940
16277
  "IRole",
15941
16278
  "ISamlProvider",
15942
16279
  "IUser",
@@ -17138,7 +17475,7 @@ def _typecheckingstub__a60e5877e638d22c44d2e72be768df7f85caf47bec9ab2e6b2adcce82
17138
17475
  grantee: IGrantable,
17139
17476
  resource_arns: typing.Sequence[builtins.str],
17140
17477
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
17141
- resource: IResourceWithPolicy,
17478
+ resource: IResourceWithPolicyV2,
17142
17479
  resource_policy_principal: typing.Optional[IPrincipal] = None,
17143
17480
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
17144
17481
  ) -> None:
@@ -17162,7 +17499,7 @@ def _typecheckingstub__d76f68f1d67dcad526c87768d88423a4092a0ef3127be7cb534620448
17162
17499
  grantee: IGrantable,
17163
17500
  resource_arns: typing.Sequence[builtins.str],
17164
17501
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
17165
- resource: IResourceWithPolicy,
17502
+ resource: IResourceWithPolicyV2,
17166
17503
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
17167
17504
  ) -> None:
17168
17505
  """Type checking stubs"""
@@ -17183,7 +17520,7 @@ def _typecheckingstub__7c10aadcc3756f5f6d5486d7ecd5cabd7845be5964af1722a9d4962d5
17183
17520
  """Type checking stubs"""
17184
17521
  pass
17185
17522
 
17186
- def _typecheckingstub__dc0b619bfbc345bc9140fcc58d59f27472a211b09306f5c2e6b0147efcef6b18(
17523
+ def _typecheckingstub__d0411047245e16030f540e191ce067fdd2216fb84afd5f47032486efe2dddfda(
17187
17524
  statement: PolicyStatement,
17188
17525
  ) -> None:
17189
17526
  """Type checking stubs"""
@@ -17249,7 +17586,7 @@ def _typecheckingstub__2cd427eaa6d6959043bb705f947d652220f35431c484ef548899b9f81
17249
17586
  *,
17250
17587
  description: typing.Optional[builtins.str] = None,
17251
17588
  document: typing.Optional[PolicyDocument] = None,
17252
- groups: typing.Optional[typing.Sequence[IGroup]] = None,
17589
+ groups: typing.Optional[typing.Sequence[_IGroupRef_aeb1d9f6]] = None,
17253
17590
  managed_policy_name: typing.Optional[builtins.str] = None,
17254
17591
  path: typing.Optional[builtins.str] = None,
17255
17592
  roles: typing.Optional[typing.Sequence[IRole]] = None,
@@ -17288,7 +17625,7 @@ def _typecheckingstub__dc09c2f794b8d270cf58515acd36f16f22c50e8e485667751a6b6bf54
17288
17625
  pass
17289
17626
 
17290
17627
  def _typecheckingstub__53947185e012309c9619b70da30bfebeef3a52fedd6d8eca19e9a8e96853c82e(
17291
- group: IGroup,
17628
+ group: _IGroupRef_aeb1d9f6,
17292
17629
  ) -> None:
17293
17630
  """Type checking stubs"""
17294
17631
  pass
@@ -17300,7 +17637,7 @@ def _typecheckingstub__d3b5752936a78a06ee1095be0dc5362932d7db4aa0245a456f4cfea45
17300
17637
  pass
17301
17638
 
17302
17639
  def _typecheckingstub__d3b5f4b1c957b78ec0d5ae0e80dc7f2471a55d293c6a67e32ef5a2046d89543d(
17303
- user: IUser,
17640
+ user: _IUserRef_b0ccca76,
17304
17641
  ) -> None:
17305
17642
  """Type checking stubs"""
17306
17643
  pass
@@ -17309,7 +17646,7 @@ def _typecheckingstub__9ac402af2b963b15f12c561030bd732418fdef258857572111b9a8118
17309
17646
  *,
17310
17647
  description: typing.Optional[builtins.str] = None,
17311
17648
  document: typing.Optional[PolicyDocument] = None,
17312
- groups: typing.Optional[typing.Sequence[IGroup]] = None,
17649
+ groups: typing.Optional[typing.Sequence[_IGroupRef_aeb1d9f6]] = None,
17313
17650
  managed_policy_name: typing.Optional[builtins.str] = None,
17314
17651
  path: typing.Optional[builtins.str] = None,
17315
17652
  roles: typing.Optional[typing.Sequence[IRole]] = None,
@@ -17751,7 +18088,7 @@ def _typecheckingstub__0475ec23892b6dacf8e0426b204cca68a4091056bb08c20a72dbc06d2
17751
18088
  grantee: IGrantable,
17752
18089
  resource_arns: typing.Sequence[builtins.str],
17753
18090
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
17754
- resource: IResourceWithPolicy,
18091
+ resource: IResourceWithPolicyV2,
17755
18092
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
17756
18093
  statement: PolicyStatement,
17757
18094
  ) -> None:
@@ -18233,7 +18570,7 @@ def _typecheckingstub__4dc4375c7e3b272eef905d1d27c4bd67aa9d9f51ccb424f15955369df
18233
18570
  pass
18234
18571
 
18235
18572
  def _typecheckingstub__703e9a9603562e94536f153d5ccc52492ff19cc38ed968f3b1f3e31592a8ae7f(
18236
- saml_provider: ISamlProvider,
18573
+ saml_provider: _ISAMLProviderRef_6e369856,
18237
18574
  conditions: typing.Mapping[builtins.str, typing.Any],
18238
18575
  ) -> None:
18239
18576
  """Type checking stubs"""
@@ -18310,7 +18647,7 @@ def _typecheckingstub__f8334d09c64ac01b56e25eccb0dd778a954e4f613c776ac3447cf3f13
18310
18647
  pass
18311
18648
 
18312
18649
  def _typecheckingstub__11057e2b11d9138bde96aa84215de1b5dba16e8c36af672dbebea8a1c33f4310(
18313
- open_id_connect_provider: IOpenIdConnectProvider,
18650
+ open_id_connect_provider: _IOIDCProviderRef_a866c7c8,
18314
18651
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
18315
18652
  ) -> None:
18316
18653
  """Type checking stubs"""
@@ -18322,3 +18659,6 @@ def _typecheckingstub__c7271e79a3715a166397ac94ded3c4043db8b40c10213ffae6abbb3a1
18322
18659
  ) -> None:
18323
18660
  """Type checking stubs"""
18324
18661
  pass
18662
+
18663
+ for cls in [IAccessKey, IAssumeRolePrincipal, IComparablePrincipal, IGrantable, IGroup, IIdentity, IInstanceProfile, IManagedPolicy, IOidcProvider, IOpenIdConnectProvider, IPolicy, IPrincipal, IResourceWithPolicy, IResourceWithPolicyV2, IRole, ISamlProvider, IUser]:
18664
+ typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])