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

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

Potentially problematic release.


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

Files changed (569) hide show
  1. aws_cdk/__init__.py +1349 -373
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.200.2.jsii.tgz → aws-cdk-lib@2.224.0.jsii.tgz} +0 -0
  4. aws_cdk/alexa_ask/__init__.py +12 -2
  5. aws_cdk/aws_accessanalyzer/__init__.py +323 -6
  6. aws_cdk/aws_acmpca/__init__.py +53 -10
  7. aws_cdk/aws_aiops/__init__.py +1019 -0
  8. aws_cdk/aws_amazonmq/__init__.py +357 -313
  9. aws_cdk/aws_amplify/__init__.py +173 -17
  10. aws_cdk/aws_amplifyuibuilder/__init__.py +35 -6
  11. aws_cdk/aws_apigateway/__init__.py +1017 -155
  12. aws_cdk/aws_apigatewayv2/__init__.py +2796 -379
  13. aws_cdk/aws_apigatewayv2_integrations/__init__.py +94 -16
  14. aws_cdk/aws_appconfig/__init__.py +298 -43
  15. aws_cdk/aws_appflow/__init__.py +151 -6
  16. aws_cdk/aws_appintegrations/__init__.py +546 -6
  17. aws_cdk/aws_applicationautoscaling/__init__.py +29 -6
  18. aws_cdk/aws_applicationinsights/__init__.py +13 -2
  19. aws_cdk/aws_applicationsignals/__init__.py +374 -6
  20. aws_cdk/aws_appmesh/__init__.py +94 -26
  21. aws_cdk/aws_apprunner/__init__.py +66 -18
  22. aws_cdk/aws_appstream/__init__.py +309 -55
  23. aws_cdk/aws_appsync/__init__.py +227 -53
  24. aws_cdk/aws_apptest/__init__.py +71 -2
  25. aws_cdk/aws_aps/__init__.py +1875 -132
  26. aws_cdk/aws_arcregionswitch/__init__.py +5095 -0
  27. aws_cdk/aws_arczonalshift/__init__.py +39 -12
  28. aws_cdk/aws_athena/__init__.py +365 -29
  29. aws_cdk/aws_auditmanager/__init__.py +71 -2
  30. aws_cdk/aws_autoscaling/__init__.py +135 -55
  31. aws_cdk/aws_autoscaling_common/__init__.py +3 -0
  32. aws_cdk/aws_autoscalingplans/__init__.py +13 -2
  33. aws_cdk/aws_b2bi/__init__.py +1819 -99
  34. aws_cdk/aws_backup/__init__.py +317 -28
  35. aws_cdk/aws_backupgateway/__init__.py +13 -2
  36. aws_cdk/aws_batch/__init__.py +1405 -178
  37. aws_cdk/aws_bcmdataexports/__init__.py +21 -2
  38. aws_cdk/aws_bedrock/__init__.py +6747 -627
  39. aws_cdk/aws_bedrockagentcore/__init__.py +10425 -0
  40. aws_cdk/aws_billingconductor/__init__.py +197 -11
  41. aws_cdk/aws_budgets/__init__.py +42 -4
  42. aws_cdk/aws_cassandra/__init__.py +247 -6
  43. aws_cdk/aws_ce/__init__.py +35 -6
  44. aws_cdk/aws_certificatemanager/__init__.py +237 -32
  45. aws_cdk/aws_chatbot/__init__.py +70 -6
  46. aws_cdk/aws_cleanrooms/__init__.py +709 -206
  47. aws_cdk/aws_cleanroomsml/__init__.py +13 -2
  48. aws_cdk/aws_cloud9/__init__.py +13 -2
  49. aws_cdk/aws_cloudformation/__init__.py +345 -166
  50. aws_cdk/aws_cloudfront/__init__.py +2101 -680
  51. aws_cdk/aws_cloudfront/experimental/__init__.py +108 -16
  52. aws_cdk/aws_cloudfront_origins/__init__.py +614 -73
  53. aws_cdk/aws_cloudtrail/__init__.py +301 -17
  54. aws_cdk/aws_cloudwatch/__init__.py +1414 -153
  55. aws_cdk/aws_codeartifact/__init__.py +35 -6
  56. aws_cdk/aws_codebuild/__init__.py +1103 -118
  57. aws_cdk/aws_codecommit/__init__.py +23 -9
  58. aws_cdk/aws_codeconnections/__init__.py +13 -2
  59. aws_cdk/aws_codedeploy/__init__.py +67 -6
  60. aws_cdk/aws_codeguruprofiler/__init__.py +74 -2
  61. aws_cdk/aws_codegurureviewer/__init__.py +13 -2
  62. aws_cdk/aws_codepipeline/__init__.py +127 -64
  63. aws_cdk/aws_codepipeline_actions/__init__.py +749 -0
  64. aws_cdk/aws_codestar/__init__.py +13 -2
  65. aws_cdk/aws_codestarconnections/__init__.py +35 -6
  66. aws_cdk/aws_codestarnotifications/__init__.py +16 -2
  67. aws_cdk/aws_cognito/__init__.py +814 -80
  68. aws_cdk/aws_cognito_identitypool/__init__.py +17 -12
  69. aws_cdk/aws_comprehend/__init__.py +24 -4
  70. aws_cdk/aws_config/__init__.py +191 -30
  71. aws_cdk/aws_connect/__init__.py +2736 -191
  72. aws_cdk/aws_connectcampaigns/__init__.py +13 -2
  73. aws_cdk/aws_connectcampaignsv2/__init__.py +268 -6
  74. aws_cdk/aws_controltower/__init__.py +35 -6
  75. aws_cdk/aws_cur/__init__.py +100 -4
  76. aws_cdk/aws_customerprofiles/__init__.py +617 -27
  77. aws_cdk/aws_databrew/__init__.py +68 -12
  78. aws_cdk/aws_datapipeline/__init__.py +42 -2
  79. aws_cdk/aws_datasync/__init__.py +723 -203
  80. aws_cdk/aws_datazone/__init__.py +4425 -608
  81. aws_cdk/aws_dax/__init__.py +83 -6
  82. aws_cdk/aws_deadline/__init__.py +321 -32
  83. aws_cdk/aws_detective/__init__.py +35 -6
  84. aws_cdk/aws_devicefarm/__init__.py +68 -12
  85. aws_cdk/aws_devopsguru/__init__.py +37 -6
  86. aws_cdk/aws_directoryservice/__init__.py +53 -4
  87. aws_cdk/aws_dlm/__init__.py +13 -2
  88. aws_cdk/aws_dms/__init__.py +184 -27
  89. aws_cdk/aws_docdb/__init__.py +323 -46
  90. aws_cdk/aws_docdbelastic/__init__.py +13 -2
  91. aws_cdk/aws_dsql/__init__.py +340 -12
  92. aws_cdk/aws_dynamodb/__init__.py +1463 -166
  93. aws_cdk/aws_ec2/__init__.py +9636 -1120
  94. aws_cdk/aws_ecr/__init__.py +631 -43
  95. aws_cdk/aws_ecr_assets/__init__.py +4 -0
  96. aws_cdk/aws_ecs/__init__.py +6524 -497
  97. aws_cdk/aws_ecs_patterns/__init__.py +2 -0
  98. aws_cdk/aws_efs/__init__.py +264 -24
  99. aws_cdk/aws_eks/__init__.py +1050 -218
  100. aws_cdk/aws_elasticache/__init__.py +373 -20
  101. aws_cdk/aws_elasticbeanstalk/__init__.py +75 -8
  102. aws_cdk/aws_elasticloadbalancing/__init__.py +16 -2
  103. aws_cdk/aws_elasticloadbalancingv2/__init__.py +1670 -106
  104. aws_cdk/aws_elasticsearch/__init__.py +282 -9
  105. aws_cdk/aws_emr/__init__.py +187 -20
  106. aws_cdk/aws_emrcontainers/__init__.py +71 -2
  107. aws_cdk/aws_emrserverless/__init__.py +188 -3
  108. aws_cdk/aws_entityresolution/__init__.py +585 -58
  109. aws_cdk/aws_events/__init__.py +969 -124
  110. aws_cdk/aws_events_targets/__init__.py +310 -54
  111. aws_cdk/aws_eventschemas/__init__.py +46 -8
  112. aws_cdk/aws_evidently/__init__.py +57 -10
  113. aws_cdk/aws_evs/__init__.py +2244 -0
  114. aws_cdk/aws_finspace/__init__.py +71 -2
  115. aws_cdk/aws_fis/__init__.py +26 -4
  116. aws_cdk/aws_fms/__init__.py +35 -6
  117. aws_cdk/aws_forecast/__init__.py +24 -4
  118. aws_cdk/aws_frauddetector/__init__.py +79 -14
  119. aws_cdk/aws_fsx/__init__.py +1236 -142
  120. aws_cdk/aws_gamelift/__init__.py +653 -78
  121. aws_cdk/aws_gameliftstreams/__init__.py +38 -16
  122. aws_cdk/aws_globalaccelerator/__init__.py +55 -14
  123. aws_cdk/aws_glue/__init__.py +1368 -320
  124. aws_cdk/aws_grafana/__init__.py +13 -2
  125. aws_cdk/aws_greengrass/__init__.py +654 -32
  126. aws_cdk/aws_greengrassv2/__init__.py +53 -4
  127. aws_cdk/aws_groundstation/__init__.py +122 -6
  128. aws_cdk/aws_guardduty/__init__.py +1613 -123
  129. aws_cdk/aws_healthimaging/__init__.py +71 -2
  130. aws_cdk/aws_healthlake/__init__.py +42 -2
  131. aws_cdk/aws_iam/__init__.py +480 -140
  132. aws_cdk/aws_identitystore/__init__.py +24 -4
  133. aws_cdk/aws_imagebuilder/__init__.py +1433 -183
  134. aws_cdk/aws_inspector/__init__.py +38 -6
  135. aws_cdk/aws_inspectorv2/__init__.py +2285 -243
  136. aws_cdk/aws_internetmonitor/__init__.py +71 -2
  137. aws_cdk/aws_invoicing/__init__.py +13 -2
  138. aws_cdk/aws_iot/__init__.py +1730 -86
  139. aws_cdk/aws_iotanalytics/__init__.py +162 -8
  140. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +106 -40
  141. aws_cdk/aws_iotevents/__init__.py +122 -6
  142. aws_cdk/aws_iotfleethub/__init__.py +71 -2
  143. aws_cdk/aws_iotfleetwise/__init__.py +195 -14
  144. aws_cdk/aws_iotsitewise/__init__.py +1837 -89
  145. aws_cdk/aws_iotthingsgraph/__init__.py +13 -2
  146. aws_cdk/aws_iottwinmaker/__init__.py +115 -10
  147. aws_cdk/aws_iotwireless/__init__.py +649 -22
  148. aws_cdk/aws_ivs/__init__.py +561 -57
  149. aws_cdk/aws_ivschat/__init__.py +24 -4
  150. aws_cdk/aws_kafkaconnect/__init__.py +35 -6
  151. aws_cdk/aws_kendra/__init__.py +120 -28
  152. aws_cdk/aws_kendraranking/__init__.py +13 -2
  153. aws_cdk/aws_kinesis/__init__.py +622 -22
  154. aws_cdk/aws_kinesisanalytics/__init__.py +467 -94
  155. aws_cdk/aws_kinesisanalyticsv2/__init__.py +201 -11
  156. aws_cdk/aws_kinesisfirehose/__init__.py +3077 -295
  157. aws_cdk/aws_kinesisvideo/__init__.py +24 -4
  158. aws_cdk/aws_kms/__init__.py +188 -41
  159. aws_cdk/aws_lakeformation/__init__.py +80 -15
  160. aws_cdk/aws_lambda/__init__.py +2101 -252
  161. aws_cdk/aws_lambda_event_sources/__init__.py +638 -1
  162. aws_cdk/aws_lambda_nodejs/__init__.py +63 -24
  163. aws_cdk/aws_launchwizard/__init__.py +13 -2
  164. aws_cdk/aws_lex/__init__.py +871 -8
  165. aws_cdk/aws_licensemanager/__init__.py +24 -4
  166. aws_cdk/aws_lightsail/__init__.py +2159 -975
  167. aws_cdk/aws_location/__init__.py +618 -14
  168. aws_cdk/aws_logs/__init__.py +5904 -956
  169. aws_cdk/aws_lookoutequipment/__init__.py +13 -2
  170. aws_cdk/aws_lookoutmetrics/__init__.py +38 -6
  171. aws_cdk/aws_lookoutvision/__init__.py +71 -2
  172. aws_cdk/aws_m2/__init__.py +94 -19
  173. aws_cdk/aws_macie/__init__.py +49 -11
  174. aws_cdk/aws_managedblockchain/__init__.py +180 -6
  175. aws_cdk/aws_mediaconnect/__init__.py +101 -18
  176. aws_cdk/aws_mediaconvert/__init__.py +35 -6
  177. aws_cdk/aws_medialive/__init__.py +1239 -35
  178. aws_cdk/aws_mediapackage/__init__.py +59 -12
  179. aws_cdk/aws_mediapackagev2/__init__.py +1607 -225
  180. aws_cdk/aws_mediastore/__init__.py +13 -2
  181. aws_cdk/aws_mediatailor/__init__.py +583 -12
  182. aws_cdk/aws_memorydb/__init__.py +271 -12
  183. aws_cdk/aws_mpa/__init__.py +1495 -0
  184. aws_cdk/aws_msk/__init__.py +104 -18
  185. aws_cdk/aws_mwaa/__init__.py +121 -9
  186. aws_cdk/aws_neptune/__init__.py +290 -78
  187. aws_cdk/aws_neptunegraph/__init__.py +24 -4
  188. aws_cdk/aws_networkfirewall/__init__.py +1289 -273
  189. aws_cdk/aws_networkmanager/__init__.py +349 -33
  190. aws_cdk/aws_nimblestudio/__init__.py +75 -8
  191. aws_cdk/aws_notifications/__init__.py +317 -12
  192. aws_cdk/aws_notificationscontacts/__init__.py +13 -2
  193. aws_cdk/aws_oam/__init__.py +24 -4
  194. aws_cdk/aws_observabilityadmin/__init__.py +2561 -0
  195. aws_cdk/aws_odb/__init__.py +5872 -0
  196. aws_cdk/aws_omics/__init__.py +2495 -529
  197. aws_cdk/aws_opensearchserverless/__init__.py +312 -37
  198. aws_cdk/aws_opensearchservice/__init__.py +495 -19
  199. aws_cdk/aws_opsworks/__init__.py +235 -139
  200. aws_cdk/aws_opsworkscm/__init__.py +16 -52
  201. aws_cdk/aws_organizations/__init__.py +70 -10
  202. aws_cdk/aws_osis/__init__.py +167 -2
  203. aws_cdk/aws_panorama/__init__.py +151 -6
  204. aws_cdk/aws_paymentcryptography/__init__.py +24 -4
  205. aws_cdk/aws_pcaconnectorad/__init__.py +59 -10
  206. aws_cdk/aws_pcaconnectorscep/__init__.py +24 -4
  207. aws_cdk/aws_pcs/__init__.py +387 -68
  208. aws_cdk/aws_personalize/__init__.py +46 -8
  209. aws_cdk/aws_pinpoint/__init__.py +329 -38
  210. aws_cdk/aws_pinpointemail/__init__.py +48 -8
  211. aws_cdk/aws_pipes/__init__.py +12 -2
  212. aws_cdk/aws_proton/__init__.py +37 -6
  213. aws_cdk/aws_qbusiness/__init__.py +635 -34
  214. aws_cdk/aws_qldb/__init__.py +24 -4
  215. aws_cdk/aws_quicksight/__init__.py +7900 -1160
  216. aws_cdk/aws_ram/__init__.py +24 -4
  217. aws_cdk/aws_rbin/__init__.py +12 -2
  218. aws_cdk/aws_rds/__init__.py +3345 -512
  219. aws_cdk/aws_redshift/__init__.py +143 -20
  220. aws_cdk/aws_redshiftserverless/__init__.py +692 -4
  221. aws_cdk/aws_refactorspaces/__init__.py +64 -14
  222. aws_cdk/aws_rekognition/__init__.py +93 -6
  223. aws_cdk/aws_resiliencehub/__init__.py +24 -4
  224. aws_cdk/aws_resourceexplorer2/__init__.py +35 -6
  225. aws_cdk/aws_resourcegroups/__init__.py +82 -4
  226. aws_cdk/aws_robomaker/__init__.py +72 -12
  227. aws_cdk/aws_rolesanywhere/__init__.py +180 -6
  228. aws_cdk/aws_route53/__init__.py +3273 -1442
  229. aws_cdk/aws_route53_targets/__init__.py +3 -0
  230. aws_cdk/aws_route53profiles/__init__.py +37 -6
  231. aws_cdk/aws_route53recoverycontrol/__init__.py +46 -8
  232. aws_cdk/aws_route53recoveryreadiness/__init__.py +104 -8
  233. aws_cdk/aws_route53resolver/__init__.py +226 -36
  234. aws_cdk/aws_rtbfabric/__init__.py +3498 -0
  235. aws_cdk/aws_rum/__init__.py +13 -2
  236. aws_cdk/aws_s3/__init__.py +1291 -158
  237. aws_cdk/aws_s3_assets/__init__.py +11 -11
  238. aws_cdk/aws_s3_deployment/__init__.py +147 -11
  239. aws_cdk/aws_s3_notifications/__init__.py +7 -7
  240. aws_cdk/aws_s3express/__init__.py +266 -8
  241. aws_cdk/aws_s3objectlambda/__init__.py +68 -16
  242. aws_cdk/aws_s3outposts/__init__.py +46 -8
  243. aws_cdk/aws_s3tables/__init__.py +2000 -323
  244. aws_cdk/aws_s3vectors/__init__.py +1378 -0
  245. aws_cdk/aws_sagemaker/__init__.py +6617 -363
  246. aws_cdk/aws_sam/__init__.py +79 -14
  247. aws_cdk/aws_scheduler/__init__.py +237 -4
  248. aws_cdk/aws_sdb/__init__.py +12 -2
  249. aws_cdk/aws_secretsmanager/__init__.py +170 -14
  250. aws_cdk/aws_securityhub/__init__.py +3121 -176
  251. aws_cdk/aws_securitylake/__init__.py +46 -8
  252. aws_cdk/aws_servicecatalog/__init__.py +405 -246
  253. aws_cdk/aws_servicecatalogappregistry/__init__.py +164 -8
  254. aws_cdk/aws_servicediscovery/__init__.py +140 -47
  255. aws_cdk/aws_ses/__init__.py +1231 -140
  256. aws_cdk/aws_shield/__init__.py +46 -8
  257. aws_cdk/aws_signer/__init__.py +27 -4
  258. aws_cdk/aws_simspaceweaver/__init__.py +42 -2
  259. aws_cdk/aws_smsvoice/__init__.py +4716 -0
  260. aws_cdk/aws_sns/__init__.py +245 -29
  261. aws_cdk/aws_sns_subscriptions/__init__.py +3 -1
  262. aws_cdk/aws_sqs/__init__.py +211 -14
  263. aws_cdk/aws_ssm/__init__.py +401 -58
  264. aws_cdk/aws_ssmcontacts/__init__.py +46 -8
  265. aws_cdk/aws_ssmguiconnect/__init__.py +13 -2
  266. aws_cdk/aws_ssmincidents/__init__.py +24 -4
  267. aws_cdk/aws_ssmquicksetup/__init__.py +383 -6
  268. aws_cdk/aws_sso/__init__.py +70 -12
  269. aws_cdk/aws_stepfunctions/__init__.py +615 -70
  270. aws_cdk/aws_stepfunctions_tasks/__init__.py +781 -144
  271. aws_cdk/aws_supportapp/__init__.py +39 -6
  272. aws_cdk/aws_synthetics/__init__.py +861 -75
  273. aws_cdk/aws_systemsmanagersap/__init__.py +13 -2
  274. aws_cdk/aws_timestream/__init__.py +104 -8
  275. aws_cdk/aws_transfer/__init__.py +784 -87
  276. aws_cdk/aws_verifiedpermissions/__init__.py +145 -17
  277. aws_cdk/aws_voiceid/__init__.py +41 -2
  278. aws_cdk/aws_vpclattice/__init__.py +376 -30
  279. aws_cdk/aws_waf/__init__.py +79 -14
  280. aws_cdk/aws_wafregional/__init__.py +123 -22
  281. aws_cdk/aws_wafv2/__init__.py +1179 -60
  282. aws_cdk/aws_wisdom/__init__.py +1401 -90
  283. aws_cdk/aws_workspaces/__init__.py +93 -6
  284. aws_cdk/aws_workspacesinstances/__init__.py +3940 -0
  285. aws_cdk/aws_workspacesthinclient/__init__.py +79 -10
  286. aws_cdk/aws_workspacesweb/__init__.py +1057 -141
  287. aws_cdk/aws_xray/__init__.py +48 -8
  288. aws_cdk/cloud_assembly_schema/__init__.py +231 -6
  289. aws_cdk/custom_resources/__init__.py +40 -12
  290. aws_cdk/cx_api/__init__.py +85 -14
  291. aws_cdk/interfaces/__init__.py +739 -0
  292. aws_cdk/interfaces/alexa_ask/__init__.py +146 -0
  293. aws_cdk/interfaces/aws_accessanalyzer/__init__.py +146 -0
  294. aws_cdk/interfaces/aws_acmpca/__init__.py +501 -0
  295. aws_cdk/interfaces/aws_aiops/__init__.py +146 -0
  296. aws_cdk/interfaces/aws_amazonmq/__init__.py +386 -0
  297. aws_cdk/interfaces/aws_amplify/__init__.py +352 -0
  298. aws_cdk/interfaces/aws_amplifyuibuilder/__init__.py +454 -0
  299. aws_cdk/interfaces/aws_apigateway/__init__.py +2486 -0
  300. aws_cdk/interfaces/aws_apigatewayv2/__init__.py +1651 -0
  301. aws_cdk/interfaces/aws_appconfig/__init__.py +1020 -0
  302. aws_cdk/interfaces/aws_appflow/__init__.py +404 -0
  303. aws_cdk/interfaces/aws_appintegrations/__init__.py +396 -0
  304. aws_cdk/interfaces/aws_applicationautoscaling/__init__.py +307 -0
  305. aws_cdk/interfaces/aws_applicationinsights/__init__.py +148 -0
  306. aws_cdk/interfaces/aws_applicationsignals/__init__.py +358 -0
  307. aws_cdk/interfaces/aws_appmesh/__init__.py +888 -0
  308. aws_cdk/interfaces/aws_apprunner/__init__.py +564 -0
  309. aws_cdk/interfaces/aws_appstream/__init__.py +1482 -0
  310. aws_cdk/interfaces/aws_appsync/__init__.py +1326 -0
  311. aws_cdk/interfaces/aws_apptest/__init__.py +163 -0
  312. aws_cdk/interfaces/aws_aps/__init__.py +558 -0
  313. aws_cdk/interfaces/aws_arcregionswitch/__init__.py +146 -0
  314. aws_cdk/interfaces/aws_arczonalshift/__init__.py +273 -0
  315. aws_cdk/interfaces/aws_athena/__init__.py +575 -0
  316. aws_cdk/interfaces/aws_auditmanager/__init__.py +163 -0
  317. aws_cdk/interfaces/aws_autoscaling/__init__.py +705 -0
  318. aws_cdk/interfaces/aws_autoscalingplans/__init__.py +148 -0
  319. aws_cdk/interfaces/aws_b2bi/__init__.py +524 -0
  320. aws_cdk/interfaces/aws_backup/__init__.py +955 -0
  321. aws_cdk/interfaces/aws_backupgateway/__init__.py +146 -0
  322. aws_cdk/interfaces/aws_batch/__init__.py +681 -0
  323. aws_cdk/interfaces/aws_bcmdataexports/__init__.py +146 -0
  324. aws_cdk/interfaces/aws_bedrock/__init__.py +1942 -0
  325. aws_cdk/interfaces/aws_bedrockagentcore/__init__.py +934 -0
  326. aws_cdk/interfaces/aws_billing/__init__.py +146 -0
  327. aws_cdk/interfaces/aws_billingconductor/__init__.py +463 -0
  328. aws_cdk/interfaces/aws_budgets/__init__.py +261 -0
  329. aws_cdk/interfaces/aws_cassandra/__init__.py +381 -0
  330. aws_cdk/interfaces/aws_ce/__init__.py +352 -0
  331. aws_cdk/interfaces/aws_certificatemanager/__init__.py +251 -0
  332. aws_cdk/interfaces/aws_chatbot/__init__.py +366 -0
  333. aws_cdk/interfaces/aws_cleanrooms/__init__.py +1103 -0
  334. aws_cdk/interfaces/aws_cleanroomsml/__init__.py +148 -0
  335. aws_cdk/interfaces/aws_cloud9/__init__.py +166 -0
  336. aws_cdk/interfaces/aws_cloudformation/__init__.py +1919 -0
  337. aws_cdk/interfaces/aws_cloudfront/__init__.py +1998 -0
  338. aws_cdk/interfaces/aws_cloudtrail/__init__.py +570 -0
  339. aws_cdk/interfaces/aws_cloudwatch/__init__.py +733 -0
  340. aws_cdk/interfaces/aws_codeartifact/__init__.py +352 -0
  341. aws_cdk/interfaces/aws_codebuild/__init__.py +487 -0
  342. aws_cdk/interfaces/aws_codecommit/__init__.py +163 -0
  343. aws_cdk/interfaces/aws_codeconnections/__init__.py +146 -0
  344. aws_cdk/interfaces/aws_codedeploy/__init__.py +352 -0
  345. aws_cdk/interfaces/aws_codeguruprofiler/__init__.py +168 -0
  346. aws_cdk/interfaces/aws_codegurureviewer/__init__.py +148 -0
  347. aws_cdk/interfaces/aws_codepipeline/__init__.py +388 -0
  348. aws_cdk/interfaces/aws_codestar/__init__.py +146 -0
  349. aws_cdk/interfaces/aws_codestarconnections/__init__.py +370 -0
  350. aws_cdk/interfaces/aws_codestarnotifications/__init__.py +148 -0
  351. aws_cdk/interfaces/aws_cognito/__init__.py +1929 -0
  352. aws_cdk/interfaces/aws_comprehend/__init__.py +251 -0
  353. aws_cdk/interfaces/aws_config/__init__.py +1165 -0
  354. aws_cdk/interfaces/aws_connect/__init__.py +2949 -0
  355. aws_cdk/interfaces/aws_connectcampaigns/__init__.py +146 -0
  356. aws_cdk/interfaces/aws_connectcampaignsv2/__init__.py +146 -0
  357. aws_cdk/interfaces/aws_controltower/__init__.py +394 -0
  358. aws_cdk/interfaces/aws_cur/__init__.py +146 -0
  359. aws_cdk/interfaces/aws_customerprofiles/__init__.py +915 -0
  360. aws_cdk/interfaces/aws_databrew/__init__.py +661 -0
  361. aws_cdk/interfaces/aws_datapipeline/__init__.py +146 -0
  362. aws_cdk/interfaces/aws_datasync/__init__.py +1384 -0
  363. aws_cdk/interfaces/aws_datazone/__init__.py +2238 -0
  364. aws_cdk/interfaces/aws_dax/__init__.py +364 -0
  365. aws_cdk/interfaces/aws_deadline/__init__.py +1303 -0
  366. aws_cdk/interfaces/aws_detective/__init__.py +364 -0
  367. aws_cdk/interfaces/aws_devicefarm/__init__.py +663 -0
  368. aws_cdk/interfaces/aws_devopsguru/__init__.py +362 -0
  369. aws_cdk/interfaces/aws_directoryservice/__init__.py +251 -0
  370. aws_cdk/interfaces/aws_dlm/__init__.py +166 -0
  371. aws_cdk/interfaces/aws_dms/__init__.py +1176 -0
  372. aws_cdk/interfaces/aws_docdb/__init__.py +560 -0
  373. aws_cdk/interfaces/aws_docdbelastic/__init__.py +146 -0
  374. aws_cdk/interfaces/aws_dsql/__init__.py +146 -0
  375. aws_cdk/interfaces/aws_dynamodb/__init__.py +278 -0
  376. aws_cdk/interfaces/aws_ec2/__init__.py +11963 -0
  377. aws_cdk/interfaces/aws_ecr/__init__.py +814 -0
  378. aws_cdk/interfaces/aws_ecs/__init__.py +845 -0
  379. aws_cdk/interfaces/aws_efs/__init__.py +392 -0
  380. aws_cdk/interfaces/aws_eks/__init__.py +948 -0
  381. aws_cdk/interfaces/aws_elasticache/__init__.py +1108 -0
  382. aws_cdk/interfaces/aws_elasticbeanstalk/__init__.py +503 -0
  383. aws_cdk/interfaces/aws_elasticloadbalancing/__init__.py +148 -0
  384. aws_cdk/interfaces/aws_elasticloadbalancingv2/__init__.py +795 -0
  385. aws_cdk/interfaces/aws_elasticsearch/__init__.py +158 -0
  386. aws_cdk/interfaces/aws_emr/__init__.py +913 -0
  387. aws_cdk/interfaces/aws_emrcontainers/__init__.py +168 -0
  388. aws_cdk/interfaces/aws_emrserverless/__init__.py +166 -0
  389. aws_cdk/interfaces/aws_entityresolution/__init__.py +608 -0
  390. aws_cdk/interfaces/aws_events/__init__.py +872 -0
  391. aws_cdk/interfaces/aws_eventschemas/__init__.py +455 -0
  392. aws_cdk/interfaces/aws_evidently/__init__.py +558 -0
  393. aws_cdk/interfaces/aws_evs/__init__.py +166 -0
  394. aws_cdk/interfaces/aws_finspace/__init__.py +166 -0
  395. aws_cdk/interfaces/aws_fis/__init__.py +271 -0
  396. aws_cdk/interfaces/aws_fms/__init__.py +364 -0
  397. aws_cdk/interfaces/aws_forecast/__init__.py +249 -0
  398. aws_cdk/interfaces/aws_frauddetector/__init__.py +764 -0
  399. aws_cdk/interfaces/aws_fsx/__init__.py +663 -0
  400. aws_cdk/interfaces/aws_gamelift/__init__.py +1325 -0
  401. aws_cdk/interfaces/aws_gameliftstreams/__init__.py +249 -0
  402. aws_cdk/interfaces/aws_globalaccelerator/__init__.py +461 -0
  403. aws_cdk/interfaces/aws_glue/__init__.py +2377 -0
  404. aws_cdk/interfaces/aws_grafana/__init__.py +146 -0
  405. aws_cdk/interfaces/aws_greengrass/__init__.py +1871 -0
  406. aws_cdk/interfaces/aws_greengrassv2/__init__.py +251 -0
  407. aws_cdk/interfaces/aws_groundstation/__init__.py +396 -0
  408. aws_cdk/interfaces/aws_guardduty/__init__.py +1225 -0
  409. aws_cdk/interfaces/aws_healthimaging/__init__.py +163 -0
  410. aws_cdk/interfaces/aws_healthlake/__init__.py +146 -0
  411. aws_cdk/interfaces/aws_iam/__init__.py +1803 -0
  412. aws_cdk/interfaces/aws_identitystore/__init__.py +288 -0
  413. aws_cdk/interfaces/aws_imagebuilder/__init__.py +984 -0
  414. aws_cdk/interfaces/aws_inspector/__init__.py +354 -0
  415. aws_cdk/interfaces/aws_inspectorv2/__init__.py +467 -0
  416. aws_cdk/interfaces/aws_internetmonitor/__init__.py +163 -0
  417. aws_cdk/interfaces/aws_invoicing/__init__.py +146 -0
  418. aws_cdk/interfaces/aws_iot/__init__.py +3483 -0
  419. aws_cdk/interfaces/aws_iotanalytics/__init__.py +455 -0
  420. aws_cdk/interfaces/aws_iotcoredeviceadvisor/__init__.py +168 -0
  421. aws_cdk/interfaces/aws_iotevents/__init__.py +352 -0
  422. aws_cdk/interfaces/aws_iotfleethub/__init__.py +166 -0
  423. aws_cdk/interfaces/aws_iotfleetwise/__init__.py +892 -0
  424. aws_cdk/interfaces/aws_iotsitewise/__init__.py +1097 -0
  425. aws_cdk/interfaces/aws_iotthingsgraph/__init__.py +146 -0
  426. aws_cdk/interfaces/aws_iottwinmaker/__init__.py +711 -0
  427. aws_cdk/interfaces/aws_iotwireless/__init__.py +1401 -0
  428. aws_cdk/interfaces/aws_ivs/__init__.py +1075 -0
  429. aws_cdk/interfaces/aws_ivschat/__init__.py +251 -0
  430. aws_cdk/interfaces/aws_kafkaconnect/__init__.py +354 -0
  431. aws_cdk/interfaces/aws_kendra/__init__.py +428 -0
  432. aws_cdk/interfaces/aws_kendraranking/__init__.py +166 -0
  433. aws_cdk/interfaces/aws_kinesis/__init__.py +364 -0
  434. aws_cdk/interfaces/aws_kinesisanalytics/__init__.py +364 -0
  435. aws_cdk/interfaces/aws_kinesisanalyticsv2/__init__.py +479 -0
  436. aws_cdk/interfaces/aws_kinesisfirehose/__init__.py +168 -0
  437. aws_cdk/interfaces/aws_kinesisvideo/__init__.py +283 -0
  438. aws_cdk/interfaces/aws_kms/__init__.py +376 -0
  439. aws_cdk/interfaces/aws_lakeformation/__init__.py +860 -0
  440. aws_cdk/interfaces/aws_lambda/__init__.py +1141 -0
  441. aws_cdk/interfaces/aws_launchwizard/__init__.py +146 -0
  442. aws_cdk/interfaces/aws_lex/__init__.py +513 -0
  443. aws_cdk/interfaces/aws_licensemanager/__init__.py +249 -0
  444. aws_cdk/interfaces/aws_lightsail/__init__.py +1744 -0
  445. aws_cdk/interfaces/aws_location/__init__.py +879 -0
  446. aws_cdk/interfaces/aws_logs/__init__.py +1667 -0
  447. aws_cdk/interfaces/aws_lookoutequipment/__init__.py +168 -0
  448. aws_cdk/interfaces/aws_lookoutmetrics/__init__.py +251 -0
  449. aws_cdk/interfaces/aws_lookoutvision/__init__.py +163 -0
  450. aws_cdk/interfaces/aws_m2/__init__.py +352 -0
  451. aws_cdk/interfaces/aws_macie/__init__.py +512 -0
  452. aws_cdk/interfaces/aws_managedblockchain/__init__.py +381 -0
  453. aws_cdk/interfaces/aws_mediaconnect/__init__.py +1028 -0
  454. aws_cdk/interfaces/aws_mediaconvert/__init__.py +396 -0
  455. aws_cdk/interfaces/aws_medialive/__init__.py +1755 -0
  456. aws_cdk/interfaces/aws_mediapackage/__init__.py +644 -0
  457. aws_cdk/interfaces/aws_mediapackagev2/__init__.py +618 -0
  458. aws_cdk/interfaces/aws_mediastore/__init__.py +146 -0
  459. aws_cdk/interfaces/aws_mediatailor/__init__.py +788 -0
  460. aws_cdk/interfaces/aws_memorydb/__init__.py +685 -0
  461. aws_cdk/interfaces/aws_mpa/__init__.py +249 -0
  462. aws_cdk/interfaces/aws_msk/__init__.py +764 -0
  463. aws_cdk/interfaces/aws_mwaa/__init__.py +166 -0
  464. aws_cdk/interfaces/aws_neptune/__init__.py +663 -0
  465. aws_cdk/interfaces/aws_neptunegraph/__init__.py +265 -0
  466. aws_cdk/interfaces/aws_networkfirewall/__init__.py +669 -0
  467. aws_cdk/interfaces/aws_networkmanager/__init__.py +1832 -0
  468. aws_cdk/interfaces/aws_nimblestudio/__init__.py +388 -0
  469. aws_cdk/interfaces/aws_notifications/__init__.py +868 -0
  470. aws_cdk/interfaces/aws_notificationscontacts/__init__.py +148 -0
  471. aws_cdk/interfaces/aws_oam/__init__.py +249 -0
  472. aws_cdk/interfaces/aws_observabilityadmin/__init__.py +362 -0
  473. aws_cdk/interfaces/aws_odb/__init__.py +562 -0
  474. aws_cdk/interfaces/aws_omics/__init__.py +838 -0
  475. aws_cdk/interfaces/aws_opensearchserverless/__init__.py +859 -0
  476. aws_cdk/interfaces/aws_opensearchservice/__init__.py +283 -0
  477. aws_cdk/interfaces/aws_opsworks/__init__.py +772 -0
  478. aws_cdk/interfaces/aws_opsworkscm/__init__.py +146 -0
  479. aws_cdk/interfaces/aws_organizations/__init__.py +646 -0
  480. aws_cdk/interfaces/aws_osis/__init__.py +146 -0
  481. aws_cdk/interfaces/aws_panorama/__init__.py +420 -0
  482. aws_cdk/interfaces/aws_paymentcryptography/__init__.py +249 -0
  483. aws_cdk/interfaces/aws_pcaconnectorad/__init__.py +608 -0
  484. aws_cdk/interfaces/aws_pcaconnectorscep/__init__.py +249 -0
  485. aws_cdk/interfaces/aws_pcs/__init__.py +352 -0
  486. aws_cdk/interfaces/aws_personalize/__init__.py +455 -0
  487. aws_cdk/interfaces/aws_pinpoint/__init__.py +2125 -0
  488. aws_cdk/interfaces/aws_pinpointemail/__init__.py +467 -0
  489. aws_cdk/interfaces/aws_pipes/__init__.py +158 -0
  490. aws_cdk/interfaces/aws_proton/__init__.py +360 -0
  491. aws_cdk/interfaces/aws_qbusiness/__init__.py +1122 -0
  492. aws_cdk/interfaces/aws_qldb/__init__.py +283 -0
  493. aws_cdk/interfaces/aws_quicksight/__init__.py +1566 -0
  494. aws_cdk/interfaces/aws_ram/__init__.py +249 -0
  495. aws_cdk/interfaces/aws_rbin/__init__.py +146 -0
  496. aws_cdk/interfaces/aws_rds/__init__.py +1780 -0
  497. aws_cdk/interfaces/aws_redshift/__init__.py +1104 -0
  498. aws_cdk/interfaces/aws_redshiftserverless/__init__.py +356 -0
  499. aws_cdk/interfaces/aws_refactorspaces/__init__.py +605 -0
  500. aws_cdk/interfaces/aws_rekognition/__init__.py +406 -0
  501. aws_cdk/interfaces/aws_resiliencehub/__init__.py +251 -0
  502. aws_cdk/interfaces/aws_resourceexplorer2/__init__.py +354 -0
  503. aws_cdk/interfaces/aws_resourcegroups/__init__.py +261 -0
  504. aws_cdk/interfaces/aws_robomaker/__init__.py +673 -0
  505. aws_cdk/interfaces/aws_rolesanywhere/__init__.py +384 -0
  506. aws_cdk/interfaces/aws_route53/__init__.py +804 -0
  507. aws_cdk/interfaces/aws_route53profiles/__init__.py +368 -0
  508. aws_cdk/interfaces/aws_route53recoverycontrol/__init__.py +463 -0
  509. aws_cdk/interfaces/aws_route53recoveryreadiness/__init__.py +535 -0
  510. aws_cdk/interfaces/aws_route53resolver/__init__.py +1356 -0
  511. aws_cdk/interfaces/aws_rtbfabric/__init__.py +352 -0
  512. aws_cdk/interfaces/aws_rum/__init__.py +146 -0
  513. aws_cdk/interfaces/aws_s3/__init__.py +1171 -0
  514. aws_cdk/interfaces/aws_s3express/__init__.py +392 -0
  515. aws_cdk/interfaces/aws_s3objectlambda/__init__.py +271 -0
  516. aws_cdk/interfaces/aws_s3outposts/__init__.py +455 -0
  517. aws_cdk/interfaces/aws_s3tables/__init__.py +575 -0
  518. aws_cdk/interfaces/aws_s3vectors/__init__.py +354 -0
  519. aws_cdk/interfaces/aws_sagemaker/__init__.py +3797 -0
  520. aws_cdk/interfaces/aws_sam/__init__.py +603 -0
  521. aws_cdk/interfaces/aws_scheduler/__init__.py +286 -0
  522. aws_cdk/interfaces/aws_sdb/__init__.py +146 -0
  523. aws_cdk/interfaces/aws_secretsmanager/__init__.py +461 -0
  524. aws_cdk/interfaces/aws_securityhub/__init__.py +1499 -0
  525. aws_cdk/interfaces/aws_securitylake/__init__.py +474 -0
  526. aws_cdk/interfaces/aws_servicecatalog/__init__.py +1829 -0
  527. aws_cdk/interfaces/aws_servicecatalogappregistry/__init__.py +557 -0
  528. aws_cdk/interfaces/aws_servicediscovery/__init__.py +636 -0
  529. aws_cdk/interfaces/aws_ses/__init__.py +2018 -0
  530. aws_cdk/interfaces/aws_shield/__init__.py +455 -0
  531. aws_cdk/interfaces/aws_signer/__init__.py +266 -0
  532. aws_cdk/interfaces/aws_simspaceweaver/__init__.py +146 -0
  533. aws_cdk/interfaces/aws_smsvoice/__init__.py +892 -0
  534. aws_cdk/interfaces/aws_sns/__init__.py +455 -0
  535. aws_cdk/interfaces/aws_sqs/__init__.py +364 -0
  536. aws_cdk/interfaces/aws_ssm/__init__.py +982 -0
  537. aws_cdk/interfaces/aws_ssmcontacts/__init__.py +455 -0
  538. aws_cdk/interfaces/aws_ssmguiconnect/__init__.py +146 -0
  539. aws_cdk/interfaces/aws_ssmincidents/__init__.py +249 -0
  540. aws_cdk/interfaces/aws_ssmquicksetup/__init__.py +253 -0
  541. aws_cdk/interfaces/aws_sso/__init__.py +797 -0
  542. aws_cdk/interfaces/aws_stepfunctions/__init__.py +459 -0
  543. aws_cdk/interfaces/aws_supportapp/__init__.py +372 -0
  544. aws_cdk/interfaces/aws_synthetics/__init__.py +249 -0
  545. aws_cdk/interfaces/aws_systemsmanagersap/__init__.py +148 -0
  546. aws_cdk/interfaces/aws_timestream/__init__.py +526 -0
  547. aws_cdk/interfaces/aws_transfer/__init__.py +967 -0
  548. aws_cdk/interfaces/aws_verifiedpermissions/__init__.py +538 -0
  549. aws_cdk/interfaces/aws_voiceid/__init__.py +146 -0
  550. aws_cdk/interfaces/aws_vpclattice/__init__.py +1418 -0
  551. aws_cdk/interfaces/aws_waf/__init__.py +764 -0
  552. aws_cdk/interfaces/aws_wafregional/__init__.py +1182 -0
  553. aws_cdk/interfaces/aws_wafv2/__init__.py +870 -0
  554. aws_cdk/interfaces/aws_wisdom/__init__.py +1556 -0
  555. aws_cdk/interfaces/aws_workspaces/__init__.py +352 -0
  556. aws_cdk/interfaces/aws_workspacesinstances/__init__.py +390 -0
  557. aws_cdk/interfaces/aws_workspacesthinclient/__init__.py +168 -0
  558. aws_cdk/interfaces/aws_workspacesweb/__init__.py +1085 -0
  559. aws_cdk/interfaces/aws_xray/__init__.py +457 -0
  560. aws_cdk/pipelines/__init__.py +192 -42
  561. aws_cdk/region_info/__init__.py +3 -0
  562. aws_cdk/triggers/__init__.py +60 -18
  563. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/METADATA +338 -16
  564. aws_cdk_lib-2.224.0.dist-info/RECORD +584 -0
  565. aws_cdk_lib-2.200.2.dist-info/RECORD +0 -304
  566. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/LICENSE +0 -0
  567. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/NOTICE +0 -0
  568. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/WHEEL +0 -0
  569. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/top_level.txt +0 -0
@@ -128,12 +128,51 @@ By using these methods, you can grant specific operational permissions on the EC
128
128
 
129
129
  ### Image tag immutability
130
130
 
131
- You can set tag immutability on images in our repository using the `imageTagMutability` construct prop.
131
+ You can set tag immutability on images in your repository using the `imageTagMutability` construct prop.
132
132
 
133
133
  ```python
134
134
  ecr.Repository(self, "Repo", image_tag_mutability=ecr.TagMutability.IMMUTABLE)
135
135
  ```
136
136
 
137
+ #### Image tag mutability with exclusion filters
138
+
139
+ ECR supports more granular control over image tag mutability by allowing you to specify exclusion filters. This enables you to make your repository immutable while allowing specific tag patterns to remain mutable (or vice versa).
140
+
141
+ There are two new mutability options that work with exclusion filters:
142
+
143
+ * `MUTABLE_WITH_EXCLUSION`: Tags are mutable by default, except those matching the exclusion filters
144
+ * `IMMUTABLE_WITH_EXCLUSION`: Tags are immutable by default, except those matching the exclusion filters
145
+
146
+ Use `ImageTagMutabilityExclusionFilter.wildcard()` to create filters with wildcard patterns:
147
+
148
+ ```python
149
+ # Make all tags immutable except for those starting with 'dev-' or 'test-'
150
+ ecr.Repository(self, "Repo",
151
+ image_tag_mutability=ecr.TagMutability.IMMUTABLE_WITH_EXCLUSION,
152
+ image_tag_mutability_exclusion_filters=[
153
+ ecr.ImageTagMutabilityExclusionFilter.wildcard("dev-*"),
154
+ ecr.ImageTagMutabilityExclusionFilter.wildcard("test-*")
155
+ ]
156
+ )
157
+ ```
158
+
159
+ ```python
160
+ # Make all tags mutable except for production releases
161
+ ecr.Repository(self, "Repo",
162
+ image_tag_mutability=ecr.TagMutability.MUTABLE_WITH_EXCLUSION,
163
+ image_tag_mutability_exclusion_filters=[
164
+ ecr.ImageTagMutabilityExclusionFilter.wildcard("prod-*"),
165
+ ecr.ImageTagMutabilityExclusionFilter.wildcard("release-v*")
166
+ ]
167
+ )
168
+ ```
169
+
170
+ ##### Exclusion filter pattern rules
171
+
172
+ * Patterns can contain alphanumeric characters, dots (.), underscores (_), hyphens (-), and asterisks (*) as wildcards
173
+ * Maximum pattern length is 128 characters
174
+ * You can specify up to 5 exclusion filters per repository
175
+
137
176
  ### Encryption
138
177
 
139
178
  By default, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts your data at rest using an AES-256 encryption algorithm. For more control over the encryption for your Amazon ECR repositories, you can use server-side encryption with KMS keys stored in AWS Key Management Service (AWS KMS). Read more about this feature in the [ECR Developer Guide](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html).
@@ -320,7 +359,23 @@ from ..aws_iam import (
320
359
  IGrantable as _IGrantable_71c4f5de,
321
360
  PolicyStatement as _PolicyStatement_0fe33853,
322
361
  )
323
- from ..aws_kms import IKey as _IKey_5f11635f
362
+ from ..interfaces.aws_ecr import (
363
+ IPublicRepositoryRef as _IPublicRepositoryRef_fef651e6,
364
+ IPullThroughCacheRuleRef as _IPullThroughCacheRuleRef_6d4698a2,
365
+ IRegistryPolicyRef as _IRegistryPolicyRef_42ef4743,
366
+ IRegistryScanningConfigurationRef as _IRegistryScanningConfigurationRef_777252de,
367
+ IReplicationConfigurationRef as _IReplicationConfigurationRef_a2ce7034,
368
+ IRepositoryCreationTemplateRef as _IRepositoryCreationTemplateRef_b7cd8f39,
369
+ IRepositoryRef as _IRepositoryRef_f3b81117,
370
+ PublicRepositoryReference as _PublicRepositoryReference_b2001418,
371
+ PullThroughCacheRuleReference as _PullThroughCacheRuleReference_c998144d,
372
+ RegistryPolicyReference as _RegistryPolicyReference_2d2e9fdc,
373
+ RegistryScanningConfigurationReference as _RegistryScanningConfigurationReference_4b2666f2,
374
+ ReplicationConfigurationReference as _ReplicationConfigurationReference_d963555d,
375
+ RepositoryCreationTemplateReference as _RepositoryCreationTemplateReference_4a34e559,
376
+ RepositoryReference as _RepositoryReference_af4d81f0,
377
+ )
378
+ from ..interfaces.aws_kms import IKeyRef as _IKeyRef_d4fc6ef3
324
379
 
325
380
 
326
381
  class AuthorizationToken(
@@ -351,7 +406,7 @@ class AuthorizationToken(
351
406
  return typing.cast(None, jsii.sinvoke(cls, "grantRead", [grantee]))
352
407
 
353
408
 
354
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
409
+ @jsii.implements(_IInspectable_c2943556, _IPublicRepositoryRef_fef651e6, _ITaggable_36806126)
355
410
  class CfnPublicRepository(
356
411
  _CfnResource_9df397a6,
357
412
  metaclass=jsii.JSIIMeta,
@@ -395,7 +450,8 @@ class CfnPublicRepository(
395
450
  repository_policy_text: typing.Any = None,
396
451
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
397
452
  ) -> None:
398
- '''
453
+ '''Create a new ``AWS::ECR::PublicRepository``.
454
+
399
455
  :param scope: Scope in which this resource is defined.
400
456
  :param id: Construct identifier for this resource (unique in its scope).
401
457
  :param repository_catalog_data: The details about the repository that are publicly visible in the Amazon ECR Public Gallery. For more information, see `Amazon ECR Public repository catalog data <https://docs.aws.amazon.com/AmazonECR/latest/public/public-repository-catalog-data.html>`_ in the *Amazon ECR Public User Guide* .
@@ -416,6 +472,48 @@ class CfnPublicRepository(
416
472
 
417
473
  jsii.create(self.__class__, self, [scope, id, props])
418
474
 
475
+ @jsii.member(jsii_name="fromPublicRepositoryArn")
476
+ @builtins.classmethod
477
+ def from_public_repository_arn(
478
+ cls,
479
+ scope: _constructs_77d1e7e8.Construct,
480
+ id: builtins.str,
481
+ arn: builtins.str,
482
+ ) -> _IPublicRepositoryRef_fef651e6:
483
+ '''Creates a new IPublicRepositoryRef from an ARN.
484
+
485
+ :param scope: -
486
+ :param id: -
487
+ :param arn: -
488
+ '''
489
+ if __debug__:
490
+ type_hints = typing.get_type_hints(_typecheckingstub__df08363dd3d49b4b281729649cda34a42b796ed2c1c7a9e6c28145049dcd5bf9)
491
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
492
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
493
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
494
+ return typing.cast(_IPublicRepositoryRef_fef651e6, jsii.sinvoke(cls, "fromPublicRepositoryArn", [scope, id, arn]))
495
+
496
+ @jsii.member(jsii_name="fromRepositoryName")
497
+ @builtins.classmethod
498
+ def from_repository_name(
499
+ cls,
500
+ scope: _constructs_77d1e7e8.Construct,
501
+ id: builtins.str,
502
+ repository_name: builtins.str,
503
+ ) -> _IPublicRepositoryRef_fef651e6:
504
+ '''Creates a new IPublicRepositoryRef from a repositoryName.
505
+
506
+ :param scope: -
507
+ :param id: -
508
+ :param repository_name: -
509
+ '''
510
+ if __debug__:
511
+ type_hints = typing.get_type_hints(_typecheckingstub__a12c8d1af48bfd21b0af8b54f0dfaf211699928aac8fb0ffb2e0ff8ce482ac1a)
512
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
513
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
514
+ check_type(argname="argument repository_name", value=repository_name, expected_type=type_hints["repository_name"])
515
+ return typing.cast(_IPublicRepositoryRef_fef651e6, jsii.sinvoke(cls, "fromRepositoryName", [scope, id, repository_name]))
516
+
419
517
  @jsii.member(jsii_name="inspect")
420
518
  def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
421
519
  '''Examines the CloudFormation resource and discloses attributes.
@@ -462,6 +560,12 @@ class CfnPublicRepository(
462
560
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
463
561
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
464
562
 
563
+ @builtins.property
564
+ @jsii.member(jsii_name="publicRepositoryRef")
565
+ def public_repository_ref(self) -> _PublicRepositoryReference_b2001418:
566
+ '''A reference to a PublicRepository resource.'''
567
+ return typing.cast(_PublicRepositoryReference_b2001418, jsii.get(self, "publicRepositoryRef"))
568
+
465
569
  @builtins.property
466
570
  @jsii.member(jsii_name="tags")
467
571
  def tags(self) -> _TagManager_0a598cb3:
@@ -769,7 +873,7 @@ class CfnPublicRepositoryProps:
769
873
  )
770
874
 
771
875
 
772
- @jsii.implements(_IInspectable_c2943556)
876
+ @jsii.implements(_IInspectable_c2943556, _IPullThroughCacheRuleRef_6d4698a2)
773
877
  class CfnPullThroughCacheRule(
774
878
  _CfnResource_9df397a6,
775
879
  metaclass=jsii.JSIIMeta,
@@ -811,7 +915,8 @@ class CfnPullThroughCacheRule(
811
915
  upstream_registry_url: typing.Optional[builtins.str] = None,
812
916
  upstream_repository_prefix: typing.Optional[builtins.str] = None,
813
917
  ) -> None:
814
- '''
918
+ '''Create a new ``AWS::ECR::PullThroughCacheRule``.
919
+
815
920
  :param scope: Scope in which this resource is defined.
816
921
  :param id: Construct identifier for this resource (unique in its scope).
817
922
  :param credential_arn: The ARN of the Secrets Manager secret associated with the pull through cache rule.
@@ -871,6 +976,12 @@ class CfnPullThroughCacheRule(
871
976
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
872
977
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
873
978
 
979
+ @builtins.property
980
+ @jsii.member(jsii_name="pullThroughCacheRuleRef")
981
+ def pull_through_cache_rule_ref(self) -> _PullThroughCacheRuleReference_c998144d:
982
+ '''A reference to a PullThroughCacheRule resource.'''
983
+ return typing.cast(_PullThroughCacheRuleReference_c998144d, jsii.get(self, "pullThroughCacheRuleRef"))
984
+
874
985
  @builtins.property
875
986
  @jsii.member(jsii_name="credentialArn")
876
987
  def credential_arn(self) -> typing.Optional[builtins.str]:
@@ -1088,7 +1199,7 @@ class CfnPullThroughCacheRuleProps:
1088
1199
  )
1089
1200
 
1090
1201
 
1091
- @jsii.implements(_IInspectable_c2943556)
1202
+ @jsii.implements(_IInspectable_c2943556, _IRegistryPolicyRef_42ef4743)
1092
1203
  class CfnRegistryPolicy(
1093
1204
  _CfnResource_9df397a6,
1094
1205
  metaclass=jsii.JSIIMeta,
@@ -1122,7 +1233,8 @@ class CfnRegistryPolicy(
1122
1233
  *,
1123
1234
  policy_text: typing.Any,
1124
1235
  ) -> None:
1125
- '''
1236
+ '''Create a new ``AWS::ECR::RegistryPolicy``.
1237
+
1126
1238
  :param scope: Scope in which this resource is defined.
1127
1239
  :param id: Construct identifier for this resource (unique in its scope).
1128
1240
  :param policy_text: The JSON policy text for your registry.
@@ -1179,6 +1291,12 @@ class CfnRegistryPolicy(
1179
1291
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1180
1292
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1181
1293
 
1294
+ @builtins.property
1295
+ @jsii.member(jsii_name="registryPolicyRef")
1296
+ def registry_policy_ref(self) -> _RegistryPolicyReference_2d2e9fdc:
1297
+ '''A reference to a RegistryPolicy resource.'''
1298
+ return typing.cast(_RegistryPolicyReference_2d2e9fdc, jsii.get(self, "registryPolicyRef"))
1299
+
1182
1300
  @builtins.property
1183
1301
  @jsii.member(jsii_name="policyText")
1184
1302
  def policy_text(self) -> typing.Any:
@@ -1248,7 +1366,7 @@ class CfnRegistryPolicyProps:
1248
1366
  )
1249
1367
 
1250
1368
 
1251
- @jsii.implements(_IInspectable_c2943556)
1369
+ @jsii.implements(_IInspectable_c2943556, _IRegistryScanningConfigurationRef_777252de)
1252
1370
  class CfnRegistryScanningConfiguration(
1253
1371
  _CfnResource_9df397a6,
1254
1372
  metaclass=jsii.JSIIMeta,
@@ -1286,7 +1404,8 @@ class CfnRegistryScanningConfiguration(
1286
1404
  rules: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRegistryScanningConfiguration.ScanningRuleProperty", typing.Dict[builtins.str, typing.Any]]]]],
1287
1405
  scan_type: builtins.str,
1288
1406
  ) -> None:
1289
- '''
1407
+ '''Create a new ``AWS::ECR::RegistryScanningConfiguration``.
1408
+
1290
1409
  :param scope: Scope in which this resource is defined.
1291
1410
  :param id: Construct identifier for this resource (unique in its scope).
1292
1411
  :param rules: The scanning rules associated with the registry.
@@ -1344,6 +1463,14 @@ class CfnRegistryScanningConfiguration(
1344
1463
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1345
1464
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1346
1465
 
1466
+ @builtins.property
1467
+ @jsii.member(jsii_name="registryScanningConfigurationRef")
1468
+ def registry_scanning_configuration_ref(
1469
+ self,
1470
+ ) -> _RegistryScanningConfigurationReference_4b2666f2:
1471
+ '''A reference to a RegistryScanningConfiguration resource.'''
1472
+ return typing.cast(_RegistryScanningConfigurationReference_4b2666f2, jsii.get(self, "registryScanningConfigurationRef"))
1473
+
1347
1474
  @builtins.property
1348
1475
  @jsii.member(jsii_name="rules")
1349
1476
  def rules(
@@ -1607,7 +1734,7 @@ class CfnRegistryScanningConfigurationProps:
1607
1734
  )
1608
1735
 
1609
1736
 
1610
- @jsii.implements(_IInspectable_c2943556)
1737
+ @jsii.implements(_IInspectable_c2943556, _IReplicationConfigurationRef_a2ce7034)
1611
1738
  class CfnReplicationConfiguration(
1612
1739
  _CfnResource_9df397a6,
1613
1740
  metaclass=jsii.JSIIMeta,
@@ -1655,7 +1782,8 @@ class CfnReplicationConfiguration(
1655
1782
  *,
1656
1783
  replication_configuration: typing.Union[_IResolvable_da3f097b, typing.Union["CfnReplicationConfiguration.ReplicationConfigurationProperty", typing.Dict[builtins.str, typing.Any]]],
1657
1784
  ) -> None:
1658
- '''
1785
+ '''Create a new ``AWS::ECR::ReplicationConfiguration``.
1786
+
1659
1787
  :param scope: Scope in which this resource is defined.
1660
1788
  :param id: Construct identifier for this resource (unique in its scope).
1661
1789
  :param replication_configuration: The replication configuration for a registry.
@@ -1714,6 +1842,14 @@ class CfnReplicationConfiguration(
1714
1842
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1715
1843
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1716
1844
 
1845
+ @builtins.property
1846
+ @jsii.member(jsii_name="replicationConfigurationRef")
1847
+ def replication_configuration_ref(
1848
+ self,
1849
+ ) -> _ReplicationConfigurationReference_d963555d:
1850
+ '''A reference to a ReplicationConfiguration resource.'''
1851
+ return typing.cast(_ReplicationConfigurationReference_d963555d, jsii.get(self, "replicationConfigurationRef"))
1852
+
1717
1853
  @builtins.property
1718
1854
  @jsii.member(jsii_name="replicationConfiguration")
1719
1855
  def replication_configuration(
@@ -2102,7 +2238,7 @@ class CfnReplicationConfigurationProps:
2102
2238
  )
2103
2239
 
2104
2240
 
2105
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
2241
+ @jsii.implements(_IInspectable_c2943556, _IRepositoryRef_f3b81117, _ITaggable_36806126)
2106
2242
  class CfnRepository(
2107
2243
  _CfnResource_9df397a6,
2108
2244
  metaclass=jsii.JSIIMeta,
@@ -2136,6 +2272,10 @@ class CfnRepository(
2136
2272
  scan_on_push=False
2137
2273
  ),
2138
2274
  image_tag_mutability="imageTagMutability",
2275
+ image_tag_mutability_exclusion_filters=[ecr.CfnRepository.ImageTagMutabilityExclusionFilterProperty(
2276
+ image_tag_mutability_exclusion_filter_type="imageTagMutabilityExclusionFilterType",
2277
+ image_tag_mutability_exclusion_filter_value="imageTagMutabilityExclusionFilterValue"
2278
+ )],
2139
2279
  lifecycle_policy=ecr.CfnRepository.LifecyclePolicyProperty(
2140
2280
  lifecycle_policy_text="lifecyclePolicyText",
2141
2281
  registry_id="registryId"
@@ -2158,18 +2298,21 @@ class CfnRepository(
2158
2298
  encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRepository.EncryptionConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2159
2299
  image_scanning_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRepository.ImageScanningConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2160
2300
  image_tag_mutability: typing.Optional[builtins.str] = None,
2301
+ image_tag_mutability_exclusion_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRepository.ImageTagMutabilityExclusionFilterProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
2161
2302
  lifecycle_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRepository.LifecyclePolicyProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2162
2303
  repository_name: typing.Optional[builtins.str] = None,
2163
2304
  repository_policy_text: typing.Any = None,
2164
2305
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
2165
2306
  ) -> None:
2166
- '''
2307
+ '''Create a new ``AWS::ECR::Repository``.
2308
+
2167
2309
  :param scope: Scope in which this resource is defined.
2168
2310
  :param id: Construct identifier for this resource (unique in its scope).
2169
2311
  :param empty_on_delete: If true, deleting the repository force deletes the contents of the repository. If false, the repository must be empty before attempting to delete it.
2170
2312
  :param encryption_configuration: The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.
2171
- :param image_scanning_configuration: The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.
2313
+ :param image_scanning_configuration: .. epigraph:: The ``imageScanningConfiguration`` parameter is being deprecated, in favor of specifying the image scanning configuration at the registry level. For more information, see ``PutRegistryScanningConfiguration`` . The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.
2172
2314
  :param image_tag_mutability: The tag mutability setting for the repository. If this parameter is omitted, the default setting of ``MUTABLE`` will be used which will allow image tags to be overwritten. If ``IMMUTABLE`` is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.
2315
+ :param image_tag_mutability_exclusion_filters: A list of filters that specify which image tags are excluded from the repository's image tag mutability setting.
2173
2316
  :param lifecycle_policy: Creates or updates a lifecycle policy. For information about lifecycle policy syntax, see `Lifecycle policy template <https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html>`_ .
2174
2317
  :param repository_name: The name to use for the repository. The repository name may be specified on its own (such as ``nginx-web-app`` ) or it can be prepended with a namespace to group the repository into a category (such as ``project-a/nginx-web-app`` ). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the repository name. For more information, see `Name type <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html>`_ . The repository name must start with a letter and can only contain lowercase letters, numbers, hyphens, underscores, and forward slashes. .. 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.
2175
2318
  :param repository_policy_text: The JSON repository policy text to apply to the repository. For more information, see `Amazon ECR repository policies <https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html>`_ in the *Amazon Elastic Container Registry User Guide* .
@@ -2184,6 +2327,7 @@ class CfnRepository(
2184
2327
  encryption_configuration=encryption_configuration,
2185
2328
  image_scanning_configuration=image_scanning_configuration,
2186
2329
  image_tag_mutability=image_tag_mutability,
2330
+ image_tag_mutability_exclusion_filters=image_tag_mutability_exclusion_filters,
2187
2331
  lifecycle_policy=lifecycle_policy,
2188
2332
  repository_name=repository_name,
2189
2333
  repository_policy_text=repository_policy_text,
@@ -2192,6 +2336,48 @@ class CfnRepository(
2192
2336
 
2193
2337
  jsii.create(self.__class__, self, [scope, id, props])
2194
2338
 
2339
+ @jsii.member(jsii_name="fromRepositoryArn")
2340
+ @builtins.classmethod
2341
+ def from_repository_arn(
2342
+ cls,
2343
+ scope: _constructs_77d1e7e8.Construct,
2344
+ id: builtins.str,
2345
+ arn: builtins.str,
2346
+ ) -> _IRepositoryRef_f3b81117:
2347
+ '''Creates a new IRepositoryRef from an ARN.
2348
+
2349
+ :param scope: -
2350
+ :param id: -
2351
+ :param arn: -
2352
+ '''
2353
+ if __debug__:
2354
+ type_hints = typing.get_type_hints(_typecheckingstub__6f2c393f48c21407d644d8d180231f771c0008028a3e7f9a341eb877c7400902)
2355
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2356
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2357
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
2358
+ return typing.cast(_IRepositoryRef_f3b81117, jsii.sinvoke(cls, "fromRepositoryArn", [scope, id, arn]))
2359
+
2360
+ @jsii.member(jsii_name="fromRepositoryName")
2361
+ @builtins.classmethod
2362
+ def from_repository_name(
2363
+ cls,
2364
+ scope: _constructs_77d1e7e8.Construct,
2365
+ id: builtins.str,
2366
+ repository_name: builtins.str,
2367
+ ) -> _IRepositoryRef_f3b81117:
2368
+ '''Creates a new IRepositoryRef from a repositoryName.
2369
+
2370
+ :param scope: -
2371
+ :param id: -
2372
+ :param repository_name: -
2373
+ '''
2374
+ if __debug__:
2375
+ type_hints = typing.get_type_hints(_typecheckingstub__400aec98ced3fb3a08c4f62facc37becec6934bd630cb120fe1d6d380272f46f)
2376
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2377
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2378
+ check_type(argname="argument repository_name", value=repository_name, expected_type=type_hints["repository_name"])
2379
+ return typing.cast(_IRepositoryRef_f3b81117, jsii.sinvoke(cls, "fromRepositoryName", [scope, id, repository_name]))
2380
+
2195
2381
  @jsii.member(jsii_name="inspect")
2196
2382
  def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
2197
2383
  '''Examines the CloudFormation resource and discloses attributes.
@@ -2249,6 +2435,12 @@ class CfnRepository(
2249
2435
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2250
2436
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2251
2437
 
2438
+ @builtins.property
2439
+ @jsii.member(jsii_name="repositoryRef")
2440
+ def repository_ref(self) -> _RepositoryReference_af4d81f0:
2441
+ '''A reference to a Repository resource.'''
2442
+ return typing.cast(_RepositoryReference_af4d81f0, jsii.get(self, "repositoryRef"))
2443
+
2252
2444
  @builtins.property
2253
2445
  @jsii.member(jsii_name="tags")
2254
2446
  def tags(self) -> _TagManager_0a598cb3:
@@ -2296,7 +2488,9 @@ class CfnRepository(
2296
2488
  def image_scanning_configuration(
2297
2489
  self,
2298
2490
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRepository.ImageScanningConfigurationProperty"]]:
2299
- '''The image scanning configuration for the repository.'''
2491
+ '''.. epigraph::
2492
+
2493
+ The ``imageScanningConfiguration`` parameter is being deprecated, in favor of specifying the image scanning configuration at the registry level.'''
2300
2494
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRepository.ImageScanningConfigurationProperty"]], jsii.get(self, "imageScanningConfiguration"))
2301
2495
 
2302
2496
  @image_scanning_configuration.setter
@@ -2322,6 +2516,24 @@ class CfnRepository(
2322
2516
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2323
2517
  jsii.set(self, "imageTagMutability", value) # pyright: ignore[reportArgumentType]
2324
2518
 
2519
+ @builtins.property
2520
+ @jsii.member(jsii_name="imageTagMutabilityExclusionFilters")
2521
+ def image_tag_mutability_exclusion_filters(
2522
+ self,
2523
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnRepository.ImageTagMutabilityExclusionFilterProperty"]]]]:
2524
+ '''A list of filters that specify which image tags are excluded from the repository's image tag mutability setting.'''
2525
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnRepository.ImageTagMutabilityExclusionFilterProperty"]]]], jsii.get(self, "imageTagMutabilityExclusionFilters"))
2526
+
2527
+ @image_tag_mutability_exclusion_filters.setter
2528
+ def image_tag_mutability_exclusion_filters(
2529
+ self,
2530
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnRepository.ImageTagMutabilityExclusionFilterProperty"]]]],
2531
+ ) -> None:
2532
+ if __debug__:
2533
+ type_hints = typing.get_type_hints(_typecheckingstub__28c5038f217a4c1109664243a2d67cd421822e67f8352aa51ee8780d8e6fbe3e)
2534
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2535
+ jsii.set(self, "imageTagMutabilityExclusionFilters", value) # pyright: ignore[reportArgumentType]
2536
+
2325
2537
  @builtins.property
2326
2538
  @jsii.member(jsii_name="lifecyclePolicy")
2327
2539
  def lifecycle_policy(
@@ -2525,6 +2737,80 @@ class CfnRepository(
2525
2737
  k + "=" + repr(v) for k, v in self._values.items()
2526
2738
  )
2527
2739
 
2740
+ @jsii.data_type(
2741
+ jsii_type="aws-cdk-lib.aws_ecr.CfnRepository.ImageTagMutabilityExclusionFilterProperty",
2742
+ jsii_struct_bases=[],
2743
+ name_mapping={
2744
+ "image_tag_mutability_exclusion_filter_type": "imageTagMutabilityExclusionFilterType",
2745
+ "image_tag_mutability_exclusion_filter_value": "imageTagMutabilityExclusionFilterValue",
2746
+ },
2747
+ )
2748
+ class ImageTagMutabilityExclusionFilterProperty:
2749
+ def __init__(
2750
+ self,
2751
+ *,
2752
+ image_tag_mutability_exclusion_filter_type: builtins.str,
2753
+ image_tag_mutability_exclusion_filter_value: builtins.str,
2754
+ ) -> None:
2755
+ '''A filter that specifies which image tags should be excluded from the repository's image tag mutability setting.
2756
+
2757
+ :param image_tag_mutability_exclusion_filter_type: Specifies the type of filter to use for excluding image tags from the repository's mutability setting.
2758
+ :param image_tag_mutability_exclusion_filter_value: The value to use when filtering image tags.
2759
+
2760
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-imagetagmutabilityexclusionfilter.html
2761
+ :exampleMetadata: fixture=_generated
2762
+
2763
+ Example::
2764
+
2765
+ # The code below shows an example of how to instantiate this type.
2766
+ # The values are placeholders you should change.
2767
+ from aws_cdk import aws_ecr as ecr
2768
+
2769
+ image_tag_mutability_exclusion_filter_property = ecr.CfnRepository.ImageTagMutabilityExclusionFilterProperty(
2770
+ image_tag_mutability_exclusion_filter_type="imageTagMutabilityExclusionFilterType",
2771
+ image_tag_mutability_exclusion_filter_value="imageTagMutabilityExclusionFilterValue"
2772
+ )
2773
+ '''
2774
+ if __debug__:
2775
+ type_hints = typing.get_type_hints(_typecheckingstub__ca135861d33d78962bcab351d8e2048fc1f831afc1ade25d2fcc2f2024c72abd)
2776
+ check_type(argname="argument image_tag_mutability_exclusion_filter_type", value=image_tag_mutability_exclusion_filter_type, expected_type=type_hints["image_tag_mutability_exclusion_filter_type"])
2777
+ check_type(argname="argument image_tag_mutability_exclusion_filter_value", value=image_tag_mutability_exclusion_filter_value, expected_type=type_hints["image_tag_mutability_exclusion_filter_value"])
2778
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2779
+ "image_tag_mutability_exclusion_filter_type": image_tag_mutability_exclusion_filter_type,
2780
+ "image_tag_mutability_exclusion_filter_value": image_tag_mutability_exclusion_filter_value,
2781
+ }
2782
+
2783
+ @builtins.property
2784
+ def image_tag_mutability_exclusion_filter_type(self) -> builtins.str:
2785
+ '''Specifies the type of filter to use for excluding image tags from the repository's mutability setting.
2786
+
2787
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-imagetagmutabilityexclusionfilter.html#cfn-ecr-repository-imagetagmutabilityexclusionfilter-imagetagmutabilityexclusionfiltertype
2788
+ '''
2789
+ result = self._values.get("image_tag_mutability_exclusion_filter_type")
2790
+ assert result is not None, "Required property 'image_tag_mutability_exclusion_filter_type' is missing"
2791
+ return typing.cast(builtins.str, result)
2792
+
2793
+ @builtins.property
2794
+ def image_tag_mutability_exclusion_filter_value(self) -> builtins.str:
2795
+ '''The value to use when filtering image tags.
2796
+
2797
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-imagetagmutabilityexclusionfilter.html#cfn-ecr-repository-imagetagmutabilityexclusionfilter-imagetagmutabilityexclusionfiltervalue
2798
+ '''
2799
+ result = self._values.get("image_tag_mutability_exclusion_filter_value")
2800
+ assert result is not None, "Required property 'image_tag_mutability_exclusion_filter_value' is missing"
2801
+ return typing.cast(builtins.str, result)
2802
+
2803
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2804
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2805
+
2806
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2807
+ return not (rhs == self)
2808
+
2809
+ def __repr__(self) -> str:
2810
+ return "ImageTagMutabilityExclusionFilterProperty(%s)" % ", ".join(
2811
+ k + "=" + repr(v) for k, v in self._values.items()
2812
+ )
2813
+
2528
2814
  @jsii.data_type(
2529
2815
  jsii_type="aws-cdk-lib.aws_ecr.CfnRepository.LifecyclePolicyProperty",
2530
2816
  jsii_struct_bases=[],
@@ -2603,7 +2889,7 @@ class CfnRepository(
2603
2889
  )
2604
2890
 
2605
2891
 
2606
- @jsii.implements(_IInspectable_c2943556)
2892
+ @jsii.implements(_IInspectable_c2943556, _IRepositoryCreationTemplateRef_b7cd8f39)
2607
2893
  class CfnRepositoryCreationTemplate(
2608
2894
  _CfnResource_9df397a6,
2609
2895
  metaclass=jsii.JSIIMeta,
@@ -2635,6 +2921,10 @@ class CfnRepositoryCreationTemplate(
2635
2921
  kms_key="kmsKey"
2636
2922
  ),
2637
2923
  image_tag_mutability="imageTagMutability",
2924
+ image_tag_mutability_exclusion_filters=[ecr.CfnRepositoryCreationTemplate.ImageTagMutabilityExclusionFilterProperty(
2925
+ image_tag_mutability_exclusion_filter_type="imageTagMutabilityExclusionFilterType",
2926
+ image_tag_mutability_exclusion_filter_value="imageTagMutabilityExclusionFilterValue"
2927
+ )],
2638
2928
  lifecycle_policy="lifecyclePolicy",
2639
2929
  repository_policy="repositoryPolicy",
2640
2930
  resource_tags=[CfnTag(
@@ -2655,11 +2945,13 @@ class CfnRepositoryCreationTemplate(
2655
2945
  description: typing.Optional[builtins.str] = None,
2656
2946
  encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRepositoryCreationTemplate.EncryptionConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2657
2947
  image_tag_mutability: typing.Optional[builtins.str] = None,
2948
+ image_tag_mutability_exclusion_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRepositoryCreationTemplate.ImageTagMutabilityExclusionFilterProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
2658
2949
  lifecycle_policy: typing.Optional[builtins.str] = None,
2659
2950
  repository_policy: typing.Optional[builtins.str] = None,
2660
2951
  resource_tags: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]]]] = None,
2661
2952
  ) -> None:
2662
- '''
2953
+ '''Create a new ``AWS::ECR::RepositoryCreationTemplate``.
2954
+
2663
2955
  :param scope: Scope in which this resource is defined.
2664
2956
  :param id: Construct identifier for this resource (unique in its scope).
2665
2957
  :param applied_for: A list of enumerable Strings representing the repository creation scenarios that this template will apply towards. The two supported scenarios are PULL_THROUGH_CACHE and REPLICATION
@@ -2667,7 +2959,8 @@ class CfnRepositoryCreationTemplate(
2667
2959
  :param custom_role_arn: The ARN of the role to be assumed by Amazon ECR. Amazon ECR will assume your supplied role when the customRoleArn is specified. When this field isn't specified, Amazon ECR will use the service-linked role for the repository creation template.
2668
2960
  :param description: The description associated with the repository creation template.
2669
2961
  :param encryption_configuration: The encryption configuration associated with the repository creation template.
2670
- :param image_tag_mutability: The tag mutability setting for the repository. If this parameter is omitted, the default setting of MUTABLE will be used which will allow image tags to be overwritten. If IMMUTABLE is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.
2962
+ :param image_tag_mutability: The tag mutability setting for the repository. If this parameter is omitted, the default setting of ``MUTABLE`` will be used which will allow image tags to be overwritten. If ``IMMUTABLE`` is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.
2963
+ :param image_tag_mutability_exclusion_filters: A list of filters that specify which image tags are excluded from the repository creation template's image tag mutability setting.
2671
2964
  :param lifecycle_policy: The lifecycle policy to use for repositories created using the template.
2672
2965
  :param repository_policy: The repository policy to apply to repositories created using the template. A repository policy is a permissions policy associated with a repository to control access permissions.
2673
2966
  :param resource_tags: The metadata to apply to the repository to help you categorize and organize. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.
@@ -2683,6 +2976,7 @@ class CfnRepositoryCreationTemplate(
2683
2976
  description=description,
2684
2977
  encryption_configuration=encryption_configuration,
2685
2978
  image_tag_mutability=image_tag_mutability,
2979
+ image_tag_mutability_exclusion_filters=image_tag_mutability_exclusion_filters,
2686
2980
  lifecycle_policy=lifecycle_policy,
2687
2981
  repository_policy=repository_policy,
2688
2982
  resource_tags=resource_tags,
@@ -2743,6 +3037,14 @@ class CfnRepositoryCreationTemplate(
2743
3037
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2744
3038
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2745
3039
 
3040
+ @builtins.property
3041
+ @jsii.member(jsii_name="repositoryCreationTemplateRef")
3042
+ def repository_creation_template_ref(
3043
+ self,
3044
+ ) -> _RepositoryCreationTemplateReference_4a34e559:
3045
+ '''A reference to a RepositoryCreationTemplate resource.'''
3046
+ return typing.cast(_RepositoryCreationTemplateReference_4a34e559, jsii.get(self, "repositoryCreationTemplateRef"))
3047
+
2746
3048
  @builtins.property
2747
3049
  @jsii.member(jsii_name="appliedFor")
2748
3050
  def applied_for(self) -> typing.List[builtins.str]:
@@ -2826,6 +3128,24 @@ class CfnRepositoryCreationTemplate(
2826
3128
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2827
3129
  jsii.set(self, "imageTagMutability", value) # pyright: ignore[reportArgumentType]
2828
3130
 
3131
+ @builtins.property
3132
+ @jsii.member(jsii_name="imageTagMutabilityExclusionFilters")
3133
+ def image_tag_mutability_exclusion_filters(
3134
+ self,
3135
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnRepositoryCreationTemplate.ImageTagMutabilityExclusionFilterProperty"]]]]:
3136
+ '''A list of filters that specify which image tags are excluded from the repository creation template's image tag mutability setting.'''
3137
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnRepositoryCreationTemplate.ImageTagMutabilityExclusionFilterProperty"]]]], jsii.get(self, "imageTagMutabilityExclusionFilters"))
3138
+
3139
+ @image_tag_mutability_exclusion_filters.setter
3140
+ def image_tag_mutability_exclusion_filters(
3141
+ self,
3142
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnRepositoryCreationTemplate.ImageTagMutabilityExclusionFilterProperty"]]]],
3143
+ ) -> None:
3144
+ if __debug__:
3145
+ type_hints = typing.get_type_hints(_typecheckingstub__686708849f7a8d060ba78b1f975486b8f424fe3ede8590146ea58544a5f10f12)
3146
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3147
+ jsii.set(self, "imageTagMutabilityExclusionFilters", value) # pyright: ignore[reportArgumentType]
3148
+
2829
3149
  @builtins.property
2830
3150
  @jsii.member(jsii_name="lifecyclePolicy")
2831
3151
  def lifecycle_policy(self) -> typing.Optional[builtins.str]:
@@ -2957,6 +3277,78 @@ class CfnRepositoryCreationTemplate(
2957
3277
  k + "=" + repr(v) for k, v in self._values.items()
2958
3278
  )
2959
3279
 
3280
+ @jsii.data_type(
3281
+ jsii_type="aws-cdk-lib.aws_ecr.CfnRepositoryCreationTemplate.ImageTagMutabilityExclusionFilterProperty",
3282
+ jsii_struct_bases=[],
3283
+ name_mapping={
3284
+ "image_tag_mutability_exclusion_filter_type": "imageTagMutabilityExclusionFilterType",
3285
+ "image_tag_mutability_exclusion_filter_value": "imageTagMutabilityExclusionFilterValue",
3286
+ },
3287
+ )
3288
+ class ImageTagMutabilityExclusionFilterProperty:
3289
+ def __init__(
3290
+ self,
3291
+ *,
3292
+ image_tag_mutability_exclusion_filter_type: builtins.str,
3293
+ image_tag_mutability_exclusion_filter_value: builtins.str,
3294
+ ) -> None:
3295
+ '''A filter that specifies which image tags should be excluded from the repository's image tag mutability setting.
3296
+
3297
+ :param image_tag_mutability_exclusion_filter_type:
3298
+ :param image_tag_mutability_exclusion_filter_value:
3299
+
3300
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repositorycreationtemplate-imagetagmutabilityexclusionfilter.html
3301
+ :exampleMetadata: fixture=_generated
3302
+
3303
+ Example::
3304
+
3305
+ # The code below shows an example of how to instantiate this type.
3306
+ # The values are placeholders you should change.
3307
+ from aws_cdk import aws_ecr as ecr
3308
+
3309
+ image_tag_mutability_exclusion_filter_property = ecr.CfnRepositoryCreationTemplate.ImageTagMutabilityExclusionFilterProperty(
3310
+ image_tag_mutability_exclusion_filter_type="imageTagMutabilityExclusionFilterType",
3311
+ image_tag_mutability_exclusion_filter_value="imageTagMutabilityExclusionFilterValue"
3312
+ )
3313
+ '''
3314
+ if __debug__:
3315
+ type_hints = typing.get_type_hints(_typecheckingstub__86a83c57e1c4d3066aaec203ce5a6efdfad7a3c3f4adffc2b0326304ae7a11f1)
3316
+ check_type(argname="argument image_tag_mutability_exclusion_filter_type", value=image_tag_mutability_exclusion_filter_type, expected_type=type_hints["image_tag_mutability_exclusion_filter_type"])
3317
+ check_type(argname="argument image_tag_mutability_exclusion_filter_value", value=image_tag_mutability_exclusion_filter_value, expected_type=type_hints["image_tag_mutability_exclusion_filter_value"])
3318
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3319
+ "image_tag_mutability_exclusion_filter_type": image_tag_mutability_exclusion_filter_type,
3320
+ "image_tag_mutability_exclusion_filter_value": image_tag_mutability_exclusion_filter_value,
3321
+ }
3322
+
3323
+ @builtins.property
3324
+ def image_tag_mutability_exclusion_filter_type(self) -> builtins.str:
3325
+ '''
3326
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repositorycreationtemplate-imagetagmutabilityexclusionfilter.html#cfn-ecr-repositorycreationtemplate-imagetagmutabilityexclusionfilter-imagetagmutabilityexclusionfiltertype
3327
+ '''
3328
+ result = self._values.get("image_tag_mutability_exclusion_filter_type")
3329
+ assert result is not None, "Required property 'image_tag_mutability_exclusion_filter_type' is missing"
3330
+ return typing.cast(builtins.str, result)
3331
+
3332
+ @builtins.property
3333
+ def image_tag_mutability_exclusion_filter_value(self) -> builtins.str:
3334
+ '''
3335
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repositorycreationtemplate-imagetagmutabilityexclusionfilter.html#cfn-ecr-repositorycreationtemplate-imagetagmutabilityexclusionfilter-imagetagmutabilityexclusionfiltervalue
3336
+ '''
3337
+ result = self._values.get("image_tag_mutability_exclusion_filter_value")
3338
+ assert result is not None, "Required property 'image_tag_mutability_exclusion_filter_value' is missing"
3339
+ return typing.cast(builtins.str, result)
3340
+
3341
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3342
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3343
+
3344
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3345
+ return not (rhs == self)
3346
+
3347
+ def __repr__(self) -> str:
3348
+ return "ImageTagMutabilityExclusionFilterProperty(%s)" % ", ".join(
3349
+ k + "=" + repr(v) for k, v in self._values.items()
3350
+ )
3351
+
2960
3352
 
2961
3353
  @jsii.data_type(
2962
3354
  jsii_type="aws-cdk-lib.aws_ecr.CfnRepositoryCreationTemplateProps",
@@ -2968,6 +3360,7 @@ class CfnRepositoryCreationTemplate(
2968
3360
  "description": "description",
2969
3361
  "encryption_configuration": "encryptionConfiguration",
2970
3362
  "image_tag_mutability": "imageTagMutability",
3363
+ "image_tag_mutability_exclusion_filters": "imageTagMutabilityExclusionFilters",
2971
3364
  "lifecycle_policy": "lifecyclePolicy",
2972
3365
  "repository_policy": "repositoryPolicy",
2973
3366
  "resource_tags": "resourceTags",
@@ -2983,6 +3376,7 @@ class CfnRepositoryCreationTemplateProps:
2983
3376
  description: typing.Optional[builtins.str] = None,
2984
3377
  encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepositoryCreationTemplate.EncryptionConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2985
3378
  image_tag_mutability: typing.Optional[builtins.str] = None,
3379
+ image_tag_mutability_exclusion_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepositoryCreationTemplate.ImageTagMutabilityExclusionFilterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
2986
3380
  lifecycle_policy: typing.Optional[builtins.str] = None,
2987
3381
  repository_policy: typing.Optional[builtins.str] = None,
2988
3382
  resource_tags: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]]]] = None,
@@ -2994,7 +3388,8 @@ class CfnRepositoryCreationTemplateProps:
2994
3388
  :param custom_role_arn: The ARN of the role to be assumed by Amazon ECR. Amazon ECR will assume your supplied role when the customRoleArn is specified. When this field isn't specified, Amazon ECR will use the service-linked role for the repository creation template.
2995
3389
  :param description: The description associated with the repository creation template.
2996
3390
  :param encryption_configuration: The encryption configuration associated with the repository creation template.
2997
- :param image_tag_mutability: The tag mutability setting for the repository. If this parameter is omitted, the default setting of MUTABLE will be used which will allow image tags to be overwritten. If IMMUTABLE is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.
3391
+ :param image_tag_mutability: The tag mutability setting for the repository. If this parameter is omitted, the default setting of ``MUTABLE`` will be used which will allow image tags to be overwritten. If ``IMMUTABLE`` is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.
3392
+ :param image_tag_mutability_exclusion_filters: A list of filters that specify which image tags are excluded from the repository creation template's image tag mutability setting.
2998
3393
  :param lifecycle_policy: The lifecycle policy to use for repositories created using the template.
2999
3394
  :param repository_policy: The repository policy to apply to repositories created using the template. A repository policy is a permissions policy associated with a repository to control access permissions.
3000
3395
  :param resource_tags: The metadata to apply to the repository to help you categorize and organize. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.
@@ -3022,6 +3417,10 @@ class CfnRepositoryCreationTemplateProps:
3022
3417
  kms_key="kmsKey"
3023
3418
  ),
3024
3419
  image_tag_mutability="imageTagMutability",
3420
+ image_tag_mutability_exclusion_filters=[ecr.CfnRepositoryCreationTemplate.ImageTagMutabilityExclusionFilterProperty(
3421
+ image_tag_mutability_exclusion_filter_type="imageTagMutabilityExclusionFilterType",
3422
+ image_tag_mutability_exclusion_filter_value="imageTagMutabilityExclusionFilterValue"
3423
+ )],
3025
3424
  lifecycle_policy="lifecyclePolicy",
3026
3425
  repository_policy="repositoryPolicy",
3027
3426
  resource_tags=[CfnTag(
@@ -3038,6 +3437,7 @@ class CfnRepositoryCreationTemplateProps:
3038
3437
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
3039
3438
  check_type(argname="argument encryption_configuration", value=encryption_configuration, expected_type=type_hints["encryption_configuration"])
3040
3439
  check_type(argname="argument image_tag_mutability", value=image_tag_mutability, expected_type=type_hints["image_tag_mutability"])
3440
+ check_type(argname="argument image_tag_mutability_exclusion_filters", value=image_tag_mutability_exclusion_filters, expected_type=type_hints["image_tag_mutability_exclusion_filters"])
3041
3441
  check_type(argname="argument lifecycle_policy", value=lifecycle_policy, expected_type=type_hints["lifecycle_policy"])
3042
3442
  check_type(argname="argument repository_policy", value=repository_policy, expected_type=type_hints["repository_policy"])
3043
3443
  check_type(argname="argument resource_tags", value=resource_tags, expected_type=type_hints["resource_tags"])
@@ -3053,6 +3453,8 @@ class CfnRepositoryCreationTemplateProps:
3053
3453
  self._values["encryption_configuration"] = encryption_configuration
3054
3454
  if image_tag_mutability is not None:
3055
3455
  self._values["image_tag_mutability"] = image_tag_mutability
3456
+ if image_tag_mutability_exclusion_filters is not None:
3457
+ self._values["image_tag_mutability_exclusion_filters"] = image_tag_mutability_exclusion_filters
3056
3458
  if lifecycle_policy is not None:
3057
3459
  self._values["lifecycle_policy"] = lifecycle_policy
3058
3460
  if repository_policy is not None:
@@ -3117,13 +3519,24 @@ class CfnRepositoryCreationTemplateProps:
3117
3519
  def image_tag_mutability(self) -> typing.Optional[builtins.str]:
3118
3520
  '''The tag mutability setting for the repository.
3119
3521
 
3120
- If this parameter is omitted, the default setting of MUTABLE will be used which will allow image tags to be overwritten. If IMMUTABLE is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.
3522
+ If this parameter is omitted, the default setting of ``MUTABLE`` will be used which will allow image tags to be overwritten. If ``IMMUTABLE`` is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.
3121
3523
 
3122
3524
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-imagetagmutability
3123
3525
  '''
3124
3526
  result = self._values.get("image_tag_mutability")
3125
3527
  return typing.cast(typing.Optional[builtins.str], result)
3126
3528
 
3529
+ @builtins.property
3530
+ def image_tag_mutability_exclusion_filters(
3531
+ self,
3532
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnRepositoryCreationTemplate.ImageTagMutabilityExclusionFilterProperty]]]]:
3533
+ '''A list of filters that specify which image tags are excluded from the repository creation template's image tag mutability setting.
3534
+
3535
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-imagetagmutabilityexclusionfilters
3536
+ '''
3537
+ result = self._values.get("image_tag_mutability_exclusion_filters")
3538
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnRepositoryCreationTemplate.ImageTagMutabilityExclusionFilterProperty]]]], result)
3539
+
3127
3540
  @builtins.property
3128
3541
  def lifecycle_policy(self) -> typing.Optional[builtins.str]:
3129
3542
  '''The lifecycle policy to use for repositories created using the template.
@@ -3177,6 +3590,7 @@ class CfnRepositoryCreationTemplateProps:
3177
3590
  "encryption_configuration": "encryptionConfiguration",
3178
3591
  "image_scanning_configuration": "imageScanningConfiguration",
3179
3592
  "image_tag_mutability": "imageTagMutability",
3593
+ "image_tag_mutability_exclusion_filters": "imageTagMutabilityExclusionFilters",
3180
3594
  "lifecycle_policy": "lifecyclePolicy",
3181
3595
  "repository_name": "repositoryName",
3182
3596
  "repository_policy_text": "repositoryPolicyText",
@@ -3191,6 +3605,7 @@ class CfnRepositoryProps:
3191
3605
  encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepository.EncryptionConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
3192
3606
  image_scanning_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepository.ImageScanningConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
3193
3607
  image_tag_mutability: typing.Optional[builtins.str] = None,
3608
+ image_tag_mutability_exclusion_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepository.ImageTagMutabilityExclusionFilterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
3194
3609
  lifecycle_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepository.LifecyclePolicyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
3195
3610
  repository_name: typing.Optional[builtins.str] = None,
3196
3611
  repository_policy_text: typing.Any = None,
@@ -3200,8 +3615,9 @@ class CfnRepositoryProps:
3200
3615
 
3201
3616
  :param empty_on_delete: If true, deleting the repository force deletes the contents of the repository. If false, the repository must be empty before attempting to delete it.
3202
3617
  :param encryption_configuration: The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.
3203
- :param image_scanning_configuration: The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.
3618
+ :param image_scanning_configuration: .. epigraph:: The ``imageScanningConfiguration`` parameter is being deprecated, in favor of specifying the image scanning configuration at the registry level. For more information, see ``PutRegistryScanningConfiguration`` . The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.
3204
3619
  :param image_tag_mutability: The tag mutability setting for the repository. If this parameter is omitted, the default setting of ``MUTABLE`` will be used which will allow image tags to be overwritten. If ``IMMUTABLE`` is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.
3620
+ :param image_tag_mutability_exclusion_filters: A list of filters that specify which image tags are excluded from the repository's image tag mutability setting.
3205
3621
  :param lifecycle_policy: Creates or updates a lifecycle policy. For information about lifecycle policy syntax, see `Lifecycle policy template <https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html>`_ .
3206
3622
  :param repository_name: The name to use for the repository. The repository name may be specified on its own (such as ``nginx-web-app`` ) or it can be prepended with a namespace to group the repository into a category (such as ``project-a/nginx-web-app`` ). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the repository name. For more information, see `Name type <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html>`_ . The repository name must start with a letter and can only contain lowercase letters, numbers, hyphens, underscores, and forward slashes. .. 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.
3207
3623
  :param repository_policy_text: The JSON repository policy text to apply to the repository. For more information, see `Amazon ECR repository policies <https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html>`_ in the *Amazon Elastic Container Registry User Guide* .
@@ -3230,6 +3646,10 @@ class CfnRepositoryProps:
3230
3646
  scan_on_push=False
3231
3647
  ),
3232
3648
  image_tag_mutability="imageTagMutability",
3649
+ image_tag_mutability_exclusion_filters=[ecr.CfnRepository.ImageTagMutabilityExclusionFilterProperty(
3650
+ image_tag_mutability_exclusion_filter_type="imageTagMutabilityExclusionFilterType",
3651
+ image_tag_mutability_exclusion_filter_value="imageTagMutabilityExclusionFilterValue"
3652
+ )],
3233
3653
  lifecycle_policy=ecr.CfnRepository.LifecyclePolicyProperty(
3234
3654
  lifecycle_policy_text="lifecyclePolicyText",
3235
3655
  registry_id="registryId"
@@ -3248,6 +3668,7 @@ class CfnRepositoryProps:
3248
3668
  check_type(argname="argument encryption_configuration", value=encryption_configuration, expected_type=type_hints["encryption_configuration"])
3249
3669
  check_type(argname="argument image_scanning_configuration", value=image_scanning_configuration, expected_type=type_hints["image_scanning_configuration"])
3250
3670
  check_type(argname="argument image_tag_mutability", value=image_tag_mutability, expected_type=type_hints["image_tag_mutability"])
3671
+ check_type(argname="argument image_tag_mutability_exclusion_filters", value=image_tag_mutability_exclusion_filters, expected_type=type_hints["image_tag_mutability_exclusion_filters"])
3251
3672
  check_type(argname="argument lifecycle_policy", value=lifecycle_policy, expected_type=type_hints["lifecycle_policy"])
3252
3673
  check_type(argname="argument repository_name", value=repository_name, expected_type=type_hints["repository_name"])
3253
3674
  check_type(argname="argument repository_policy_text", value=repository_policy_text, expected_type=type_hints["repository_policy_text"])
@@ -3261,6 +3682,8 @@ class CfnRepositoryProps:
3261
3682
  self._values["image_scanning_configuration"] = image_scanning_configuration
3262
3683
  if image_tag_mutability is not None:
3263
3684
  self._values["image_tag_mutability"] = image_tag_mutability
3685
+ if image_tag_mutability_exclusion_filters is not None:
3686
+ self._values["image_tag_mutability_exclusion_filters"] = image_tag_mutability_exclusion_filters
3264
3687
  if lifecycle_policy is not None:
3265
3688
  self._values["lifecycle_policy"] = lifecycle_policy
3266
3689
  if repository_name is not None:
@@ -3300,9 +3723,13 @@ class CfnRepositoryProps:
3300
3723
  def image_scanning_configuration(
3301
3724
  self,
3302
3725
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnRepository.ImageScanningConfigurationProperty]]:
3303
- '''The image scanning configuration for the repository.
3726
+ '''.. epigraph::
3304
3727
 
3305
- This determines whether images are scanned for known vulnerabilities after being pushed to the repository.
3728
+ The ``imageScanningConfiguration`` parameter is being deprecated, in favor of specifying the image scanning configuration at the registry level.
3729
+
3730
+ For more information, see ``PutRegistryScanningConfiguration`` .
3731
+
3732
+ The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.
3306
3733
 
3307
3734
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html#cfn-ecr-repository-imagescanningconfiguration
3308
3735
  '''
@@ -3320,6 +3747,17 @@ class CfnRepositoryProps:
3320
3747
  result = self._values.get("image_tag_mutability")
3321
3748
  return typing.cast(typing.Optional[builtins.str], result)
3322
3749
 
3750
+ @builtins.property
3751
+ def image_tag_mutability_exclusion_filters(
3752
+ self,
3753
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnRepository.ImageTagMutabilityExclusionFilterProperty]]]]:
3754
+ '''A list of filters that specify which image tags are excluded from the repository's image tag mutability setting.
3755
+
3756
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html#cfn-ecr-repository-imagetagmutabilityexclusionfilters
3757
+ '''
3758
+ result = self._values.get("image_tag_mutability_exclusion_filters")
3759
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnRepository.ImageTagMutabilityExclusionFilterProperty]]]], result)
3760
+
3323
3761
  @builtins.property
3324
3762
  def lifecycle_policy(
3325
3763
  self,
@@ -3949,6 +4387,39 @@ class _IRepositoryProxy(
3949
4387
  typing.cast(typing.Any, IRepository).__jsii_proxy_class__ = lambda : _IRepositoryProxy
3950
4388
 
3951
4389
 
4390
+ class ImageTagMutabilityExclusionFilter(
4391
+ metaclass=jsii.JSIIMeta,
4392
+ jsii_type="aws-cdk-lib.aws_ecr.ImageTagMutabilityExclusionFilter",
4393
+ ):
4394
+ '''Represents an image tag mutability exclusion filter for ECR repository.
4395
+
4396
+ :exampleMetadata: infused
4397
+
4398
+ Example::
4399
+
4400
+ # Make all tags immutable except for those starting with 'dev-' or 'test-'
4401
+ ecr.Repository(self, "Repo",
4402
+ image_tag_mutability=ecr.TagMutability.IMMUTABLE_WITH_EXCLUSION,
4403
+ image_tag_mutability_exclusion_filters=[
4404
+ ecr.ImageTagMutabilityExclusionFilter.wildcard("dev-*"),
4405
+ ecr.ImageTagMutabilityExclusionFilter.wildcard("test-*")
4406
+ ]
4407
+ )
4408
+ '''
4409
+
4410
+ @jsii.member(jsii_name="wildcard")
4411
+ @builtins.classmethod
4412
+ def wildcard(cls, pattern: builtins.str) -> "ImageTagMutabilityExclusionFilter":
4413
+ '''Creates a wildcard filter for image tag mutability exclusion.
4414
+
4415
+ :param pattern: The wildcard pattern to match image tags (e.g., 'dev-*', 'release-v*').
4416
+ '''
4417
+ if __debug__:
4418
+ type_hints = typing.get_type_hints(_typecheckingstub__506e41b81658bfe386f74207c24c3216542f105c02a9deeef0aa17031ffd52ef)
4419
+ check_type(argname="argument pattern", value=pattern, expected_type=type_hints["pattern"])
4420
+ return typing.cast("ImageTagMutabilityExclusionFilter", jsii.sinvoke(cls, "wildcard", [pattern]))
4421
+
4422
+
3952
4423
  @jsii.data_type(
3953
4424
  jsii_type="aws-cdk-lib.aws_ecr.LifecycleRule",
3954
4425
  jsii_struct_bases=[],
@@ -5058,6 +5529,7 @@ class RepositoryLookupOptions:
5058
5529
  "encryption_key": "encryptionKey",
5059
5530
  "image_scan_on_push": "imageScanOnPush",
5060
5531
  "image_tag_mutability": "imageTagMutability",
5532
+ "image_tag_mutability_exclusion_filters": "imageTagMutabilityExclusionFilters",
5061
5533
  "lifecycle_registry_id": "lifecycleRegistryId",
5062
5534
  "lifecycle_rules": "lifecycleRules",
5063
5535
  "removal_policy": "removalPolicy",
@@ -5071,9 +5543,10 @@ class RepositoryProps:
5071
5543
  auto_delete_images: typing.Optional[builtins.bool] = None,
5072
5544
  empty_on_delete: typing.Optional[builtins.bool] = None,
5073
5545
  encryption: typing.Optional[RepositoryEncryption] = None,
5074
- encryption_key: typing.Optional[_IKey_5f11635f] = None,
5546
+ encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
5075
5547
  image_scan_on_push: typing.Optional[builtins.bool] = None,
5076
5548
  image_tag_mutability: typing.Optional["TagMutability"] = None,
5549
+ image_tag_mutability_exclusion_filters: typing.Optional[typing.Sequence[ImageTagMutabilityExclusionFilter]] = None,
5077
5550
  lifecycle_registry_id: typing.Optional[builtins.str] = None,
5078
5551
  lifecycle_rules: typing.Optional[typing.Sequence[typing.Union[LifecycleRule, typing.Dict[builtins.str, typing.Any]]]] = None,
5079
5552
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
@@ -5086,6 +5559,7 @@ class RepositoryProps:
5086
5559
  :param encryption_key: External KMS key to use for repository encryption. The 'encryption' property must be either not specified or set to "KMS". An error will be emitted if encryption is set to "AES256". Default: - If encryption is set to ``KMS`` and this property is undefined, an AWS managed KMS key is used.
5087
5560
  :param image_scan_on_push: Enable the scan on push when creating the repository. Default: false
5088
5561
  :param image_tag_mutability: The tag mutability setting for the repository. If this parameter is omitted, the default setting of MUTABLE will be used which will allow image tags to be overwritten. Default: TagMutability.MUTABLE
5562
+ :param image_tag_mutability_exclusion_filters: The image tag mutability exclusion filters for the repository. These filters specify which image tags can override the repository's default image tag mutability setting. Default: undefined - AWS ECR default is no exclusion filters
5089
5563
  :param lifecycle_registry_id: The AWS account ID associated with the registry that contains the repository. Default: The default registry is assumed.
5090
5564
  :param lifecycle_rules: Life cycle rules to apply to this registry. Default: No life cycle rules
5091
5565
  :param removal_policy: Determine what happens to the repository when the resource/stack is deleted. Default: RemovalPolicy.Retain
@@ -5095,7 +5569,17 @@ class RepositoryProps:
5095
5569
 
5096
5570
  Example::
5097
5571
 
5098
- ecr.Repository(self, "Repo", image_tag_mutability=ecr.TagMutability.IMMUTABLE)
5572
+ repository = ecr.Repository(self, "TestRepository",
5573
+ repository_name="test-agent-runtime"
5574
+ )
5575
+ agent_runtime_artifact = agentcore.AgentRuntimeArtifact.from_ecr_repository(repository, "v1.0.0")
5576
+
5577
+ # Explicitly using public network (this is the default)
5578
+ runtime = agentcore.Runtime(self, "MyAgentRuntime",
5579
+ runtime_name="myAgent",
5580
+ agent_runtime_artifact=agent_runtime_artifact,
5581
+ network_configuration=agentcore.RuntimeNetworkConfiguration.using_public_network()
5582
+ )
5099
5583
  '''
5100
5584
  if __debug__:
5101
5585
  type_hints = typing.get_type_hints(_typecheckingstub__638b63dd5eb589e01019ee47c63d6335810d02b0d769f767f2bf2fddc285af28)
@@ -5105,6 +5589,7 @@ class RepositoryProps:
5105
5589
  check_type(argname="argument encryption_key", value=encryption_key, expected_type=type_hints["encryption_key"])
5106
5590
  check_type(argname="argument image_scan_on_push", value=image_scan_on_push, expected_type=type_hints["image_scan_on_push"])
5107
5591
  check_type(argname="argument image_tag_mutability", value=image_tag_mutability, expected_type=type_hints["image_tag_mutability"])
5592
+ check_type(argname="argument image_tag_mutability_exclusion_filters", value=image_tag_mutability_exclusion_filters, expected_type=type_hints["image_tag_mutability_exclusion_filters"])
5108
5593
  check_type(argname="argument lifecycle_registry_id", value=lifecycle_registry_id, expected_type=type_hints["lifecycle_registry_id"])
5109
5594
  check_type(argname="argument lifecycle_rules", value=lifecycle_rules, expected_type=type_hints["lifecycle_rules"])
5110
5595
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
@@ -5122,6 +5607,8 @@ class RepositoryProps:
5122
5607
  self._values["image_scan_on_push"] = image_scan_on_push
5123
5608
  if image_tag_mutability is not None:
5124
5609
  self._values["image_tag_mutability"] = image_tag_mutability
5610
+ if image_tag_mutability_exclusion_filters is not None:
5611
+ self._values["image_tag_mutability_exclusion_filters"] = image_tag_mutability_exclusion_filters
5125
5612
  if lifecycle_registry_id is not None:
5126
5613
  self._values["lifecycle_registry_id"] = lifecycle_registry_id
5127
5614
  if lifecycle_rules is not None:
@@ -5170,7 +5657,7 @@ class RepositoryProps:
5170
5657
  return typing.cast(typing.Optional[RepositoryEncryption], result)
5171
5658
 
5172
5659
  @builtins.property
5173
- def encryption_key(self) -> typing.Optional[_IKey_5f11635f]:
5660
+ def encryption_key(self) -> typing.Optional[_IKeyRef_d4fc6ef3]:
5174
5661
  '''External KMS key to use for repository encryption.
5175
5662
 
5176
5663
  The 'encryption' property must be either not specified or set to "KMS".
@@ -5182,7 +5669,7 @@ class RepositoryProps:
5182
5669
  an AWS managed KMS key is used.
5183
5670
  '''
5184
5671
  result = self._values.get("encryption_key")
5185
- return typing.cast(typing.Optional[_IKey_5f11635f], result)
5672
+ return typing.cast(typing.Optional[_IKeyRef_d4fc6ef3], result)
5186
5673
 
5187
5674
  @builtins.property
5188
5675
  def image_scan_on_push(self) -> typing.Optional[builtins.bool]:
@@ -5204,6 +5691,21 @@ class RepositoryProps:
5204
5691
  result = self._values.get("image_tag_mutability")
5205
5692
  return typing.cast(typing.Optional["TagMutability"], result)
5206
5693
 
5694
+ @builtins.property
5695
+ def image_tag_mutability_exclusion_filters(
5696
+ self,
5697
+ ) -> typing.Optional[typing.List[ImageTagMutabilityExclusionFilter]]:
5698
+ '''The image tag mutability exclusion filters for the repository.
5699
+
5700
+ These filters specify which image tags can override the repository's default image tag mutability setting.
5701
+
5702
+ :default: undefined - AWS ECR default is no exclusion filters
5703
+
5704
+ :see: https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-tag-mutability.html
5705
+ '''
5706
+ result = self._values.get("image_tag_mutability_exclusion_filters")
5707
+ return typing.cast(typing.Optional[typing.List[ImageTagMutabilityExclusionFilter]], result)
5708
+
5207
5709
  @builtins.property
5208
5710
  def lifecycle_registry_id(self) -> typing.Optional[builtins.str]:
5209
5711
  '''The AWS account ID associated with the registry that contains the repository.
@@ -5267,13 +5769,24 @@ class TagMutability(enum.Enum):
5267
5769
 
5268
5770
  Example::
5269
5771
 
5270
- ecr.Repository(self, "Repo", image_tag_mutability=ecr.TagMutability.IMMUTABLE)
5772
+ # Make all tags immutable except for those starting with 'dev-' or 'test-'
5773
+ ecr.Repository(self, "Repo",
5774
+ image_tag_mutability=ecr.TagMutability.IMMUTABLE_WITH_EXCLUSION,
5775
+ image_tag_mutability_exclusion_filters=[
5776
+ ecr.ImageTagMutabilityExclusionFilter.wildcard("dev-*"),
5777
+ ecr.ImageTagMutabilityExclusionFilter.wildcard("test-*")
5778
+ ]
5779
+ )
5271
5780
  '''
5272
5781
 
5273
5782
  MUTABLE = "MUTABLE"
5274
5783
  '''allow image tags to be overwritten.'''
5275
5784
  IMMUTABLE = "IMMUTABLE"
5276
5785
  '''all image tags within the repository will be immutable which will prevent them from being overwritten.'''
5786
+ IMMUTABLE_WITH_EXCLUSION = "IMMUTABLE_WITH_EXCLUSION"
5787
+ '''all image tags within the repository will be immutable, while allowing you to define some filters for tags that can be changed.'''
5788
+ MUTABLE_WITH_EXCLUSION = "MUTABLE_WITH_EXCLUSION"
5789
+ '''allow image tags to be overwritten while allowing you to define some filters for tags that should remain unchanged.'''
5277
5790
 
5278
5791
 
5279
5792
  @jsii.enum(jsii_type="aws-cdk-lib.aws_ecr.TagStatus")
@@ -5299,19 +5812,15 @@ class Repository(
5299
5812
 
5300
5813
  Example::
5301
5814
 
5302
- import aws_cdk.aws_lambda as lambda_
5303
- from aws_cdk.aws_events_targets import LambdaFunction
5304
-
5305
-
5306
- repo = ecr.Repository(self, "Repo")
5307
- lambda_handler = lambda_.Function(self, "LambdaFunction",
5308
- runtime=lambda_.Runtime.PYTHON_3_12,
5309
- code=lambda_.Code.from_inline("# dummy func"),
5310
- handler="index.handler"
5815
+ repository = ecr.Repository(self, "TestRepository",
5816
+ repository_name="test-agent-runtime"
5311
5817
  )
5818
+ agent_runtime_artifact = agentcore.AgentRuntimeArtifact.from_ecr_repository(repository, "v1.0.0")
5312
5819
 
5313
- repo.on_event("OnEventTargetLambda",
5314
- target=LambdaFunction(lambda_handler)
5820
+ runtime = agentcore.Runtime(self, "MyAgentRuntime",
5821
+ runtime_name="myAgent",
5822
+ agent_runtime_artifact=agent_runtime_artifact,
5823
+ authorizer_configuration=agentcore.RuntimeAuthorizerConfiguration.using_oAuth("https://github.com/.well-known/openid-configuration", "oauth_client_123")
5315
5824
  )
5316
5825
  '''
5317
5826
 
@@ -5323,9 +5832,10 @@ class Repository(
5323
5832
  auto_delete_images: typing.Optional[builtins.bool] = None,
5324
5833
  empty_on_delete: typing.Optional[builtins.bool] = None,
5325
5834
  encryption: typing.Optional[RepositoryEncryption] = None,
5326
- encryption_key: typing.Optional[_IKey_5f11635f] = None,
5835
+ encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
5327
5836
  image_scan_on_push: typing.Optional[builtins.bool] = None,
5328
5837
  image_tag_mutability: typing.Optional[TagMutability] = None,
5838
+ image_tag_mutability_exclusion_filters: typing.Optional[typing.Sequence[ImageTagMutabilityExclusionFilter]] = None,
5329
5839
  lifecycle_registry_id: typing.Optional[builtins.str] = None,
5330
5840
  lifecycle_rules: typing.Optional[typing.Sequence[typing.Union[LifecycleRule, typing.Dict[builtins.str, typing.Any]]]] = None,
5331
5841
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
@@ -5340,6 +5850,7 @@ class Repository(
5340
5850
  :param encryption_key: External KMS key to use for repository encryption. The 'encryption' property must be either not specified or set to "KMS". An error will be emitted if encryption is set to "AES256". Default: - If encryption is set to ``KMS`` and this property is undefined, an AWS managed KMS key is used.
5341
5851
  :param image_scan_on_push: Enable the scan on push when creating the repository. Default: false
5342
5852
  :param image_tag_mutability: The tag mutability setting for the repository. If this parameter is omitted, the default setting of MUTABLE will be used which will allow image tags to be overwritten. Default: TagMutability.MUTABLE
5853
+ :param image_tag_mutability_exclusion_filters: The image tag mutability exclusion filters for the repository. These filters specify which image tags can override the repository's default image tag mutability setting. Default: undefined - AWS ECR default is no exclusion filters
5343
5854
  :param lifecycle_registry_id: The AWS account ID associated with the registry that contains the repository. Default: The default registry is assumed.
5344
5855
  :param lifecycle_rules: Life cycle rules to apply to this registry. Default: No life cycle rules
5345
5856
  :param removal_policy: Determine what happens to the repository when the resource/stack is deleted. Default: RemovalPolicy.Retain
@@ -5356,6 +5867,7 @@ class Repository(
5356
5867
  encryption_key=encryption_key,
5357
5868
  image_scan_on_push=image_scan_on_push,
5358
5869
  image_tag_mutability=image_tag_mutability,
5870
+ image_tag_mutability_exclusion_filters=image_tag_mutability_exclusion_filters,
5359
5871
  lifecycle_registry_id=lifecycle_registry_id,
5360
5872
  lifecycle_rules=lifecycle_rules,
5361
5873
  removal_policy=removal_policy,
@@ -5570,6 +6082,7 @@ __all__ = [
5570
6082
  "CfnRepositoryCreationTemplateProps",
5571
6083
  "CfnRepositoryProps",
5572
6084
  "IRepository",
6085
+ "ImageTagMutabilityExclusionFilter",
5573
6086
  "LifecycleRule",
5574
6087
  "OnCloudTrailImagePushedOptions",
5575
6088
  "OnImageScanCompletedOptions",
@@ -5604,6 +6117,22 @@ def _typecheckingstub__a5b1b0a44f7b903d10d3e873896cf1709943b67e3503cc3918e4e98f0
5604
6117
  """Type checking stubs"""
5605
6118
  pass
5606
6119
 
6120
+ def _typecheckingstub__df08363dd3d49b4b281729649cda34a42b796ed2c1c7a9e6c28145049dcd5bf9(
6121
+ scope: _constructs_77d1e7e8.Construct,
6122
+ id: builtins.str,
6123
+ arn: builtins.str,
6124
+ ) -> None:
6125
+ """Type checking stubs"""
6126
+ pass
6127
+
6128
+ def _typecheckingstub__a12c8d1af48bfd21b0af8b54f0dfaf211699928aac8fb0ffb2e0ff8ce482ac1a(
6129
+ scope: _constructs_77d1e7e8.Construct,
6130
+ id: builtins.str,
6131
+ repository_name: builtins.str,
6132
+ ) -> None:
6133
+ """Type checking stubs"""
6134
+ pass
6135
+
5607
6136
  def _typecheckingstub__317b166576f7593305ca27885da5cd7a621d59c15390c40d8de8d3e3c28eb94b(
5608
6137
  inspector: _TreeInspector_488e0dd5,
5609
6138
  ) -> None:
@@ -5900,6 +6429,7 @@ def _typecheckingstub__0c4027f87eb46bfdc341ea831d36476b6bcb3d7c3adf8e4193a6f82d2
5900
6429
  encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepository.EncryptionConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
5901
6430
  image_scanning_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepository.ImageScanningConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
5902
6431
  image_tag_mutability: typing.Optional[builtins.str] = None,
6432
+ image_tag_mutability_exclusion_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepository.ImageTagMutabilityExclusionFilterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
5903
6433
  lifecycle_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepository.LifecyclePolicyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
5904
6434
  repository_name: typing.Optional[builtins.str] = None,
5905
6435
  repository_policy_text: typing.Any = None,
@@ -5908,6 +6438,22 @@ def _typecheckingstub__0c4027f87eb46bfdc341ea831d36476b6bcb3d7c3adf8e4193a6f82d2
5908
6438
  """Type checking stubs"""
5909
6439
  pass
5910
6440
 
6441
+ def _typecheckingstub__6f2c393f48c21407d644d8d180231f771c0008028a3e7f9a341eb877c7400902(
6442
+ scope: _constructs_77d1e7e8.Construct,
6443
+ id: builtins.str,
6444
+ arn: builtins.str,
6445
+ ) -> None:
6446
+ """Type checking stubs"""
6447
+ pass
6448
+
6449
+ def _typecheckingstub__400aec98ced3fb3a08c4f62facc37becec6934bd630cb120fe1d6d380272f46f(
6450
+ scope: _constructs_77d1e7e8.Construct,
6451
+ id: builtins.str,
6452
+ repository_name: builtins.str,
6453
+ ) -> None:
6454
+ """Type checking stubs"""
6455
+ pass
6456
+
5911
6457
  def _typecheckingstub__2248718d73b3c7bcee12085148b85f05a4c458576be92459e450678dd33ba17a(
5912
6458
  inspector: _TreeInspector_488e0dd5,
5913
6459
  ) -> None:
@@ -5944,6 +6490,12 @@ def _typecheckingstub__6d75698f85ccefe489f53d4f155b619c9c3df1026fe201828f3f0ccc7
5944
6490
  """Type checking stubs"""
5945
6491
  pass
5946
6492
 
6493
+ def _typecheckingstub__28c5038f217a4c1109664243a2d67cd421822e67f8352aa51ee8780d8e6fbe3e(
6494
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnRepository.ImageTagMutabilityExclusionFilterProperty]]]],
6495
+ ) -> None:
6496
+ """Type checking stubs"""
6497
+ pass
6498
+
5947
6499
  def _typecheckingstub__47418c52de9eb82b5a96dfa3524d84345309cf3a2f06fbbc30eaa7da852a33fa(
5948
6500
  value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnRepository.LifecyclePolicyProperty]],
5949
6501
  ) -> None:
@@ -5983,6 +6535,14 @@ def _typecheckingstub__c75cd2b6ec01cb2a5879c051b4088257f2aa69c2f3db3f6435eba0c0b
5983
6535
  """Type checking stubs"""
5984
6536
  pass
5985
6537
 
6538
+ def _typecheckingstub__ca135861d33d78962bcab351d8e2048fc1f831afc1ade25d2fcc2f2024c72abd(
6539
+ *,
6540
+ image_tag_mutability_exclusion_filter_type: builtins.str,
6541
+ image_tag_mutability_exclusion_filter_value: builtins.str,
6542
+ ) -> None:
6543
+ """Type checking stubs"""
6544
+ pass
6545
+
5986
6546
  def _typecheckingstub__e19a186a43de423097984e8a515b442413c2fa31fe895650e26f9f349987264e(
5987
6547
  *,
5988
6548
  lifecycle_policy_text: typing.Optional[builtins.str] = None,
@@ -6001,6 +6561,7 @@ def _typecheckingstub__494445c3594e6c48becf87b896b56289e6923275ed1be048e55a955aa
6001
6561
  description: typing.Optional[builtins.str] = None,
6002
6562
  encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepositoryCreationTemplate.EncryptionConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6003
6563
  image_tag_mutability: typing.Optional[builtins.str] = None,
6564
+ image_tag_mutability_exclusion_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepositoryCreationTemplate.ImageTagMutabilityExclusionFilterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
6004
6565
  lifecycle_policy: typing.Optional[builtins.str] = None,
6005
6566
  repository_policy: typing.Optional[builtins.str] = None,
6006
6567
  resource_tags: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]]]] = None,
@@ -6056,6 +6617,12 @@ def _typecheckingstub__0d03ac6e7b2975934cbd1c8b2470015fc671509b1b82834732e60abe4
6056
6617
  """Type checking stubs"""
6057
6618
  pass
6058
6619
 
6620
+ def _typecheckingstub__686708849f7a8d060ba78b1f975486b8f424fe3ede8590146ea58544a5f10f12(
6621
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnRepositoryCreationTemplate.ImageTagMutabilityExclusionFilterProperty]]]],
6622
+ ) -> None:
6623
+ """Type checking stubs"""
6624
+ pass
6625
+
6059
6626
  def _typecheckingstub__e2e08b01e66ab87aacff8f76d06c2abf47c27bd4366b69a73969d43a0b0b636a(
6060
6627
  value: typing.Optional[builtins.str],
6061
6628
  ) -> None:
@@ -6082,6 +6649,14 @@ def _typecheckingstub__0f48a77de88f0d76d55768806e65efb655f325c51435a78fe46978432
6082
6649
  """Type checking stubs"""
6083
6650
  pass
6084
6651
 
6652
+ def _typecheckingstub__86a83c57e1c4d3066aaec203ce5a6efdfad7a3c3f4adffc2b0326304ae7a11f1(
6653
+ *,
6654
+ image_tag_mutability_exclusion_filter_type: builtins.str,
6655
+ image_tag_mutability_exclusion_filter_value: builtins.str,
6656
+ ) -> None:
6657
+ """Type checking stubs"""
6658
+ pass
6659
+
6085
6660
  def _typecheckingstub__623a27e5bf9e58dfa2c0c25d5b312731cce32386963e30de33e3bd636fb982d3(
6086
6661
  *,
6087
6662
  applied_for: typing.Sequence[builtins.str],
@@ -6090,6 +6665,7 @@ def _typecheckingstub__623a27e5bf9e58dfa2c0c25d5b312731cce32386963e30de33e3bd636
6090
6665
  description: typing.Optional[builtins.str] = None,
6091
6666
  encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepositoryCreationTemplate.EncryptionConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6092
6667
  image_tag_mutability: typing.Optional[builtins.str] = None,
6668
+ image_tag_mutability_exclusion_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepositoryCreationTemplate.ImageTagMutabilityExclusionFilterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
6093
6669
  lifecycle_policy: typing.Optional[builtins.str] = None,
6094
6670
  repository_policy: typing.Optional[builtins.str] = None,
6095
6671
  resource_tags: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]]]] = None,
@@ -6103,6 +6679,7 @@ def _typecheckingstub__6887f05f59c4e061f761607002ffdf5b7ad09f76abbf4b7be49513c3e
6103
6679
  encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepository.EncryptionConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6104
6680
  image_scanning_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepository.ImageScanningConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6105
6681
  image_tag_mutability: typing.Optional[builtins.str] = None,
6682
+ image_tag_mutability_exclusion_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepository.ImageTagMutabilityExclusionFilterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
6106
6683
  lifecycle_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRepository.LifecyclePolicyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6107
6684
  repository_name: typing.Optional[builtins.str] = None,
6108
6685
  repository_policy_text: typing.Any = None,
@@ -6216,6 +6793,12 @@ def _typecheckingstub__894e1dc0284d8788d4bcf980d7755525e14fbcec8b305670af1a388f3
6216
6793
  """Type checking stubs"""
6217
6794
  pass
6218
6795
 
6796
+ def _typecheckingstub__506e41b81658bfe386f74207c24c3216542f105c02a9deeef0aa17031ffd52ef(
6797
+ pattern: builtins.str,
6798
+ ) -> None:
6799
+ """Type checking stubs"""
6800
+ pass
6801
+
6219
6802
  def _typecheckingstub__daefc01ac58c056180e96357fa989faf5de713c6f5bd46bb023e2579bcaf8de0(
6220
6803
  *,
6221
6804
  description: typing.Optional[builtins.str] = None,
@@ -6403,9 +6986,10 @@ def _typecheckingstub__638b63dd5eb589e01019ee47c63d6335810d02b0d769f767f2bf2fddc
6403
6986
  auto_delete_images: typing.Optional[builtins.bool] = None,
6404
6987
  empty_on_delete: typing.Optional[builtins.bool] = None,
6405
6988
  encryption: typing.Optional[RepositoryEncryption] = None,
6406
- encryption_key: typing.Optional[_IKey_5f11635f] = None,
6989
+ encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
6407
6990
  image_scan_on_push: typing.Optional[builtins.bool] = None,
6408
6991
  image_tag_mutability: typing.Optional[TagMutability] = None,
6992
+ image_tag_mutability_exclusion_filters: typing.Optional[typing.Sequence[ImageTagMutabilityExclusionFilter]] = None,
6409
6993
  lifecycle_registry_id: typing.Optional[builtins.str] = None,
6410
6994
  lifecycle_rules: typing.Optional[typing.Sequence[typing.Union[LifecycleRule, typing.Dict[builtins.str, typing.Any]]]] = None,
6411
6995
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
@@ -6421,9 +7005,10 @@ def _typecheckingstub__0fcb489ea7ac91914ff0429ef13d64f8bd29978872d9ce4754ee9d397
6421
7005
  auto_delete_images: typing.Optional[builtins.bool] = None,
6422
7006
  empty_on_delete: typing.Optional[builtins.bool] = None,
6423
7007
  encryption: typing.Optional[RepositoryEncryption] = None,
6424
- encryption_key: typing.Optional[_IKey_5f11635f] = None,
7008
+ encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
6425
7009
  image_scan_on_push: typing.Optional[builtins.bool] = None,
6426
7010
  image_tag_mutability: typing.Optional[TagMutability] = None,
7011
+ image_tag_mutability_exclusion_filters: typing.Optional[typing.Sequence[ImageTagMutabilityExclusionFilter]] = None,
6427
7012
  lifecycle_registry_id: typing.Optional[builtins.str] = None,
6428
7013
  lifecycle_rules: typing.Optional[typing.Sequence[typing.Union[LifecycleRule, typing.Dict[builtins.str, typing.Any]]]] = None,
6429
7014
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
@@ -6481,3 +7066,6 @@ def _typecheckingstub__a4c2e425a71ed909d2a0bfefe861aad7c34b251f3ef1f93f5dd7f2be5
6481
7066
  ) -> None:
6482
7067
  """Type checking stubs"""
6483
7068
  pass
7069
+
7070
+ for cls in [IRepository]:
7071
+ typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])