aws-cdk-lib 2.195.0__py3-none-any.whl → 2.224.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (572) hide show
  1. aws_cdk/__init__.py +1806 -417
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.195.0.jsii.tgz → aws-cdk-lib@2.224.0.jsii.tgz} +0 -0
  4. aws_cdk/alexa_ask/__init__.py +12 -2
  5. aws_cdk/aws_accessanalyzer/__init__.py +323 -6
  6. aws_cdk/aws_acmpca/__init__.py +53 -10
  7. aws_cdk/aws_aiops/__init__.py +1019 -0
  8. aws_cdk/aws_amazonmq/__init__.py +357 -313
  9. aws_cdk/aws_amplify/__init__.py +173 -17
  10. aws_cdk/aws_amplifyuibuilder/__init__.py +35 -6
  11. aws_cdk/aws_apigateway/__init__.py +1245 -215
  12. aws_cdk/aws_apigatewayv2/__init__.py +3890 -476
  13. aws_cdk/aws_apigatewayv2_integrations/__init__.py +94 -16
  14. aws_cdk/aws_appconfig/__init__.py +618 -91
  15. aws_cdk/aws_appflow/__init__.py +151 -6
  16. aws_cdk/aws_appintegrations/__init__.py +546 -6
  17. aws_cdk/aws_applicationautoscaling/__init__.py +75 -10
  18. aws_cdk/aws_applicationinsights/__init__.py +13 -2
  19. aws_cdk/aws_applicationsignals/__init__.py +374 -6
  20. aws_cdk/aws_appmesh/__init__.py +136 -26
  21. aws_cdk/aws_apprunner/__init__.py +66 -18
  22. aws_cdk/aws_appstream/__init__.py +309 -55
  23. aws_cdk/aws_appsync/__init__.py +350 -94
  24. aws_cdk/aws_apptest/__init__.py +71 -2
  25. aws_cdk/aws_aps/__init__.py +2188 -94
  26. aws_cdk/aws_arcregionswitch/__init__.py +5095 -0
  27. aws_cdk/aws_arczonalshift/__init__.py +39 -12
  28. aws_cdk/aws_athena/__init__.py +365 -29
  29. aws_cdk/aws_auditmanager/__init__.py +71 -2
  30. aws_cdk/aws_autoscaling/__init__.py +165 -60
  31. aws_cdk/aws_autoscaling_common/__init__.py +3 -0
  32. aws_cdk/aws_autoscalingplans/__init__.py +13 -2
  33. aws_cdk/aws_b2bi/__init__.py +1819 -99
  34. aws_cdk/aws_backup/__init__.py +370 -42
  35. aws_cdk/aws_backupgateway/__init__.py +13 -2
  36. aws_cdk/aws_batch/__init__.py +1462 -163
  37. aws_cdk/aws_bcmdataexports/__init__.py +21 -2
  38. aws_cdk/aws_bedrock/__init__.py +7867 -727
  39. aws_cdk/aws_bedrockagentcore/__init__.py +10425 -0
  40. aws_cdk/aws_billingconductor/__init__.py +197 -11
  41. aws_cdk/aws_budgets/__init__.py +611 -4
  42. aws_cdk/aws_cassandra/__init__.py +247 -6
  43. aws_cdk/aws_ce/__init__.py +35 -6
  44. aws_cdk/aws_certificatemanager/__init__.py +258 -32
  45. aws_cdk/aws_chatbot/__init__.py +76 -6
  46. aws_cdk/aws_cleanrooms/__init__.py +709 -206
  47. aws_cdk/aws_cleanroomsml/__init__.py +13 -2
  48. aws_cdk/aws_cloud9/__init__.py +13 -2
  49. aws_cdk/aws_cloudformation/__init__.py +362 -189
  50. aws_cdk/aws_cloudfront/__init__.py +2188 -674
  51. aws_cdk/aws_cloudfront/experimental/__init__.py +114 -16
  52. aws_cdk/aws_cloudfront_origins/__init__.py +615 -74
  53. aws_cdk/aws_cloudtrail/__init__.py +311 -21
  54. aws_cdk/aws_cloudwatch/__init__.py +3093 -1038
  55. aws_cdk/aws_cloudwatch_actions/__init__.py +75 -1
  56. aws_cdk/aws_codeartifact/__init__.py +35 -6
  57. aws_cdk/aws_codebuild/__init__.py +1303 -135
  58. aws_cdk/aws_codecommit/__init__.py +29 -9
  59. aws_cdk/aws_codeconnections/__init__.py +13 -2
  60. aws_cdk/aws_codedeploy/__init__.py +130 -6
  61. aws_cdk/aws_codeguruprofiler/__init__.py +80 -2
  62. aws_cdk/aws_codegurureviewer/__init__.py +13 -2
  63. aws_cdk/aws_codepipeline/__init__.py +177 -71
  64. aws_cdk/aws_codepipeline_actions/__init__.py +753 -4
  65. aws_cdk/aws_codestar/__init__.py +13 -2
  66. aws_cdk/aws_codestarconnections/__init__.py +35 -6
  67. aws_cdk/aws_codestarnotifications/__init__.py +22 -2
  68. aws_cdk/aws_cognito/__init__.py +905 -92
  69. aws_cdk/aws_cognito_identitypool/__init__.py +23 -12
  70. aws_cdk/aws_comprehend/__init__.py +24 -4
  71. aws_cdk/aws_config/__init__.py +227 -30
  72. aws_cdk/aws_connect/__init__.py +2736 -191
  73. aws_cdk/aws_connectcampaigns/__init__.py +13 -2
  74. aws_cdk/aws_connectcampaignsv2/__init__.py +268 -6
  75. aws_cdk/aws_controltower/__init__.py +35 -6
  76. aws_cdk/aws_cur/__init__.py +100 -4
  77. aws_cdk/aws_customerprofiles/__init__.py +617 -27
  78. aws_cdk/aws_databrew/__init__.py +68 -12
  79. aws_cdk/aws_datapipeline/__init__.py +42 -2
  80. aws_cdk/aws_datasync/__init__.py +1514 -977
  81. aws_cdk/aws_datazone/__init__.py +7426 -1763
  82. aws_cdk/aws_dax/__init__.py +83 -6
  83. aws_cdk/aws_deadline/__init__.py +511 -36
  84. aws_cdk/aws_detective/__init__.py +35 -6
  85. aws_cdk/aws_devicefarm/__init__.py +68 -12
  86. aws_cdk/aws_devopsguru/__init__.py +37 -6
  87. aws_cdk/aws_directoryservice/__init__.py +53 -4
  88. aws_cdk/aws_dlm/__init__.py +13 -2
  89. aws_cdk/aws_dms/__init__.py +184 -27
  90. aws_cdk/aws_docdb/__init__.py +350 -49
  91. aws_cdk/aws_docdbelastic/__init__.py +13 -2
  92. aws_cdk/aws_dsql/__init__.py +386 -16
  93. aws_cdk/aws_dynamodb/__init__.py +1479 -170
  94. aws_cdk/aws_ec2/__init__.py +10465 -1335
  95. aws_cdk/aws_ecr/__init__.py +637 -43
  96. aws_cdk/aws_ecr_assets/__init__.py +10 -0
  97. aws_cdk/aws_ecs/__init__.py +6629 -490
  98. aws_cdk/aws_ecs_patterns/__init__.py +124 -12
  99. aws_cdk/aws_efs/__init__.py +276 -24
  100. aws_cdk/aws_eks/__init__.py +1132 -227
  101. aws_cdk/aws_elasticache/__init__.py +378 -25
  102. aws_cdk/aws_elasticbeanstalk/__init__.py +75 -8
  103. aws_cdk/aws_elasticloadbalancing/__init__.py +22 -2
  104. aws_cdk/aws_elasticloadbalancingv2/__init__.py +1796 -123
  105. aws_cdk/aws_elasticsearch/__init__.py +291 -9
  106. aws_cdk/aws_emr/__init__.py +219 -18
  107. aws_cdk/aws_emrcontainers/__init__.py +71 -2
  108. aws_cdk/aws_emrserverless/__init__.py +188 -3
  109. aws_cdk/aws_entityresolution/__init__.py +585 -58
  110. aws_cdk/aws_events/__init__.py +1007 -126
  111. aws_cdk/aws_events_targets/__init__.py +398 -65
  112. aws_cdk/aws_eventschemas/__init__.py +46 -8
  113. aws_cdk/aws_evidently/__init__.py +57 -10
  114. aws_cdk/aws_evs/__init__.py +2244 -0
  115. aws_cdk/aws_finspace/__init__.py +71 -2
  116. aws_cdk/aws_fis/__init__.py +26 -4
  117. aws_cdk/aws_fms/__init__.py +35 -6
  118. aws_cdk/aws_forecast/__init__.py +24 -4
  119. aws_cdk/aws_frauddetector/__init__.py +79 -14
  120. aws_cdk/aws_fsx/__init__.py +1349 -127
  121. aws_cdk/aws_gamelift/__init__.py +755 -94
  122. aws_cdk/aws_gameliftstreams/__init__.py +44 -22
  123. aws_cdk/aws_globalaccelerator/__init__.py +73 -14
  124. aws_cdk/aws_glue/__init__.py +1455 -378
  125. aws_cdk/aws_grafana/__init__.py +13 -2
  126. aws_cdk/aws_greengrass/__init__.py +654 -32
  127. aws_cdk/aws_greengrassv2/__init__.py +53 -4
  128. aws_cdk/aws_groundstation/__init__.py +122 -6
  129. aws_cdk/aws_guardduty/__init__.py +1613 -123
  130. aws_cdk/aws_healthimaging/__init__.py +71 -2
  131. aws_cdk/aws_healthlake/__init__.py +42 -2
  132. aws_cdk/aws_iam/__init__.py +921 -141
  133. aws_cdk/aws_identitystore/__init__.py +24 -4
  134. aws_cdk/aws_imagebuilder/__init__.py +1454 -199
  135. aws_cdk/aws_inspector/__init__.py +44 -6
  136. aws_cdk/aws_inspectorv2/__init__.py +2285 -243
  137. aws_cdk/aws_internetmonitor/__init__.py +71 -2
  138. aws_cdk/aws_invoicing/__init__.py +13 -2
  139. aws_cdk/aws_iot/__init__.py +1760 -64
  140. aws_cdk/aws_iotanalytics/__init__.py +162 -8
  141. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +106 -40
  142. aws_cdk/aws_iotevents/__init__.py +122 -6
  143. aws_cdk/aws_iotfleethub/__init__.py +71 -2
  144. aws_cdk/aws_iotfleetwise/__init__.py +195 -14
  145. aws_cdk/aws_iotsitewise/__init__.py +1837 -89
  146. aws_cdk/aws_iotthingsgraph/__init__.py +13 -2
  147. aws_cdk/aws_iottwinmaker/__init__.py +115 -10
  148. aws_cdk/aws_iotwireless/__init__.py +649 -22
  149. aws_cdk/aws_ivs/__init__.py +561 -57
  150. aws_cdk/aws_ivschat/__init__.py +24 -4
  151. aws_cdk/aws_kafkaconnect/__init__.py +35 -6
  152. aws_cdk/aws_kendra/__init__.py +120 -28
  153. aws_cdk/aws_kendraranking/__init__.py +13 -2
  154. aws_cdk/aws_kinesis/__init__.py +641 -23
  155. aws_cdk/aws_kinesisanalytics/__init__.py +467 -96
  156. aws_cdk/aws_kinesisanalyticsv2/__init__.py +207 -19
  157. aws_cdk/aws_kinesisfirehose/__init__.py +3087 -295
  158. aws_cdk/aws_kinesisvideo/__init__.py +24 -4
  159. aws_cdk/aws_kms/__init__.py +204 -45
  160. aws_cdk/aws_lakeformation/__init__.py +80 -15
  161. aws_cdk/aws_lambda/__init__.py +2236 -297
  162. aws_cdk/aws_lambda_event_sources/__init__.py +638 -1
  163. aws_cdk/aws_lambda_nodejs/__init__.py +63 -24
  164. aws_cdk/aws_launchwizard/__init__.py +13 -2
  165. aws_cdk/aws_lex/__init__.py +2162 -212
  166. aws_cdk/aws_licensemanager/__init__.py +24 -4
  167. aws_cdk/aws_lightsail/__init__.py +2958 -1322
  168. aws_cdk/aws_location/__init__.py +618 -14
  169. aws_cdk/aws_logs/__init__.py +6014 -923
  170. aws_cdk/aws_lookoutequipment/__init__.py +13 -2
  171. aws_cdk/aws_lookoutmetrics/__init__.py +38 -6
  172. aws_cdk/aws_lookoutvision/__init__.py +71 -2
  173. aws_cdk/aws_m2/__init__.py +94 -19
  174. aws_cdk/aws_macie/__init__.py +49 -11
  175. aws_cdk/aws_managedblockchain/__init__.py +180 -6
  176. aws_cdk/aws_mediaconnect/__init__.py +101 -18
  177. aws_cdk/aws_mediaconvert/__init__.py +35 -6
  178. aws_cdk/aws_medialive/__init__.py +1938 -532
  179. aws_cdk/aws_mediapackage/__init__.py +59 -12
  180. aws_cdk/aws_mediapackagev2/__init__.py +1616 -233
  181. aws_cdk/aws_mediastore/__init__.py +13 -2
  182. aws_cdk/aws_mediatailor/__init__.py +583 -12
  183. aws_cdk/aws_memorydb/__init__.py +271 -12
  184. aws_cdk/aws_mpa/__init__.py +1495 -0
  185. aws_cdk/aws_msk/__init__.py +108 -22
  186. aws_cdk/aws_mwaa/__init__.py +121 -9
  187. aws_cdk/aws_neptune/__init__.py +290 -78
  188. aws_cdk/aws_neptunegraph/__init__.py +24 -4
  189. aws_cdk/aws_networkfirewall/__init__.py +1184 -164
  190. aws_cdk/aws_networkmanager/__init__.py +349 -33
  191. aws_cdk/aws_nimblestudio/__init__.py +283 -408
  192. aws_cdk/aws_notifications/__init__.py +317 -12
  193. aws_cdk/aws_notificationscontacts/__init__.py +13 -2
  194. aws_cdk/aws_oam/__init__.py +24 -4
  195. aws_cdk/aws_observabilityadmin/__init__.py +2561 -0
  196. aws_cdk/aws_odb/__init__.py +5872 -0
  197. aws_cdk/aws_omics/__init__.py +2967 -162
  198. aws_cdk/aws_opensearchserverless/__init__.py +312 -37
  199. aws_cdk/aws_opensearchservice/__init__.py +501 -19
  200. aws_cdk/aws_opsworks/__init__.py +235 -139
  201. aws_cdk/aws_opsworkscm/__init__.py +16 -52
  202. aws_cdk/aws_organizations/__init__.py +70 -10
  203. aws_cdk/aws_osis/__init__.py +167 -2
  204. aws_cdk/aws_panorama/__init__.py +181 -9
  205. aws_cdk/aws_paymentcryptography/__init__.py +24 -4
  206. aws_cdk/aws_pcaconnectorad/__init__.py +59 -10
  207. aws_cdk/aws_pcaconnectorscep/__init__.py +24 -4
  208. aws_cdk/aws_pcs/__init__.py +516 -64
  209. aws_cdk/aws_personalize/__init__.py +46 -8
  210. aws_cdk/aws_pinpoint/__init__.py +329 -38
  211. aws_cdk/aws_pinpointemail/__init__.py +48 -8
  212. aws_cdk/aws_pipes/__init__.py +12 -2
  213. aws_cdk/aws_proton/__init__.py +37 -6
  214. aws_cdk/aws_qbusiness/__init__.py +635 -34
  215. aws_cdk/aws_qldb/__init__.py +24 -4
  216. aws_cdk/aws_quicksight/__init__.py +7900 -1160
  217. aws_cdk/aws_ram/__init__.py +24 -4
  218. aws_cdk/aws_rbin/__init__.py +12 -2
  219. aws_cdk/aws_rds/__init__.py +3721 -573
  220. aws_cdk/aws_redshift/__init__.py +143 -20
  221. aws_cdk/aws_redshiftserverless/__init__.py +699 -11
  222. aws_cdk/aws_refactorspaces/__init__.py +64 -14
  223. aws_cdk/aws_rekognition/__init__.py +93 -6
  224. aws_cdk/aws_resiliencehub/__init__.py +24 -4
  225. aws_cdk/aws_resourceexplorer2/__init__.py +35 -6
  226. aws_cdk/aws_resourcegroups/__init__.py +82 -4
  227. aws_cdk/aws_robomaker/__init__.py +72 -12
  228. aws_cdk/aws_rolesanywhere/__init__.py +194 -19
  229. aws_cdk/aws_route53/__init__.py +3965 -1436
  230. aws_cdk/aws_route53_targets/__init__.py +3 -0
  231. aws_cdk/aws_route53profiles/__init__.py +37 -6
  232. aws_cdk/aws_route53recoverycontrol/__init__.py +46 -8
  233. aws_cdk/aws_route53recoveryreadiness/__init__.py +104 -8
  234. aws_cdk/aws_route53resolver/__init__.py +189 -40
  235. aws_cdk/aws_rtbfabric/__init__.py +3498 -0
  236. aws_cdk/aws_rum/__init__.py +13 -2
  237. aws_cdk/aws_s3/__init__.py +1742 -221
  238. aws_cdk/aws_s3_assets/__init__.py +11 -11
  239. aws_cdk/aws_s3_deployment/__init__.py +153 -11
  240. aws_cdk/aws_s3_notifications/__init__.py +7 -7
  241. aws_cdk/aws_s3express/__init__.py +1053 -6
  242. aws_cdk/aws_s3objectlambda/__init__.py +68 -16
  243. aws_cdk/aws_s3outposts/__init__.py +46 -8
  244. aws_cdk/aws_s3tables/__init__.py +2000 -323
  245. aws_cdk/aws_s3vectors/__init__.py +1378 -0
  246. aws_cdk/aws_sagemaker/__init__.py +6848 -373
  247. aws_cdk/aws_sam/__init__.py +79 -14
  248. aws_cdk/aws_scheduler/__init__.py +249 -4
  249. aws_cdk/aws_sdb/__init__.py +12 -2
  250. aws_cdk/aws_secretsmanager/__init__.py +194 -14
  251. aws_cdk/aws_securityhub/__init__.py +3121 -176
  252. aws_cdk/aws_securitylake/__init__.py +46 -8
  253. aws_cdk/aws_servicecatalog/__init__.py +429 -246
  254. aws_cdk/aws_servicecatalogappregistry/__init__.py +164 -8
  255. aws_cdk/aws_servicediscovery/__init__.py +188 -47
  256. aws_cdk/aws_ses/__init__.py +2265 -369
  257. aws_cdk/aws_shield/__init__.py +46 -8
  258. aws_cdk/aws_signer/__init__.py +33 -4
  259. aws_cdk/aws_simspaceweaver/__init__.py +42 -2
  260. aws_cdk/aws_smsvoice/__init__.py +4716 -0
  261. aws_cdk/aws_sns/__init__.py +263 -29
  262. aws_cdk/aws_sns_subscriptions/__init__.py +265 -2
  263. aws_cdk/aws_sqs/__init__.py +223 -14
  264. aws_cdk/aws_ssm/__init__.py +413 -58
  265. aws_cdk/aws_ssmcontacts/__init__.py +98 -9
  266. aws_cdk/aws_ssmguiconnect/__init__.py +20 -9
  267. aws_cdk/aws_ssmincidents/__init__.py +24 -4
  268. aws_cdk/aws_ssmquicksetup/__init__.py +393 -8
  269. aws_cdk/aws_sso/__init__.py +70 -12
  270. aws_cdk/aws_stepfunctions/__init__.py +823 -94
  271. aws_cdk/aws_stepfunctions_tasks/__init__.py +2323 -150
  272. aws_cdk/aws_supportapp/__init__.py +39 -6
  273. aws_cdk/aws_synthetics/__init__.py +1088 -126
  274. aws_cdk/aws_systemsmanagersap/__init__.py +13 -2
  275. aws_cdk/aws_timestream/__init__.py +104 -8
  276. aws_cdk/aws_transfer/__init__.py +784 -87
  277. aws_cdk/aws_verifiedpermissions/__init__.py +306 -13
  278. aws_cdk/aws_voiceid/__init__.py +54 -5
  279. aws_cdk/aws_vpclattice/__init__.py +589 -231
  280. aws_cdk/aws_waf/__init__.py +79 -14
  281. aws_cdk/aws_wafregional/__init__.py +123 -22
  282. aws_cdk/aws_wafv2/__init__.py +1183 -64
  283. aws_cdk/aws_wisdom/__init__.py +1403 -90
  284. aws_cdk/aws_workspaces/__init__.py +134 -6
  285. aws_cdk/aws_workspacesinstances/__init__.py +3940 -0
  286. aws_cdk/aws_workspacesthinclient/__init__.py +79 -10
  287. aws_cdk/aws_workspacesweb/__init__.py +1057 -141
  288. aws_cdk/aws_xray/__init__.py +48 -8
  289. aws_cdk/cloud_assembly_schema/__init__.py +368 -48
  290. aws_cdk/custom_resources/__init__.py +58 -12
  291. aws_cdk/cx_api/__init__.py +125 -21
  292. aws_cdk/interfaces/__init__.py +739 -0
  293. aws_cdk/interfaces/alexa_ask/__init__.py +146 -0
  294. aws_cdk/interfaces/aws_accessanalyzer/__init__.py +146 -0
  295. aws_cdk/interfaces/aws_acmpca/__init__.py +501 -0
  296. aws_cdk/interfaces/aws_aiops/__init__.py +146 -0
  297. aws_cdk/interfaces/aws_amazonmq/__init__.py +386 -0
  298. aws_cdk/interfaces/aws_amplify/__init__.py +352 -0
  299. aws_cdk/interfaces/aws_amplifyuibuilder/__init__.py +454 -0
  300. aws_cdk/interfaces/aws_apigateway/__init__.py +2486 -0
  301. aws_cdk/interfaces/aws_apigatewayv2/__init__.py +1651 -0
  302. aws_cdk/interfaces/aws_appconfig/__init__.py +1020 -0
  303. aws_cdk/interfaces/aws_appflow/__init__.py +404 -0
  304. aws_cdk/interfaces/aws_appintegrations/__init__.py +396 -0
  305. aws_cdk/interfaces/aws_applicationautoscaling/__init__.py +307 -0
  306. aws_cdk/interfaces/aws_applicationinsights/__init__.py +148 -0
  307. aws_cdk/interfaces/aws_applicationsignals/__init__.py +358 -0
  308. aws_cdk/interfaces/aws_appmesh/__init__.py +888 -0
  309. aws_cdk/interfaces/aws_apprunner/__init__.py +564 -0
  310. aws_cdk/interfaces/aws_appstream/__init__.py +1482 -0
  311. aws_cdk/interfaces/aws_appsync/__init__.py +1326 -0
  312. aws_cdk/interfaces/aws_apptest/__init__.py +163 -0
  313. aws_cdk/interfaces/aws_aps/__init__.py +558 -0
  314. aws_cdk/interfaces/aws_arcregionswitch/__init__.py +146 -0
  315. aws_cdk/interfaces/aws_arczonalshift/__init__.py +273 -0
  316. aws_cdk/interfaces/aws_athena/__init__.py +575 -0
  317. aws_cdk/interfaces/aws_auditmanager/__init__.py +163 -0
  318. aws_cdk/interfaces/aws_autoscaling/__init__.py +705 -0
  319. aws_cdk/interfaces/aws_autoscalingplans/__init__.py +148 -0
  320. aws_cdk/interfaces/aws_b2bi/__init__.py +524 -0
  321. aws_cdk/interfaces/aws_backup/__init__.py +955 -0
  322. aws_cdk/interfaces/aws_backupgateway/__init__.py +146 -0
  323. aws_cdk/interfaces/aws_batch/__init__.py +681 -0
  324. aws_cdk/interfaces/aws_bcmdataexports/__init__.py +146 -0
  325. aws_cdk/interfaces/aws_bedrock/__init__.py +1942 -0
  326. aws_cdk/interfaces/aws_bedrockagentcore/__init__.py +934 -0
  327. aws_cdk/interfaces/aws_billing/__init__.py +146 -0
  328. aws_cdk/interfaces/aws_billingconductor/__init__.py +463 -0
  329. aws_cdk/interfaces/aws_budgets/__init__.py +261 -0
  330. aws_cdk/interfaces/aws_cassandra/__init__.py +381 -0
  331. aws_cdk/interfaces/aws_ce/__init__.py +352 -0
  332. aws_cdk/interfaces/aws_certificatemanager/__init__.py +251 -0
  333. aws_cdk/interfaces/aws_chatbot/__init__.py +366 -0
  334. aws_cdk/interfaces/aws_cleanrooms/__init__.py +1103 -0
  335. aws_cdk/interfaces/aws_cleanroomsml/__init__.py +148 -0
  336. aws_cdk/interfaces/aws_cloud9/__init__.py +166 -0
  337. aws_cdk/interfaces/aws_cloudformation/__init__.py +1919 -0
  338. aws_cdk/interfaces/aws_cloudfront/__init__.py +1998 -0
  339. aws_cdk/interfaces/aws_cloudtrail/__init__.py +570 -0
  340. aws_cdk/interfaces/aws_cloudwatch/__init__.py +733 -0
  341. aws_cdk/interfaces/aws_codeartifact/__init__.py +352 -0
  342. aws_cdk/interfaces/aws_codebuild/__init__.py +487 -0
  343. aws_cdk/interfaces/aws_codecommit/__init__.py +163 -0
  344. aws_cdk/interfaces/aws_codeconnections/__init__.py +146 -0
  345. aws_cdk/interfaces/aws_codedeploy/__init__.py +352 -0
  346. aws_cdk/interfaces/aws_codeguruprofiler/__init__.py +168 -0
  347. aws_cdk/interfaces/aws_codegurureviewer/__init__.py +148 -0
  348. aws_cdk/interfaces/aws_codepipeline/__init__.py +388 -0
  349. aws_cdk/interfaces/aws_codestar/__init__.py +146 -0
  350. aws_cdk/interfaces/aws_codestarconnections/__init__.py +370 -0
  351. aws_cdk/interfaces/aws_codestarnotifications/__init__.py +148 -0
  352. aws_cdk/interfaces/aws_cognito/__init__.py +1929 -0
  353. aws_cdk/interfaces/aws_comprehend/__init__.py +251 -0
  354. aws_cdk/interfaces/aws_config/__init__.py +1165 -0
  355. aws_cdk/interfaces/aws_connect/__init__.py +2949 -0
  356. aws_cdk/interfaces/aws_connectcampaigns/__init__.py +146 -0
  357. aws_cdk/interfaces/aws_connectcampaignsv2/__init__.py +146 -0
  358. aws_cdk/interfaces/aws_controltower/__init__.py +394 -0
  359. aws_cdk/interfaces/aws_cur/__init__.py +146 -0
  360. aws_cdk/interfaces/aws_customerprofiles/__init__.py +915 -0
  361. aws_cdk/interfaces/aws_databrew/__init__.py +661 -0
  362. aws_cdk/interfaces/aws_datapipeline/__init__.py +146 -0
  363. aws_cdk/interfaces/aws_datasync/__init__.py +1384 -0
  364. aws_cdk/interfaces/aws_datazone/__init__.py +2238 -0
  365. aws_cdk/interfaces/aws_dax/__init__.py +364 -0
  366. aws_cdk/interfaces/aws_deadline/__init__.py +1303 -0
  367. aws_cdk/interfaces/aws_detective/__init__.py +364 -0
  368. aws_cdk/interfaces/aws_devicefarm/__init__.py +663 -0
  369. aws_cdk/interfaces/aws_devopsguru/__init__.py +362 -0
  370. aws_cdk/interfaces/aws_directoryservice/__init__.py +251 -0
  371. aws_cdk/interfaces/aws_dlm/__init__.py +166 -0
  372. aws_cdk/interfaces/aws_dms/__init__.py +1176 -0
  373. aws_cdk/interfaces/aws_docdb/__init__.py +560 -0
  374. aws_cdk/interfaces/aws_docdbelastic/__init__.py +146 -0
  375. aws_cdk/interfaces/aws_dsql/__init__.py +146 -0
  376. aws_cdk/interfaces/aws_dynamodb/__init__.py +278 -0
  377. aws_cdk/interfaces/aws_ec2/__init__.py +11963 -0
  378. aws_cdk/interfaces/aws_ecr/__init__.py +814 -0
  379. aws_cdk/interfaces/aws_ecs/__init__.py +845 -0
  380. aws_cdk/interfaces/aws_efs/__init__.py +392 -0
  381. aws_cdk/interfaces/aws_eks/__init__.py +948 -0
  382. aws_cdk/interfaces/aws_elasticache/__init__.py +1108 -0
  383. aws_cdk/interfaces/aws_elasticbeanstalk/__init__.py +503 -0
  384. aws_cdk/interfaces/aws_elasticloadbalancing/__init__.py +148 -0
  385. aws_cdk/interfaces/aws_elasticloadbalancingv2/__init__.py +795 -0
  386. aws_cdk/interfaces/aws_elasticsearch/__init__.py +158 -0
  387. aws_cdk/interfaces/aws_emr/__init__.py +913 -0
  388. aws_cdk/interfaces/aws_emrcontainers/__init__.py +168 -0
  389. aws_cdk/interfaces/aws_emrserverless/__init__.py +166 -0
  390. aws_cdk/interfaces/aws_entityresolution/__init__.py +608 -0
  391. aws_cdk/interfaces/aws_events/__init__.py +872 -0
  392. aws_cdk/interfaces/aws_eventschemas/__init__.py +455 -0
  393. aws_cdk/interfaces/aws_evidently/__init__.py +558 -0
  394. aws_cdk/interfaces/aws_evs/__init__.py +166 -0
  395. aws_cdk/interfaces/aws_finspace/__init__.py +166 -0
  396. aws_cdk/interfaces/aws_fis/__init__.py +271 -0
  397. aws_cdk/interfaces/aws_fms/__init__.py +364 -0
  398. aws_cdk/interfaces/aws_forecast/__init__.py +249 -0
  399. aws_cdk/interfaces/aws_frauddetector/__init__.py +764 -0
  400. aws_cdk/interfaces/aws_fsx/__init__.py +663 -0
  401. aws_cdk/interfaces/aws_gamelift/__init__.py +1325 -0
  402. aws_cdk/interfaces/aws_gameliftstreams/__init__.py +249 -0
  403. aws_cdk/interfaces/aws_globalaccelerator/__init__.py +461 -0
  404. aws_cdk/interfaces/aws_glue/__init__.py +2377 -0
  405. aws_cdk/interfaces/aws_grafana/__init__.py +146 -0
  406. aws_cdk/interfaces/aws_greengrass/__init__.py +1871 -0
  407. aws_cdk/interfaces/aws_greengrassv2/__init__.py +251 -0
  408. aws_cdk/interfaces/aws_groundstation/__init__.py +396 -0
  409. aws_cdk/interfaces/aws_guardduty/__init__.py +1225 -0
  410. aws_cdk/interfaces/aws_healthimaging/__init__.py +163 -0
  411. aws_cdk/interfaces/aws_healthlake/__init__.py +146 -0
  412. aws_cdk/interfaces/aws_iam/__init__.py +1803 -0
  413. aws_cdk/interfaces/aws_identitystore/__init__.py +288 -0
  414. aws_cdk/interfaces/aws_imagebuilder/__init__.py +984 -0
  415. aws_cdk/interfaces/aws_inspector/__init__.py +354 -0
  416. aws_cdk/interfaces/aws_inspectorv2/__init__.py +467 -0
  417. aws_cdk/interfaces/aws_internetmonitor/__init__.py +163 -0
  418. aws_cdk/interfaces/aws_invoicing/__init__.py +146 -0
  419. aws_cdk/interfaces/aws_iot/__init__.py +3483 -0
  420. aws_cdk/interfaces/aws_iotanalytics/__init__.py +455 -0
  421. aws_cdk/interfaces/aws_iotcoredeviceadvisor/__init__.py +168 -0
  422. aws_cdk/interfaces/aws_iotevents/__init__.py +352 -0
  423. aws_cdk/interfaces/aws_iotfleethub/__init__.py +166 -0
  424. aws_cdk/interfaces/aws_iotfleetwise/__init__.py +892 -0
  425. aws_cdk/interfaces/aws_iotsitewise/__init__.py +1097 -0
  426. aws_cdk/interfaces/aws_iotthingsgraph/__init__.py +146 -0
  427. aws_cdk/interfaces/aws_iottwinmaker/__init__.py +711 -0
  428. aws_cdk/interfaces/aws_iotwireless/__init__.py +1401 -0
  429. aws_cdk/interfaces/aws_ivs/__init__.py +1075 -0
  430. aws_cdk/interfaces/aws_ivschat/__init__.py +251 -0
  431. aws_cdk/interfaces/aws_kafkaconnect/__init__.py +354 -0
  432. aws_cdk/interfaces/aws_kendra/__init__.py +428 -0
  433. aws_cdk/interfaces/aws_kendraranking/__init__.py +166 -0
  434. aws_cdk/interfaces/aws_kinesis/__init__.py +364 -0
  435. aws_cdk/interfaces/aws_kinesisanalytics/__init__.py +364 -0
  436. aws_cdk/interfaces/aws_kinesisanalyticsv2/__init__.py +479 -0
  437. aws_cdk/interfaces/aws_kinesisfirehose/__init__.py +168 -0
  438. aws_cdk/interfaces/aws_kinesisvideo/__init__.py +283 -0
  439. aws_cdk/interfaces/aws_kms/__init__.py +376 -0
  440. aws_cdk/interfaces/aws_lakeformation/__init__.py +860 -0
  441. aws_cdk/interfaces/aws_lambda/__init__.py +1141 -0
  442. aws_cdk/interfaces/aws_launchwizard/__init__.py +146 -0
  443. aws_cdk/interfaces/aws_lex/__init__.py +513 -0
  444. aws_cdk/interfaces/aws_licensemanager/__init__.py +249 -0
  445. aws_cdk/interfaces/aws_lightsail/__init__.py +1744 -0
  446. aws_cdk/interfaces/aws_location/__init__.py +879 -0
  447. aws_cdk/interfaces/aws_logs/__init__.py +1667 -0
  448. aws_cdk/interfaces/aws_lookoutequipment/__init__.py +168 -0
  449. aws_cdk/interfaces/aws_lookoutmetrics/__init__.py +251 -0
  450. aws_cdk/interfaces/aws_lookoutvision/__init__.py +163 -0
  451. aws_cdk/interfaces/aws_m2/__init__.py +352 -0
  452. aws_cdk/interfaces/aws_macie/__init__.py +512 -0
  453. aws_cdk/interfaces/aws_managedblockchain/__init__.py +381 -0
  454. aws_cdk/interfaces/aws_mediaconnect/__init__.py +1028 -0
  455. aws_cdk/interfaces/aws_mediaconvert/__init__.py +396 -0
  456. aws_cdk/interfaces/aws_medialive/__init__.py +1755 -0
  457. aws_cdk/interfaces/aws_mediapackage/__init__.py +644 -0
  458. aws_cdk/interfaces/aws_mediapackagev2/__init__.py +618 -0
  459. aws_cdk/interfaces/aws_mediastore/__init__.py +146 -0
  460. aws_cdk/interfaces/aws_mediatailor/__init__.py +788 -0
  461. aws_cdk/interfaces/aws_memorydb/__init__.py +685 -0
  462. aws_cdk/interfaces/aws_mpa/__init__.py +249 -0
  463. aws_cdk/interfaces/aws_msk/__init__.py +764 -0
  464. aws_cdk/interfaces/aws_mwaa/__init__.py +166 -0
  465. aws_cdk/interfaces/aws_neptune/__init__.py +663 -0
  466. aws_cdk/interfaces/aws_neptunegraph/__init__.py +265 -0
  467. aws_cdk/interfaces/aws_networkfirewall/__init__.py +669 -0
  468. aws_cdk/interfaces/aws_networkmanager/__init__.py +1832 -0
  469. aws_cdk/interfaces/aws_nimblestudio/__init__.py +388 -0
  470. aws_cdk/interfaces/aws_notifications/__init__.py +868 -0
  471. aws_cdk/interfaces/aws_notificationscontacts/__init__.py +148 -0
  472. aws_cdk/interfaces/aws_oam/__init__.py +249 -0
  473. aws_cdk/interfaces/aws_observabilityadmin/__init__.py +362 -0
  474. aws_cdk/interfaces/aws_odb/__init__.py +562 -0
  475. aws_cdk/interfaces/aws_omics/__init__.py +838 -0
  476. aws_cdk/interfaces/aws_opensearchserverless/__init__.py +859 -0
  477. aws_cdk/interfaces/aws_opensearchservice/__init__.py +283 -0
  478. aws_cdk/interfaces/aws_opsworks/__init__.py +772 -0
  479. aws_cdk/interfaces/aws_opsworkscm/__init__.py +146 -0
  480. aws_cdk/interfaces/aws_organizations/__init__.py +646 -0
  481. aws_cdk/interfaces/aws_osis/__init__.py +146 -0
  482. aws_cdk/interfaces/aws_panorama/__init__.py +420 -0
  483. aws_cdk/interfaces/aws_paymentcryptography/__init__.py +249 -0
  484. aws_cdk/interfaces/aws_pcaconnectorad/__init__.py +608 -0
  485. aws_cdk/interfaces/aws_pcaconnectorscep/__init__.py +249 -0
  486. aws_cdk/interfaces/aws_pcs/__init__.py +352 -0
  487. aws_cdk/interfaces/aws_personalize/__init__.py +455 -0
  488. aws_cdk/interfaces/aws_pinpoint/__init__.py +2125 -0
  489. aws_cdk/interfaces/aws_pinpointemail/__init__.py +467 -0
  490. aws_cdk/interfaces/aws_pipes/__init__.py +158 -0
  491. aws_cdk/interfaces/aws_proton/__init__.py +360 -0
  492. aws_cdk/interfaces/aws_qbusiness/__init__.py +1122 -0
  493. aws_cdk/interfaces/aws_qldb/__init__.py +283 -0
  494. aws_cdk/interfaces/aws_quicksight/__init__.py +1566 -0
  495. aws_cdk/interfaces/aws_ram/__init__.py +249 -0
  496. aws_cdk/interfaces/aws_rbin/__init__.py +146 -0
  497. aws_cdk/interfaces/aws_rds/__init__.py +1780 -0
  498. aws_cdk/interfaces/aws_redshift/__init__.py +1104 -0
  499. aws_cdk/interfaces/aws_redshiftserverless/__init__.py +356 -0
  500. aws_cdk/interfaces/aws_refactorspaces/__init__.py +605 -0
  501. aws_cdk/interfaces/aws_rekognition/__init__.py +406 -0
  502. aws_cdk/interfaces/aws_resiliencehub/__init__.py +251 -0
  503. aws_cdk/interfaces/aws_resourceexplorer2/__init__.py +354 -0
  504. aws_cdk/interfaces/aws_resourcegroups/__init__.py +261 -0
  505. aws_cdk/interfaces/aws_robomaker/__init__.py +673 -0
  506. aws_cdk/interfaces/aws_rolesanywhere/__init__.py +384 -0
  507. aws_cdk/interfaces/aws_route53/__init__.py +804 -0
  508. aws_cdk/interfaces/aws_route53profiles/__init__.py +368 -0
  509. aws_cdk/interfaces/aws_route53recoverycontrol/__init__.py +463 -0
  510. aws_cdk/interfaces/aws_route53recoveryreadiness/__init__.py +535 -0
  511. aws_cdk/interfaces/aws_route53resolver/__init__.py +1356 -0
  512. aws_cdk/interfaces/aws_rtbfabric/__init__.py +352 -0
  513. aws_cdk/interfaces/aws_rum/__init__.py +146 -0
  514. aws_cdk/interfaces/aws_s3/__init__.py +1171 -0
  515. aws_cdk/interfaces/aws_s3express/__init__.py +392 -0
  516. aws_cdk/interfaces/aws_s3objectlambda/__init__.py +271 -0
  517. aws_cdk/interfaces/aws_s3outposts/__init__.py +455 -0
  518. aws_cdk/interfaces/aws_s3tables/__init__.py +575 -0
  519. aws_cdk/interfaces/aws_s3vectors/__init__.py +354 -0
  520. aws_cdk/interfaces/aws_sagemaker/__init__.py +3797 -0
  521. aws_cdk/interfaces/aws_sam/__init__.py +603 -0
  522. aws_cdk/interfaces/aws_scheduler/__init__.py +286 -0
  523. aws_cdk/interfaces/aws_sdb/__init__.py +146 -0
  524. aws_cdk/interfaces/aws_secretsmanager/__init__.py +461 -0
  525. aws_cdk/interfaces/aws_securityhub/__init__.py +1499 -0
  526. aws_cdk/interfaces/aws_securitylake/__init__.py +474 -0
  527. aws_cdk/interfaces/aws_servicecatalog/__init__.py +1829 -0
  528. aws_cdk/interfaces/aws_servicecatalogappregistry/__init__.py +557 -0
  529. aws_cdk/interfaces/aws_servicediscovery/__init__.py +636 -0
  530. aws_cdk/interfaces/aws_ses/__init__.py +2018 -0
  531. aws_cdk/interfaces/aws_shield/__init__.py +455 -0
  532. aws_cdk/interfaces/aws_signer/__init__.py +266 -0
  533. aws_cdk/interfaces/aws_simspaceweaver/__init__.py +146 -0
  534. aws_cdk/interfaces/aws_smsvoice/__init__.py +892 -0
  535. aws_cdk/interfaces/aws_sns/__init__.py +455 -0
  536. aws_cdk/interfaces/aws_sqs/__init__.py +364 -0
  537. aws_cdk/interfaces/aws_ssm/__init__.py +982 -0
  538. aws_cdk/interfaces/aws_ssmcontacts/__init__.py +455 -0
  539. aws_cdk/interfaces/aws_ssmguiconnect/__init__.py +146 -0
  540. aws_cdk/interfaces/aws_ssmincidents/__init__.py +249 -0
  541. aws_cdk/interfaces/aws_ssmquicksetup/__init__.py +253 -0
  542. aws_cdk/interfaces/aws_sso/__init__.py +797 -0
  543. aws_cdk/interfaces/aws_stepfunctions/__init__.py +459 -0
  544. aws_cdk/interfaces/aws_supportapp/__init__.py +372 -0
  545. aws_cdk/interfaces/aws_synthetics/__init__.py +249 -0
  546. aws_cdk/interfaces/aws_systemsmanagersap/__init__.py +148 -0
  547. aws_cdk/interfaces/aws_timestream/__init__.py +526 -0
  548. aws_cdk/interfaces/aws_transfer/__init__.py +967 -0
  549. aws_cdk/interfaces/aws_verifiedpermissions/__init__.py +538 -0
  550. aws_cdk/interfaces/aws_voiceid/__init__.py +146 -0
  551. aws_cdk/interfaces/aws_vpclattice/__init__.py +1418 -0
  552. aws_cdk/interfaces/aws_waf/__init__.py +764 -0
  553. aws_cdk/interfaces/aws_wafregional/__init__.py +1182 -0
  554. aws_cdk/interfaces/aws_wafv2/__init__.py +870 -0
  555. aws_cdk/interfaces/aws_wisdom/__init__.py +1556 -0
  556. aws_cdk/interfaces/aws_workspaces/__init__.py +352 -0
  557. aws_cdk/interfaces/aws_workspacesinstances/__init__.py +390 -0
  558. aws_cdk/interfaces/aws_workspacesthinclient/__init__.py +168 -0
  559. aws_cdk/interfaces/aws_workspacesweb/__init__.py +1085 -0
  560. aws_cdk/interfaces/aws_xray/__init__.py +457 -0
  561. aws_cdk/lambda_layer_awscli/__init__.py +6 -0
  562. aws_cdk/lambda_layer_node_proxy_agent/__init__.py +6 -0
  563. aws_cdk/pipelines/__init__.py +202 -52
  564. aws_cdk/region_info/__init__.py +3 -0
  565. aws_cdk/triggers/__init__.py +66 -18
  566. {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/METADATA +418 -18
  567. aws_cdk_lib-2.224.0.dist-info/RECORD +584 -0
  568. aws_cdk_lib-2.195.0.dist-info/RECORD +0 -304
  569. {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/LICENSE +0 -0
  570. {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/NOTICE +0 -0
  571. {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/WHEEL +0 -0
  572. {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/top_level.txt +0 -0
@@ -720,6 +720,36 @@ The following examples defines an OpenID Connect provider. Two client IDs
720
720
  (audiences) are will be able to send authentication requests to
721
721
  [https://openid/connect](https://openid/connect).
722
722
 
723
+ It is recommended to use the new `OidcProviderNative` which native CloudFormation resource `AWS::IAM::OIDCProvider` over the old `OpenIdConnectProvider` which uses a custom resource.
724
+
725
+ ```python
726
+ native_provider = iam.OidcProviderNative(self, "MyProvider",
727
+ url="https://openid/connect",
728
+ client_ids=["myclient1", "myclient2"],
729
+ thumbprints=["aa00aa1122aa00aa1122aa00aa1122aa00aa1122"]
730
+ )
731
+ ```
732
+
733
+ For the new `OidcProviderNative`, you must provide at least one thumbprint when creating an IAM OIDC
734
+ provider. For example, assume that the OIDC provider is server.example.com
735
+ and the provider stores its keys at
736
+ https://keys.server.example.com/openid-connect. In that case, the
737
+ thumbprint string would be the hex-encoded SHA-1 hash value of the
738
+ certificate used by https://keys.server.example.com.
739
+
740
+ The server certificate thumbprint is the hex-encoded SHA-1 hash value of
741
+ the X.509 certificate used by the domain where the OpenID Connect provider
742
+ makes its keys available. It is always a 40-character string.
743
+
744
+ Typically this list includes only one entry. However, IAM lets you have up
745
+ to five thumbprints for an OIDC provider. This lets you maintain multiple
746
+ thumbprints if the identity provider is rotating certificates.
747
+
748
+ Obtain the thumbprint of the root certificate authority from the provider's
749
+ server as described in https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc_verify-thumbprint.html
750
+
751
+ The older `OpenIdConnectProvider` is still supported but it is recommended to use the new `OidcProviderNative` instead.
752
+
723
753
  ```python
724
754
  provider = iam.OpenIdConnectProvider(self, "MyProvider",
725
755
  url="https://openid/connect",
@@ -727,12 +757,12 @@ provider = iam.OpenIdConnectProvider(self, "MyProvider",
727
757
  )
728
758
  ```
729
759
 
730
- You can specify an optional list of `thumbprints`. If not specified, the
760
+ For the older `OpenIdConnectProvider`, you can specify an optional list of `thumbprints`. If not specified, the
731
761
  thumbprint of the root certificate authority (CA) will automatically be obtained
732
762
  from the host as described
733
763
  [here](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc_verify-thumbprint.html).
734
764
 
735
- Byy default, the custom resource enforces strict security practices by rejecting
765
+ By default, the custom resource enforces strict security practices by rejecting
736
766
  any unauthorized connections when downloading CA thumbprints from the issuer URL.
737
767
  If you need to connect to an unauthorized OIDC identity provider and understand the
738
768
  implications, you can disable this behavior by setting the feature flag
@@ -999,6 +1029,41 @@ from .. import (
999
1029
  TagManager as _TagManager_0a598cb3,
1000
1030
  TreeInspector as _TreeInspector_488e0dd5,
1001
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
+ )
1002
1067
 
1003
1068
 
1004
1069
  @jsii.data_type(
@@ -1106,6 +1171,8 @@ class AccessKeyStatus(enum.Enum):
1106
1171
 
1107
1172
  An inactive key cannot be used to make API calls.
1108
1173
  '''
1174
+ EXPIRED = "EXPIRED"
1175
+ '''An expired access key.'''
1109
1176
 
1110
1177
 
1111
1178
  @jsii.data_type(
@@ -1259,7 +1326,7 @@ class AddToResourcePolicyResult:
1259
1326
  )
1260
1327
 
1261
1328
 
1262
- @jsii.implements(_IInspectable_c2943556)
1329
+ @jsii.implements(_IInspectable_c2943556, _IAccessKeyRef_e97ef40a)
1263
1330
  class CfnAccessKey(
1264
1331
  _CfnResource_9df397a6,
1265
1332
  metaclass=jsii.JSIIMeta,
@@ -1302,7 +1369,8 @@ class CfnAccessKey(
1302
1369
  serial: typing.Optional[jsii.Number] = None,
1303
1370
  status: typing.Optional[builtins.str] = None,
1304
1371
  ) -> None:
1305
- '''
1372
+ '''Create a new ``AWS::IAM::AccessKey``.
1373
+
1306
1374
  :param scope: Scope in which this resource is defined.
1307
1375
  :param id: Construct identifier for this resource (unique in its scope).
1308
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: _+=,.@-
@@ -1347,6 +1415,12 @@ class CfnAccessKey(
1347
1415
  '''The CloudFormation resource type name for this resource class.'''
1348
1416
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
1349
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
+
1350
1424
  @builtins.property
1351
1425
  @jsii.member(jsii_name="attrId")
1352
1426
  def attr_id(self) -> builtins.str:
@@ -1507,7 +1581,7 @@ class CfnAccessKeyProps:
1507
1581
  )
1508
1582
 
1509
1583
 
1510
- @jsii.implements(_IInspectable_c2943556)
1584
+ @jsii.implements(_IInspectable_c2943556, _IGroupRef_aeb1d9f6)
1511
1585
  class CfnGroup(
1512
1586
  _CfnResource_9df397a6,
1513
1587
  metaclass=jsii.JSIIMeta,
@@ -1550,7 +1624,8 @@ class CfnGroup(
1550
1624
  path: typing.Optional[builtins.str] = None,
1551
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,
1552
1626
  ) -> None:
1553
- '''
1627
+ '''Create a new ``AWS::IAM::Group``.
1628
+
1554
1629
  :param scope: Scope in which this resource is defined.
1555
1630
  :param id: Construct identifier for this resource (unique in its scope).
1556
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"}]]}`` .
@@ -1617,6 +1692,12 @@ class CfnGroup(
1617
1692
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1618
1693
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1619
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
+
1620
1701
  @builtins.property
1621
1702
  @jsii.member(jsii_name="groupName")
1622
1703
  def group_name(self) -> typing.Optional[builtins.str]:
@@ -1764,7 +1845,7 @@ class CfnGroup(
1764
1845
  )
1765
1846
 
1766
1847
 
1767
- @jsii.implements(_IInspectable_c2943556)
1848
+ @jsii.implements(_IInspectable_c2943556, _IGroupPolicyRef_35f73c8c)
1768
1849
  class CfnGroupPolicy(
1769
1850
  _CfnResource_9df397a6,
1770
1851
  metaclass=jsii.JSIIMeta,
@@ -1806,7 +1887,8 @@ class CfnGroupPolicy(
1806
1887
  policy_name: builtins.str,
1807
1888
  policy_document: typing.Any = None,
1808
1889
  ) -> None:
1809
- '''
1890
+ '''Create a new ``AWS::IAM::GroupPolicy``.
1891
+
1810
1892
  :param scope: Scope in which this resource is defined.
1811
1893
  :param id: Construct identifier for this resource (unique in its scope).
1812
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: _+=,.@-.
@@ -1860,6 +1942,12 @@ class CfnGroupPolicy(
1860
1942
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1861
1943
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1862
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
+
1863
1951
  @builtins.property
1864
1952
  @jsii.member(jsii_name="groupName")
1865
1953
  def group_name(self) -> builtins.str:
@@ -2143,7 +2231,7 @@ class CfnGroupProps:
2143
2231
  )
2144
2232
 
2145
2233
 
2146
- @jsii.implements(_IInspectable_c2943556)
2234
+ @jsii.implements(_IInspectable_c2943556, _IInstanceProfileRef_d6832c90)
2147
2235
  class CfnInstanceProfile(
2148
2236
  _CfnResource_9df397a6,
2149
2237
  metaclass=jsii.JSIIMeta,
@@ -2181,7 +2269,8 @@ class CfnInstanceProfile(
2181
2269
  instance_profile_name: typing.Optional[builtins.str] = None,
2182
2270
  path: typing.Optional[builtins.str] = None,
2183
2271
  ) -> None:
2184
- '''
2272
+ '''Create a new ``AWS::IAM::InstanceProfile``.
2273
+
2185
2274
  :param scope: Scope in which this resource is defined.
2186
2275
  :param id: Construct identifier for this resource (unique in its scope).
2187
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.
@@ -2246,6 +2335,12 @@ class CfnInstanceProfile(
2246
2335
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2247
2336
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2248
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
+
2249
2344
  @builtins.property
2250
2345
  @jsii.member(jsii_name="roles")
2251
2346
  def roles(self) -> typing.List[builtins.str]:
@@ -2389,7 +2484,7 @@ class CfnInstanceProfileProps:
2389
2484
  )
2390
2485
 
2391
2486
 
2392
- @jsii.implements(_IInspectable_c2943556)
2487
+ @jsii.implements(_IInspectable_c2943556, _IManagedPolicyRef_a7a65687)
2393
2488
  class CfnManagedPolicy(
2394
2489
  _CfnResource_9df397a6,
2395
2490
  metaclass=jsii.JSIIMeta,
@@ -2441,7 +2536,8 @@ class CfnManagedPolicy(
2441
2536
  roles: typing.Optional[typing.Sequence[builtins.str]] = None,
2442
2537
  users: typing.Optional[typing.Sequence[builtins.str]] = None,
2443
2538
  ) -> None:
2444
- '''
2539
+ '''Create a new ``AWS::IAM::ManagedPolicy``.
2540
+
2445
2541
  :param scope: Scope in which this resource is defined.
2446
2542
  :param id: Construct identifier for this resource (unique in its scope).
2447
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`` )
@@ -2585,6 +2681,12 @@ class CfnManagedPolicy(
2585
2681
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2586
2682
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2587
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
+
2588
2690
  @builtins.property
2589
2691
  @jsii.member(jsii_name="policyDocument")
2590
2692
  def policy_document(self) -> typing.Any:
@@ -2881,7 +2983,7 @@ class CfnManagedPolicyProps:
2881
2983
  )
2882
2984
 
2883
2985
 
2884
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
2986
+ @jsii.implements(_IInspectable_c2943556, _IOIDCProviderRef_a866c7c8, _ITaggable_36806126)
2885
2987
  class CfnOIDCProvider(
2886
2988
  _CfnResource_9df397a6,
2887
2989
  metaclass=jsii.JSIIMeta,
@@ -2942,7 +3044,8 @@ class CfnOIDCProvider(
2942
3044
  thumbprint_list: typing.Optional[typing.Sequence[builtins.str]] = None,
2943
3045
  url: typing.Optional[builtins.str] = None,
2944
3046
  ) -> None:
2945
- '''
3047
+ '''Create a new ``AWS::IAM::OIDCProvider``.
3048
+
2946
3049
  :param scope: Scope in which this resource is defined.
2947
3050
  :param id: Construct identifier for this resource (unique in its scope).
2948
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>`_ .
@@ -3007,6 +3110,12 @@ class CfnOIDCProvider(
3007
3110
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3008
3111
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
3009
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
+
3010
3119
  @builtins.property
3011
3120
  @jsii.member(jsii_name="tags")
3012
3121
  def tags(self) -> _TagManager_0a598cb3:
@@ -3188,7 +3297,7 @@ class CfnOIDCProviderProps:
3188
3297
  )
3189
3298
 
3190
3299
 
3191
- @jsii.implements(_IInspectable_c2943556)
3300
+ @jsii.implements(_IInspectable_c2943556, _IPolicyRef_5e74a0ba)
3192
3301
  class CfnPolicy(
3193
3302
  _CfnResource_9df397a6,
3194
3303
  metaclass=jsii.JSIIMeta,
@@ -3200,7 +3309,7 @@ class CfnPolicy(
3200
3309
 
3201
3310
  The Groups, Roles, and Users properties are optional. However, you must specify at least one of these properties.
3202
3311
 
3203
- 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* .
3204
3313
 
3205
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* .
3206
3315
  .. epigraph::
@@ -3245,7 +3354,8 @@ class CfnPolicy(
3245
3354
  roles: typing.Optional[typing.Sequence[builtins.str]] = None,
3246
3355
  users: typing.Optional[typing.Sequence[builtins.str]] = None,
3247
3356
  ) -> None:
3248
- '''
3357
+ '''Create a new ``AWS::IAM::Policy``.
3358
+
3249
3359
  :param scope: Scope in which this resource is defined.
3250
3360
  :param id: Construct identifier for this resource (unique in its scope).
3251
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`` )
@@ -3314,6 +3424,12 @@ class CfnPolicy(
3314
3424
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3315
3425
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
3316
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
+
3317
3433
  @builtins.property
3318
3434
  @jsii.member(jsii_name="policyDocument")
3319
3435
  def policy_document(self) -> typing.Any:
@@ -3526,7 +3642,7 @@ class CfnPolicyProps:
3526
3642
  )
3527
3643
 
3528
3644
 
3529
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
3645
+ @jsii.implements(_IInspectable_c2943556, _IRoleRef_8400221f, _ITaggable_36806126)
3530
3646
  class CfnRole(
3531
3647
  _CfnResource_9df397a6,
3532
3648
  metaclass=jsii.JSIIMeta,
@@ -3585,7 +3701,8 @@ class CfnRole(
3585
3701
  role_name: typing.Optional[builtins.str] = None,
3586
3702
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
3587
3703
  ) -> None:
3588
- '''
3704
+ '''Create a new ``AWS::IAM::Role``.
3705
+
3589
3706
  :param scope: Scope in which this resource is defined.
3590
3707
  :param id: Construct identifier for this resource (unique in its scope).
3591
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* .
@@ -3675,6 +3792,12 @@ class CfnRole(
3675
3792
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3676
3793
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
3677
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
+
3678
3801
  @builtins.property
3679
3802
  @jsii.member(jsii_name="tags")
3680
3803
  def tags(self) -> _TagManager_0a598cb3:
@@ -3892,7 +4015,7 @@ class CfnRole(
3892
4015
  )
3893
4016
 
3894
4017
 
3895
- @jsii.implements(_IInspectable_c2943556)
4018
+ @jsii.implements(_IInspectable_c2943556, _IRolePolicyRef_26b13525)
3896
4019
  class CfnRolePolicy(
3897
4020
  _CfnResource_9df397a6,
3898
4021
  metaclass=jsii.JSIIMeta,
@@ -3936,7 +4059,8 @@ class CfnRolePolicy(
3936
4059
  role_name: builtins.str,
3937
4060
  policy_document: typing.Any = None,
3938
4061
  ) -> None:
3939
- '''
4062
+ '''Create a new ``AWS::IAM::RolePolicy``.
4063
+
3940
4064
  :param scope: Scope in which this resource is defined.
3941
4065
  :param id: Construct identifier for this resource (unique in its scope).
3942
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: _+=,.@-
@@ -3990,6 +4114,12 @@ class CfnRolePolicy(
3990
4114
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3991
4115
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
3992
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
+
3993
4123
  @builtins.property
3994
4124
  @jsii.member(jsii_name="policyName")
3995
4125
  def policy_name(self) -> builtins.str:
@@ -4375,7 +4505,7 @@ class CfnRoleProps:
4375
4505
  )
4376
4506
 
4377
4507
 
4378
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
4508
+ @jsii.implements(_IInspectable_c2943556, _ISAMLProviderRef_6e369856, _ITaggable_36806126)
4379
4509
  class CfnSAMLProvider(
4380
4510
  _CfnResource_9df397a6,
4381
4511
  metaclass=jsii.JSIIMeta,
@@ -4432,7 +4562,8 @@ class CfnSAMLProvider(
4432
4562
  saml_metadata_document: typing.Optional[builtins.str] = None,
4433
4563
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4434
4564
  ) -> None:
4435
- '''
4565
+ '''Create a new ``AWS::IAM::SAMLProvider``.
4566
+
4436
4567
  :param scope: Scope in which this resource is defined.
4437
4568
  :param id: Construct identifier for this resource (unique in its scope).
4438
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.
@@ -4512,6 +4643,12 @@ class CfnSAMLProvider(
4512
4643
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
4513
4644
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
4514
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
+
4515
4652
  @builtins.property
4516
4653
  @jsii.member(jsii_name="tags")
4517
4654
  def tags(self) -> _TagManager_0a598cb3:
@@ -4856,7 +4993,7 @@ class CfnSAMLProviderProps:
4856
4993
  )
4857
4994
 
4858
4995
 
4859
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
4996
+ @jsii.implements(_IInspectable_c2943556, _IServerCertificateRef_005ddfcc, _ITaggable_36806126)
4860
4997
  class CfnServerCertificate(
4861
4998
  _CfnResource_9df397a6,
4862
4999
  metaclass=jsii.JSIIMeta,
@@ -4866,7 +5003,7 @@ class CfnServerCertificate(
4866
5003
 
4867
5004
  The server certificate entity includes a public key certificate, a private key, and an optional certificate chain, which should all be PEM-encoded.
4868
5005
 
4869
- 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/>`_ .
4870
5007
 
4871
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.
4872
5009
 
@@ -4910,7 +5047,8 @@ class CfnServerCertificate(
4910
5047
  server_certificate_name: typing.Optional[builtins.str] = None,
4911
5048
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4912
5049
  ) -> None:
4913
- '''
5050
+ '''Create a new ``AWS::IAM::ServerCertificate``.
5051
+
4914
5052
  :param scope: Scope in which this resource is defined.
4915
5053
  :param id: Construct identifier for this resource (unique in its scope).
4916
5054
  :param certificate_body: The contents of the public key certificate.
@@ -4979,6 +5117,12 @@ class CfnServerCertificate(
4979
5117
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
4980
5118
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
4981
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
+
4982
5126
  @builtins.property
4983
5127
  @jsii.member(jsii_name="tags")
4984
5128
  def tags(self) -> _TagManager_0a598cb3:
@@ -5224,7 +5368,7 @@ class CfnServerCertificateProps:
5224
5368
  )
5225
5369
 
5226
5370
 
5227
- @jsii.implements(_IInspectable_c2943556)
5371
+ @jsii.implements(_IInspectable_c2943556, _IServiceLinkedRoleRef_ba92e11b)
5228
5372
  class CfnServiceLinkedRole(
5229
5373
  _CfnResource_9df397a6,
5230
5374
  metaclass=jsii.JSIIMeta,
@@ -5256,7 +5400,8 @@ class CfnServiceLinkedRole(
5256
5400
  custom_suffix: typing.Optional[builtins.str] = None,
5257
5401
  description: typing.Optional[builtins.str] = None,
5258
5402
  ) -> None:
5259
- '''
5403
+ '''Create a new ``AWS::IAM::ServiceLinkedRole``.
5404
+
5260
5405
  :param scope: Scope in which this resource is defined.
5261
5406
  :param id: Construct identifier for this resource (unique in its scope).
5262
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.
@@ -5321,6 +5466,12 @@ class CfnServiceLinkedRole(
5321
5466
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
5322
5467
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
5323
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
+
5324
5475
  @builtins.property
5325
5476
  @jsii.member(jsii_name="awsServiceName")
5326
5477
  def aws_service_name(self) -> typing.Optional[builtins.str]:
@@ -5453,7 +5604,7 @@ class CfnServiceLinkedRoleProps:
5453
5604
  )
5454
5605
 
5455
5606
 
5456
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
5607
+ @jsii.implements(_IInspectable_c2943556, _IUserRef_b0ccca76, _ITaggable_36806126)
5457
5608
  class CfnUser(
5458
5609
  _CfnResource_9df397a6,
5459
5610
  metaclass=jsii.JSIIMeta,
@@ -5512,7 +5663,8 @@ class CfnUser(
5512
5663
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
5513
5664
  user_name: typing.Optional[builtins.str] = None,
5514
5665
  ) -> None:
5515
- '''
5666
+ '''Create a new ``AWS::IAM::User``.
5667
+
5516
5668
  :param scope: Scope in which this resource is defined.
5517
5669
  :param id: Construct identifier for this resource (unique in its scope).
5518
5670
  :param groups: A list of group names to which you want to add the user.
@@ -5593,6 +5745,12 @@ class CfnUser(
5593
5745
  '''Tag Manager which manages the tags for this resource.'''
5594
5746
  return typing.cast(_TagManager_0a598cb3, jsii.get(self, "tags"))
5595
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
+
5596
5754
  @builtins.property
5597
5755
  @jsii.member(jsii_name="groups")
5598
5756
  def groups(self) -> typing.Optional[typing.List[builtins.str]]:
@@ -5876,7 +6034,7 @@ class CfnUser(
5876
6034
  )
5877
6035
 
5878
6036
 
5879
- @jsii.implements(_IInspectable_c2943556)
6037
+ @jsii.implements(_IInspectable_c2943556, _IUserPolicyRef_e6abac3e)
5880
6038
  class CfnUserPolicy(
5881
6039
  _CfnResource_9df397a6,
5882
6040
  metaclass=jsii.JSIIMeta,
@@ -5918,7 +6076,8 @@ class CfnUserPolicy(
5918
6076
  user_name: builtins.str,
5919
6077
  policy_document: typing.Any = None,
5920
6078
  ) -> None:
5921
- '''
6079
+ '''Create a new ``AWS::IAM::UserPolicy``.
6080
+
5922
6081
  :param scope: Scope in which this resource is defined.
5923
6082
  :param id: Construct identifier for this resource (unique in its scope).
5924
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: _+=,.@-
@@ -5972,6 +6131,12 @@ class CfnUserPolicy(
5972
6131
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
5973
6132
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
5974
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
+
5975
6140
  @builtins.property
5976
6141
  @jsii.member(jsii_name="policyName")
5977
6142
  def policy_name(self) -> builtins.str:
@@ -6345,7 +6510,7 @@ class CfnUserProps:
6345
6510
  )
6346
6511
 
6347
6512
 
6348
- @jsii.implements(_IInspectable_c2943556)
6513
+ @jsii.implements(_IInspectable_c2943556, _IUserToGroupAdditionRef_e1276f9a)
6349
6514
  class CfnUserToGroupAddition(
6350
6515
  _CfnResource_9df397a6,
6351
6516
  metaclass=jsii.JSIIMeta,
@@ -6377,7 +6542,8 @@ class CfnUserToGroupAddition(
6377
6542
  group_name: builtins.str,
6378
6543
  users: typing.Sequence[builtins.str],
6379
6544
  ) -> None:
6380
- '''
6545
+ '''Create a new ``AWS::IAM::UserToGroupAddition``.
6546
+
6381
6547
  :param scope: Scope in which this resource is defined.
6382
6548
  :param id: Construct identifier for this resource (unique in its scope).
6383
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: _+=,.@-
@@ -6437,6 +6603,12 @@ class CfnUserToGroupAddition(
6437
6603
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
6438
6604
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
6439
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
+
6440
6612
  @builtins.property
6441
6613
  @jsii.member(jsii_name="groupName")
6442
6614
  def group_name(self) -> builtins.str:
@@ -6538,7 +6710,7 @@ class CfnUserToGroupAdditionProps:
6538
6710
  )
6539
6711
 
6540
6712
 
6541
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
6713
+ @jsii.implements(_IInspectable_c2943556, _IVirtualMFADeviceRef_fec1f13e, _ITaggable_36806126)
6542
6714
  class CfnVirtualMFADevice(
6543
6715
  _CfnResource_9df397a6,
6544
6716
  metaclass=jsii.JSIIMeta,
@@ -6586,7 +6758,8 @@ class CfnVirtualMFADevice(
6586
6758
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
6587
6759
  virtual_mfa_device_name: typing.Optional[builtins.str] = None,
6588
6760
  ) -> None:
6589
- '''
6761
+ '''Create a new ``AWS::IAM::VirtualMFADevice``.
6762
+
6590
6763
  :param scope: Scope in which this resource is defined.
6591
6764
  :param id: Construct identifier for this resource (unique in its scope).
6592
6765
  :param users: The IAM user associated with this virtual MFA device.
@@ -6657,6 +6830,12 @@ class CfnVirtualMFADevice(
6657
6830
  '''Tag Manager which manages the tags for this resource.'''
6658
6831
  return typing.cast(_TagManager_0a598cb3, jsii.get(self, "tags"))
6659
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
+
6660
6839
  @builtins.property
6661
6840
  @jsii.member(jsii_name="users")
6662
6841
  def users(self) -> typing.List[builtins.str]:
@@ -7392,7 +7571,7 @@ class Grant(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_iam.Grant"):
7392
7571
  cls,
7393
7572
  *,
7394
7573
  statement: "PolicyStatement",
7395
- resource: "IResourceWithPolicy",
7574
+ resource: "IResourceWithPolicyV2",
7396
7575
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
7397
7576
  actions: typing.Sequence[builtins.str],
7398
7577
  grantee: "IGrantable",
@@ -7419,7 +7598,7 @@ class Grant(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_iam.Grant"):
7419
7598
  from the provided statement, depending on the resource's implementation of
7420
7599
  addToResourcePolicy.
7421
7600
 
7422
- :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.
7423
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.
7424
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
7425
7604
  :param actions: The actions to grant.
@@ -7483,7 +7662,7 @@ class Grant(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_iam.Grant"):
7483
7662
  Absence of a principal leads to a warning, but failing to add
7484
7663
  the permissions to a present principal is not an error.
7485
7664
 
7486
- :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
7487
7666
  :param actions: The actions to grant.
7488
7667
  :param grantee: The principal to grant to. Default: if principal is undefined, no work is done.
7489
7668
  :param resource_arns: The resource ARNs to grant to.
@@ -7504,7 +7683,7 @@ class Grant(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_iam.Grant"):
7504
7683
  def add_to_principal_and_resource(
7505
7684
  cls,
7506
7685
  *,
7507
- resource: "IResourceWithPolicy",
7686
+ resource: "IResourceWithPolicyV2",
7508
7687
  resource_policy_principal: typing.Optional["IPrincipal"] = None,
7509
7688
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
7510
7689
  actions: typing.Sequence[builtins.str],
@@ -7545,7 +7724,7 @@ class Grant(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_iam.Grant"):
7545
7724
  def add_to_principal_or_resource(
7546
7725
  cls,
7547
7726
  *,
7548
- resource: "IResourceWithPolicy",
7727
+ resource: "IResourceWithPolicyV2",
7549
7728
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
7550
7729
  actions: typing.Sequence[builtins.str],
7551
7730
  grantee: "IGrantable",
@@ -7691,7 +7870,7 @@ class GrantOnPrincipalAndResourceOptions(CommonGrantOptions):
7691
7870
  grantee: "IGrantable",
7692
7871
  resource_arns: typing.Sequence[builtins.str],
7693
7872
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
7694
- resource: "IResourceWithPolicy",
7873
+ resource: "IResourceWithPolicyV2",
7695
7874
  resource_policy_principal: typing.Optional["IPrincipal"] = None,
7696
7875
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
7697
7876
  ) -> None:
@@ -7716,12 +7895,12 @@ class GrantOnPrincipalAndResourceOptions(CommonGrantOptions):
7716
7895
  # conditions: Any
7717
7896
  # grantable: iam.IGrantable
7718
7897
  # principal: iam.IPrincipal
7719
- # resource_with_policy: iam.IResourceWithPolicy
7898
+ # resource_with_policy_v2: iam.IResourceWithPolicyV2
7720
7899
 
7721
7900
  grant_on_principal_and_resource_options = iam.GrantOnPrincipalAndResourceOptions(
7722
7901
  actions=["actions"],
7723
7902
  grantee=grantable,
7724
- resource=resource_with_policy,
7903
+ resource=resource_with_policy_v2,
7725
7904
  resource_arns=["resourceArns"],
7726
7905
 
7727
7906
  # the properties below are optional
@@ -7792,14 +7971,14 @@ class GrantOnPrincipalAndResourceOptions(CommonGrantOptions):
7792
7971
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]], result)
7793
7972
 
7794
7973
  @builtins.property
7795
- def resource(self) -> "IResourceWithPolicy":
7974
+ def resource(self) -> "IResourceWithPolicyV2":
7796
7975
  '''The resource with a resource policy.
7797
7976
 
7798
7977
  The statement will always be added to the resource policy.
7799
7978
  '''
7800
7979
  result = self._values.get("resource")
7801
7980
  assert result is not None, "Required property 'resource' is missing"
7802
- return typing.cast("IResourceWithPolicy", result)
7981
+ return typing.cast("IResourceWithPolicyV2", result)
7803
7982
 
7804
7983
  @builtins.property
7805
7984
  def resource_policy_principal(self) -> typing.Optional["IPrincipal"]:
@@ -7860,7 +8039,7 @@ class GrantOnPrincipalOptions(CommonGrantOptions):
7860
8039
  :param grantee: The principal to grant to. Default: if principal is undefined, no work is done.
7861
8040
  :param resource_arns: The resource ARNs to grant to.
7862
8041
  :param conditions: Any conditions to attach to the grant. Default: - No conditions
7863
- :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
7864
8043
 
7865
8044
  :exampleMetadata: fixture=_generated
7866
8045
 
@@ -7943,9 +8122,13 @@ class GrantOnPrincipalOptions(CommonGrantOptions):
7943
8122
 
7944
8123
  @builtins.property
7945
8124
  def scope(self) -> typing.Optional[_constructs_77d1e7e8.IConstruct]:
7946
- '''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.
7947
8126
 
7948
8127
  :default: - the construct in which this construct is defined
8128
+
8129
+ :deprecated: The scope argument is currently unused.
8130
+
8131
+ :stability: deprecated
7949
8132
  '''
7950
8133
  result = self._values.get("scope")
7951
8134
  return typing.cast(typing.Optional[_constructs_77d1e7e8.IConstruct], result)
@@ -7982,7 +8165,7 @@ class GrantWithResourceOptions(CommonGrantOptions):
7982
8165
  grantee: "IGrantable",
7983
8166
  resource_arns: typing.Sequence[builtins.str],
7984
8167
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
7985
- resource: "IResourceWithPolicy",
8168
+ resource: "IResourceWithPolicyV2",
7986
8169
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
7987
8170
  ) -> None:
7988
8171
  '''Options for a grant operation.
@@ -8004,12 +8187,12 @@ class GrantWithResourceOptions(CommonGrantOptions):
8004
8187
 
8005
8188
  # conditions: Any
8006
8189
  # grantable: iam.IGrantable
8007
- # resource_with_policy: iam.IResourceWithPolicy
8190
+ # resource_with_policy_v2: iam.IResourceWithPolicyV2
8008
8191
 
8009
8192
  grant_with_resource_options = iam.GrantWithResourceOptions(
8010
8193
  actions=["actions"],
8011
8194
  grantee=grantable,
8012
- resource=resource_with_policy,
8195
+ resource=resource_with_policy_v2,
8013
8196
  resource_arns=["resourceArns"],
8014
8197
 
8015
8198
  # the properties below are optional
@@ -8076,7 +8259,7 @@ class GrantWithResourceOptions(CommonGrantOptions):
8076
8259
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]], result)
8077
8260
 
8078
8261
  @builtins.property
8079
- def resource(self) -> "IResourceWithPolicy":
8262
+ def resource(self) -> "IResourceWithPolicyV2":
8080
8263
  '''The resource with a resource policy.
8081
8264
 
8082
8265
  The statement will be added to the resource policy if it couldn't be
@@ -8084,7 +8267,7 @@ class GrantWithResourceOptions(CommonGrantOptions):
8084
8267
  '''
8085
8268
  result = self._values.get("resource")
8086
8269
  assert result is not None, "Required property 'resource' is missing"
8087
- return typing.cast("IResourceWithPolicy", result)
8270
+ return typing.cast("IResourceWithPolicyV2", result)
8088
8271
 
8089
8272
  @builtins.property
8090
8273
  def resource_self_arns(self) -> typing.Optional[typing.List[builtins.str]]:
@@ -8217,7 +8400,11 @@ class GroupProps:
8217
8400
 
8218
8401
 
8219
8402
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IAccessKey")
8220
- class IAccessKey(_IResource_c80c4260, typing_extensions.Protocol):
8403
+ class IAccessKey(
8404
+ _IResource_c80c4260,
8405
+ _IAccessKeyRef_e97ef40a,
8406
+ typing_extensions.Protocol,
8407
+ ):
8221
8408
  '''Represents an IAM Access Key.
8222
8409
 
8223
8410
  :see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html
@@ -8244,6 +8431,7 @@ class IAccessKey(_IResource_c80c4260, typing_extensions.Protocol):
8244
8431
 
8245
8432
  class _IAccessKeyProxy(
8246
8433
  jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8434
+ jsii.proxy_for(_IAccessKeyRef_e97ef40a), # type: ignore[misc]
8247
8435
  ):
8248
8436
  '''Represents an IAM Access Key.
8249
8437
 
@@ -8301,7 +8489,11 @@ typing.cast(typing.Any, IGrantable).__jsii_proxy_class__ = lambda : _IGrantableP
8301
8489
 
8302
8490
 
8303
8491
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IInstanceProfile")
8304
- class IInstanceProfile(_IResource_c80c4260, typing_extensions.Protocol):
8492
+ class IInstanceProfile(
8493
+ _IResource_c80c4260,
8494
+ _IInstanceProfileRef_d6832c90,
8495
+ typing_extensions.Protocol,
8496
+ ):
8305
8497
  '''Represents an IAM Instance Profile.'''
8306
8498
 
8307
8499
  @builtins.property
@@ -8331,6 +8523,7 @@ class IInstanceProfile(_IResource_c80c4260, typing_extensions.Protocol):
8331
8523
 
8332
8524
  class _IInstanceProfileProxy(
8333
8525
  jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8526
+ jsii.proxy_for(_IInstanceProfileRef_d6832c90), # type: ignore[misc]
8334
8527
  ):
8335
8528
  '''Represents an IAM Instance Profile.'''
8336
8529
 
@@ -8365,7 +8558,7 @@ typing.cast(typing.Any, IInstanceProfile).__jsii_proxy_class__ = lambda : _IInst
8365
8558
 
8366
8559
 
8367
8560
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IManagedPolicy")
8368
- class IManagedPolicy(typing_extensions.Protocol):
8561
+ class IManagedPolicy(_IManagedPolicyRef_a7a65687, typing_extensions.Protocol):
8369
8562
  '''A managed policy.'''
8370
8563
 
8371
8564
  @builtins.property
@@ -8378,7 +8571,9 @@ class IManagedPolicy(typing_extensions.Protocol):
8378
8571
  ...
8379
8572
 
8380
8573
 
8381
- class _IManagedPolicyProxy:
8574
+ class _IManagedPolicyProxy(
8575
+ jsii.proxy_for(_IManagedPolicyRef_a7a65687), # type: ignore[misc]
8576
+ ):
8382
8577
  '''A managed policy.'''
8383
8578
 
8384
8579
  __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_iam.IManagedPolicy"
@@ -8396,8 +8591,69 @@ class _IManagedPolicyProxy:
8396
8591
  typing.cast(typing.Any, IManagedPolicy).__jsii_proxy_class__ = lambda : _IManagedPolicyProxy
8397
8592
 
8398
8593
 
8594
+ @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IOidcProvider")
8595
+ class IOidcProvider(
8596
+ _IResource_c80c4260,
8597
+ _IOIDCProviderRef_a866c7c8,
8598
+ typing_extensions.Protocol,
8599
+ ):
8600
+ '''Represents an IAM OpenID Connect provider.'''
8601
+
8602
+ @builtins.property
8603
+ @jsii.member(jsii_name="oidcProviderArn")
8604
+ def oidc_provider_arn(self) -> builtins.str:
8605
+ '''The Amazon Resource Name (ARN) of the IAM OpenID Connect provider.
8606
+
8607
+ :attribute: true
8608
+ '''
8609
+ ...
8610
+
8611
+ @builtins.property
8612
+ @jsii.member(jsii_name="oidcProviderIssuer")
8613
+ def oidc_provider_issuer(self) -> builtins.str:
8614
+ '''The issuer for OIDC Provider.
8615
+
8616
+ :attribute: true
8617
+ '''
8618
+ ...
8619
+
8620
+
8621
+ class _IOidcProviderProxy(
8622
+ jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8623
+ jsii.proxy_for(_IOIDCProviderRef_a866c7c8), # type: ignore[misc]
8624
+ ):
8625
+ '''Represents an IAM OpenID Connect provider.'''
8626
+
8627
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_iam.IOidcProvider"
8628
+
8629
+ @builtins.property
8630
+ @jsii.member(jsii_name="oidcProviderArn")
8631
+ def oidc_provider_arn(self) -> builtins.str:
8632
+ '''The Amazon Resource Name (ARN) of the IAM OpenID Connect provider.
8633
+
8634
+ :attribute: true
8635
+ '''
8636
+ return typing.cast(builtins.str, jsii.get(self, "oidcProviderArn"))
8637
+
8638
+ @builtins.property
8639
+ @jsii.member(jsii_name="oidcProviderIssuer")
8640
+ def oidc_provider_issuer(self) -> builtins.str:
8641
+ '''The issuer for OIDC Provider.
8642
+
8643
+ :attribute: true
8644
+ '''
8645
+ return typing.cast(builtins.str, jsii.get(self, "oidcProviderIssuer"))
8646
+
8647
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
8648
+ typing.cast(typing.Any, IOidcProvider).__jsii_proxy_class__ = lambda : _IOidcProviderProxy
8649
+
8650
+
8399
8651
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IOpenIdConnectProvider")
8400
- class IOpenIdConnectProvider(_IResource_c80c4260, typing_extensions.Protocol):
8652
+ class IOpenIdConnectProvider(
8653
+ _IResource_c80c4260,
8654
+ _IOIDCProviderRef_a866c7c8,
8655
+ typing_extensions.Protocol,
8656
+ ):
8401
8657
  '''Represents an IAM OpenID Connect provider.'''
8402
8658
 
8403
8659
  @builtins.property
@@ -8415,6 +8671,7 @@ class IOpenIdConnectProvider(_IResource_c80c4260, typing_extensions.Protocol):
8415
8671
 
8416
8672
  class _IOpenIdConnectProviderProxy(
8417
8673
  jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8674
+ jsii.proxy_for(_IOIDCProviderRef_a866c7c8), # type: ignore[misc]
8418
8675
  ):
8419
8676
  '''Represents an IAM OpenID Connect provider.'''
8420
8677
 
@@ -8437,7 +8694,7 @@ typing.cast(typing.Any, IOpenIdConnectProvider).__jsii_proxy_class__ = lambda :
8437
8694
 
8438
8695
 
8439
8696
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IPolicy")
8440
- class IPolicy(_IResource_c80c4260, typing_extensions.Protocol):
8697
+ class IPolicy(_IResource_c80c4260, _IPolicyRef_5e74a0ba, typing_extensions.Protocol):
8441
8698
  '''Represents an IAM Policy.
8442
8699
 
8443
8700
  :see: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html
@@ -8455,6 +8712,7 @@ class IPolicy(_IResource_c80c4260, typing_extensions.Protocol):
8455
8712
 
8456
8713
  class _IPolicyProxy(
8457
8714
  jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8715
+ jsii.proxy_for(_IPolicyRef_5e74a0ba), # type: ignore[misc]
8458
8716
  ):
8459
8717
  '''Represents an IAM Policy.
8460
8718
 
@@ -8595,8 +8853,8 @@ class _IPrincipalProxy(
8595
8853
  typing.cast(typing.Any, IPrincipal).__jsii_proxy_class__ = lambda : _IPrincipalProxy
8596
8854
 
8597
8855
 
8598
- @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IResourceWithPolicy")
8599
- 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):
8600
8858
  '''A resource with a resource policy that can be added to.'''
8601
8859
 
8602
8860
  @jsii.member(jsii_name="addToResourcePolicy")
@@ -8611,12 +8869,12 @@ class IResourceWithPolicy(_IResource_c80c4260, typing_extensions.Protocol):
8611
8869
  ...
8612
8870
 
8613
8871
 
8614
- class _IResourceWithPolicyProxy(
8615
- jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8872
+ class _IResourceWithPolicyV2Proxy(
8873
+ jsii.proxy_for(_IEnvironmentAware_f39049ee), # type: ignore[misc]
8616
8874
  ):
8617
8875
  '''A resource with a resource policy that can be added to.'''
8618
8876
 
8619
- __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_iam.IResourceWithPolicy"
8877
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_iam.IResourceWithPolicyV2"
8620
8878
 
8621
8879
  @jsii.member(jsii_name="addToResourcePolicy")
8622
8880
  def add_to_resource_policy(
@@ -8628,16 +8886,20 @@ class _IResourceWithPolicyProxy(
8628
8886
  :param statement: -
8629
8887
  '''
8630
8888
  if __debug__:
8631
- type_hints = typing.get_type_hints(_typecheckingstub__dc0b619bfbc345bc9140fcc58d59f27472a211b09306f5c2e6b0147efcef6b18)
8889
+ type_hints = typing.get_type_hints(_typecheckingstub__d0411047245e16030f540e191ce067fdd2216fb84afd5f47032486efe2dddfda)
8632
8890
  check_type(argname="argument statement", value=statement, expected_type=type_hints["statement"])
8633
8891
  return typing.cast(AddToResourcePolicyResult, jsii.invoke(self, "addToResourcePolicy", [statement]))
8634
8892
 
8635
8893
  # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
8636
- typing.cast(typing.Any, IResourceWithPolicy).__jsii_proxy_class__ = lambda : _IResourceWithPolicyProxy
8894
+ typing.cast(typing.Any, IResourceWithPolicyV2).__jsii_proxy_class__ = lambda : _IResourceWithPolicyV2Proxy
8637
8895
 
8638
8896
 
8639
8897
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.ISamlProvider")
8640
- class ISamlProvider(_IResource_c80c4260, typing_extensions.Protocol):
8898
+ class ISamlProvider(
8899
+ _IResource_c80c4260,
8900
+ _ISAMLProviderRef_6e369856,
8901
+ typing_extensions.Protocol,
8902
+ ):
8641
8903
  '''A SAML provider.'''
8642
8904
 
8643
8905
  @builtins.property
@@ -8652,6 +8914,7 @@ class ISamlProvider(_IResource_c80c4260, typing_extensions.Protocol):
8652
8914
 
8653
8915
  class _ISamlProviderProxy(
8654
8916
  jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8917
+ jsii.proxy_for(_ISAMLProviderRef_6e369856), # type: ignore[misc]
8655
8918
  ):
8656
8919
  '''A SAML provider.'''
8657
8920
 
@@ -8682,14 +8945,25 @@ class InstanceProfile(
8682
8945
 
8683
8946
  Example::
8684
8947
 
8948
+ # vpc: ec2.Vpc
8949
+
8950
+
8685
8951
  role = iam.Role(self, "Role",
8686
8952
  assumed_by=iam.ServicePrincipal("ec2.amazonaws.com")
8687
8953
  )
8688
-
8689
- instance_profile = iam.InstanceProfile.from_instance_profile_attributes(self, "ImportedInstanceProfile",
8690
- instance_profile_arn="arn:aws:iam::account-id:instance-profile/MyInstanceProfile",
8954
+ instance_profile = iam.InstanceProfile(self, "InstanceProfile",
8691
8955
  role=role
8692
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
+ )
8693
8967
  '''
8694
8968
 
8695
8969
  def __init__(
@@ -8793,6 +9067,12 @@ class InstanceProfile(
8793
9067
  check_type(argname="argument instance_profile_name", value=instance_profile_name, expected_type=type_hints["instance_profile_name"])
8794
9068
  return typing.cast(IInstanceProfile, jsii.sinvoke(cls, "fromInstanceProfileName", [scope, id, instance_profile_name]))
8795
9069
 
9070
+ @jsii.python.classproperty
9071
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
9072
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
9073
+ '''Uniquely identifies this class.'''
9074
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
9075
+
8796
9076
  @builtins.property
8797
9077
  @jsii.member(jsii_name="instanceProfileArn")
8798
9078
  def instance_profile_arn(self) -> builtins.str:
@@ -8805,6 +9085,12 @@ class InstanceProfile(
8805
9085
  '''Returns the name of this InstanceProfile.'''
8806
9086
  return typing.cast(builtins.str, jsii.get(self, "instanceProfileName"))
8807
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
+
8808
9094
  @builtins.property
8809
9095
  @jsii.member(jsii_name="role")
8810
9096
  def role(self) -> typing.Optional["IRole"]:
@@ -8910,14 +9196,24 @@ class InstanceProfileProps:
8910
9196
 
8911
9197
  Example::
8912
9198
 
9199
+ # vpc: ec2.Vpc
9200
+
9201
+
8913
9202
  role = iam.Role(self, "Role",
8914
9203
  assumed_by=iam.ServicePrincipal("ec2.amazonaws.com")
8915
9204
  )
8916
-
8917
9205
  instance_profile = iam.InstanceProfile(self, "InstanceProfile",
8918
- role=role,
8919
- instance_profile_name="MyInstanceProfile",
8920
- 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
8921
9217
  )
8922
9218
  '''
8923
9219
  if __debug__:
@@ -9022,7 +9318,7 @@ class ManagedPolicy(
9022
9318
  *,
9023
9319
  description: typing.Optional[builtins.str] = None,
9024
9320
  document: typing.Optional["PolicyDocument"] = None,
9025
- groups: typing.Optional[typing.Sequence["IGroup"]] = None,
9321
+ groups: typing.Optional[typing.Sequence[_IGroupRef_aeb1d9f6]] = None,
9026
9322
  managed_policy_name: typing.Optional[builtins.str] = None,
9027
9323
  path: typing.Optional[builtins.str] = None,
9028
9324
  roles: typing.Optional[typing.Sequence["IRole"]] = None,
@@ -9147,7 +9443,7 @@ class ManagedPolicy(
9147
9443
  return typing.cast(None, jsii.invoke(self, "addStatements", [*statement]))
9148
9444
 
9149
9445
  @jsii.member(jsii_name="attachToGroup")
9150
- def attach_to_group(self, group: "IGroup") -> None:
9446
+ def attach_to_group(self, group: _IGroupRef_aeb1d9f6) -> None:
9151
9447
  '''Attaches this policy to a group.
9152
9448
 
9153
9449
  :param group: -
@@ -9169,7 +9465,7 @@ class ManagedPolicy(
9169
9465
  return typing.cast(None, jsii.invoke(self, "attachToRole", [role]))
9170
9466
 
9171
9467
  @jsii.member(jsii_name="attachToUser")
9172
- def attach_to_user(self, user: "IUser") -> None:
9468
+ def attach_to_user(self, user: _IUserRef_b0ccca76) -> None:
9173
9469
  '''Attaches this policy to a user.
9174
9470
 
9175
9471
  :param user: -
@@ -9179,6 +9475,12 @@ class ManagedPolicy(
9179
9475
  check_type(argname="argument user", value=user, expected_type=type_hints["user"])
9180
9476
  return typing.cast(None, jsii.invoke(self, "attachToUser", [user]))
9181
9477
 
9478
+ @jsii.python.classproperty
9479
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
9480
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
9481
+ '''Uniquely identifies this class.'''
9482
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
9483
+
9182
9484
  @builtins.property
9183
9485
  @jsii.member(jsii_name="description")
9184
9486
  def description(self) -> builtins.str:
@@ -9218,6 +9520,12 @@ class ManagedPolicy(
9218
9520
  '''
9219
9521
  return typing.cast(builtins.str, jsii.get(self, "managedPolicyName"))
9220
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
+
9221
9529
  @builtins.property
9222
9530
  @jsii.member(jsii_name="path")
9223
9531
  def path(self) -> builtins.str:
@@ -9248,7 +9556,7 @@ class ManagedPolicyProps:
9248
9556
  *,
9249
9557
  description: typing.Optional[builtins.str] = None,
9250
9558
  document: typing.Optional["PolicyDocument"] = None,
9251
- groups: typing.Optional[typing.Sequence["IGroup"]] = None,
9559
+ groups: typing.Optional[typing.Sequence[_IGroupRef_aeb1d9f6]] = None,
9252
9560
  managed_policy_name: typing.Optional[builtins.str] = None,
9253
9561
  path: typing.Optional[builtins.str] = None,
9254
9562
  roles: typing.Optional[typing.Sequence["IRole"]] = None,
@@ -9360,7 +9668,7 @@ class ManagedPolicyProps:
9360
9668
  return typing.cast(typing.Optional["PolicyDocument"], result)
9361
9669
 
9362
9670
  @builtins.property
9363
- def groups(self) -> typing.Optional[typing.List["IGroup"]]:
9671
+ def groups(self) -> typing.Optional[typing.List[_IGroupRef_aeb1d9f6]]:
9364
9672
  '''Groups to attach this policy to.
9365
9673
 
9366
9674
  You can also use ``attachToGroup(group)`` to attach this policy to a group.
@@ -9368,7 +9676,7 @@ class ManagedPolicyProps:
9368
9676
  :default: - No groups.
9369
9677
  '''
9370
9678
  result = self._values.get("groups")
9371
- return typing.cast(typing.Optional[typing.List["IGroup"]], result)
9679
+ return typing.cast(typing.Optional[typing.List[_IGroupRef_aeb1d9f6]], result)
9372
9680
 
9373
9681
  @builtins.property
9374
9682
  def managed_policy_name(self) -> typing.Optional[builtins.str]:
@@ -9444,6 +9752,271 @@ class ManagedPolicyProps:
9444
9752
  )
9445
9753
 
9446
9754
 
9755
+ @jsii.implements(IOidcProvider)
9756
+ class OidcProviderNative(
9757
+ _Resource_45bc6135,
9758
+ metaclass=jsii.JSIIMeta,
9759
+ jsii_type="aws-cdk-lib.aws_iam.OidcProviderNative",
9760
+ ):
9761
+ '''IAM OIDC identity providers are entities in IAM that describe an external identity provider (IdP) service that supports the OpenID Connect (OIDC) standard, such as Google or Salesforce.
9762
+
9763
+ You use an IAM OIDC identity provider
9764
+ when you want to establish trust between an OIDC-compatible IdP and your AWS
9765
+ account. This is useful when creating a mobile app or web application that
9766
+ requires access to AWS resources, but you don't want to create custom sign-in
9767
+ code or manage your own user identities.
9768
+
9769
+ :see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html
9770
+ :resource: AWS::IAM::OIDCProvider
9771
+ :exampleMetadata: infused
9772
+
9773
+ Example::
9774
+
9775
+ native_provider = iam.OidcProviderNative(self, "MyProvider",
9776
+ url="https://openid/connect",
9777
+ client_ids=["myclient1", "myclient2"],
9778
+ thumbprints=["aa00aa1122aa00aa1122aa00aa1122aa00aa1122"]
9779
+ )
9780
+ '''
9781
+
9782
+ def __init__(
9783
+ self,
9784
+ scope: _constructs_77d1e7e8.Construct,
9785
+ id: builtins.str,
9786
+ *,
9787
+ url: builtins.str,
9788
+ client_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
9789
+ oidc_provider_name: typing.Optional[builtins.str] = None,
9790
+ thumbprints: typing.Optional[typing.Sequence[builtins.str]] = None,
9791
+ ) -> None:
9792
+ '''Defines a Native OpenID Connect provider.
9793
+
9794
+ :param scope: The definition scope.
9795
+ :param id: Construct ID.
9796
+ :param url: The URL of the identity provider. The URL must begin with https:// and should correspond to the iss claim in the provider's OpenID Connect ID tokens. Per the OIDC standard, path components are allowed but query parameters are not. Typically the URL consists of only a hostname, like https://server.example.org or https://example.com. You cannot register the same provider multiple times in a single AWS account. If you try to submit a URL that has already been used for an OpenID Connect provider in the AWS account, you will get an error. Warning: This URL cannot contain any port numbers
9797
+ :param client_ids: A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the client_id parameter on OAuth requests.) You can register multiple client IDs with the same provider. For example, you might have multiple applications that use the same OIDC provider. You cannot register more than 100 client IDs with a single IAM OIDC provider. Client IDs are up to 255 characters long. Default: - no clients are allowed
9798
+ :param oidc_provider_name: The name of the Native OIDC Provider. Default: - A name is automatically generated.
9799
+ :param thumbprints: A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificates. Typically this list includes only 1 entry or empty. However, IAM lets you have up to 5 thumbprints for an OIDC provider. This lets you maintain multiple thumbprints if the identity provider is rotating certificates. The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509 certificate used by the domain where the OpenID Connect provider makes its keys available. It is always a 40-character string. For example, assume that the OIDC provider is server.example.com and the provider stores its keys at https://keys.server.example.com/openid-connect. In that case, the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate used by https://keys.server.example.com. This property is optional. If it is not included, IAM will retrieve and use the top intermediate certificate authority (CA) thumbprint of the OpenID Connect identity provider server certificate. Obtain the thumbprint of the root certificate authority from the provider's server as described in https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc_verify-thumbprint.html Default: - no thumbprints are allowed. IAM will retrieve and use thumbprint of idenity provider server cerctificate
9800
+ '''
9801
+ if __debug__:
9802
+ type_hints = typing.get_type_hints(_typecheckingstub__680e816817bfe60e999b472326e5b4b238c62d88192645c5b0bfcd07a0a2a70a)
9803
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
9804
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
9805
+ props = OidcProviderNativeProps(
9806
+ url=url,
9807
+ client_ids=client_ids,
9808
+ oidc_provider_name=oidc_provider_name,
9809
+ thumbprints=thumbprints,
9810
+ )
9811
+
9812
+ jsii.create(self.__class__, self, [scope, id, props])
9813
+
9814
+ @jsii.member(jsii_name="fromOidcProviderArn")
9815
+ @builtins.classmethod
9816
+ def from_oidc_provider_arn(
9817
+ cls,
9818
+ scope: _constructs_77d1e7e8.Construct,
9819
+ id: builtins.str,
9820
+ oidc_provider_arn: builtins.str,
9821
+ ) -> IOidcProvider:
9822
+ '''Imports an Open ID connect provider from an ARN.
9823
+
9824
+ :param scope: The definition scope.
9825
+ :param id: ID of the construct.
9826
+ :param oidc_provider_arn: the ARN to import.
9827
+ '''
9828
+ if __debug__:
9829
+ type_hints = typing.get_type_hints(_typecheckingstub__2bbbb35dca97e313a334486d4f1f9ad4d587da8ed7cab00044df51dcffea77cc)
9830
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
9831
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
9832
+ check_type(argname="argument oidc_provider_arn", value=oidc_provider_arn, expected_type=type_hints["oidc_provider_arn"])
9833
+ return typing.cast(IOidcProvider, jsii.sinvoke(cls, "fromOidcProviderArn", [scope, id, oidc_provider_arn]))
9834
+
9835
+ @jsii.python.classproperty
9836
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
9837
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
9838
+ '''Uniquely identifies this class.'''
9839
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
9840
+
9841
+ @builtins.property
9842
+ @jsii.member(jsii_name="oidcProviderArn")
9843
+ def oidc_provider_arn(self) -> builtins.str:
9844
+ '''The Amazon Resource Name (ARN) of the Native IAM OpenID Connect provider.
9845
+
9846
+ :attribute: true
9847
+ '''
9848
+ return typing.cast(builtins.str, jsii.get(self, "oidcProviderArn"))
9849
+
9850
+ @builtins.property
9851
+ @jsii.member(jsii_name="oidcProviderIssuer")
9852
+ def oidc_provider_issuer(self) -> builtins.str:
9853
+ '''The issuer for the Native OIDC Provider.
9854
+
9855
+ :attribute: true
9856
+ '''
9857
+ return typing.cast(builtins.str, jsii.get(self, "oidcProviderIssuer"))
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
+
9865
+ @builtins.property
9866
+ @jsii.member(jsii_name="oidcProviderThumbprints")
9867
+ def oidc_provider_thumbprints(self) -> builtins.str:
9868
+ '''The thumbprints configured for this provider.
9869
+
9870
+ :attribute: true
9871
+ '''
9872
+ return typing.cast(builtins.str, jsii.get(self, "oidcProviderThumbprints"))
9873
+
9874
+
9875
+ @jsii.data_type(
9876
+ jsii_type="aws-cdk-lib.aws_iam.OidcProviderNativeProps",
9877
+ jsii_struct_bases=[],
9878
+ name_mapping={
9879
+ "url": "url",
9880
+ "client_ids": "clientIds",
9881
+ "oidc_provider_name": "oidcProviderName",
9882
+ "thumbprints": "thumbprints",
9883
+ },
9884
+ )
9885
+ class OidcProviderNativeProps:
9886
+ def __init__(
9887
+ self,
9888
+ *,
9889
+ url: builtins.str,
9890
+ client_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
9891
+ oidc_provider_name: typing.Optional[builtins.str] = None,
9892
+ thumbprints: typing.Optional[typing.Sequence[builtins.str]] = None,
9893
+ ) -> None:
9894
+ '''Initialization properties for ``OIDCProviderNative``.
9895
+
9896
+ :param url: The URL of the identity provider. The URL must begin with https:// and should correspond to the iss claim in the provider's OpenID Connect ID tokens. Per the OIDC standard, path components are allowed but query parameters are not. Typically the URL consists of only a hostname, like https://server.example.org or https://example.com. You cannot register the same provider multiple times in a single AWS account. If you try to submit a URL that has already been used for an OpenID Connect provider in the AWS account, you will get an error. Warning: This URL cannot contain any port numbers
9897
+ :param client_ids: A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the client_id parameter on OAuth requests.) You can register multiple client IDs with the same provider. For example, you might have multiple applications that use the same OIDC provider. You cannot register more than 100 client IDs with a single IAM OIDC provider. Client IDs are up to 255 characters long. Default: - no clients are allowed
9898
+ :param oidc_provider_name: The name of the Native OIDC Provider. Default: - A name is automatically generated.
9899
+ :param thumbprints: A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificates. Typically this list includes only 1 entry or empty. However, IAM lets you have up to 5 thumbprints for an OIDC provider. This lets you maintain multiple thumbprints if the identity provider is rotating certificates. The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509 certificate used by the domain where the OpenID Connect provider makes its keys available. It is always a 40-character string. For example, assume that the OIDC provider is server.example.com and the provider stores its keys at https://keys.server.example.com/openid-connect. In that case, the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate used by https://keys.server.example.com. This property is optional. If it is not included, IAM will retrieve and use the top intermediate certificate authority (CA) thumbprint of the OpenID Connect identity provider server certificate. Obtain the thumbprint of the root certificate authority from the provider's server as described in https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc_verify-thumbprint.html Default: - no thumbprints are allowed. IAM will retrieve and use thumbprint of idenity provider server cerctificate
9900
+
9901
+ :exampleMetadata: infused
9902
+
9903
+ Example::
9904
+
9905
+ native_provider = iam.OidcProviderNative(self, "MyProvider",
9906
+ url="https://openid/connect",
9907
+ client_ids=["myclient1", "myclient2"],
9908
+ thumbprints=["aa00aa1122aa00aa1122aa00aa1122aa00aa1122"]
9909
+ )
9910
+ '''
9911
+ if __debug__:
9912
+ type_hints = typing.get_type_hints(_typecheckingstub__6981defdaab974b803e9671371e547d5d70ee03239eed02c8d458e1a2e5aa307)
9913
+ check_type(argname="argument url", value=url, expected_type=type_hints["url"])
9914
+ check_type(argname="argument client_ids", value=client_ids, expected_type=type_hints["client_ids"])
9915
+ check_type(argname="argument oidc_provider_name", value=oidc_provider_name, expected_type=type_hints["oidc_provider_name"])
9916
+ check_type(argname="argument thumbprints", value=thumbprints, expected_type=type_hints["thumbprints"])
9917
+ self._values: typing.Dict[builtins.str, typing.Any] = {
9918
+ "url": url,
9919
+ }
9920
+ if client_ids is not None:
9921
+ self._values["client_ids"] = client_ids
9922
+ if oidc_provider_name is not None:
9923
+ self._values["oidc_provider_name"] = oidc_provider_name
9924
+ if thumbprints is not None:
9925
+ self._values["thumbprints"] = thumbprints
9926
+
9927
+ @builtins.property
9928
+ def url(self) -> builtins.str:
9929
+ '''The URL of the identity provider.
9930
+
9931
+ The URL must begin with https:// and
9932
+ should correspond to the iss claim in the provider's OpenID Connect ID
9933
+ tokens. Per the OIDC standard, path components are allowed but query
9934
+ parameters are not. Typically the URL consists of only a hostname, like
9935
+ https://server.example.org or https://example.com.
9936
+
9937
+ You cannot register the same provider multiple times in a single AWS
9938
+ account. If you try to submit a URL that has already been used for an
9939
+ OpenID Connect provider in the AWS account, you will get an error.
9940
+
9941
+ Warning: This URL cannot contain any port numbers
9942
+ '''
9943
+ result = self._values.get("url")
9944
+ assert result is not None, "Required property 'url' is missing"
9945
+ return typing.cast(builtins.str, result)
9946
+
9947
+ @builtins.property
9948
+ def client_ids(self) -> typing.Optional[typing.List[builtins.str]]:
9949
+ '''A list of client IDs (also known as audiences).
9950
+
9951
+ When a mobile or web app
9952
+ registers with an OpenID Connect provider, they establish a value that
9953
+ identifies the application. (This is the value that's sent as the client_id
9954
+ parameter on OAuth requests.)
9955
+
9956
+ You can register multiple client IDs with the same provider. For example,
9957
+ you might have multiple applications that use the same OIDC provider. You
9958
+ cannot register more than 100 client IDs with a single IAM OIDC provider.
9959
+
9960
+ Client IDs are up to 255 characters long.
9961
+
9962
+ :default: - no clients are allowed
9963
+ '''
9964
+ result = self._values.get("client_ids")
9965
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
9966
+
9967
+ @builtins.property
9968
+ def oidc_provider_name(self) -> typing.Optional[builtins.str]:
9969
+ '''The name of the Native OIDC Provider.
9970
+
9971
+ :default: - A name is automatically generated.
9972
+ '''
9973
+ result = self._values.get("oidc_provider_name")
9974
+ return typing.cast(typing.Optional[builtins.str], result)
9975
+
9976
+ @builtins.property
9977
+ def thumbprints(self) -> typing.Optional[typing.List[builtins.str]]:
9978
+ '''A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificates.
9979
+
9980
+ Typically this list includes only 1 entry or empty. However, IAM lets
9981
+ you have up to 5 thumbprints for an OIDC provider. This lets you maintain
9982
+ multiple thumbprints if the identity provider is rotating certificates.
9983
+
9984
+ The server certificate thumbprint is the hex-encoded SHA-1 hash value of
9985
+ the X.509 certificate used by the domain where the OpenID Connect provider
9986
+ makes its keys available. It is always a 40-character string.
9987
+
9988
+ For example, assume that the OIDC provider is server.example.com and the
9989
+ provider stores its keys at https://keys.server.example.com/openid-connect.
9990
+ In that case, the thumbprint string would be the hex-encoded SHA-1 hash
9991
+ value of the certificate used by https://keys.server.example.com.
9992
+
9993
+ This property is optional. If it is not included, IAM will retrieve and use
9994
+ the top intermediate certificate authority (CA) thumbprint of the OpenID
9995
+ Connect identity provider server certificate.
9996
+
9997
+ Obtain the thumbprint of the root certificate authority from the provider's
9998
+ server as described in https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc_verify-thumbprint.html
9999
+
10000
+ :default:
10001
+
10002
+ - no thumbprints are allowed. IAM will retrieve and use thumbprint
10003
+ of idenity provider server cerctificate
10004
+ '''
10005
+ result = self._values.get("thumbprints")
10006
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
10007
+
10008
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
10009
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
10010
+
10011
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
10012
+ return not (rhs == self)
10013
+
10014
+ def __repr__(self) -> str:
10015
+ return "OidcProviderNativeProps(%s)" % ", ".join(
10016
+ k + "=" + repr(v) for k, v in self._values.items()
10017
+ )
10018
+
10019
+
9447
10020
  @jsii.implements(IOpenIdConnectProvider)
9448
10021
  class OpenIdConnectProvider(
9449
10022
  _Resource_45bc6135,
@@ -9458,6 +10031,24 @@ class OpenIdConnectProvider(
9458
10031
  requires access to AWS resources, but you don't want to create custom sign-in
9459
10032
  code or manage your own user identities.
9460
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
+
9461
10052
  :see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html
9462
10053
  :resource: AWS::CloudFormation::CustomResource
9463
10054
  :exampleMetadata: infused
@@ -9518,6 +10109,18 @@ class OpenIdConnectProvider(
9518
10109
  check_type(argname="argument open_id_connect_provider_arn", value=open_id_connect_provider_arn, expected_type=type_hints["open_id_connect_provider_arn"])
9519
10110
  return typing.cast(IOpenIdConnectProvider, jsii.sinvoke(cls, "fromOpenIdConnectProviderArn", [scope, id, open_id_connect_provider_arn]))
9520
10111
 
10112
+ @jsii.python.classproperty
10113
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
10114
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
10115
+ '''Uniquely identifies this class.'''
10116
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
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
+
9521
10124
  @builtins.property
9522
10125
  @jsii.member(jsii_name="openIdConnectProviderArn")
9523
10126
  def open_id_connect_provider_arn(self) -> builtins.str:
@@ -9848,6 +10451,12 @@ class Policy(
9848
10451
  check_type(argname="argument user", value=user, expected_type=type_hints["user"])
9849
10452
  return typing.cast(None, jsii.invoke(self, "attachToUser", [user]))
9850
10453
 
10454
+ @jsii.python.classproperty
10455
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
10456
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
10457
+ '''Uniquely identifies this class.'''
10458
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
10459
+
9851
10460
  @builtins.property
9852
10461
  @jsii.member(jsii_name="document")
9853
10462
  def document(self) -> "PolicyDocument":
@@ -9869,6 +10478,12 @@ class Policy(
9869
10478
  '''
9870
10479
  return typing.cast(builtins.str, jsii.get(self, "policyName"))
9871
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
+
9872
10487
 
9873
10488
  @jsii.implements(_IResolvable_da3f097b)
9874
10489
  class PolicyDocument(
@@ -10762,6 +11377,12 @@ class PolicyStatement(
10762
11377
  '''
10763
11378
  return typing.cast(typing.List[builtins.str], jsii.invoke(self, "validateForResourcePolicy", []))
10764
11379
 
11380
+ @jsii.python.classproperty
11381
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
11382
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
11383
+ '''Uniquely identifies this class.'''
11384
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
11385
+
10765
11386
  @builtins.property
10766
11387
  @jsii.member(jsii_name="actions")
10767
11388
  def actions(self) -> typing.List[builtins.str]:
@@ -11470,18 +12091,18 @@ class SamlMetadataDocument(
11470
12091
  ):
11471
12092
  '''A SAML metadata document.
11472
12093
 
11473
- :exampleMetadata: infused
12094
+ :exampleMetadata: fixture=client-vpn infused
11474
12095
 
11475
12096
  Example::
11476
12097
 
11477
- provider = iam.SamlProvider(self, "Provider",
11478
- 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)
11479
12105
  )
11480
- principal = iam.SamlPrincipal(provider, {
11481
- "StringEquals": {
11482
- "SAML:iss": "issuer"
11483
- }
11484
- })
11485
12106
  '''
11486
12107
 
11487
12108
  def __init__(self) -> None:
@@ -11593,12 +12214,24 @@ class SamlProvider(
11593
12214
  check_type(argname="argument saml_provider_arn", value=saml_provider_arn, expected_type=type_hints["saml_provider_arn"])
11594
12215
  return typing.cast(ISamlProvider, jsii.sinvoke(cls, "fromSamlProviderArn", [scope, id, saml_provider_arn]))
11595
12216
 
12217
+ @jsii.python.classproperty
12218
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
12219
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
12220
+ '''Uniquely identifies this class.'''
12221
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
12222
+
11596
12223
  @builtins.property
11597
12224
  @jsii.member(jsii_name="samlProviderArn")
11598
12225
  def saml_provider_arn(self) -> builtins.str:
11599
12226
  '''The Amazon Resource Name (ARN) of the provider.'''
11600
12227
  return typing.cast(builtins.str, jsii.get(self, "samlProviderArn"))
11601
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
+
11602
12235
 
11603
12236
  @jsii.data_type(
11604
12237
  jsii_type="aws-cdk-lib.aws_iam.SamlProviderProps",
@@ -12232,12 +12865,24 @@ class AccessKey(
12232
12865
 
12233
12866
  jsii.create(self.__class__, self, [scope, id, props])
12234
12867
 
12868
+ @jsii.python.classproperty
12869
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
12870
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
12871
+ '''Uniquely identifies this class.'''
12872
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
12873
+
12235
12874
  @builtins.property
12236
12875
  @jsii.member(jsii_name="accessKeyId")
12237
12876
  def access_key_id(self) -> builtins.str:
12238
12877
  '''The Access Key ID.'''
12239
12878
  return typing.cast(builtins.str, jsii.get(self, "accessKeyId"))
12240
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
+
12241
12886
  @builtins.property
12242
12887
  @jsii.member(jsii_name="secretAccessKey")
12243
12888
  def secret_access_key(self) -> _SecretValue_3dd0ddae:
@@ -12266,7 +12911,7 @@ class GrantPolicyWithResourceOptions(GrantWithResourceOptions):
12266
12911
  grantee: IGrantable,
12267
12912
  resource_arns: typing.Sequence[builtins.str],
12268
12913
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
12269
- resource: IResourceWithPolicy,
12914
+ resource: IResourceWithPolicyV2,
12270
12915
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
12271
12916
  statement: PolicyStatement,
12272
12917
  ) -> None:
@@ -12282,7 +12927,7 @@ class GrantPolicyWithResourceOptions(GrantWithResourceOptions):
12282
12927
  :param conditions: Any conditions to attach to the grant. Default: - No conditions
12283
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.
12284
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
12285
- :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.
12286
12931
 
12287
12932
  :exampleMetadata: infused
12288
12933
 
@@ -12369,7 +13014,7 @@ class GrantPolicyWithResourceOptions(GrantWithResourceOptions):
12369
13014
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]], result)
12370
13015
 
12371
13016
  @builtins.property
12372
- def resource(self) -> IResourceWithPolicy:
13017
+ def resource(self) -> IResourceWithPolicyV2:
12373
13018
  '''The resource with a resource policy.
12374
13019
 
12375
13020
  The statement will be added to the resource policy if it couldn't be
@@ -12377,7 +13022,7 @@ class GrantPolicyWithResourceOptions(GrantWithResourceOptions):
12377
13022
  '''
12378
13023
  result = self._values.get("resource")
12379
13024
  assert result is not None, "Required property 'resource' is missing"
12380
- return typing.cast(IResourceWithPolicy, result)
13025
+ return typing.cast(IResourceWithPolicyV2, result)
12381
13026
 
12382
13027
  @builtins.property
12383
13028
  def resource_self_arns(self) -> typing.Optional[typing.List[builtins.str]]:
@@ -12395,7 +13040,7 @@ class GrantPolicyWithResourceOptions(GrantWithResourceOptions):
12395
13040
  '''The policy statement to add to the resource's policy.
12396
13041
 
12397
13042
  This statement will be passed to the resource's addToResourcePolicy method.
12398
- The actual handling of the statement depends on the specific IResourceWithPolicy
13043
+ The actual handling of the statement depends on the specific IResourceWithPolicyV2
12399
13044
  implementation.
12400
13045
  '''
12401
13046
  result = self._values.get("statement")
@@ -12562,8 +13207,48 @@ class _IIdentityProxy(
12562
13207
  typing.cast(typing.Any, IIdentity).__jsii_proxy_class__ = lambda : _IIdentityProxy
12563
13208
 
12564
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
+
12565
13250
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IRole")
12566
- class IRole(IIdentity, typing_extensions.Protocol):
13251
+ class IRole(IIdentity, _IRoleRef_8400221f, typing_extensions.Protocol):
12567
13252
  '''A Role object.'''
12568
13253
 
12569
13254
  @builtins.property
@@ -12612,6 +13297,7 @@ class IRole(IIdentity, typing_extensions.Protocol):
12612
13297
 
12613
13298
  class _IRoleProxy(
12614
13299
  jsii.proxy_for(IIdentity), # type: ignore[misc]
13300
+ jsii.proxy_for(_IRoleRef_8400221f), # type: ignore[misc]
12615
13301
  ):
12616
13302
  '''A Role object.'''
12617
13303
 
@@ -12675,7 +13361,7 @@ typing.cast(typing.Any, IRole).__jsii_proxy_class__ = lambda : _IRoleProxy
12675
13361
 
12676
13362
 
12677
13363
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IUser")
12678
- class IUser(IIdentity, typing_extensions.Protocol):
13364
+ class IUser(IIdentity, _IUserRef_b0ccca76, typing_extensions.Protocol):
12679
13365
  '''Represents an IAM user.
12680
13366
 
12681
13367
  :see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html
@@ -12710,6 +13396,7 @@ class IUser(IIdentity, typing_extensions.Protocol):
12710
13396
 
12711
13397
  class _IUserProxy(
12712
13398
  jsii.proxy_for(IIdentity), # type: ignore[misc]
13399
+ jsii.proxy_for(_IUserRef_b0ccca76), # type: ignore[misc]
12713
13400
  ):
12714
13401
  '''Represents an IAM user.
12715
13402
 
@@ -12926,6 +13613,12 @@ class LazyRole(
12926
13613
  check_type(argname="argument identity", value=identity, expected_type=type_hints["identity"])
12927
13614
  return typing.cast(Grant, jsii.invoke(self, "grantPassRole", [identity]))
12928
13615
 
13616
+ @jsii.python.classproperty
13617
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
13618
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
13619
+ '''Uniquely identifies this class.'''
13620
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
13621
+
12929
13622
  @builtins.property
12930
13623
  @jsii.member(jsii_name="assumeRoleAction")
12931
13624
  def assume_role_action(self) -> builtins.str:
@@ -12965,6 +13658,12 @@ class LazyRole(
12965
13658
  '''Returns the name of this role.'''
12966
13659
  return typing.cast(builtins.str, jsii.get(self, "roleName"))
12967
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
+
12968
13667
  @builtins.property
12969
13668
  @jsii.member(jsii_name="principalAccount")
12970
13669
  def principal_account(self) -> typing.Optional[builtins.str]:
@@ -13575,25 +14274,25 @@ class Role(
13575
14274
  Defines an IAM role. The role is created with an assume policy document associated with
13576
14275
  the specified AWS service principal defined in ``serviceAssumeRole``.
13577
14276
 
13578
- :exampleMetadata: infused
14277
+ :exampleMetadata: fixture=default infused
13579
14278
 
13580
14279
  Example::
13581
14280
 
13582
- # 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.
13583
- # cluster: eks.Cluster
13584
-
13585
-
13586
- console_read_only_role = iam.Role(self, "ConsoleReadOnlyRole",
13587
- 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
+ ]
13588
14287
  )
13589
- console_read_only_role.add_to_policy(iam.PolicyStatement(
13590
- actions=["eks:AccessKubernetesApi", "eks:Describe*", "eks:List*"
13591
- ],
13592
- resources=[cluster.cluster_arn]
13593
- ))
13594
14288
 
13595
- # Add this role to system:masters RBAC group
13596
- 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
+ )
13597
14296
  '''
13598
14297
 
13599
14298
  def __init__(
@@ -13936,6 +14635,12 @@ class Role(
13936
14635
 
13937
14636
  return typing.cast(IRole, jsii.invoke(self, "withoutPolicyUpdates", [options]))
13938
14637
 
14638
+ @jsii.python.classproperty
14639
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
14640
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
14641
+ '''Uniquely identifies this class.'''
14642
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
14643
+
13939
14644
  @builtins.property
13940
14645
  @jsii.member(jsii_name="assumeRoleAction")
13941
14646
  def assume_role_action(self) -> builtins.str:
@@ -13978,6 +14683,12 @@ class Role(
13978
14683
  '''Returns the name of the role.'''
13979
14684
  return typing.cast(builtins.str, jsii.get(self, "roleName"))
13980
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
+
13981
14692
  @builtins.property
13982
14693
  @jsii.member(jsii_name="assumeRolePolicy")
13983
14694
  def assume_role_policy(self) -> typing.Optional[PolicyDocument]:
@@ -14010,20 +14721,25 @@ class ServicePrincipal(
14010
14721
  ):
14011
14722
  '''An IAM principal that represents an AWS service (i.e. ``sqs.amazonaws.com``).
14012
14723
 
14013
- :exampleMetadata: infused
14724
+ :exampleMetadata: fixture=default infused
14014
14725
 
14015
14726
  Example::
14016
14727
 
14017
- # definition: sfn.IChainable
14018
- role = iam.Role(self, "Role",
14019
- assumed_by=iam.ServicePrincipal("lambda.amazonaws.com")
14020
- )
14021
- state_machine = sfn.StateMachine(self, "StateMachine",
14022
- 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
+ ]
14023
14734
  )
14024
14735
 
14025
- # Give role permission to get execution history of ALL executions for the state machine
14026
- 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
+ )
14027
14743
  '''
14028
14744
 
14029
14745
  def __init__(
@@ -14470,6 +15186,12 @@ class User(
14470
15186
  check_type(argname="argument policy", value=policy, expected_type=type_hints["policy"])
14471
15187
  return typing.cast(None, jsii.invoke(self, "attachInlinePolicy", [policy]))
14472
15188
 
15189
+ @jsii.python.classproperty
15190
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
15191
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
15192
+ '''Uniquely identifies this class.'''
15193
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
15194
+
14473
15195
  @builtins.property
14474
15196
  @jsii.member(jsii_name="assumeRoleAction")
14475
15197
  def assume_role_action(self) -> builtins.str:
@@ -14506,6 +15228,12 @@ class User(
14506
15228
  '''
14507
15229
  return typing.cast(builtins.str, jsii.get(self, "userName"))
14508
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
+
14509
15237
  @builtins.property
14510
15238
  @jsii.member(jsii_name="permissionsBoundary")
14511
15239
  def permissions_boundary(self) -> typing.Optional[IManagedPolicy]:
@@ -14541,7 +15269,7 @@ class ArnPrincipal(
14541
15269
  Example::
14542
15270
 
14543
15271
  # Option 2: create your custom mastersRole with scoped assumeBy arn as the Cluster prop. Switch to this role from the AWS console.
14544
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
15272
+ from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
14545
15273
  # vpc: ec2.Vpc
14546
15274
 
14547
15275
 
@@ -14551,8 +15279,8 @@ class ArnPrincipal(
14551
15279
 
14552
15280
  cluster = eks.Cluster(self, "EksCluster",
14553
15281
  vpc=vpc,
14554
- version=eks.KubernetesVersion.V1_32,
14555
- kubectl_layer=KubectlV32Layer(self, "KubectlLayer"),
15282
+ version=eks.KubernetesVersion.V1_34,
15283
+ kubectl_layer=KubectlV34Layer(self, "KubectlLayer"),
14556
15284
  masters_role=masters_role
14557
15285
  )
14558
15286
 
@@ -14849,7 +15577,7 @@ class FederatedPrincipal(
14849
15577
 
14850
15578
 
14851
15579
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IGroup")
14852
- class IGroup(IIdentity, typing_extensions.Protocol):
15580
+ class IGroup(IIdentity, _IGroupRef_aeb1d9f6, typing_extensions.Protocol):
14853
15581
  '''Represents an IAM Group.
14854
15582
 
14855
15583
  :see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html
@@ -14876,6 +15604,7 @@ class IGroup(IIdentity, typing_extensions.Protocol):
14876
15604
 
14877
15605
  class _IGroupProxy(
14878
15606
  jsii.proxy_for(IIdentity), # type: ignore[misc]
15607
+ jsii.proxy_for(_IGroupRef_aeb1d9f6), # type: ignore[misc]
14879
15608
  ):
14880
15609
  '''Represents an IAM Group.
14881
15610
 
@@ -14982,7 +15711,7 @@ class SamlPrincipal(
14982
15711
 
14983
15712
  def __init__(
14984
15713
  self,
14985
- saml_provider: ISamlProvider,
15714
+ saml_provider: _ISAMLProviderRef_6e369856,
14986
15715
  conditions: typing.Mapping[builtins.str, typing.Any],
14987
15716
  ) -> None:
14988
15717
  '''
@@ -15111,13 +15840,15 @@ class AccountRootPrincipal(
15111
15840
 
15112
15841
  Example::
15113
15842
 
15114
- bucket = s3.Bucket(self, "MyBucket")
15115
- result = bucket.add_to_resource_policy(
15116
- iam.PolicyStatement(
15117
- actions=["s3:GetObject"],
15118
- resources=[bucket.arn_for_objects("file.txt")],
15119
- principals=[iam.AccountRootPrincipal()]
15120
- ))
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)
15121
15852
  '''
15122
15853
 
15123
15854
  def __init__(self) -> None:
@@ -15330,6 +16061,12 @@ class Group(
15330
16061
  check_type(argname="argument policy", value=policy, expected_type=type_hints["policy"])
15331
16062
  return typing.cast(None, jsii.invoke(self, "attachInlinePolicy", [policy]))
15332
16063
 
16064
+ @jsii.python.classproperty
16065
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
16066
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
16067
+ '''Uniquely identifies this class.'''
16068
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
16069
+
15333
16070
  @builtins.property
15334
16071
  @jsii.member(jsii_name="assumeRoleAction")
15335
16072
  def assume_role_action(self) -> builtins.str:
@@ -15354,6 +16091,12 @@ class Group(
15354
16091
  '''Returns the IAM Group Name.'''
15355
16092
  return typing.cast(builtins.str, jsii.get(self, "groupName"))
15356
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
+
15357
16100
  @builtins.property
15358
16101
  @jsii.member(jsii_name="policyFragment")
15359
16102
  def policy_fragment(self) -> PrincipalPolicyFragment:
@@ -15393,7 +16136,7 @@ class OpenIdConnectPrincipal(
15393
16136
 
15394
16137
  def __init__(
15395
16138
  self,
15396
- open_id_connect_provider: IOpenIdConnectProvider,
16139
+ open_id_connect_provider: _IOIDCProviderRef_a866c7c8,
15397
16140
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
15398
16141
  ) -> None:
15399
16142
  '''
@@ -15525,10 +16268,12 @@ __all__ = [
15525
16268
  "IIdentity",
15526
16269
  "IInstanceProfile",
15527
16270
  "IManagedPolicy",
16271
+ "IOidcProvider",
15528
16272
  "IOpenIdConnectProvider",
15529
16273
  "IPolicy",
15530
16274
  "IPrincipal",
15531
16275
  "IResourceWithPolicy",
16276
+ "IResourceWithPolicyV2",
15532
16277
  "IRole",
15533
16278
  "ISamlProvider",
15534
16279
  "IUser",
@@ -15539,6 +16284,8 @@ __all__ = [
15539
16284
  "LazyRoleProps",
15540
16285
  "ManagedPolicy",
15541
16286
  "ManagedPolicyProps",
16287
+ "OidcProviderNative",
16288
+ "OidcProviderNativeProps",
15542
16289
  "OpenIdConnectPrincipal",
15543
16290
  "OpenIdConnectProvider",
15544
16291
  "OpenIdConnectProviderProps",
@@ -16728,7 +17475,7 @@ def _typecheckingstub__a60e5877e638d22c44d2e72be768df7f85caf47bec9ab2e6b2adcce82
16728
17475
  grantee: IGrantable,
16729
17476
  resource_arns: typing.Sequence[builtins.str],
16730
17477
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
16731
- resource: IResourceWithPolicy,
17478
+ resource: IResourceWithPolicyV2,
16732
17479
  resource_policy_principal: typing.Optional[IPrincipal] = None,
16733
17480
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
16734
17481
  ) -> None:
@@ -16752,7 +17499,7 @@ def _typecheckingstub__d76f68f1d67dcad526c87768d88423a4092a0ef3127be7cb534620448
16752
17499
  grantee: IGrantable,
16753
17500
  resource_arns: typing.Sequence[builtins.str],
16754
17501
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
16755
- resource: IResourceWithPolicy,
17502
+ resource: IResourceWithPolicyV2,
16756
17503
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
16757
17504
  ) -> None:
16758
17505
  """Type checking stubs"""
@@ -16773,7 +17520,7 @@ def _typecheckingstub__7c10aadcc3756f5f6d5486d7ecd5cabd7845be5964af1722a9d4962d5
16773
17520
  """Type checking stubs"""
16774
17521
  pass
16775
17522
 
16776
- def _typecheckingstub__dc0b619bfbc345bc9140fcc58d59f27472a211b09306f5c2e6b0147efcef6b18(
17523
+ def _typecheckingstub__d0411047245e16030f540e191ce067fdd2216fb84afd5f47032486efe2dddfda(
16777
17524
  statement: PolicyStatement,
16778
17525
  ) -> None:
16779
17526
  """Type checking stubs"""
@@ -16839,7 +17586,7 @@ def _typecheckingstub__2cd427eaa6d6959043bb705f947d652220f35431c484ef548899b9f81
16839
17586
  *,
16840
17587
  description: typing.Optional[builtins.str] = None,
16841
17588
  document: typing.Optional[PolicyDocument] = None,
16842
- groups: typing.Optional[typing.Sequence[IGroup]] = None,
17589
+ groups: typing.Optional[typing.Sequence[_IGroupRef_aeb1d9f6]] = None,
16843
17590
  managed_policy_name: typing.Optional[builtins.str] = None,
16844
17591
  path: typing.Optional[builtins.str] = None,
16845
17592
  roles: typing.Optional[typing.Sequence[IRole]] = None,
@@ -16878,7 +17625,7 @@ def _typecheckingstub__dc09c2f794b8d270cf58515acd36f16f22c50e8e485667751a6b6bf54
16878
17625
  pass
16879
17626
 
16880
17627
  def _typecheckingstub__53947185e012309c9619b70da30bfebeef3a52fedd6d8eca19e9a8e96853c82e(
16881
- group: IGroup,
17628
+ group: _IGroupRef_aeb1d9f6,
16882
17629
  ) -> None:
16883
17630
  """Type checking stubs"""
16884
17631
  pass
@@ -16890,7 +17637,7 @@ def _typecheckingstub__d3b5752936a78a06ee1095be0dc5362932d7db4aa0245a456f4cfea45
16890
17637
  pass
16891
17638
 
16892
17639
  def _typecheckingstub__d3b5f4b1c957b78ec0d5ae0e80dc7f2471a55d293c6a67e32ef5a2046d89543d(
16893
- user: IUser,
17640
+ user: _IUserRef_b0ccca76,
16894
17641
  ) -> None:
16895
17642
  """Type checking stubs"""
16896
17643
  pass
@@ -16899,7 +17646,7 @@ def _typecheckingstub__9ac402af2b963b15f12c561030bd732418fdef258857572111b9a8118
16899
17646
  *,
16900
17647
  description: typing.Optional[builtins.str] = None,
16901
17648
  document: typing.Optional[PolicyDocument] = None,
16902
- groups: typing.Optional[typing.Sequence[IGroup]] = None,
17649
+ groups: typing.Optional[typing.Sequence[_IGroupRef_aeb1d9f6]] = None,
16903
17650
  managed_policy_name: typing.Optional[builtins.str] = None,
16904
17651
  path: typing.Optional[builtins.str] = None,
16905
17652
  roles: typing.Optional[typing.Sequence[IRole]] = None,
@@ -16909,6 +17656,36 @@ def _typecheckingstub__9ac402af2b963b15f12c561030bd732418fdef258857572111b9a8118
16909
17656
  """Type checking stubs"""
16910
17657
  pass
16911
17658
 
17659
+ def _typecheckingstub__680e816817bfe60e999b472326e5b4b238c62d88192645c5b0bfcd07a0a2a70a(
17660
+ scope: _constructs_77d1e7e8.Construct,
17661
+ id: builtins.str,
17662
+ *,
17663
+ url: builtins.str,
17664
+ client_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
17665
+ oidc_provider_name: typing.Optional[builtins.str] = None,
17666
+ thumbprints: typing.Optional[typing.Sequence[builtins.str]] = None,
17667
+ ) -> None:
17668
+ """Type checking stubs"""
17669
+ pass
17670
+
17671
+ def _typecheckingstub__2bbbb35dca97e313a334486d4f1f9ad4d587da8ed7cab00044df51dcffea77cc(
17672
+ scope: _constructs_77d1e7e8.Construct,
17673
+ id: builtins.str,
17674
+ oidc_provider_arn: builtins.str,
17675
+ ) -> None:
17676
+ """Type checking stubs"""
17677
+ pass
17678
+
17679
+ def _typecheckingstub__6981defdaab974b803e9671371e547d5d70ee03239eed02c8d458e1a2e5aa307(
17680
+ *,
17681
+ url: builtins.str,
17682
+ client_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
17683
+ oidc_provider_name: typing.Optional[builtins.str] = None,
17684
+ thumbprints: typing.Optional[typing.Sequence[builtins.str]] = None,
17685
+ ) -> None:
17686
+ """Type checking stubs"""
17687
+ pass
17688
+
16912
17689
  def _typecheckingstub__270fe9db45fea69c973ea36d667d5236d0463996999ebebabf67dbaafe739d10(
16913
17690
  scope: _constructs_77d1e7e8.Construct,
16914
17691
  id: builtins.str,
@@ -17311,7 +18088,7 @@ def _typecheckingstub__0475ec23892b6dacf8e0426b204cca68a4091056bb08c20a72dbc06d2
17311
18088
  grantee: IGrantable,
17312
18089
  resource_arns: typing.Sequence[builtins.str],
17313
18090
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
17314
- resource: IResourceWithPolicy,
18091
+ resource: IResourceWithPolicyV2,
17315
18092
  resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
17316
18093
  statement: PolicyStatement,
17317
18094
  ) -> None:
@@ -17793,7 +18570,7 @@ def _typecheckingstub__4dc4375c7e3b272eef905d1d27c4bd67aa9d9f51ccb424f15955369df
17793
18570
  pass
17794
18571
 
17795
18572
  def _typecheckingstub__703e9a9603562e94536f153d5ccc52492ff19cc38ed968f3b1f3e31592a8ae7f(
17796
- saml_provider: ISamlProvider,
18573
+ saml_provider: _ISAMLProviderRef_6e369856,
17797
18574
  conditions: typing.Mapping[builtins.str, typing.Any],
17798
18575
  ) -> None:
17799
18576
  """Type checking stubs"""
@@ -17870,7 +18647,7 @@ def _typecheckingstub__f8334d09c64ac01b56e25eccb0dd778a954e4f613c776ac3447cf3f13
17870
18647
  pass
17871
18648
 
17872
18649
  def _typecheckingstub__11057e2b11d9138bde96aa84215de1b5dba16e8c36af672dbebea8a1c33f4310(
17873
- open_id_connect_provider: IOpenIdConnectProvider,
18650
+ open_id_connect_provider: _IOIDCProviderRef_a866c7c8,
17874
18651
  conditions: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
17875
18652
  ) -> None:
17876
18653
  """Type checking stubs"""
@@ -17882,3 +18659,6 @@ def _typecheckingstub__c7271e79a3715a166397ac94ded3c4043db8b40c10213ffae6abbb3a1
17882
18659
  ) -> None:
17883
18660
  """Type checking stubs"""
17884
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__'])