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
@@ -66,7 +66,18 @@ For stateful or otherwise non-interruption-tolerant workflows, omit `spot` or se
66
66
 
67
67
  #### Choosing Your Instance Types
68
68
 
69
- Batch allows you to choose the instance types or classes that will run your workload.
69
+ Batch allows you to choose most up-to-date instance classes based on your region.
70
+ This example configures your `ComputeEnvironment` to use only ARM64 instance:
71
+
72
+ ```python
73
+ vpc = ec2.Vpc(self, "VPC")
74
+
75
+ batch.ManagedEc2EcsComputeEnvironment(self, "myEc2ComputeEnv",
76
+ vpc=vpc,
77
+ default_instance_classes=[batch.DefaultInstanceClass.ARM64]
78
+ )
79
+ ```
80
+
70
81
  This example configures your `ComputeEnvironment` to use only the `M5AD.large` instance:
71
82
 
72
83
  ```python
@@ -91,6 +102,9 @@ batch.ManagedEc2EcsComputeEnvironment(self, "myEc2ComputeEnv",
91
102
  )
92
103
  ```
93
104
 
105
+ > [!WARNING]
106
+ > `useOptimalInstanceClasses` is deprecated! Use `defaultInstanceClasses` instead.
107
+
94
108
  Unless you explicitly specify `useOptimalInstanceClasses: false`, this compute environment will use `'optimal'` instances,
95
109
  which tells Batch to pick an instance from the C4, M4, and R4 instance families.
96
110
  *Note*: Batch does not allow specifying instance types or classes with different architectures.
@@ -533,6 +547,40 @@ job_defn = batch.EcsJobDefinition(self, "JobDefn",
533
547
  )
534
548
  ```
535
549
 
550
+ ### Enable Execute Command (ECS Exec)
551
+
552
+ You can enable [ECS Exec](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html) for interactive debugging and troubleshooting by setting `enableExecuteCommand` to `true`.
553
+ When enabled, you'll be able to execute commands interactively in running containers.
554
+
555
+ ```python
556
+ job_defn = batch.EcsJobDefinition(self, "JobDefn",
557
+ container=batch.EcsEc2ContainerDefinition(self, "Ec2Container",
558
+ image=ecs.ContainerImage.from_registry("public.ecr.aws/amazonlinux/amazonlinux:latest"),
559
+ memory=cdk.Size.mebibytes(2048),
560
+ cpu=256,
561
+ enable_execute_command=True
562
+ )
563
+ )
564
+ ```
565
+
566
+ The same functionality is available for Fargate containers:
567
+
568
+ ```python
569
+ job_defn = batch.EcsJobDefinition(self, "JobDefn",
570
+ container=batch.EcsFargateContainerDefinition(self, "FargateContainer",
571
+ image=ecs.ContainerImage.from_registry("public.ecr.aws/amazonlinux/amazonlinux:latest"),
572
+ memory=cdk.Size.mebibytes(2048),
573
+ cpu=256,
574
+ enable_execute_command=True
575
+ )
576
+ )
577
+ ```
578
+
579
+ When `enableExecuteCommand` is set to `true`:
580
+
581
+ * If no `jobRole` is provided, a new IAM role will be automatically created with the required SSM permissions
582
+ * If a `jobRole` is already provided, the necessary SSM permissions will be added to the existing role
583
+
536
584
  ### Secrets
537
585
 
538
586
  You can expose SecretsManager Secret ARNs or SSM Parameters to your container as environment variables.
@@ -792,6 +840,21 @@ from ..aws_iam import (
792
840
  )
793
841
  from ..aws_secretsmanager import ISecret as _ISecret_6e020e6a
794
842
  from ..aws_ssm import IParameter as _IParameter_509a0f80
843
+ from ..interfaces.aws_batch import (
844
+ ComputeEnvironmentReference as _ComputeEnvironmentReference_74ec9988,
845
+ ConsumableResourceReference as _ConsumableResourceReference_eb60ef1d,
846
+ IComputeEnvironmentRef as _IComputeEnvironmentRef_eab02155,
847
+ IConsumableResourceRef as _IConsumableResourceRef_114da7c5,
848
+ IJobDefinitionRef as _IJobDefinitionRef_ae0cae56,
849
+ IJobQueueRef as _IJobQueueRef_2f1c7bda,
850
+ ISchedulingPolicyRef as _ISchedulingPolicyRef_a7864c7c,
851
+ IServiceEnvironmentRef as _IServiceEnvironmentRef_5865fef4,
852
+ JobDefinitionReference as _JobDefinitionReference_e67f0e8f,
853
+ JobQueueReference as _JobQueueReference_1a1e9db8,
854
+ SchedulingPolicyReference as _SchedulingPolicyReference_a55795c6,
855
+ ServiceEnvironmentReference as _ServiceEnvironmentReference_9a7dc7ee,
856
+ )
857
+ from ..interfaces.aws_ec2 import IPlacementGroupRef as _IPlacementGroupRef_5d6e601f
795
858
 
796
859
 
797
860
  @jsii.enum(jsii_type="aws-cdk-lib.aws_batch.Action")
@@ -886,7 +949,7 @@ class AllocationStrategy(enum.Enum):
886
949
  '''
887
950
 
888
951
 
889
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
952
+ @jsii.implements(_IInspectable_c2943556, _IComputeEnvironmentRef_eab02155, _ITaggable_36806126)
890
953
  class CfnComputeEnvironment(
891
954
  _CfnResource_9df397a6,
892
955
  metaclass=jsii.JSIIMeta,
@@ -970,8 +1033,10 @@ class CfnComputeEnvironment(
970
1033
  launch_template_id="launchTemplateId",
971
1034
  launch_template_name="launchTemplateName",
972
1035
  target_instance_types=["targetInstanceTypes"],
1036
+ userdata_type="userdataType",
973
1037
  version="version"
974
1038
  )],
1039
+ userdata_type="userdataType",
975
1040
  version="version"
976
1041
  ),
977
1042
  minv_cpus=123,
@@ -1019,14 +1084,15 @@ class CfnComputeEnvironment(
1019
1084
  unmanagedv_cpus: typing.Optional[jsii.Number] = None,
1020
1085
  update_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnComputeEnvironment.UpdatePolicyProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1021
1086
  ) -> None:
1022
- '''
1087
+ '''Create a new ``AWS::Batch::ComputeEnvironment``.
1088
+
1023
1089
  :param scope: Scope in which this resource is defined.
1024
1090
  :param id: Construct identifier for this resource (unique in its scope).
1025
1091
  :param type: The type of the compute environment: ``MANAGED`` or ``UNMANAGED`` . For more information, see `Compute Environments <https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html>`_ in the *AWS Batch User Guide* .
1026
1092
  :param compute_environment_name: The name for your compute environment. It can be up to 128 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).
1027
1093
  :param compute_resources: The ComputeResources property type specifies details of the compute resources managed by the compute environment. This parameter is required for managed compute environments. For more information, see `Compute Environments <https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html>`_ in the ** .
1028
1094
  :param context: Reserved.
1029
- :param eks_configuration: The details for the Amazon EKS cluster that supports the compute environment.
1095
+ :param eks_configuration: The details for the Amazon EKS cluster that supports the compute environment. .. epigraph:: To create a compute environment that uses EKS resources, the caller must have permissions to call ``eks:DescribeCluster`` .
1030
1096
  :param replace_compute_environment: Specifies whether the compute environment is replaced if an update is made that requires replacing the instances in the compute environment. The default value is ``true`` . To enable more properties to be updated, set this property to ``false`` . When changing the value of this property to ``false`` , do not change any other properties at the same time. If other properties are changed at the same time, and the change needs to be rolled back but it can't, it's possible for the stack to go into the ``UPDATE_ROLLBACK_FAILED`` state. You can't update a stack that is in the ``UPDATE_ROLLBACK_FAILED`` state. However, if you can continue to roll it back, you can return the stack to its original settings and then try to update it again. For more information, see `Continue rolling back an update <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html>`_ in the *AWS CloudFormation User Guide* . ``ReplaceComputeEnvironment`` is not applicable for Fargate compute environments. Fargate compute environments are always updated without interruption. The properties that can't be changed without replacing the compute environment are in the ```ComputeResources`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html>`_ property type: ```AllocationStrategy`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-allocationstrategy>`_ , ```BidPercentage`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-bidpercentage>`_ , ```Ec2Configuration`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2configuration>`_ , ```Ec2KeyPair`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair>`_ , ```Ec2KeyPair`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair>`_ , ```ImageId`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-imageid>`_ , ```InstanceRole`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancerole>`_ , ```InstanceTypes`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancetypes>`_ , ```LaunchTemplate`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-launchtemplate>`_ , ```MaxvCpus`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-maxvcpus>`_ , ```MinvCpus`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-minvcpus>`_ , ```PlacementGroup`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-placementgroup>`_ , ```SecurityGroupIds`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-securitygroupids>`_ , ```Subnets`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-subnets>`_ , `Tags <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-tags>`_ , ```Type`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-type>`_ , and ```UpdateToLatestImageVersion`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-updatetolatestimageversion>`_ . Default: - true
1031
1097
  :param service_role: The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf. For more information, see `AWS Batch service IAM role <https://docs.aws.amazon.com/batch/latest/userguide/service_IAM_role.html>`_ in the *AWS Batch User Guide* . .. epigraph:: If your account already created the AWS Batch service-linked role, that role is used by default for your compute environment unless you specify a different role here. If the AWS Batch service-linked role doesn't exist in your account, and no role is specified here, the service attempts to create the AWS Batch service-linked role in your account. If your specified role has a path other than ``/`` , then you must specify either the full role ARN (recommended) or prefix the role name with the path. For example, if a role with the name ``bar`` has a path of ``/foo/`` , specify ``/foo/bar`` as the role name. For more information, see `Friendly names and paths <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names>`_ in the *IAM User Guide* . .. epigraph:: Depending on how you created your AWS Batch service role, its ARN might contain the ``service-role`` path prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN doesn't use the ``service-role`` path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments.
1032
1098
  :param state: The state of the compute environment. If the state is ``ENABLED`` , then the compute environment accepts jobs from a queue and can scale out automatically based on queues. If the state is ``ENABLED`` , then the AWS Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand. If the state is ``DISABLED`` , then the AWS Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a ``STARTING`` or ``RUNNING`` state continue to progress normally. Managed compute environments in the ``DISABLED`` state don't scale out. .. epigraph:: Compute environments in a ``DISABLED`` state may continue to incur billing charges. To prevent additional charges, turn off and then delete the compute environment. For more information, see `State <https://docs.aws.amazon.com/batch/latest/userguide/compute_environment_parameters.html#compute_environment_state>`_ in the *AWS Batch User Guide* . When an instance is idle, the instance scales down to the ``minvCpus`` value. However, the instance size doesn't change. For example, consider a ``c5.8xlarge`` instance with a ``minvCpus`` value of ``4`` and a ``desiredvCpus`` value of ``36`` . This instance doesn't scale down to a ``c5.large`` instance.
@@ -1098,6 +1164,12 @@ class CfnComputeEnvironment(
1098
1164
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1099
1165
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1100
1166
 
1167
+ @builtins.property
1168
+ @jsii.member(jsii_name="computeEnvironmentRef")
1169
+ def compute_environment_ref(self) -> _ComputeEnvironmentReference_74ec9988:
1170
+ '''A reference to a ComputeEnvironment resource.'''
1171
+ return typing.cast(_ComputeEnvironmentReference_74ec9988, jsii.get(self, "computeEnvironmentRef"))
1172
+
1101
1173
  @builtins.property
1102
1174
  @jsii.member(jsii_name="tags")
1103
1175
  def tags(self) -> _TagManager_0a598cb3:
@@ -1331,7 +1403,7 @@ class CfnComputeEnvironment(
1331
1403
  :param ec2_key_pair: The Amazon EC2 key pair that's used for instances launched in the compute environment. You can use this key pair to log in to your instances with SSH. To remove the Amazon EC2 key pair, set this value to an empty string. When updating a compute environment, changing the Amazon EC2 key pair requires an infrastructure update of the compute environment. For more information, see `Updating compute environments <https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html>`_ in the *AWS Batch User Guide* . .. epigraph:: This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.
1332
1404
  :param image_id: The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. This parameter is overridden by the ``imageIdOverride`` member of the ``Ec2Configuration`` structure. To remove the custom AMI ID and use the default AMI ID, set this value to an empty string. When updating a compute environment, changing the AMI ID requires an infrastructure update of the compute environment. For more information, see `Updating compute environments <https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html>`_ in the *AWS Batch User Guide* . .. epigraph:: This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. > The AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances. Amazon ECS vends both x86 and ARM versions of the Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see `Amazon ECS-optimized Amazon Linux 2 AMI <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
1333
1405
  :param instance_role: The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. Required for Amazon EC2 instances. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ``*ecsInstanceRole*`` or ``arn:aws:iam:: *<aws_account_id>* :instance-profile/ *ecsInstanceRole*`` . For more information, see `Amazon ECS instance role <https://docs.aws.amazon.com/batch/latest/userguide/instance_IAM_role.html>`_ in the *AWS Batch User Guide* . When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see `Updating compute environments <https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html>`_ in the *AWS Batch User Guide* . .. epigraph:: This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.
1334
- :param instance_types: The instances types that can be launched. You can specify instance families to launch any instance type within those families (for example, ``c5`` or ``p3`` ), or you can specify specific sizes within a family (such as ``c5.8xlarge`` ). You can also choose ``optimal`` to select instance types (from the C4, M4, and R4 instance families) that match the demand of your job queues. When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see `Updating compute environments <https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html>`_ in the *AWS Batch User Guide* . .. epigraph:: This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. > When you create a compute environment, the instance types that you select for the compute environment must share the same architecture. For example, you can't mix x86 and ARM instances in the same compute environment. > Currently, ``optimal`` uses instance types from the C4, M4, and R4 instance families. In Regions that don't have instance types from those instance families, instance types from the C5, M5, and R5 instance families are used.
1406
+ :param instance_types: The instances types that can be launched. You can specify instance families to launch any instance type within those families (for example, ``c5`` or ``p3`` ), or you can specify specific sizes within a family (such as ``c5.8xlarge`` ). AWS Batch can select the instance type for you if you choose one of the following: - ``optimal`` to select instance types (from the ``c4`` , ``m4`` , ``r4`` , ``c5`` , ``m5`` , and ``r5`` instance families) that match the demand of your job queues. - ``default_x86_64`` to choose x86 based instance types (from the ``m6i`` , ``c6i`` , ``r6i`` , and ``c7i`` instance families) that matches the resource demands of the job queue. - ``default_arm64`` to choose x86 based instance types (from the ``m6g`` , ``c6g`` , ``r6g`` , and ``c7g`` instance families) that matches the resource demands of the job queue. .. epigraph:: Starting on 11/01/2025 the behavior of ``optimal`` is going to be changed to match ``default_x86_64`` . During the change your instance families could be updated to a newer generation. You do not need to perform any actions for the upgrade to happen. For more information about change, see `Optimal instance type configuration to receive automatic instance family updates <https://docs.aws.amazon.com/batch/latest/userguide/optimal-default-instance-troubleshooting.html>`_ . > Instance family availability varies by AWS Region . For example, some AWS Region s may not have any fourth generation instance families but have fifth and sixth generation instance families. When using ``default_x86_64`` or ``default_arm64`` instance bundles, AWS Batch selects instance families based on a balance of cost-effectiveness and performance. While newer generation instances often provide better price-performance, AWS Batch may choose an earlier generation instance family if it provides the optimal combination of availability, cost, and performance for your workload. For example, in an AWS Region where both c6i and c7i instances are available, AWS Batch might select c6i instances if they offer better cost-effectiveness for your specific job requirements. For more information on AWS Batch instance types and AWS Region availability, see `Instance type compute table <https://docs.aws.amazon.com/batch/latest/userguide/instance-type-compute-table.html>`_ in the *AWS Batch User Guide* . AWS Batch periodically updates your instances in default bundles to newer, more cost-effective options. Updates happen automatically without requiring any action from you. Your workloads continue running during updates with no interruption > This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. > When you create a compute environment, the instance types that you select for the compute environment must share the same architecture. For example, you can't mix x86 and ARM instances in the same compute environment.
1335
1407
  :param launch_template: The launch template to use for your compute resources. Any other compute resource parameters that you specify in a `CreateComputeEnvironment <https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html>`_ API operation override the same parameters in the launch template. You must specify either the launch template ID or launch template name in the request, but not both. For more information, see `Launch Template Support <https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html>`_ in the ** . Removing the launch template from a compute environment will not remove the AMI specified in the launch template. In order to update the AMI specified in a launch template, the ``updateToLatestImageVersion`` parameter must be set to ``true`` . When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see `Updating compute environments <https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html>`_ in the ** . .. epigraph:: This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
1336
1408
  :param minv_cpus: The minimum number of vCPUs that an environment should maintain (even if the compute environment is ``DISABLED`` ). .. epigraph:: This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.
1337
1409
  :param placement_group: The Amazon EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. For more information, see `Placement groups <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html>`_ in the *Amazon EC2 User Guide for Linux Instances* . When updating a compute environment, changing the placement group requires an infrastructure update of the compute environment. For more information, see `Updating compute environments <https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html>`_ in the *AWS Batch User Guide* . .. epigraph:: This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.
@@ -1376,8 +1448,10 @@ class CfnComputeEnvironment(
1376
1448
  launch_template_id="launchTemplateId",
1377
1449
  launch_template_name="launchTemplateName",
1378
1450
  target_instance_types=["targetInstanceTypes"],
1451
+ userdata_type="userdataType",
1379
1452
  version="version"
1380
1453
  )],
1454
+ userdata_type="userdataType",
1381
1455
  version="version"
1382
1456
  ),
1383
1457
  minv_cpus=123,
@@ -1628,12 +1702,21 @@ class CfnComputeEnvironment(
1628
1702
  def instance_types(self) -> typing.Optional[typing.List[builtins.str]]:
1629
1703
  '''The instances types that can be launched.
1630
1704
 
1631
- You can specify instance families to launch any instance type within those families (for example, ``c5`` or ``p3`` ), or you can specify specific sizes within a family (such as ``c5.8xlarge`` ). You can also choose ``optimal`` to select instance types (from the C4, M4, and R4 instance families) that match the demand of your job queues.
1705
+ You can specify instance families to launch any instance type within those families (for example, ``c5`` or ``p3`` ), or you can specify specific sizes within a family (such as ``c5.8xlarge`` ).
1706
+
1707
+ AWS Batch can select the instance type for you if you choose one of the following:
1708
+
1709
+ - ``optimal`` to select instance types (from the ``c4`` , ``m4`` , ``r4`` , ``c5`` , ``m5`` , and ``r5`` instance families) that match the demand of your job queues.
1710
+ - ``default_x86_64`` to choose x86 based instance types (from the ``m6i`` , ``c6i`` , ``r6i`` , and ``c7i`` instance families) that matches the resource demands of the job queue.
1711
+ - ``default_arm64`` to choose x86 based instance types (from the ``m6g`` , ``c6g`` , ``r6g`` , and ``c7g`` instance families) that matches the resource demands of the job queue.
1632
1712
 
1633
- When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see `Updating compute environments <https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html>`_ in the *AWS Batch User Guide* .
1634
1713
  .. epigraph::
1635
1714
 
1636
- This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. > When you create a compute environment, the instance types that you select for the compute environment must share the same architecture. For example, you can't mix x86 and ARM instances in the same compute environment. > Currently, ``optimal`` uses instance types from the C4, M4, and R4 instance families. In Regions that don't have instance types from those instance families, instance types from the C5, M5, and R5 instance families are used.
1715
+ Starting on 11/01/2025 the behavior of ``optimal`` is going to be changed to match ``default_x86_64`` . During the change your instance families could be updated to a newer generation. You do not need to perform any actions for the upgrade to happen. For more information about change, see `Optimal instance type configuration to receive automatic instance family updates <https://docs.aws.amazon.com/batch/latest/userguide/optimal-default-instance-troubleshooting.html>`_ . > Instance family availability varies by AWS Region . For example, some AWS Region s may not have any fourth generation instance families but have fifth and sixth generation instance families.
1716
+
1717
+ When using ``default_x86_64`` or ``default_arm64`` instance bundles, AWS Batch selects instance families based on a balance of cost-effectiveness and performance. While newer generation instances often provide better price-performance, AWS Batch may choose an earlier generation instance family if it provides the optimal combination of availability, cost, and performance for your workload. For example, in an AWS Region where both c6i and c7i instances are available, AWS Batch might select c6i instances if they offer better cost-effectiveness for your specific job requirements. For more information on AWS Batch instance types and AWS Region availability, see `Instance type compute table <https://docs.aws.amazon.com/batch/latest/userguide/instance-type-compute-table.html>`_ in the *AWS Batch User Guide* .
1718
+
1719
+ AWS Batch periodically updates your instances in default bundles to newer, more cost-effective options. Updates happen automatically without requiring any action from you. Your workloads continue running during updates with no interruption > This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. > When you create a compute environment, the instance types that you select for the compute environment must share the same architecture. For example, you can't mix x86 and ARM instances in the same compute environment.
1637
1720
 
1638
1721
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancetypes
1639
1722
  '''
@@ -1785,7 +1868,7 @@ class CfnComputeEnvironment(
1785
1868
 
1786
1869
  This object isn't applicable to jobs that are running on Fargate resources.
1787
1870
 
1788
- :param image_type: The image type to match with the instance type to select an AMI. The supported values are different for ``ECS`` and ``EKS`` resources. - **ECS** - If the ``imageIdOverride`` parameter isn't specified, then a recent `Amazon ECS-optimized Amazon Linux 2 AMI <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami>`_ ( ``ECS_AL2`` ) is used. If a new image type is specified in an update, but neither an ``imageId`` nor a ``imageIdOverride`` parameter is specified, then the latest Amazon ECS optimized AMI for that image type that's supported by AWS Batch is used. - **ECS_AL2** - `Amazon Linux 2 <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami>`_ : Default for all non-GPU instance families. - **ECS_AL2_NVIDIA** - `Amazon Linux 2 (GPU) <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami>`_ : Default for all GPU instance families (for example ``P4`` and ``G4`` ) and can be used for all non AWS Graviton-based instance types. - **ECS_AL2023** - `Amazon Linux 2023 <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html>`_ : AWS Batch supports Amazon Linux 2023. .. epigraph:: Amazon Linux 2023 does not support ``A1`` instances. - **ECS_AL1** - `Amazon Linux <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#alami>`_ . Amazon Linux has reached the end-of-life of standard support. For more information, see `Amazon Linux AMI <https://docs.aws.amazon.com/amazon-linux-ami/>`_ . - **EKS** - If the ``imageIdOverride`` parameter isn't specified, then a recent `Amazon EKS-optimized Amazon Linux AMI <https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html>`_ ( ``EKS_AL2`` ) is used. If a new image type is specified in an update, but neither an ``imageId`` nor a ``imageIdOverride`` parameter is specified, then the latest Amazon EKS optimized AMI for that image type that AWS Batch supports is used. - **EKS_AL2** - `Amazon Linux 2 <https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html>`_ : Default for all non-GPU instance families. - **EKS_AL2_NVIDIA** - `Amazon Linux 2 (accelerated) <https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html>`_ : Default for all GPU instance families (for example, ``P4`` and ``G4`` ) and can be used for all non AWS Graviton-based instance types.
1871
+ :param image_type: The image type to match with the instance type to select an AMI. The supported values are different for ``ECS`` and ``EKS`` resources. - **ECS** - If the ``imageIdOverride`` parameter isn't specified, then a recent `Amazon ECS-optimized Amazon Linux 2 AMI <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami>`_ ( ``ECS_AL2`` ) is used. If a new image type is specified in an update, but neither an ``imageId`` nor a ``imageIdOverride`` parameter is specified, then the latest Amazon ECS optimized AMI for that image type that's supported by AWS Batch is used. .. epigraph:: AWS will end support for Amazon ECS optimized AL2-optimized and AL2-accelerated AMIs. Starting in January 2026, AWS Batch will change the default AMI for new Amazon ECS compute environments from Amazon Linux 2 to Amazon Linux 2023. We recommend migrating AWS Batch Amazon ECS compute environments to Amazon Linux 2023 to maintain optimal performance and security. For more information on upgrading from AL2 to AL2023, see `How to migrate from ECS AL2 to ECS AL2023 <https://docs.aws.amazon.com/batch/latest/userguide/ecs-migration-2023.html>`_ in the *AWS Batch User Guide* . - **ECS_AL2** - `Amazon Linux 2 <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami>`_ : Default for all non-GPU instance families. - **ECS_AL2_NVIDIA** - `Amazon Linux 2 (GPU) <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami>`_ : Default for all GPU instance families (for example ``P4`` and ``G4`` ) and can be used for all non AWS Graviton-based instance types. - **ECS_AL2023** - `Amazon Linux 2023 <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html>`_ : AWS Batch supports Amazon Linux 2023. .. epigraph:: Amazon Linux 2023 does not support ``A1`` instances. - **ECS_AL2023_NVIDIA** - `Amazon Linux 2023 (GPU) <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami>`_ : For all GPU instance families and can be used for all non AWS Graviton-based instance types. .. epigraph:: ECS_AL2023_NVIDIA doesn't support ``p3`` and ``g3`` instance types. - **EKS** - If the ``imageIdOverride`` parameter isn't specified, then a recent `Amazon EKS-optimized Amazon Linux AMI <https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html>`_ ( ``EKS_AL2`` ) is used. If a new image type is specified in an update, but neither an ``imageId`` nor a ``imageIdOverride`` parameter is specified, then the latest Amazon EKS optimized AMI for that image type that AWS Batch supports is used. .. epigraph:: Starting end of October 2025 Amazon EKS optimized Amazon Linux 2023 AMIs will be the default on AWS Batch for EKS versions prior to 1.33. Starting from Kubernetes version 1.33, EKS optimized Amazon Linux 2023 AMIs will be the default when it becomes supported on AWS Batch . AWS will end support for Amazon EKS AL2-optimized and AL2-accelerated AMIs, starting 11/26/25. You can continue using AWS Batch -provided Amazon EKS optimized Amazon Linux 2 AMIs on your Amazon EKS compute environments beyond the 11/26/25 end-of-support date, these compute environments will no longer receive any new software updates, security patches, or bug fixes from AWS . For more information on upgrading from AL2 to AL2023, see `How to upgrade from EKS AL2 to EKS AL2023 <https://docs.aws.amazon.com/batch/latest/userguide/eks-migration-2023.html>`_ in the *AWS Batch User Guide* . - **EKS_AL2** - `Amazon Linux 2 <https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html>`_ : Default for all non-GPU instance families. - **EKS_AL2_NVIDIA** - `Amazon Linux 2 (accelerated) <https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html>`_ : Default for all GPU instance families (for example, ``P4`` and ``G4`` ) and can be used for all non AWS Graviton-based instance types. - **EKS_AL2023** - `Amazon Linux 2023 <https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html>`_ : AWS Batch supports Amazon Linux 2023. .. epigraph:: Amazon Linux 2023 does not support ``A1`` instances. - **EKS_AL2023_NVIDIA** - `Amazon Linux 2023 (accelerated) <https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html>`_ : GPU instance families and can be used for all non AWS Graviton-based instance types.
1789
1872
  :param image_id_override: The AMI ID used for instances launched in the compute environment that match the image type. This setting overrides the ``imageId`` set in the ``computeResource`` object. .. epigraph:: The AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances. Amazon ECS vends both x86 and ARM versions of the Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see `Amazon ECS-optimized Amazon Linux 2 AMI <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
1790
1873
  :param image_kubernetes_version: The Kubernetes version for the compute environment. If you don't specify a value, the latest version that AWS Batch supports is used.
1791
1874
 
@@ -1826,6 +1909,11 @@ class CfnComputeEnvironment(
1826
1909
  The supported values are different for ``ECS`` and ``EKS`` resources.
1827
1910
 
1828
1911
  - **ECS** - If the ``imageIdOverride`` parameter isn't specified, then a recent `Amazon ECS-optimized Amazon Linux 2 AMI <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami>`_ ( ``ECS_AL2`` ) is used. If a new image type is specified in an update, but neither an ``imageId`` nor a ``imageIdOverride`` parameter is specified, then the latest Amazon ECS optimized AMI for that image type that's supported by AWS Batch is used.
1912
+
1913
+ .. epigraph::
1914
+
1915
+ AWS will end support for Amazon ECS optimized AL2-optimized and AL2-accelerated AMIs. Starting in January 2026, AWS Batch will change the default AMI for new Amazon ECS compute environments from Amazon Linux 2 to Amazon Linux 2023. We recommend migrating AWS Batch Amazon ECS compute environments to Amazon Linux 2023 to maintain optimal performance and security. For more information on upgrading from AL2 to AL2023, see `How to migrate from ECS AL2 to ECS AL2023 <https://docs.aws.amazon.com/batch/latest/userguide/ecs-migration-2023.html>`_ in the *AWS Batch User Guide* .
1916
+
1829
1917
  - **ECS_AL2** - `Amazon Linux 2 <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami>`_ : Default for all non-GPU instance families.
1830
1918
  - **ECS_AL2_NVIDIA** - `Amazon Linux 2 (GPU) <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami>`_ : Default for all GPU instance families (for example ``P4`` and ``G4`` ) and can be used for all non AWS Graviton-based instance types.
1831
1919
  - **ECS_AL2023** - `Amazon Linux 2023 <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html>`_ : AWS Batch supports Amazon Linux 2023.
@@ -1834,10 +1922,29 @@ class CfnComputeEnvironment(
1834
1922
 
1835
1923
  Amazon Linux 2023 does not support ``A1`` instances.
1836
1924
 
1837
- - **ECS_AL1** - `Amazon Linux <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#alami>`_ . Amazon Linux has reached the end-of-life of standard support. For more information, see `Amazon Linux AMI <https://docs.aws.amazon.com/amazon-linux-ami/>`_ .
1925
+ - **ECS_AL2023_NVIDIA** - `Amazon Linux 2023 (GPU) <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami>`_ : For all GPU instance families and can be used for all non AWS Graviton-based instance types.
1926
+
1927
+ .. epigraph::
1928
+
1929
+ ECS_AL2023_NVIDIA doesn't support ``p3`` and ``g3`` instance types.
1930
+
1838
1931
  - **EKS** - If the ``imageIdOverride`` parameter isn't specified, then a recent `Amazon EKS-optimized Amazon Linux AMI <https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html>`_ ( ``EKS_AL2`` ) is used. If a new image type is specified in an update, but neither an ``imageId`` nor a ``imageIdOverride`` parameter is specified, then the latest Amazon EKS optimized AMI for that image type that AWS Batch supports is used.
1932
+
1933
+ .. epigraph::
1934
+
1935
+ Starting end of October 2025 Amazon EKS optimized Amazon Linux 2023 AMIs will be the default on AWS Batch for EKS versions prior to 1.33. Starting from Kubernetes version 1.33, EKS optimized Amazon Linux 2023 AMIs will be the default when it becomes supported on AWS Batch .
1936
+
1937
+ AWS will end support for Amazon EKS AL2-optimized and AL2-accelerated AMIs, starting 11/26/25. You can continue using AWS Batch -provided Amazon EKS optimized Amazon Linux 2 AMIs on your Amazon EKS compute environments beyond the 11/26/25 end-of-support date, these compute environments will no longer receive any new software updates, security patches, or bug fixes from AWS . For more information on upgrading from AL2 to AL2023, see `How to upgrade from EKS AL2 to EKS AL2023 <https://docs.aws.amazon.com/batch/latest/userguide/eks-migration-2023.html>`_ in the *AWS Batch User Guide* .
1938
+
1839
1939
  - **EKS_AL2** - `Amazon Linux 2 <https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html>`_ : Default for all non-GPU instance families.
1840
1940
  - **EKS_AL2_NVIDIA** - `Amazon Linux 2 (accelerated) <https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html>`_ : Default for all GPU instance families (for example, ``P4`` and ``G4`` ) and can be used for all non AWS Graviton-based instance types.
1941
+ - **EKS_AL2023** - `Amazon Linux 2023 <https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html>`_ : AWS Batch supports Amazon Linux 2023.
1942
+
1943
+ .. epigraph::
1944
+
1945
+ Amazon Linux 2023 does not support ``A1`` instances.
1946
+
1947
+ - **EKS_AL2023_NVIDIA** - `Amazon Linux 2023 (accelerated) <https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html>`_ : GPU instance families and can be used for all non AWS Graviton-based instance types.
1841
1948
 
1842
1949
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-ec2configurationobject.html#cfn-batch-computeenvironment-ec2configurationobject-imagetype
1843
1950
  '''
@@ -1968,6 +2075,7 @@ class CfnComputeEnvironment(
1968
2075
  "launch_template_id": "launchTemplateId",
1969
2076
  "launch_template_name": "launchTemplateName",
1970
2077
  "target_instance_types": "targetInstanceTypes",
2078
+ "userdata_type": "userdataType",
1971
2079
  "version": "version",
1972
2080
  },
1973
2081
  )
@@ -1978,6 +2086,7 @@ class CfnComputeEnvironment(
1978
2086
  launch_template_id: typing.Optional[builtins.str] = None,
1979
2087
  launch_template_name: typing.Optional[builtins.str] = None,
1980
2088
  target_instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
2089
+ userdata_type: typing.Optional[builtins.str] = None,
1981
2090
  version: typing.Optional[builtins.str] = None,
1982
2091
  ) -> None:
1983
2092
  '''An object that represents a launch template to use in place of the default launch template.
@@ -1993,7 +2102,8 @@ class CfnComputeEnvironment(
1993
2102
 
1994
2103
  :param launch_template_id: The ID of the launch template. *Note:* If you specify the ``launchTemplateId`` you can't specify the ``launchTemplateName`` as well.
1995
2104
  :param launch_template_name: The name of the launch template. *Note:* If you specify the ``launchTemplateName`` you can't specify the ``launchTemplateId`` as well.
1996
- :param target_instance_types: The instance type or family that this override launch template should be applied to. This parameter is required when defining a launch template override. Information included in this parameter must meet the following requirements: - Must be a valid Amazon EC2 instance type or family. - ``optimal`` isn't allowed. - ``targetInstanceTypes`` can target only instance types and families that are included within the ```ComputeResource.instanceTypes`` <https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes>`_ set. ``targetInstanceTypes`` doesn't need to include all of the instances from the ``instanceType`` set, but at least a subset. For example, if ``ComputeResource.instanceTypes`` includes ``[m5, g5]`` , ``targetInstanceTypes`` can include ``[m5.2xlarge]`` and ``[m5.large]`` but not ``[c5.large]`` . - ``targetInstanceTypes`` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family.
2105
+ :param target_instance_types: The instance type or family that this override launch template should be applied to. This parameter is required when defining a launch template override. Information included in this parameter must meet the following requirements: - Must be a valid Amazon EC2 instance type or family. - The following AWS Batch ``InstanceTypes`` are not allowed: ``optimal`` , ``default_x86_64`` , and ``default_arm64`` . - ``targetInstanceTypes`` can target only instance types and families that are included within the ```ComputeResource.instanceTypes`` <https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes>`_ set. ``targetInstanceTypes`` doesn't need to include all of the instances from the ``instanceType`` set, but at least a subset. For example, if ``ComputeResource.instanceTypes`` includes ``[m5, g5]`` , ``targetInstanceTypes`` can include ``[m5.2xlarge]`` and ``[m5.large]`` but not ``[c5.large]`` . - ``targetInstanceTypes`` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family.
2106
+ :param userdata_type: The EKS node initialization process to use. You only need to specify this value if you are using a custom AMI. The default value is ``EKS_BOOTSTRAP_SH`` . If *imageType* is a custom AMI based on EKS_AL2023 or EKS_AL2023_NVIDIA then you must choose ``EKS_NODEADM`` .
1997
2107
  :param version: The version number of the launch template, ``$Default`` , or ``$Latest`` . If the value is ``$Default`` , the default version of the launch template is used. If the value is ``$Latest`` , the latest version of the launch template is used. .. epigraph:: If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the ``updateToLatestImageVersion`` parameter for the compute environment is set to ``true`` . During an infrastructure update, if either ``$Default`` or ``$Latest`` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see `Updating compute environments <https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html>`_ in the *AWS Batch User Guide* . Default: ``$Default`` Latest: ``$Latest``
1998
2108
 
1999
2109
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-launchtemplatespecificationoverride.html
@@ -2009,6 +2119,7 @@ class CfnComputeEnvironment(
2009
2119
  launch_template_id="launchTemplateId",
2010
2120
  launch_template_name="launchTemplateName",
2011
2121
  target_instance_types=["targetInstanceTypes"],
2122
+ userdata_type="userdataType",
2012
2123
  version="version"
2013
2124
  )
2014
2125
  '''
@@ -2017,6 +2128,7 @@ class CfnComputeEnvironment(
2017
2128
  check_type(argname="argument launch_template_id", value=launch_template_id, expected_type=type_hints["launch_template_id"])
2018
2129
  check_type(argname="argument launch_template_name", value=launch_template_name, expected_type=type_hints["launch_template_name"])
2019
2130
  check_type(argname="argument target_instance_types", value=target_instance_types, expected_type=type_hints["target_instance_types"])
2131
+ check_type(argname="argument userdata_type", value=userdata_type, expected_type=type_hints["userdata_type"])
2020
2132
  check_type(argname="argument version", value=version, expected_type=type_hints["version"])
2021
2133
  self._values: typing.Dict[builtins.str, typing.Any] = {}
2022
2134
  if launch_template_id is not None:
@@ -2025,6 +2137,8 @@ class CfnComputeEnvironment(
2025
2137
  self._values["launch_template_name"] = launch_template_name
2026
2138
  if target_instance_types is not None:
2027
2139
  self._values["target_instance_types"] = target_instance_types
2140
+ if userdata_type is not None:
2141
+ self._values["userdata_type"] = userdata_type
2028
2142
  if version is not None:
2029
2143
  self._values["version"] = version
2030
2144
 
@@ -2059,7 +2173,7 @@ class CfnComputeEnvironment(
2059
2173
  Information included in this parameter must meet the following requirements:
2060
2174
 
2061
2175
  - Must be a valid Amazon EC2 instance type or family.
2062
- - ``optimal`` isn't allowed.
2176
+ - The following AWS Batch ``InstanceTypes`` are not allowed: ``optimal`` , ``default_x86_64`` , and ``default_arm64`` .
2063
2177
  - ``targetInstanceTypes`` can target only instance types and families that are included within the ```ComputeResource.instanceTypes`` <https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes>`_ set. ``targetInstanceTypes`` doesn't need to include all of the instances from the ``instanceType`` set, but at least a subset. For example, if ``ComputeResource.instanceTypes`` includes ``[m5, g5]`` , ``targetInstanceTypes`` can include ``[m5.2xlarge]`` and ``[m5.large]`` but not ``[c5.large]`` .
2064
2178
  - ``targetInstanceTypes`` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family.
2065
2179
 
@@ -2068,6 +2182,17 @@ class CfnComputeEnvironment(
2068
2182
  result = self._values.get("target_instance_types")
2069
2183
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2070
2184
 
2185
+ @builtins.property
2186
+ def userdata_type(self) -> typing.Optional[builtins.str]:
2187
+ '''The EKS node initialization process to use.
2188
+
2189
+ You only need to specify this value if you are using a custom AMI. The default value is ``EKS_BOOTSTRAP_SH`` . If *imageType* is a custom AMI based on EKS_AL2023 or EKS_AL2023_NVIDIA then you must choose ``EKS_NODEADM`` .
2190
+
2191
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-launchtemplatespecificationoverride.html#cfn-batch-computeenvironment-launchtemplatespecificationoverride-userdatatype
2192
+ '''
2193
+ result = self._values.get("userdata_type")
2194
+ return typing.cast(typing.Optional[builtins.str], result)
2195
+
2071
2196
  @builtins.property
2072
2197
  def version(self) -> typing.Optional[builtins.str]:
2073
2198
  '''The version number of the launch template, ``$Default`` , or ``$Latest`` .
@@ -2104,6 +2229,7 @@ class CfnComputeEnvironment(
2104
2229
  "launch_template_id": "launchTemplateId",
2105
2230
  "launch_template_name": "launchTemplateName",
2106
2231
  "overrides": "overrides",
2232
+ "userdata_type": "userdataType",
2107
2233
  "version": "version",
2108
2234
  },
2109
2235
  )
@@ -2114,6 +2240,7 @@ class CfnComputeEnvironment(
2114
2240
  launch_template_id: typing.Optional[builtins.str] = None,
2115
2241
  launch_template_name: typing.Optional[builtins.str] = None,
2116
2242
  overrides: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnComputeEnvironment.LaunchTemplateSpecificationOverrideProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
2243
+ userdata_type: typing.Optional[builtins.str] = None,
2117
2244
  version: typing.Optional[builtins.str] = None,
2118
2245
  ) -> None:
2119
2246
  '''An object that represents a launch template that's associated with a compute resource.
@@ -2128,6 +2255,7 @@ class CfnComputeEnvironment(
2128
2255
  :param launch_template_id: The ID of the launch template.
2129
2256
  :param launch_template_name: The name of the launch template.
2130
2257
  :param overrides: A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both. You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment. .. epigraph:: To unset all override templates for a compute environment, you can pass an empty array to the `UpdateComputeEnvironment.overrides <https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html>`_ parameter, or not include the ``overrides`` parameter when submitting the ``UpdateComputeEnvironment`` API operation.
2258
+ :param userdata_type: The EKS node initialization process to use. You only need to specify this value if you are using a custom AMI. The default value is ``EKS_BOOTSTRAP_SH`` . If *imageType* is a custom AMI based on EKS_AL2023 or EKS_AL2023_NVIDIA then you must choose ``EKS_NODEADM`` .
2131
2259
  :param version: The version number of the launch template, ``$Default`` , or ``$Latest`` . If the value is ``$Default`` , the default version of the launch template is used. If the value is ``$Latest`` , the latest version of the launch template is used. .. epigraph:: If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the ``updateToLatestImageVersion`` parameter for the compute environment is set to ``true`` . During an infrastructure update, if either ``$Default`` or ``$Latest`` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see `Updating compute environments <https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html>`_ in the *AWS Batch User Guide* . Default: ``$Default`` Latest: ``$Latest``
2132
2260
 
2133
2261
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-launchtemplatespecification.html
@@ -2146,8 +2274,10 @@ class CfnComputeEnvironment(
2146
2274
  launch_template_id="launchTemplateId",
2147
2275
  launch_template_name="launchTemplateName",
2148
2276
  target_instance_types=["targetInstanceTypes"],
2277
+ userdata_type="userdataType",
2149
2278
  version="version"
2150
2279
  )],
2280
+ userdata_type="userdataType",
2151
2281
  version="version"
2152
2282
  )
2153
2283
  '''
@@ -2156,6 +2286,7 @@ class CfnComputeEnvironment(
2156
2286
  check_type(argname="argument launch_template_id", value=launch_template_id, expected_type=type_hints["launch_template_id"])
2157
2287
  check_type(argname="argument launch_template_name", value=launch_template_name, expected_type=type_hints["launch_template_name"])
2158
2288
  check_type(argname="argument overrides", value=overrides, expected_type=type_hints["overrides"])
2289
+ check_type(argname="argument userdata_type", value=userdata_type, expected_type=type_hints["userdata_type"])
2159
2290
  check_type(argname="argument version", value=version, expected_type=type_hints["version"])
2160
2291
  self._values: typing.Dict[builtins.str, typing.Any] = {}
2161
2292
  if launch_template_id is not None:
@@ -2164,6 +2295,8 @@ class CfnComputeEnvironment(
2164
2295
  self._values["launch_template_name"] = launch_template_name
2165
2296
  if overrides is not None:
2166
2297
  self._values["overrides"] = overrides
2298
+ if userdata_type is not None:
2299
+ self._values["userdata_type"] = userdata_type
2167
2300
  if version is not None:
2168
2301
  self._values["version"] = version
2169
2302
 
@@ -2203,6 +2336,17 @@ class CfnComputeEnvironment(
2203
2336
  result = self._values.get("overrides")
2204
2337
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnComputeEnvironment.LaunchTemplateSpecificationOverrideProperty"]]]], result)
2205
2338
 
2339
+ @builtins.property
2340
+ def userdata_type(self) -> typing.Optional[builtins.str]:
2341
+ '''The EKS node initialization process to use.
2342
+
2343
+ You only need to specify this value if you are using a custom AMI. The default value is ``EKS_BOOTSTRAP_SH`` . If *imageType* is a custom AMI based on EKS_AL2023 or EKS_AL2023_NVIDIA then you must choose ``EKS_NODEADM`` .
2344
+
2345
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-launchtemplatespecification.html#cfn-batch-computeenvironment-launchtemplatespecification-userdatatype
2346
+ '''
2347
+ result = self._values.get("userdata_type")
2348
+ return typing.cast(typing.Optional[builtins.str], result)
2349
+
2206
2350
  @builtins.property
2207
2351
  def version(self) -> typing.Optional[builtins.str]:
2208
2352
  '''The version number of the launch template, ``$Default`` , or ``$Latest`` .
@@ -2357,7 +2501,7 @@ class CfnComputeEnvironmentProps:
2357
2501
  :param compute_environment_name: The name for your compute environment. It can be up to 128 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).
2358
2502
  :param compute_resources: The ComputeResources property type specifies details of the compute resources managed by the compute environment. This parameter is required for managed compute environments. For more information, see `Compute Environments <https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html>`_ in the ** .
2359
2503
  :param context: Reserved.
2360
- :param eks_configuration: The details for the Amazon EKS cluster that supports the compute environment.
2504
+ :param eks_configuration: The details for the Amazon EKS cluster that supports the compute environment. .. epigraph:: To create a compute environment that uses EKS resources, the caller must have permissions to call ``eks:DescribeCluster`` .
2361
2505
  :param replace_compute_environment: Specifies whether the compute environment is replaced if an update is made that requires replacing the instances in the compute environment. The default value is ``true`` . To enable more properties to be updated, set this property to ``false`` . When changing the value of this property to ``false`` , do not change any other properties at the same time. If other properties are changed at the same time, and the change needs to be rolled back but it can't, it's possible for the stack to go into the ``UPDATE_ROLLBACK_FAILED`` state. You can't update a stack that is in the ``UPDATE_ROLLBACK_FAILED`` state. However, if you can continue to roll it back, you can return the stack to its original settings and then try to update it again. For more information, see `Continue rolling back an update <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html>`_ in the *AWS CloudFormation User Guide* . ``ReplaceComputeEnvironment`` is not applicable for Fargate compute environments. Fargate compute environments are always updated without interruption. The properties that can't be changed without replacing the compute environment are in the ```ComputeResources`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html>`_ property type: ```AllocationStrategy`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-allocationstrategy>`_ , ```BidPercentage`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-bidpercentage>`_ , ```Ec2Configuration`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2configuration>`_ , ```Ec2KeyPair`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair>`_ , ```Ec2KeyPair`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair>`_ , ```ImageId`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-imageid>`_ , ```InstanceRole`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancerole>`_ , ```InstanceTypes`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancetypes>`_ , ```LaunchTemplate`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-launchtemplate>`_ , ```MaxvCpus`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-maxvcpus>`_ , ```MinvCpus`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-minvcpus>`_ , ```PlacementGroup`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-placementgroup>`_ , ```SecurityGroupIds`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-securitygroupids>`_ , ```Subnets`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-subnets>`_ , `Tags <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-tags>`_ , ```Type`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-type>`_ , and ```UpdateToLatestImageVersion`` <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-updatetolatestimageversion>`_ . Default: - true
2362
2506
  :param service_role: The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf. For more information, see `AWS Batch service IAM role <https://docs.aws.amazon.com/batch/latest/userguide/service_IAM_role.html>`_ in the *AWS Batch User Guide* . .. epigraph:: If your account already created the AWS Batch service-linked role, that role is used by default for your compute environment unless you specify a different role here. If the AWS Batch service-linked role doesn't exist in your account, and no role is specified here, the service attempts to create the AWS Batch service-linked role in your account. If your specified role has a path other than ``/`` , then you must specify either the full role ARN (recommended) or prefix the role name with the path. For example, if a role with the name ``bar`` has a path of ``/foo/`` , specify ``/foo/bar`` as the role name. For more information, see `Friendly names and paths <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names>`_ in the *IAM User Guide* . .. epigraph:: Depending on how you created your AWS Batch service role, its ARN might contain the ``service-role`` path prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN doesn't use the ``service-role`` path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments.
2363
2507
  :param state: The state of the compute environment. If the state is ``ENABLED`` , then the compute environment accepts jobs from a queue and can scale out automatically based on queues. If the state is ``ENABLED`` , then the AWS Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand. If the state is ``DISABLED`` , then the AWS Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a ``STARTING`` or ``RUNNING`` state continue to progress normally. Managed compute environments in the ``DISABLED`` state don't scale out. .. epigraph:: Compute environments in a ``DISABLED`` state may continue to incur billing charges. To prevent additional charges, turn off and then delete the compute environment. For more information, see `State <https://docs.aws.amazon.com/batch/latest/userguide/compute_environment_parameters.html#compute_environment_state>`_ in the *AWS Batch User Guide* . When an instance is idle, the instance scales down to the ``minvCpus`` value. However, the instance size doesn't change. For example, consider a ``c5.8xlarge`` instance with a ``minvCpus`` value of ``4`` and a ``desiredvCpus`` value of ``36`` . This instance doesn't scale down to a ``c5.large`` instance.
@@ -2406,8 +2550,10 @@ class CfnComputeEnvironmentProps:
2406
2550
  launch_template_id="launchTemplateId",
2407
2551
  launch_template_name="launchTemplateName",
2408
2552
  target_instance_types=["targetInstanceTypes"],
2553
+ userdata_type="userdataType",
2409
2554
  version="version"
2410
2555
  )],
2556
+ userdata_type="userdataType",
2411
2557
  version="version"
2412
2558
  ),
2413
2559
  minv_cpus=123,
@@ -2525,6 +2671,10 @@ class CfnComputeEnvironmentProps:
2525
2671
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnComputeEnvironment.EksConfigurationProperty]]:
2526
2672
  '''The details for the Amazon EKS cluster that supports the compute environment.
2527
2673
 
2674
+ .. epigraph::
2675
+
2676
+ To create a compute environment that uses EKS resources, the caller must have permissions to call ``eks:DescribeCluster`` .
2677
+
2528
2678
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-eksconfiguration
2529
2679
  '''
2530
2680
  result = self._values.get("eks_configuration")
@@ -2636,7 +2786,7 @@ class CfnComputeEnvironmentProps:
2636
2786
  )
2637
2787
 
2638
2788
 
2639
- @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
2789
+ @jsii.implements(_IInspectable_c2943556, _IConsumableResourceRef_114da7c5, _ITaggableV2_4e6798f8)
2640
2790
  class CfnConsumableResource(
2641
2791
  _CfnResource_9df397a6,
2642
2792
  metaclass=jsii.JSIIMeta,
@@ -2678,7 +2828,8 @@ class CfnConsumableResource(
2678
2828
  consumable_resource_name: typing.Optional[builtins.str] = None,
2679
2829
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
2680
2830
  ) -> None:
2681
- '''
2831
+ '''Create a new ``AWS::Batch::ConsumableResource``.
2832
+
2682
2833
  :param scope: Scope in which this resource is defined.
2683
2834
  :param id: Construct identifier for this resource (unique in its scope).
2684
2835
  :param resource_type: Indicates whether the resource is available to be re-used after a job completes. Can be one of:. - ``REPLENISHABLE`` - ``NON_REPLENISHABLE``
@@ -2776,6 +2927,12 @@ class CfnConsumableResource(
2776
2927
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2777
2928
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2778
2929
 
2930
+ @builtins.property
2931
+ @jsii.member(jsii_name="consumableResourceRef")
2932
+ def consumable_resource_ref(self) -> _ConsumableResourceReference_eb60ef1d:
2933
+ '''A reference to a ConsumableResource resource.'''
2934
+ return typing.cast(_ConsumableResourceReference_eb60ef1d, jsii.get(self, "consumableResourceRef"))
2935
+
2779
2936
  @builtins.property
2780
2937
  @jsii.member(jsii_name="resourceType")
2781
2938
  def resource_type(self) -> builtins.str:
@@ -2951,7 +3108,7 @@ class CfnConsumableResourceProps:
2951
3108
  )
2952
3109
 
2953
3110
 
2954
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
3111
+ @jsii.implements(_IInspectable_c2943556, _IJobDefinitionRef_ae0cae56, _ITaggable_36806126)
2955
3112
  class CfnJobDefinition(
2956
3113
  _CfnResource_9df397a6,
2957
3114
  metaclass=jsii.JSIIMeta,
@@ -2985,12 +3142,14 @@ class CfnJobDefinition(
2985
3142
  parameters: typing.Any = None,
2986
3143
  platform_capabilities: typing.Optional[typing.Sequence[builtins.str]] = None,
2987
3144
  propagate_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
3145
+ resource_retention_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.ResourceRetentionPolicyProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2988
3146
  retry_strategy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.RetryStrategyProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2989
3147
  scheduling_priority: typing.Optional[jsii.Number] = None,
2990
3148
  tags: typing.Any = None,
2991
3149
  timeout: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.TimeoutProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2992
3150
  ) -> None:
2993
- '''
3151
+ '''Create a new ``AWS::Batch::JobDefinition``.
3152
+
2994
3153
  :param scope: Scope in which this resource is defined.
2995
3154
  :param id: Construct identifier for this resource (unique in its scope).
2996
3155
  :param type: The type of job definition. For more information about multi-node parallel jobs, see `Creating a multi-node parallel job definition <https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html>`_ in the *AWS Batch User Guide* . - If the value is ``container`` , then one of the following is required: ``containerProperties`` , ``ecsProperties`` , or ``eksProperties`` . - If the value is ``multinode`` , then ``nodeProperties`` is required. .. epigraph:: If the job is run on Fargate resources, then ``multinode`` isn't supported.
@@ -3003,6 +3162,7 @@ class CfnJobDefinition(
3003
3162
  :param parameters: Default parameters or parameter substitution placeholders that are set in the job definition. Parameters are specified as a key-value pair mapping. Parameters in a ``SubmitJob`` request override any corresponding parameter defaults from the job definition. For more information about specifying parameters, see `Job definition parameters <https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html>`_ in the *AWS Batch User Guide* .
3004
3163
  :param platform_capabilities: The platform capabilities required by the job definition. If no value is specified, it defaults to ``EC2`` . Jobs run on Fargate resources specify ``FARGATE`` .
3005
3164
  :param propagate_tags: Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks when the tasks are created. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the ``FAILED`` state.
3165
+ :param resource_retention_policy: Specifies the resource retention policy settings for the job definition.
3006
3166
  :param retry_strategy: The retry strategy to use for failed jobs that are submitted with this job definition.
3007
3167
  :param scheduling_priority: The scheduling priority of the job definition. This only affects jobs in job queues with a fair-share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority.
3008
3168
  :param tags: The tags that are applied to the job definition.
@@ -3023,6 +3183,7 @@ class CfnJobDefinition(
3023
3183
  parameters=parameters,
3024
3184
  platform_capabilities=platform_capabilities,
3025
3185
  propagate_tags=propagate_tags,
3186
+ resource_retention_policy=resource_retention_policy,
3026
3187
  retry_strategy=retry_strategy,
3027
3188
  scheduling_priority=scheduling_priority,
3028
3189
  tags=tags,
@@ -3031,6 +3192,48 @@ class CfnJobDefinition(
3031
3192
 
3032
3193
  jsii.create(self.__class__, self, [scope, id, props])
3033
3194
 
3195
+ @jsii.member(jsii_name="fromJobDefinitionArn")
3196
+ @builtins.classmethod
3197
+ def from_job_definition_arn(
3198
+ cls,
3199
+ scope: _constructs_77d1e7e8.Construct,
3200
+ id: builtins.str,
3201
+ arn: builtins.str,
3202
+ ) -> _IJobDefinitionRef_ae0cae56:
3203
+ '''Creates a new IJobDefinitionRef from an ARN.
3204
+
3205
+ :param scope: -
3206
+ :param id: -
3207
+ :param arn: -
3208
+ '''
3209
+ if __debug__:
3210
+ type_hints = typing.get_type_hints(_typecheckingstub__9eb64c713801d4b9b5ffb80a279b71c78cb6317fd0c771df22f2646f9d957f0d)
3211
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3212
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3213
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
3214
+ return typing.cast(_IJobDefinitionRef_ae0cae56, jsii.sinvoke(cls, "fromJobDefinitionArn", [scope, id, arn]))
3215
+
3216
+ @jsii.member(jsii_name="fromJobDefinitionName")
3217
+ @builtins.classmethod
3218
+ def from_job_definition_name(
3219
+ cls,
3220
+ scope: _constructs_77d1e7e8.Construct,
3221
+ id: builtins.str,
3222
+ job_definition_name: builtins.str,
3223
+ ) -> _IJobDefinitionRef_ae0cae56:
3224
+ '''Creates a new IJobDefinitionRef from a jobDefinitionName.
3225
+
3226
+ :param scope: -
3227
+ :param id: -
3228
+ :param job_definition_name: -
3229
+ '''
3230
+ if __debug__:
3231
+ type_hints = typing.get_type_hints(_typecheckingstub__825692ecdcf61885a93251433de856e5a5f6a3a7d68b8673883d418e98bd1956)
3232
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3233
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3234
+ check_type(argname="argument job_definition_name", value=job_definition_name, expected_type=type_hints["job_definition_name"])
3235
+ return typing.cast(_IJobDefinitionRef_ae0cae56, jsii.sinvoke(cls, "fromJobDefinitionName", [scope, id, job_definition_name]))
3236
+
3034
3237
  @jsii.member(jsii_name="inspect")
3035
3238
  def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
3036
3239
  '''Examines the CloudFormation resource and discloses attributes.
@@ -3075,6 +3278,12 @@ class CfnJobDefinition(
3075
3278
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3076
3279
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
3077
3280
 
3281
+ @builtins.property
3282
+ @jsii.member(jsii_name="jobDefinitionRef")
3283
+ def job_definition_ref(self) -> _JobDefinitionReference_e67f0e8f:
3284
+ '''A reference to a JobDefinition resource.'''
3285
+ return typing.cast(_JobDefinitionReference_e67f0e8f, jsii.get(self, "jobDefinitionRef"))
3286
+
3078
3287
  @builtins.property
3079
3288
  @jsii.member(jsii_name="tags")
3080
3289
  def tags(self) -> _TagManager_0a598cb3:
@@ -3244,6 +3453,24 @@ class CfnJobDefinition(
3244
3453
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3245
3454
  jsii.set(self, "propagateTags", value) # pyright: ignore[reportArgumentType]
3246
3455
 
3456
+ @builtins.property
3457
+ @jsii.member(jsii_name="resourceRetentionPolicy")
3458
+ def resource_retention_policy(
3459
+ self,
3460
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.ResourceRetentionPolicyProperty"]]:
3461
+ '''Specifies the resource retention policy settings for the job definition.'''
3462
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.ResourceRetentionPolicyProperty"]], jsii.get(self, "resourceRetentionPolicy"))
3463
+
3464
+ @resource_retention_policy.setter
3465
+ def resource_retention_policy(
3466
+ self,
3467
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.ResourceRetentionPolicyProperty"]],
3468
+ ) -> None:
3469
+ if __debug__:
3470
+ type_hints = typing.get_type_hints(_typecheckingstub__24d6c12e4e40e86cb18eef4cad19675ced395908001d3f74f425b06ab99bb085)
3471
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3472
+ jsii.set(self, "resourceRetentionPolicy", value) # pyright: ignore[reportArgumentType]
3473
+
3247
3474
  @builtins.property
3248
3475
  @jsii.member(jsii_name="retryStrategy")
3249
3476
  def retry_strategy(
@@ -6606,7 +6833,7 @@ class CfnJobDefinition(
6606
6833
  ) -> None:
6607
6834
  '''Log configuration options to send to a custom log driver for the container.
6608
6835
 
6609
- :param log_driver: The log driver to use for the container. The valid values that are listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default. The supported log drivers are ``awslogs`` , ``fluentd`` , ``gelf`` , ``json-file`` , ``journald`` , ``logentries`` , ``syslog`` , and ``splunk`` . .. epigraph:: Jobs that are running on Fargate resources are restricted to the ``awslogs`` and ``splunk`` log drivers. - **awsfirelens** - Specifies the firelens logging driver. For more information on configuring Firelens, see `Send Amazon ECS logs to an AWS service or AWS Partner <https://docs.aws.amazon.com//AmazonECS/latest/developerguide/using_firelens.html>`_ in the *Amazon Elastic Container Service Developer Guide* . - **awslogs** - Specifies the Amazon CloudWatch Logs logging driver. For more information, see `Using the awslogs log driver <https://docs.aws.amazon.com/batch/latest/userguide/using_awslogs.html>`_ in the *AWS Batch User Guide* and `Amazon CloudWatch Logs logging driver <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/awslogs/>`_ in the Docker documentation. - **fluentd** - Specifies the Fluentd logging driver. For more information including usage and options, see `Fluentd logging driver <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/fluentd/>`_ in the *Docker documentation* . - **gelf** - Specifies the Graylog Extended Format (GELF) logging driver. For more information including usage and options, see `Graylog Extended Format logging driver <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/gelf/>`_ in the *Docker documentation* . - **journald** - Specifies the journald logging driver. For more information including usage and options, see `Journald logging driver <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/journald/>`_ in the *Docker documentation* . - **json-file** - Specifies the JSON file logging driver. For more information including usage and options, see `JSON File logging driver <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/json-file/>`_ in the *Docker documentation* . - **splunk** - Specifies the Splunk logging driver. For more information including usage and options, see `Splunk logging driver <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/splunk/>`_ in the *Docker documentation* . - **syslog** - Specifies the syslog logging driver. For more information including usage and options, see `Syslog logging driver <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/syslog/>`_ in the *Docker documentation* . .. epigraph:: If you have a custom driver that's not listed earlier that you want to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that's `available on GitHub <https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent>`_ and customize it to work with that driver. We encourage you to submit pull requests for changes that you want to have included. However, Amazon Web Services doesn't currently support running modified copies of this software. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version | grep "Server API version"``
6836
+ :param log_driver: The log driver to use for the container. The valid values that are listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default. The supported log drivers are ``awsfirelens`` , ``awslogs`` , ``fluentd`` , ``gelf`` , ``json-file`` , ``journald`` , ``logentries`` , ``syslog`` , and ``splunk`` . .. epigraph:: Jobs that are running on Fargate resources are restricted to the ``awslogs`` and ``splunk`` log drivers. - **awsfirelens** - Specifies the firelens logging driver. For more information on configuring Firelens, see `Send Amazon ECS logs to an AWS service or AWS Partner <https://docs.aws.amazon.com//AmazonECS/latest/developerguide/using_firelens.html>`_ in the *Amazon Elastic Container Service Developer Guide* . - **awslogs** - Specifies the Amazon CloudWatch Logs logging driver. For more information, see `Using the awslogs log driver <https://docs.aws.amazon.com/batch/latest/userguide/using_awslogs.html>`_ in the *AWS Batch User Guide* and `Amazon CloudWatch Logs logging driver <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/awslogs/>`_ in the Docker documentation. - **fluentd** - Specifies the Fluentd logging driver. For more information including usage and options, see `Fluentd logging driver <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/fluentd/>`_ in the *Docker documentation* . - **gelf** - Specifies the Graylog Extended Format (GELF) logging driver. For more information including usage and options, see `Graylog Extended Format logging driver <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/gelf/>`_ in the *Docker documentation* . - **journald** - Specifies the journald logging driver. For more information including usage and options, see `Journald logging driver <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/journald/>`_ in the *Docker documentation* . - **json-file** - Specifies the JSON file logging driver. For more information including usage and options, see `JSON File logging driver <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/json-file/>`_ in the *Docker documentation* . - **splunk** - Specifies the Splunk logging driver. For more information including usage and options, see `Splunk logging driver <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/splunk/>`_ in the *Docker documentation* . - **syslog** - Specifies the syslog logging driver. For more information including usage and options, see `Syslog logging driver <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/syslog/>`_ in the *Docker documentation* . .. epigraph:: If you have a custom driver that's not listed earlier that you want to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that's `available on GitHub <https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent>`_ and customize it to work with that driver. We encourage you to submit pull requests for changes that you want to have included. However, Amazon Web Services doesn't currently support running modified copies of this software. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version | grep "Server API version"``
6610
6837
  :param options: The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version | grep "Server API version"``
6611
6838
  :param secret_options: The secrets to pass to the log configuration. For more information, see `Specifying sensitive data <https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html>`_ in the *AWS Batch User Guide* .
6612
6839
 
@@ -6651,7 +6878,7 @@ class CfnJobDefinition(
6651
6878
 
6652
6879
  The valid values that are listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default.
6653
6880
 
6654
- The supported log drivers are ``awslogs`` , ``fluentd`` , ``gelf`` , ``json-file`` , ``journald`` , ``logentries`` , ``syslog`` , and ``splunk`` .
6881
+ The supported log drivers are ``awsfirelens`` , ``awslogs`` , ``fluentd`` , ``gelf`` , ``json-file`` , ``journald`` , ``logentries`` , ``syslog`` , and ``splunk`` .
6655
6882
  .. epigraph::
6656
6883
 
6657
6884
  Jobs that are running on Fargate resources are restricted to the ``awslogs`` and ``splunk`` log drivers.
@@ -8790,6 +9017,67 @@ class CfnJobDefinition(
8790
9017
  k + "=" + repr(v) for k, v in self._values.items()
8791
9018
  )
8792
9019
 
9020
+ @jsii.data_type(
9021
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.ResourceRetentionPolicyProperty",
9022
+ jsii_struct_bases=[],
9023
+ name_mapping={"skip_deregister_on_update": "skipDeregisterOnUpdate"},
9024
+ )
9025
+ class ResourceRetentionPolicyProperty:
9026
+ def __init__(
9027
+ self,
9028
+ *,
9029
+ skip_deregister_on_update: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
9030
+ ) -> None:
9031
+ '''Specifies the resource retention policy settings for a job definition.
9032
+
9033
+ :param skip_deregister_on_update: Specifies whether the previous revision of the job definition is retained in an active status after UPDATE events for the resource. The default value is ``false`` . When the property is set to ``false`` , the previous revision of the job definition is de-registered after a new revision is created. When the property is set to ``true`` , the previous revision of the job definition is not de-registered. Default: - false
9034
+
9035
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-resourceretentionpolicy.html
9036
+ :exampleMetadata: fixture=_generated
9037
+
9038
+ Example::
9039
+
9040
+ # The code below shows an example of how to instantiate this type.
9041
+ # The values are placeholders you should change.
9042
+ from aws_cdk import aws_batch as batch
9043
+
9044
+ resource_retention_policy_property = batch.CfnJobDefinition.ResourceRetentionPolicyProperty(
9045
+ skip_deregister_on_update=False
9046
+ )
9047
+ '''
9048
+ if __debug__:
9049
+ type_hints = typing.get_type_hints(_typecheckingstub__96a556bd9c16087d87c49ecc18104d825d1cd7dc2f678a8e272fcb8ad46b87ff)
9050
+ check_type(argname="argument skip_deregister_on_update", value=skip_deregister_on_update, expected_type=type_hints["skip_deregister_on_update"])
9051
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
9052
+ if skip_deregister_on_update is not None:
9053
+ self._values["skip_deregister_on_update"] = skip_deregister_on_update
9054
+
9055
+ @builtins.property
9056
+ def skip_deregister_on_update(
9057
+ self,
9058
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
9059
+ '''Specifies whether the previous revision of the job definition is retained in an active status after UPDATE events for the resource.
9060
+
9061
+ The default value is ``false`` . When the property is set to ``false`` , the previous revision of the job definition is de-registered after a new revision is created. When the property is set to ``true`` , the previous revision of the job definition is not de-registered.
9062
+
9063
+ :default: - false
9064
+
9065
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-resourceretentionpolicy.html#cfn-batch-jobdefinition-resourceretentionpolicy-skipderegisteronupdate
9066
+ '''
9067
+ result = self._values.get("skip_deregister_on_update")
9068
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
9069
+
9070
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
9071
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
9072
+
9073
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
9074
+ return not (rhs == self)
9075
+
9076
+ def __repr__(self) -> str:
9077
+ return "ResourceRetentionPolicyProperty(%s)" % ", ".join(
9078
+ k + "=" + repr(v) for k, v in self._values.items()
9079
+ )
9080
+
8793
9081
  @jsii.data_type(
8794
9082
  jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.ResourcesProperty",
8795
9083
  jsii_struct_bases=[],
@@ -8962,8 +9250,8 @@ class CfnJobDefinition(
8962
9250
  ) -> None:
8963
9251
  '''An object that represents the compute environment architecture for AWS Batch jobs on Fargate.
8964
9252
 
8965
- :param cpu_architecture: The vCPU architecture. The default value is ``X86_64`` . Valid values are ``X86_64`` and ``ARM64`` . .. epigraph:: This parameter must be set to ``X86_64`` for Windows containers. > Fargate Spot is not supported for ``ARM64`` and Windows-based containers on Fargate. A job queue will be blocked if a Fargate ``ARM64`` or Windows job is submitted to a job queue with only Fargate Spot compute environments. However, you can attach both ``FARGATE`` and ``FARGATE_SPOT`` compute environments to the same job queue.
8966
- :param operating_system_family: The operating system for the compute environment. Valid values are: ``LINUX`` (default), ``WINDOWS_SERVER_2019_CORE`` , ``WINDOWS_SERVER_2019_FULL`` , ``WINDOWS_SERVER_2022_CORE`` , and ``WINDOWS_SERVER_2022_FULL`` . .. epigraph:: The following parameters can’t be set for Windows containers: ``linuxParameters`` , ``privileged`` , ``user`` , ``ulimits`` , ``readonlyRootFilesystem`` , and ``efsVolumeConfiguration`` . > The AWS Batch Scheduler checks the compute environments that are attached to the job queue before registering a task definition with Fargate. In this scenario, the job queue is where the job is submitted. If the job requires a Windows container and the first compute environment is ``LINUX`` , the compute environment is skipped and the next compute environment is checked until a Windows-based compute environment is found. > Fargate Spot is not supported for ``ARM64`` and Windows-based containers on Fargate. A job queue will be blocked if a Fargate ``ARM64`` or Windows job is submitted to a job queue with only Fargate Spot compute environments. However, you can attach both ``FARGATE`` and ``FARGATE_SPOT`` compute environments to the same job queue.
9253
+ :param cpu_architecture: The vCPU architecture. The default value is ``X86_64`` . Valid values are ``X86_64`` and ``ARM64`` . .. epigraph:: This parameter must be set to ``X86_64`` for Windows containers. > Fargate Spot is not supported on Windows-based containers on Fargate. A job queue will be blocked if a Windows job is submitted to a job queue with only Fargate Spot compute environments. However, you can attach both ``FARGATE`` and ``FARGATE_SPOT`` compute environments to the same job queue.
9254
+ :param operating_system_family: The operating system for the compute environment. Valid values are: ``LINUX`` (default), ``WINDOWS_SERVER_2019_CORE`` , ``WINDOWS_SERVER_2019_FULL`` , ``WINDOWS_SERVER_2022_CORE`` , and ``WINDOWS_SERVER_2022_FULL`` . .. epigraph:: The following parameters can’t be set for Windows containers: ``linuxParameters`` , ``privileged`` , ``user`` , ``ulimits`` , ``readonlyRootFilesystem`` , and ``efsVolumeConfiguration`` . > The AWS Batch Scheduler checks the compute environments that are attached to the job queue before registering a task definition with Fargate. In this scenario, the job queue is where the job is submitted. If the job requires a Windows container and the first compute environment is ``LINUX`` , the compute environment is skipped and the next compute environment is checked until a Windows-based compute environment is found. > Fargate Spot is not supported on Windows-based containers on Fargate. A job queue will be blocked if a Windows job is submitted to a job queue with only Fargate Spot compute environments. However, you can attach both ``FARGATE`` and ``FARGATE_SPOT`` compute environments to the same job queue.
8967
9255
 
8968
9256
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-runtimeplatform.html
8969
9257
  :exampleMetadata: fixture=_generated
@@ -8995,7 +9283,7 @@ class CfnJobDefinition(
8995
9283
 
8996
9284
  .. epigraph::
8997
9285
 
8998
- This parameter must be set to ``X86_64`` for Windows containers. > Fargate Spot is not supported for ``ARM64`` and Windows-based containers on Fargate. A job queue will be blocked if a Fargate ``ARM64`` or Windows job is submitted to a job queue with only Fargate Spot compute environments. However, you can attach both ``FARGATE`` and ``FARGATE_SPOT`` compute environments to the same job queue.
9286
+ This parameter must be set to ``X86_64`` for Windows containers. > Fargate Spot is not supported on Windows-based containers on Fargate. A job queue will be blocked if a Windows job is submitted to a job queue with only Fargate Spot compute environments. However, you can attach both ``FARGATE`` and ``FARGATE_SPOT`` compute environments to the same job queue.
8999
9287
 
9000
9288
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-runtimeplatform.html#cfn-batch-jobdefinition-runtimeplatform-cpuarchitecture
9001
9289
  '''
@@ -9009,7 +9297,7 @@ class CfnJobDefinition(
9009
9297
  Valid values are: ``LINUX`` (default), ``WINDOWS_SERVER_2019_CORE`` , ``WINDOWS_SERVER_2019_FULL`` , ``WINDOWS_SERVER_2022_CORE`` , and ``WINDOWS_SERVER_2022_FULL`` .
9010
9298
  .. epigraph::
9011
9299
 
9012
- The following parameters can’t be set for Windows containers: ``linuxParameters`` , ``privileged`` , ``user`` , ``ulimits`` , ``readonlyRootFilesystem`` , and ``efsVolumeConfiguration`` . > The AWS Batch Scheduler checks the compute environments that are attached to the job queue before registering a task definition with Fargate. In this scenario, the job queue is where the job is submitted. If the job requires a Windows container and the first compute environment is ``LINUX`` , the compute environment is skipped and the next compute environment is checked until a Windows-based compute environment is found. > Fargate Spot is not supported for ``ARM64`` and Windows-based containers on Fargate. A job queue will be blocked if a Fargate ``ARM64`` or Windows job is submitted to a job queue with only Fargate Spot compute environments. However, you can attach both ``FARGATE`` and ``FARGATE_SPOT`` compute environments to the same job queue.
9300
+ The following parameters can’t be set for Windows containers: ``linuxParameters`` , ``privileged`` , ``user`` , ``ulimits`` , ``readonlyRootFilesystem`` , and ``efsVolumeConfiguration`` . > The AWS Batch Scheduler checks the compute environments that are attached to the job queue before registering a task definition with Fargate. In this scenario, the job queue is where the job is submitted. If the job requires a Windows container and the first compute environment is ``LINUX`` , the compute environment is skipped and the next compute environment is checked until a Windows-based compute environment is found. > Fargate Spot is not supported on Windows-based containers on Fargate. A job queue will be blocked if a Windows job is submitted to a job queue with only Fargate Spot compute environments. However, you can attach both ``FARGATE`` and ``FARGATE_SPOT`` compute environments to the same job queue.
9013
9301
 
9014
9302
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-runtimeplatform.html#cfn-batch-jobdefinition-runtimeplatform-operatingsystemfamily
9015
9303
  '''
@@ -10212,6 +10500,7 @@ class CfnJobDefinition(
10212
10500
  "parameters": "parameters",
10213
10501
  "platform_capabilities": "platformCapabilities",
10214
10502
  "propagate_tags": "propagateTags",
10503
+ "resource_retention_policy": "resourceRetentionPolicy",
10215
10504
  "retry_strategy": "retryStrategy",
10216
10505
  "scheduling_priority": "schedulingPriority",
10217
10506
  "tags": "tags",
@@ -10232,6 +10521,7 @@ class CfnJobDefinitionProps:
10232
10521
  parameters: typing.Any = None,
10233
10522
  platform_capabilities: typing.Optional[typing.Sequence[builtins.str]] = None,
10234
10523
  propagate_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
10524
+ resource_retention_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.ResourceRetentionPolicyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
10235
10525
  retry_strategy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.RetryStrategyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
10236
10526
  scheduling_priority: typing.Optional[jsii.Number] = None,
10237
10527
  tags: typing.Any = None,
@@ -10249,6 +10539,7 @@ class CfnJobDefinitionProps:
10249
10539
  :param parameters: Default parameters or parameter substitution placeholders that are set in the job definition. Parameters are specified as a key-value pair mapping. Parameters in a ``SubmitJob`` request override any corresponding parameter defaults from the job definition. For more information about specifying parameters, see `Job definition parameters <https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html>`_ in the *AWS Batch User Guide* .
10250
10540
  :param platform_capabilities: The platform capabilities required by the job definition. If no value is specified, it defaults to ``EC2`` . Jobs run on Fargate resources specify ``FARGATE`` .
10251
10541
  :param propagate_tags: Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks when the tasks are created. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the ``FAILED`` state.
10542
+ :param resource_retention_policy: Specifies the resource retention policy settings for the job definition.
10252
10543
  :param retry_strategy: The retry strategy to use for failed jobs that are submitted with this job definition.
10253
10544
  :param scheduling_priority: The scheduling priority of the job definition. This only affects jobs in job queues with a fair-share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority.
10254
10545
  :param tags: The tags that are applied to the job definition.
@@ -10273,6 +10564,7 @@ class CfnJobDefinitionProps:
10273
10564
  check_type(argname="argument parameters", value=parameters, expected_type=type_hints["parameters"])
10274
10565
  check_type(argname="argument platform_capabilities", value=platform_capabilities, expected_type=type_hints["platform_capabilities"])
10275
10566
  check_type(argname="argument propagate_tags", value=propagate_tags, expected_type=type_hints["propagate_tags"])
10567
+ check_type(argname="argument resource_retention_policy", value=resource_retention_policy, expected_type=type_hints["resource_retention_policy"])
10276
10568
  check_type(argname="argument retry_strategy", value=retry_strategy, expected_type=type_hints["retry_strategy"])
10277
10569
  check_type(argname="argument scheduling_priority", value=scheduling_priority, expected_type=type_hints["scheduling_priority"])
10278
10570
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
@@ -10298,6 +10590,8 @@ class CfnJobDefinitionProps:
10298
10590
  self._values["platform_capabilities"] = platform_capabilities
10299
10591
  if propagate_tags is not None:
10300
10592
  self._values["propagate_tags"] = propagate_tags
10593
+ if resource_retention_policy is not None:
10594
+ self._values["resource_retention_policy"] = resource_retention_policy
10301
10595
  if retry_strategy is not None:
10302
10596
  self._values["retry_strategy"] = retry_strategy
10303
10597
  if scheduling_priority is not None:
@@ -10434,6 +10728,17 @@ class CfnJobDefinitionProps:
10434
10728
  result = self._values.get("propagate_tags")
10435
10729
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
10436
10730
 
10731
+ @builtins.property
10732
+ def resource_retention_policy(
10733
+ self,
10734
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnJobDefinition.ResourceRetentionPolicyProperty]]:
10735
+ '''Specifies the resource retention policy settings for the job definition.
10736
+
10737
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-resourceretentionpolicy
10738
+ '''
10739
+ result = self._values.get("resource_retention_policy")
10740
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnJobDefinition.ResourceRetentionPolicyProperty]], result)
10741
+
10437
10742
  @builtins.property
10438
10743
  def retry_strategy(
10439
10744
  self,
@@ -10490,7 +10795,7 @@ class CfnJobDefinitionProps:
10490
10795
  )
10491
10796
 
10492
10797
 
10493
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
10798
+ @jsii.implements(_IInspectable_c2943556, _IJobQueueRef_2f1c7bda, _ITaggable_36806126)
10494
10799
  class CfnJobQueue(
10495
10800
  _CfnResource_9df397a6,
10496
10801
  metaclass=jsii.JSIIMeta,
@@ -10511,14 +10816,15 @@ class CfnJobQueue(
10511
10816
  from aws_cdk import aws_batch as batch
10512
10817
 
10513
10818
  cfn_job_queue = batch.CfnJobQueue(self, "MyCfnJobQueue",
10819
+ priority=123,
10820
+
10821
+ # the properties below are optional
10514
10822
  compute_environment_order=[batch.CfnJobQueue.ComputeEnvironmentOrderProperty(
10515
10823
  compute_environment="computeEnvironment",
10516
10824
  order=123
10517
10825
  )],
10518
- priority=123,
10519
-
10520
- # the properties below are optional
10521
10826
  job_queue_name="jobQueueName",
10827
+ job_queue_type="jobQueueType",
10522
10828
  job_state_time_limit_actions=[batch.CfnJobQueue.JobStateTimeLimitActionProperty(
10523
10829
  action="action",
10524
10830
  max_time_seconds=123,
@@ -10526,6 +10832,10 @@ class CfnJobQueue(
10526
10832
  state="state"
10527
10833
  )],
10528
10834
  scheduling_policy_arn="schedulingPolicyArn",
10835
+ service_environment_order=[batch.CfnJobQueue.ServiceEnvironmentOrderProperty(
10836
+ order=123,
10837
+ service_environment="serviceEnvironment"
10838
+ )],
10529
10839
  state="state",
10530
10840
  tags={
10531
10841
  "tags_key": "tags"
@@ -10538,22 +10848,27 @@ class CfnJobQueue(
10538
10848
  scope: _constructs_77d1e7e8.Construct,
10539
10849
  id: builtins.str,
10540
10850
  *,
10541
- compute_environment_order: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobQueue.ComputeEnvironmentOrderProperty", typing.Dict[builtins.str, typing.Any]]]]],
10542
10851
  priority: jsii.Number,
10852
+ compute_environment_order: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobQueue.ComputeEnvironmentOrderProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
10543
10853
  job_queue_name: typing.Optional[builtins.str] = None,
10854
+ job_queue_type: typing.Optional[builtins.str] = None,
10544
10855
  job_state_time_limit_actions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobQueue.JobStateTimeLimitActionProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
10545
10856
  scheduling_policy_arn: typing.Optional[builtins.str] = None,
10857
+ service_environment_order: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobQueue.ServiceEnvironmentOrderProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
10546
10858
  state: typing.Optional[builtins.str] = None,
10547
10859
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
10548
10860
  ) -> None:
10549
- '''
10861
+ '''Create a new ``AWS::Batch::JobQueue``.
10862
+
10550
10863
  :param scope: Scope in which this resource is defined.
10551
10864
  :param id: Construct identifier for this resource (unique in its scope).
10552
- :param compute_environment_order: The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler uses this parameter to determine which compute environment runs a specific job. Compute environments must be in the ``VALID`` state before you can associate them with a job queue. You can associate up to three compute environments with a job queue. All of the compute environments must be either EC2 ( ``EC2`` or ``SPOT`` ) or Fargate ( ``FARGATE`` or ``FARGATE_SPOT`` ); EC2 and Fargate compute environments can't be mixed. .. epigraph:: All compute environments that are associated with a job queue must share the same architecture. AWS Batch doesn't support mixing compute environment architecture types in a single job queue.
10553
10865
  :param priority: The priority of the job queue. Job queues with a higher priority (or a higher integer value for the ``priority`` parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority value of ``10`` is given scheduling preference over a job queue with a priority value of ``1`` . All of the compute environments must be either EC2 ( ``EC2`` or ``SPOT`` ) or Fargate ( ``FARGATE`` or ``FARGATE_SPOT`` ); EC2 and Fargate compute environments can't be mixed.
10866
+ :param compute_environment_order: The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler uses this parameter to determine which compute environment runs a specific job. Compute environments must be in the ``VALID`` state before you can associate them with a job queue. You can associate up to three compute environments with a job queue. All of the compute environments must be either EC2 ( ``EC2`` or ``SPOT`` ) or Fargate ( ``FARGATE`` or ``FARGATE_SPOT`` ); EC2 and Fargate compute environments can't be mixed. .. epigraph:: All compute environments that are associated with a job queue must share the same architecture. AWS Batch doesn't support mixing compute environment architecture types in a single job queue.
10554
10867
  :param job_queue_name: The name of the job queue. It can be up to 128 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).
10868
+ :param job_queue_type: The type of job queue. For service jobs that run on SageMaker AI , this value is ``SAGEMAKER_TRAINING`` . For regular container jobs, this value is ``EKS`` , ``ECS`` , or ``ECS_FARGATE`` depending on the compute environment.
10555
10869
  :param job_state_time_limit_actions: The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in the specified state longer than specified times. AWS Batch will perform each action after ``maxTimeSeconds`` has passed.
10556
10870
  :param scheduling_policy_arn: The Amazon Resource Name (ARN) of the scheduling policy. The format is ``aws: *Partition* :batch: *Region* : *Account* :scheduling-policy/ *Name*`` . For example, ``aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy`` .
10871
+ :param service_environment_order: The order of the service environment associated with the job queue. Job queues with a higher priority are evaluated first when associated with the same service environment.
10557
10872
  :param state: The state of the job queue. If the job queue state is ``ENABLED`` , it is able to accept jobs. If the job queue state is ``DISABLED`` , new jobs can't be added to the queue, but jobs already in the queue can finish.
10558
10873
  :param tags: The tags that are applied to the job queue. For more information, see `Tagging your AWS Batch resources <https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html>`_ in *AWS Batch User Guide* .
10559
10874
  '''
@@ -10562,11 +10877,13 @@ class CfnJobQueue(
10562
10877
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
10563
10878
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
10564
10879
  props = CfnJobQueueProps(
10565
- compute_environment_order=compute_environment_order,
10566
10880
  priority=priority,
10881
+ compute_environment_order=compute_environment_order,
10567
10882
  job_queue_name=job_queue_name,
10883
+ job_queue_type=job_queue_type,
10568
10884
  job_state_time_limit_actions=job_state_time_limit_actions,
10569
10885
  scheduling_policy_arn=scheduling_policy_arn,
10886
+ service_environment_order=service_environment_order,
10570
10887
  state=state,
10571
10888
  tags=tags,
10572
10889
  )
@@ -10617,43 +10934,49 @@ class CfnJobQueue(
10617
10934
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
10618
10935
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
10619
10936
 
10937
+ @builtins.property
10938
+ @jsii.member(jsii_name="jobQueueRef")
10939
+ def job_queue_ref(self) -> _JobQueueReference_1a1e9db8:
10940
+ '''A reference to a JobQueue resource.'''
10941
+ return typing.cast(_JobQueueReference_1a1e9db8, jsii.get(self, "jobQueueRef"))
10942
+
10620
10943
  @builtins.property
10621
10944
  @jsii.member(jsii_name="tags")
10622
10945
  def tags(self) -> _TagManager_0a598cb3:
10623
10946
  '''Tag Manager which manages the tags for this resource.'''
10624
10947
  return typing.cast(_TagManager_0a598cb3, jsii.get(self, "tags"))
10625
10948
 
10949
+ @builtins.property
10950
+ @jsii.member(jsii_name="priority")
10951
+ def priority(self) -> jsii.Number:
10952
+ '''The priority of the job queue.'''
10953
+ return typing.cast(jsii.Number, jsii.get(self, "priority"))
10954
+
10955
+ @priority.setter
10956
+ def priority(self, value: jsii.Number) -> None:
10957
+ if __debug__:
10958
+ type_hints = typing.get_type_hints(_typecheckingstub__620331f74c116d31a6d43627e1a45e7041bc3c110194265f30dc193863c8ed94)
10959
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
10960
+ jsii.set(self, "priority", value) # pyright: ignore[reportArgumentType]
10961
+
10626
10962
  @builtins.property
10627
10963
  @jsii.member(jsii_name="computeEnvironmentOrder")
10628
10964
  def compute_environment_order(
10629
10965
  self,
10630
- ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobQueue.ComputeEnvironmentOrderProperty"]]]:
10966
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobQueue.ComputeEnvironmentOrderProperty"]]]]:
10631
10967
  '''The set of compute environments mapped to a job queue and their order relative to each other.'''
10632
- return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobQueue.ComputeEnvironmentOrderProperty"]]], jsii.get(self, "computeEnvironmentOrder"))
10968
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobQueue.ComputeEnvironmentOrderProperty"]]]], jsii.get(self, "computeEnvironmentOrder"))
10633
10969
 
10634
10970
  @compute_environment_order.setter
10635
10971
  def compute_environment_order(
10636
10972
  self,
10637
- value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobQueue.ComputeEnvironmentOrderProperty"]]],
10973
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobQueue.ComputeEnvironmentOrderProperty"]]]],
10638
10974
  ) -> None:
10639
10975
  if __debug__:
10640
10976
  type_hints = typing.get_type_hints(_typecheckingstub__aa1c2f3f42165309672c3fdf8c286ff9dc5e99756ec1a5b3ffca9e719d4c7036)
10641
10977
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
10642
10978
  jsii.set(self, "computeEnvironmentOrder", value) # pyright: ignore[reportArgumentType]
10643
10979
 
10644
- @builtins.property
10645
- @jsii.member(jsii_name="priority")
10646
- def priority(self) -> jsii.Number:
10647
- '''The priority of the job queue.'''
10648
- return typing.cast(jsii.Number, jsii.get(self, "priority"))
10649
-
10650
- @priority.setter
10651
- def priority(self, value: jsii.Number) -> None:
10652
- if __debug__:
10653
- type_hints = typing.get_type_hints(_typecheckingstub__620331f74c116d31a6d43627e1a45e7041bc3c110194265f30dc193863c8ed94)
10654
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
10655
- jsii.set(self, "priority", value) # pyright: ignore[reportArgumentType]
10656
-
10657
10980
  @builtins.property
10658
10981
  @jsii.member(jsii_name="jobQueueName")
10659
10982
  def job_queue_name(self) -> typing.Optional[builtins.str]:
@@ -10667,6 +10990,19 @@ class CfnJobQueue(
10667
10990
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
10668
10991
  jsii.set(self, "jobQueueName", value) # pyright: ignore[reportArgumentType]
10669
10992
 
10993
+ @builtins.property
10994
+ @jsii.member(jsii_name="jobQueueType")
10995
+ def job_queue_type(self) -> typing.Optional[builtins.str]:
10996
+ '''The type of job queue.'''
10997
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "jobQueueType"))
10998
+
10999
+ @job_queue_type.setter
11000
+ def job_queue_type(self, value: typing.Optional[builtins.str]) -> None:
11001
+ if __debug__:
11002
+ type_hints = typing.get_type_hints(_typecheckingstub__cf7ba788adc96e65e278a0278721e322a7b2c5ad42c7d2cafd707c74e58d6e65)
11003
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11004
+ jsii.set(self, "jobQueueType", value) # pyright: ignore[reportArgumentType]
11005
+
10670
11006
  @builtins.property
10671
11007
  @jsii.member(jsii_name="jobStateTimeLimitActions")
10672
11008
  def job_state_time_limit_actions(
@@ -10698,6 +11034,24 @@ class CfnJobQueue(
10698
11034
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
10699
11035
  jsii.set(self, "schedulingPolicyArn", value) # pyright: ignore[reportArgumentType]
10700
11036
 
11037
+ @builtins.property
11038
+ @jsii.member(jsii_name="serviceEnvironmentOrder")
11039
+ def service_environment_order(
11040
+ self,
11041
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobQueue.ServiceEnvironmentOrderProperty"]]]]:
11042
+ '''The order of the service environment associated with the job queue.'''
11043
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobQueue.ServiceEnvironmentOrderProperty"]]]], jsii.get(self, "serviceEnvironmentOrder"))
11044
+
11045
+ @service_environment_order.setter
11046
+ def service_environment_order(
11047
+ self,
11048
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobQueue.ServiceEnvironmentOrderProperty"]]]],
11049
+ ) -> None:
11050
+ if __debug__:
11051
+ type_hints = typing.get_type_hints(_typecheckingstub__59b5173dac1cdbe1bbc03df51cc226f4cddcdbdc7dd27fbfc1081cce50fc2d50)
11052
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11053
+ jsii.set(self, "serviceEnvironmentOrder", value) # pyright: ignore[reportArgumentType]
11054
+
10701
11055
  @builtins.property
10702
11056
  @jsii.member(jsii_name="state")
10703
11057
  def state(self) -> typing.Optional[builtins.str]:
@@ -10917,39 +11271,120 @@ class CfnJobQueue(
10917
11271
  k + "=" + repr(v) for k, v in self._values.items()
10918
11272
  )
10919
11273
 
11274
+ @jsii.data_type(
11275
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobQueue.ServiceEnvironmentOrderProperty",
11276
+ jsii_struct_bases=[],
11277
+ name_mapping={"order": "order", "service_environment": "serviceEnvironment"},
11278
+ )
11279
+ class ServiceEnvironmentOrderProperty:
11280
+ def __init__(
11281
+ self,
11282
+ *,
11283
+ order: jsii.Number,
11284
+ service_environment: builtins.str,
11285
+ ) -> None:
11286
+ '''Specifies the order of a service environment for a job queue.
10920
11287
 
10921
- @jsii.data_type(
10922
- jsii_type="aws-cdk-lib.aws_batch.CfnJobQueueProps",
10923
- jsii_struct_bases=[],
10924
- name_mapping={
10925
- "compute_environment_order": "computeEnvironmentOrder",
10926
- "priority": "priority",
10927
- "job_queue_name": "jobQueueName",
10928
- "job_state_time_limit_actions": "jobStateTimeLimitActions",
10929
- "scheduling_policy_arn": "schedulingPolicyArn",
10930
- "state": "state",
10931
- "tags": "tags",
10932
- },
10933
- )
10934
- class CfnJobQueueProps:
10935
- def __init__(
10936
- self,
10937
- *,
10938
- compute_environment_order: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.ComputeEnvironmentOrderProperty, typing.Dict[builtins.str, typing.Any]]]]],
10939
- priority: jsii.Number,
10940
- job_queue_name: typing.Optional[builtins.str] = None,
10941
- job_state_time_limit_actions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.JobStateTimeLimitActionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
10942
- scheduling_policy_arn: typing.Optional[builtins.str] = None,
10943
- state: typing.Optional[builtins.str] = None,
10944
- tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
10945
- ) -> None:
10946
- '''Properties for defining a ``CfnJobQueue``.
11288
+ This determines the priority order when multiple service environments are associated with the same job queue.
10947
11289
 
10948
- :param compute_environment_order: The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler uses this parameter to determine which compute environment runs a specific job. Compute environments must be in the ``VALID`` state before you can associate them with a job queue. You can associate up to three compute environments with a job queue. All of the compute environments must be either EC2 ( ``EC2`` or ``SPOT`` ) or Fargate ( ``FARGATE`` or ``FARGATE_SPOT`` ); EC2 and Fargate compute environments can't be mixed. .. epigraph:: All compute environments that are associated with a job queue must share the same architecture. AWS Batch doesn't support mixing compute environment architecture types in a single job queue.
10949
- :param priority: The priority of the job queue. Job queues with a higher priority (or a higher integer value for the ``priority`` parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority value of ``10`` is given scheduling preference over a job queue with a priority value of ``1`` . All of the compute environments must be either EC2 ( ``EC2`` or ``SPOT`` ) or Fargate ( ``FARGATE`` or ``FARGATE_SPOT`` ); EC2 and Fargate compute environments can't be mixed.
10950
- :param job_queue_name: The name of the job queue. It can be up to 128 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).
11290
+ :param order: The order of the service environment. Job queues with a higher priority are evaluated first when associated with the same service environment.
11291
+ :param service_environment: The name or ARN of the service environment.
11292
+
11293
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-serviceenvironmentorder.html
11294
+ :exampleMetadata: fixture=_generated
11295
+
11296
+ Example::
11297
+
11298
+ # The code below shows an example of how to instantiate this type.
11299
+ # The values are placeholders you should change.
11300
+ from aws_cdk import aws_batch as batch
11301
+
11302
+ service_environment_order_property = batch.CfnJobQueue.ServiceEnvironmentOrderProperty(
11303
+ order=123,
11304
+ service_environment="serviceEnvironment"
11305
+ )
11306
+ '''
11307
+ if __debug__:
11308
+ type_hints = typing.get_type_hints(_typecheckingstub__04c4b071542df93d5d7f1e7493b1bd821aaeae2008c337f58b1d399f309446bf)
11309
+ check_type(argname="argument order", value=order, expected_type=type_hints["order"])
11310
+ check_type(argname="argument service_environment", value=service_environment, expected_type=type_hints["service_environment"])
11311
+ self._values: typing.Dict[builtins.str, typing.Any] = {
11312
+ "order": order,
11313
+ "service_environment": service_environment,
11314
+ }
11315
+
11316
+ @builtins.property
11317
+ def order(self) -> jsii.Number:
11318
+ '''The order of the service environment.
11319
+
11320
+ Job queues with a higher priority are evaluated first when associated with the same service environment.
11321
+
11322
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-serviceenvironmentorder.html#cfn-batch-jobqueue-serviceenvironmentorder-order
11323
+ '''
11324
+ result = self._values.get("order")
11325
+ assert result is not None, "Required property 'order' is missing"
11326
+ return typing.cast(jsii.Number, result)
11327
+
11328
+ @builtins.property
11329
+ def service_environment(self) -> builtins.str:
11330
+ '''The name or ARN of the service environment.
11331
+
11332
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-serviceenvironmentorder.html#cfn-batch-jobqueue-serviceenvironmentorder-serviceenvironment
11333
+ '''
11334
+ result = self._values.get("service_environment")
11335
+ assert result is not None, "Required property 'service_environment' is missing"
11336
+ return typing.cast(builtins.str, result)
11337
+
11338
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
11339
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
11340
+
11341
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
11342
+ return not (rhs == self)
11343
+
11344
+ def __repr__(self) -> str:
11345
+ return "ServiceEnvironmentOrderProperty(%s)" % ", ".join(
11346
+ k + "=" + repr(v) for k, v in self._values.items()
11347
+ )
11348
+
11349
+
11350
+ @jsii.data_type(
11351
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobQueueProps",
11352
+ jsii_struct_bases=[],
11353
+ name_mapping={
11354
+ "priority": "priority",
11355
+ "compute_environment_order": "computeEnvironmentOrder",
11356
+ "job_queue_name": "jobQueueName",
11357
+ "job_queue_type": "jobQueueType",
11358
+ "job_state_time_limit_actions": "jobStateTimeLimitActions",
11359
+ "scheduling_policy_arn": "schedulingPolicyArn",
11360
+ "service_environment_order": "serviceEnvironmentOrder",
11361
+ "state": "state",
11362
+ "tags": "tags",
11363
+ },
11364
+ )
11365
+ class CfnJobQueueProps:
11366
+ def __init__(
11367
+ self,
11368
+ *,
11369
+ priority: jsii.Number,
11370
+ compute_environment_order: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.ComputeEnvironmentOrderProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
11371
+ job_queue_name: typing.Optional[builtins.str] = None,
11372
+ job_queue_type: typing.Optional[builtins.str] = None,
11373
+ job_state_time_limit_actions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.JobStateTimeLimitActionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
11374
+ scheduling_policy_arn: typing.Optional[builtins.str] = None,
11375
+ service_environment_order: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.ServiceEnvironmentOrderProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
11376
+ state: typing.Optional[builtins.str] = None,
11377
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
11378
+ ) -> None:
11379
+ '''Properties for defining a ``CfnJobQueue``.
11380
+
11381
+ :param priority: The priority of the job queue. Job queues with a higher priority (or a higher integer value for the ``priority`` parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority value of ``10`` is given scheduling preference over a job queue with a priority value of ``1`` . All of the compute environments must be either EC2 ( ``EC2`` or ``SPOT`` ) or Fargate ( ``FARGATE`` or ``FARGATE_SPOT`` ); EC2 and Fargate compute environments can't be mixed.
11382
+ :param compute_environment_order: The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler uses this parameter to determine which compute environment runs a specific job. Compute environments must be in the ``VALID`` state before you can associate them with a job queue. You can associate up to three compute environments with a job queue. All of the compute environments must be either EC2 ( ``EC2`` or ``SPOT`` ) or Fargate ( ``FARGATE`` or ``FARGATE_SPOT`` ); EC2 and Fargate compute environments can't be mixed. .. epigraph:: All compute environments that are associated with a job queue must share the same architecture. AWS Batch doesn't support mixing compute environment architecture types in a single job queue.
11383
+ :param job_queue_name: The name of the job queue. It can be up to 128 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).
11384
+ :param job_queue_type: The type of job queue. For service jobs that run on SageMaker AI , this value is ``SAGEMAKER_TRAINING`` . For regular container jobs, this value is ``EKS`` , ``ECS`` , or ``ECS_FARGATE`` depending on the compute environment.
10951
11385
  :param job_state_time_limit_actions: The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in the specified state longer than specified times. AWS Batch will perform each action after ``maxTimeSeconds`` has passed.
10952
11386
  :param scheduling_policy_arn: The Amazon Resource Name (ARN) of the scheduling policy. The format is ``aws: *Partition* :batch: *Region* : *Account* :scheduling-policy/ *Name*`` . For example, ``aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy`` .
11387
+ :param service_environment_order: The order of the service environment associated with the job queue. Job queues with a higher priority are evaluated first when associated with the same service environment.
10953
11388
  :param state: The state of the job queue. If the job queue state is ``ENABLED`` , it is able to accept jobs. If the job queue state is ``DISABLED`` , new jobs can't be added to the queue, but jobs already in the queue can finish.
10954
11389
  :param tags: The tags that are applied to the job queue. For more information, see `Tagging your AWS Batch resources <https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html>`_ in *AWS Batch User Guide* .
10955
11390
 
@@ -10963,14 +11398,15 @@ class CfnJobQueueProps:
10963
11398
  from aws_cdk import aws_batch as batch
10964
11399
 
10965
11400
  cfn_job_queue_props = batch.CfnJobQueueProps(
11401
+ priority=123,
11402
+
11403
+ # the properties below are optional
10966
11404
  compute_environment_order=[batch.CfnJobQueue.ComputeEnvironmentOrderProperty(
10967
11405
  compute_environment="computeEnvironment",
10968
11406
  order=123
10969
11407
  )],
10970
- priority=123,
10971
-
10972
- # the properties below are optional
10973
11408
  job_queue_name="jobQueueName",
11409
+ job_queue_type="jobQueueType",
10974
11410
  job_state_time_limit_actions=[batch.CfnJobQueue.JobStateTimeLimitActionProperty(
10975
11411
  action="action",
10976
11412
  max_time_seconds=123,
@@ -10978,6 +11414,10 @@ class CfnJobQueueProps:
10978
11414
  state="state"
10979
11415
  )],
10980
11416
  scheduling_policy_arn="schedulingPolicyArn",
11417
+ service_environment_order=[batch.CfnJobQueue.ServiceEnvironmentOrderProperty(
11418
+ order=123,
11419
+ service_environment="serviceEnvironment"
11420
+ )],
10981
11421
  state="state",
10982
11422
  tags={
10983
11423
  "tags_key": "tags"
@@ -10986,32 +11426,51 @@ class CfnJobQueueProps:
10986
11426
  '''
10987
11427
  if __debug__:
10988
11428
  type_hints = typing.get_type_hints(_typecheckingstub__009d6d384b1b723169e64875095e05fe852ae3931adf5ba2004d22475a76caa9)
10989
- check_type(argname="argument compute_environment_order", value=compute_environment_order, expected_type=type_hints["compute_environment_order"])
10990
11429
  check_type(argname="argument priority", value=priority, expected_type=type_hints["priority"])
11430
+ check_type(argname="argument compute_environment_order", value=compute_environment_order, expected_type=type_hints["compute_environment_order"])
10991
11431
  check_type(argname="argument job_queue_name", value=job_queue_name, expected_type=type_hints["job_queue_name"])
11432
+ check_type(argname="argument job_queue_type", value=job_queue_type, expected_type=type_hints["job_queue_type"])
10992
11433
  check_type(argname="argument job_state_time_limit_actions", value=job_state_time_limit_actions, expected_type=type_hints["job_state_time_limit_actions"])
10993
11434
  check_type(argname="argument scheduling_policy_arn", value=scheduling_policy_arn, expected_type=type_hints["scheduling_policy_arn"])
11435
+ check_type(argname="argument service_environment_order", value=service_environment_order, expected_type=type_hints["service_environment_order"])
10994
11436
  check_type(argname="argument state", value=state, expected_type=type_hints["state"])
10995
11437
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
10996
11438
  self._values: typing.Dict[builtins.str, typing.Any] = {
10997
- "compute_environment_order": compute_environment_order,
10998
11439
  "priority": priority,
10999
11440
  }
11441
+ if compute_environment_order is not None:
11442
+ self._values["compute_environment_order"] = compute_environment_order
11000
11443
  if job_queue_name is not None:
11001
11444
  self._values["job_queue_name"] = job_queue_name
11445
+ if job_queue_type is not None:
11446
+ self._values["job_queue_type"] = job_queue_type
11002
11447
  if job_state_time_limit_actions is not None:
11003
11448
  self._values["job_state_time_limit_actions"] = job_state_time_limit_actions
11004
11449
  if scheduling_policy_arn is not None:
11005
11450
  self._values["scheduling_policy_arn"] = scheduling_policy_arn
11451
+ if service_environment_order is not None:
11452
+ self._values["service_environment_order"] = service_environment_order
11006
11453
  if state is not None:
11007
11454
  self._values["state"] = state
11008
11455
  if tags is not None:
11009
11456
  self._values["tags"] = tags
11010
11457
 
11458
+ @builtins.property
11459
+ def priority(self) -> jsii.Number:
11460
+ '''The priority of the job queue.
11461
+
11462
+ Job queues with a higher priority (or a higher integer value for the ``priority`` parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority value of ``10`` is given scheduling preference over a job queue with a priority value of ``1`` . All of the compute environments must be either EC2 ( ``EC2`` or ``SPOT`` ) or Fargate ( ``FARGATE`` or ``FARGATE_SPOT`` ); EC2 and Fargate compute environments can't be mixed.
11463
+
11464
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-priority
11465
+ '''
11466
+ result = self._values.get("priority")
11467
+ assert result is not None, "Required property 'priority' is missing"
11468
+ return typing.cast(jsii.Number, result)
11469
+
11011
11470
  @builtins.property
11012
11471
  def compute_environment_order(
11013
11472
  self,
11014
- ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnJobQueue.ComputeEnvironmentOrderProperty]]]:
11473
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnJobQueue.ComputeEnvironmentOrderProperty]]]]:
11015
11474
  '''The set of compute environments mapped to a job queue and their order relative to each other.
11016
11475
 
11017
11476
  The job scheduler uses this parameter to determine which compute environment runs a specific job. Compute environments must be in the ``VALID`` state before you can associate them with a job queue. You can associate up to three compute environments with a job queue. All of the compute environments must be either EC2 ( ``EC2`` or ``SPOT`` ) or Fargate ( ``FARGATE`` or ``FARGATE_SPOT`` ); EC2 and Fargate compute environments can't be mixed.
@@ -11022,20 +11481,7 @@ class CfnJobQueueProps:
11022
11481
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-computeenvironmentorder
11023
11482
  '''
11024
11483
  result = self._values.get("compute_environment_order")
11025
- assert result is not None, "Required property 'compute_environment_order' is missing"
11026
- return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnJobQueue.ComputeEnvironmentOrderProperty]]], result)
11027
-
11028
- @builtins.property
11029
- def priority(self) -> jsii.Number:
11030
- '''The priority of the job queue.
11031
-
11032
- Job queues with a higher priority (or a higher integer value for the ``priority`` parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority value of ``10`` is given scheduling preference over a job queue with a priority value of ``1`` . All of the compute environments must be either EC2 ( ``EC2`` or ``SPOT`` ) or Fargate ( ``FARGATE`` or ``FARGATE_SPOT`` ); EC2 and Fargate compute environments can't be mixed.
11033
-
11034
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-priority
11035
- '''
11036
- result = self._values.get("priority")
11037
- assert result is not None, "Required property 'priority' is missing"
11038
- return typing.cast(jsii.Number, result)
11484
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnJobQueue.ComputeEnvironmentOrderProperty]]]], result)
11039
11485
 
11040
11486
  @builtins.property
11041
11487
  def job_queue_name(self) -> typing.Optional[builtins.str]:
@@ -11048,6 +11494,17 @@ class CfnJobQueueProps:
11048
11494
  result = self._values.get("job_queue_name")
11049
11495
  return typing.cast(typing.Optional[builtins.str], result)
11050
11496
 
11497
+ @builtins.property
11498
+ def job_queue_type(self) -> typing.Optional[builtins.str]:
11499
+ '''The type of job queue.
11500
+
11501
+ For service jobs that run on SageMaker AI , this value is ``SAGEMAKER_TRAINING`` . For regular container jobs, this value is ``EKS`` , ``ECS`` , or ``ECS_FARGATE`` depending on the compute environment.
11502
+
11503
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-jobqueuetype
11504
+ '''
11505
+ result = self._values.get("job_queue_type")
11506
+ return typing.cast(typing.Optional[builtins.str], result)
11507
+
11051
11508
  @builtins.property
11052
11509
  def job_state_time_limit_actions(
11053
11510
  self,
@@ -11072,6 +11529,19 @@ class CfnJobQueueProps:
11072
11529
  result = self._values.get("scheduling_policy_arn")
11073
11530
  return typing.cast(typing.Optional[builtins.str], result)
11074
11531
 
11532
+ @builtins.property
11533
+ def service_environment_order(
11534
+ self,
11535
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnJobQueue.ServiceEnvironmentOrderProperty]]]]:
11536
+ '''The order of the service environment associated with the job queue.
11537
+
11538
+ Job queues with a higher priority are evaluated first when associated with the same service environment.
11539
+
11540
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-serviceenvironmentorder
11541
+ '''
11542
+ result = self._values.get("service_environment_order")
11543
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnJobQueue.ServiceEnvironmentOrderProperty]]]], result)
11544
+
11075
11545
  @builtins.property
11076
11546
  def state(self) -> typing.Optional[builtins.str]:
11077
11547
  '''The state of the job queue.
@@ -11106,7 +11576,7 @@ class CfnJobQueueProps:
11106
11576
  )
11107
11577
 
11108
11578
 
11109
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
11579
+ @jsii.implements(_IInspectable_c2943556, _ISchedulingPolicyRef_a7864c7c, _ITaggable_36806126)
11110
11580
  class CfnSchedulingPolicy(
11111
11581
  _CfnResource_9df397a6,
11112
11582
  metaclass=jsii.JSIIMeta,
@@ -11151,7 +11621,8 @@ class CfnSchedulingPolicy(
11151
11621
  name: typing.Optional[builtins.str] = None,
11152
11622
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
11153
11623
  ) -> None:
11154
- '''
11624
+ '''Create a new ``AWS::Batch::SchedulingPolicy``.
11625
+
11155
11626
  :param scope: Scope in which this resource is defined.
11156
11627
  :param id: Construct identifier for this resource (unique in its scope).
11157
11628
  :param fairshare_policy: The fair-share scheduling policy details.
@@ -11212,6 +11683,12 @@ class CfnSchedulingPolicy(
11212
11683
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
11213
11684
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
11214
11685
 
11686
+ @builtins.property
11687
+ @jsii.member(jsii_name="schedulingPolicyRef")
11688
+ def scheduling_policy_ref(self) -> _SchedulingPolicyReference_a55795c6:
11689
+ '''A reference to a SchedulingPolicy resource.'''
11690
+ return typing.cast(_SchedulingPolicyReference_a55795c6, jsii.get(self, "schedulingPolicyRef"))
11691
+
11215
11692
  @builtins.property
11216
11693
  @jsii.member(jsii_name="tags")
11217
11694
  def tags(self) -> _TagManager_0a598cb3:
@@ -11390,7 +11867,7 @@ class CfnSchedulingPolicy(
11390
11867
 
11391
11868
  Share identifiers that aren't included have a default weight of ``1.0`` .
11392
11869
 
11393
- :param share_identifier: A share identifier or share identifier prefix. If the string ends with an asterisk (*), this entry specifies the weight factor to use for share identifiers that start with that prefix. The list of share identifiers in a fair-share policy can't overlap. For example, you can't have one that specifies a ``shareIdentifier`` of ``UserA*`` and another that specifies a ``shareIdentifier`` of ``UserA-1`` . There can be no more than 500 share identifiers active in a job queue. The string is limited to 255 alphanumeric characters, and can be followed by an asterisk (*).
11870
+ :param share_identifier: A share identifier or share identifier prefix. If the string ends with an asterisk (*), this entry specifies the weight factor to use for share identifiers that start with that prefix. The list of share identifiers in a fair-share policy can't overlap. For example, you can't have one that specifies a ``shareIdentifier`` of ``UserA*`` and another that specifies a ``shareIdentifier`` of ``UserA1`` . There can be no more than 500 share identifiers active in a job queue. The string is limited to 255 alphanumeric characters, and can be followed by an asterisk (*).
11394
11871
  :param weight_factor: The weight factor for the share identifier. The default value is 1.0. A lower value has a higher priority for compute resources. For example, jobs that use a share identifier with a weight factor of 0.125 (1/8) get 8 times the compute resources of jobs that use a share identifier with a weight factor of 1. The smallest supported value is 0.0001, and the largest supported value is 999.9999.
11395
11872
 
11396
11873
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-shareattributes.html
@@ -11421,7 +11898,7 @@ class CfnSchedulingPolicy(
11421
11898
  def share_identifier(self) -> typing.Optional[builtins.str]:
11422
11899
  '''A share identifier or share identifier prefix.
11423
11900
 
11424
- If the string ends with an asterisk (*), this entry specifies the weight factor to use for share identifiers that start with that prefix. The list of share identifiers in a fair-share policy can't overlap. For example, you can't have one that specifies a ``shareIdentifier`` of ``UserA*`` and another that specifies a ``shareIdentifier`` of ``UserA-1`` .
11901
+ If the string ends with an asterisk (*), this entry specifies the weight factor to use for share identifiers that start with that prefix. The list of share identifiers in a fair-share policy can't overlap. For example, you can't have one that specifies a ``shareIdentifier`` of ``UserA*`` and another that specifies a ``shareIdentifier`` of ``UserA1`` .
11425
11902
 
11426
11903
  There can be no more than 500 share identifiers active in a job queue.
11427
11904
 
@@ -11518,36 +11995,455 @@ class CfnSchedulingPolicyProps:
11518
11995
  self._values["tags"] = tags
11519
11996
 
11520
11997
  @builtins.property
11521
- def fairshare_policy(
11522
- self,
11523
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnSchedulingPolicy.FairsharePolicyProperty]]:
11524
- '''The fair-share scheduling policy details.
11998
+ def fairshare_policy(
11999
+ self,
12000
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnSchedulingPolicy.FairsharePolicyProperty]]:
12001
+ '''The fair-share scheduling policy details.
12002
+
12003
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html#cfn-batch-schedulingpolicy-fairsharepolicy
12004
+ '''
12005
+ result = self._values.get("fairshare_policy")
12006
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnSchedulingPolicy.FairsharePolicyProperty]], result)
12007
+
12008
+ @builtins.property
12009
+ def name(self) -> typing.Optional[builtins.str]:
12010
+ '''The name of the fair-share scheduling policy.
12011
+
12012
+ It can be up to 128 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).
12013
+
12014
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html#cfn-batch-schedulingpolicy-name
12015
+ '''
12016
+ result = self._values.get("name")
12017
+ return typing.cast(typing.Optional[builtins.str], result)
12018
+
12019
+ @builtins.property
12020
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
12021
+ '''The tags that you apply to the scheduling policy to help you categorize and organize your resources.
12022
+
12023
+ Each tag consists of a key and an optional value. For more information, see `Tagging AWS Resources <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html>`_ in *AWS General Reference* .
12024
+
12025
+ These tags can be updated or removed using the `TagResource <https://docs.aws.amazon.com/batch/latest/APIReference/API_TagResource.html>`_ and `UntagResource <https://docs.aws.amazon.com/batch/latest/APIReference/API_UntagResource.html>`_ API operations.
12026
+
12027
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html#cfn-batch-schedulingpolicy-tags
12028
+ '''
12029
+ result = self._values.get("tags")
12030
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
12031
+
12032
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
12033
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12034
+
12035
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12036
+ return not (rhs == self)
12037
+
12038
+ def __repr__(self) -> str:
12039
+ return "CfnSchedulingPolicyProps(%s)" % ", ".join(
12040
+ k + "=" + repr(v) for k, v in self._values.items()
12041
+ )
12042
+
12043
+
12044
+ @jsii.implements(_IInspectable_c2943556, _IServiceEnvironmentRef_5865fef4, _ITaggableV2_4e6798f8)
12045
+ class CfnServiceEnvironment(
12046
+ _CfnResource_9df397a6,
12047
+ metaclass=jsii.JSIIMeta,
12048
+ jsii_type="aws-cdk-lib.aws_batch.CfnServiceEnvironment",
12049
+ ):
12050
+ '''Creates a service environment for running service jobs.
12051
+
12052
+ Service environments define capacity limits for specific service types such as SageMaker Training jobs.
12053
+
12054
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-serviceenvironment.html
12055
+ :cloudformationResource: AWS::Batch::ServiceEnvironment
12056
+ :exampleMetadata: fixture=_generated
12057
+
12058
+ Example::
12059
+
12060
+ # The code below shows an example of how to instantiate this type.
12061
+ # The values are placeholders you should change.
12062
+ from aws_cdk import aws_batch as batch
12063
+
12064
+ cfn_service_environment = batch.CfnServiceEnvironment(self, "MyCfnServiceEnvironment",
12065
+ capacity_limits=[batch.CfnServiceEnvironment.CapacityLimitProperty(
12066
+ capacity_unit="capacityUnit",
12067
+ max_capacity=123
12068
+ )],
12069
+ service_environment_type="serviceEnvironmentType",
12070
+
12071
+ # the properties below are optional
12072
+ service_environment_name="serviceEnvironmentName",
12073
+ state="state",
12074
+ tags={
12075
+ "tags_key": "tags"
12076
+ }
12077
+ )
12078
+ '''
12079
+
12080
+ def __init__(
12081
+ self,
12082
+ scope: _constructs_77d1e7e8.Construct,
12083
+ id: builtins.str,
12084
+ *,
12085
+ capacity_limits: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceEnvironment.CapacityLimitProperty", typing.Dict[builtins.str, typing.Any]]]]],
12086
+ service_environment_type: builtins.str,
12087
+ service_environment_name: typing.Optional[builtins.str] = None,
12088
+ state: typing.Optional[builtins.str] = None,
12089
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
12090
+ ) -> None:
12091
+ '''Create a new ``AWS::Batch::ServiceEnvironment``.
12092
+
12093
+ :param scope: Scope in which this resource is defined.
12094
+ :param id: Construct identifier for this resource (unique in its scope).
12095
+ :param capacity_limits: The capacity limits for the service environment. This defines the maximum resources that can be used by service jobs in this environment.
12096
+ :param service_environment_type: The type of service environment. For SageMaker Training jobs, this value is ``SAGEMAKER_TRAINING`` .
12097
+ :param service_environment_name: The name of the service environment.
12098
+ :param state: The state of the service environment. Valid values are ``ENABLED`` and ``DISABLED`` .
12099
+ :param tags: The tags associated with the service environment. Each tag consists of a key and an optional value. For more information, see `Tagging your AWS Batch resources <https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html>`_ .
12100
+ '''
12101
+ if __debug__:
12102
+ type_hints = typing.get_type_hints(_typecheckingstub__a6f9de8dd6d91e1ef3541444262c3bd9eba874d47c3dbe2b368127e55802962d)
12103
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
12104
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
12105
+ props = CfnServiceEnvironmentProps(
12106
+ capacity_limits=capacity_limits,
12107
+ service_environment_type=service_environment_type,
12108
+ service_environment_name=service_environment_name,
12109
+ state=state,
12110
+ tags=tags,
12111
+ )
12112
+
12113
+ jsii.create(self.__class__, self, [scope, id, props])
12114
+
12115
+ @jsii.member(jsii_name="inspect")
12116
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
12117
+ '''Examines the CloudFormation resource and discloses attributes.
12118
+
12119
+ :param inspector: tree inspector to collect and process attributes.
12120
+ '''
12121
+ if __debug__:
12122
+ type_hints = typing.get_type_hints(_typecheckingstub__96e0974d2660553889a9af3a927bfad81828948853f01018235f809576a4c6b9)
12123
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
12124
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
12125
+
12126
+ @jsii.member(jsii_name="renderProperties")
12127
+ def _render_properties(
12128
+ self,
12129
+ props: typing.Mapping[builtins.str, typing.Any],
12130
+ ) -> typing.Mapping[builtins.str, typing.Any]:
12131
+ '''
12132
+ :param props: -
12133
+ '''
12134
+ if __debug__:
12135
+ type_hints = typing.get_type_hints(_typecheckingstub__e6991ed0f2dc20fa74e5cde5971e4b3997019046ee7c1e1fc7eca96b677bc91b)
12136
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
12137
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
12138
+
12139
+ @jsii.python.classproperty
12140
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
12141
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
12142
+ '''The CloudFormation resource type name for this resource class.'''
12143
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
12144
+
12145
+ @builtins.property
12146
+ @jsii.member(jsii_name="attrServiceEnvironmentArn")
12147
+ def attr_service_environment_arn(self) -> builtins.str:
12148
+ '''The Amazon Resource Name (ARN) of the service environment.
12149
+
12150
+ :cloudformationAttribute: ServiceEnvironmentArn
12151
+ '''
12152
+ return typing.cast(builtins.str, jsii.get(self, "attrServiceEnvironmentArn"))
12153
+
12154
+ @builtins.property
12155
+ @jsii.member(jsii_name="cdkTagManager")
12156
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
12157
+ '''Tag Manager which manages the tags for this resource.'''
12158
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
12159
+
12160
+ @builtins.property
12161
+ @jsii.member(jsii_name="cfnProperties")
12162
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
12163
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
12164
+
12165
+ @builtins.property
12166
+ @jsii.member(jsii_name="serviceEnvironmentRef")
12167
+ def service_environment_ref(self) -> _ServiceEnvironmentReference_9a7dc7ee:
12168
+ '''A reference to a ServiceEnvironment resource.'''
12169
+ return typing.cast(_ServiceEnvironmentReference_9a7dc7ee, jsii.get(self, "serviceEnvironmentRef"))
12170
+
12171
+ @builtins.property
12172
+ @jsii.member(jsii_name="capacityLimits")
12173
+ def capacity_limits(
12174
+ self,
12175
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceEnvironment.CapacityLimitProperty"]]]:
12176
+ '''The capacity limits for the service environment.'''
12177
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceEnvironment.CapacityLimitProperty"]]], jsii.get(self, "capacityLimits"))
12178
+
12179
+ @capacity_limits.setter
12180
+ def capacity_limits(
12181
+ self,
12182
+ value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceEnvironment.CapacityLimitProperty"]]],
12183
+ ) -> None:
12184
+ if __debug__:
12185
+ type_hints = typing.get_type_hints(_typecheckingstub__d996fbedbaec7f1ef9fada43375af4381f0a867d50517c77d6662e6e7d7d26ae)
12186
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
12187
+ jsii.set(self, "capacityLimits", value) # pyright: ignore[reportArgumentType]
12188
+
12189
+ @builtins.property
12190
+ @jsii.member(jsii_name="serviceEnvironmentType")
12191
+ def service_environment_type(self) -> builtins.str:
12192
+ '''The type of service environment.'''
12193
+ return typing.cast(builtins.str, jsii.get(self, "serviceEnvironmentType"))
12194
+
12195
+ @service_environment_type.setter
12196
+ def service_environment_type(self, value: builtins.str) -> None:
12197
+ if __debug__:
12198
+ type_hints = typing.get_type_hints(_typecheckingstub__555f27a186fb86df6655903dee02e46968e9230d8927d6c74bb13420e35fb703)
12199
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
12200
+ jsii.set(self, "serviceEnvironmentType", value) # pyright: ignore[reportArgumentType]
12201
+
12202
+ @builtins.property
12203
+ @jsii.member(jsii_name="serviceEnvironmentName")
12204
+ def service_environment_name(self) -> typing.Optional[builtins.str]:
12205
+ '''The name of the service environment.'''
12206
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "serviceEnvironmentName"))
12207
+
12208
+ @service_environment_name.setter
12209
+ def service_environment_name(self, value: typing.Optional[builtins.str]) -> None:
12210
+ if __debug__:
12211
+ type_hints = typing.get_type_hints(_typecheckingstub__2f9d1cde60619bebd040c4ca1b04e45af9a3d96ad1c7d934c1fe4f4c102b0fde)
12212
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
12213
+ jsii.set(self, "serviceEnvironmentName", value) # pyright: ignore[reportArgumentType]
12214
+
12215
+ @builtins.property
12216
+ @jsii.member(jsii_name="state")
12217
+ def state(self) -> typing.Optional[builtins.str]:
12218
+ '''The state of the service environment.'''
12219
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "state"))
12220
+
12221
+ @state.setter
12222
+ def state(self, value: typing.Optional[builtins.str]) -> None:
12223
+ if __debug__:
12224
+ type_hints = typing.get_type_hints(_typecheckingstub__eb9c6d092d73d302c59d162da7ef41f680de210ef8b625b0d6804765c19c16cf)
12225
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
12226
+ jsii.set(self, "state", value) # pyright: ignore[reportArgumentType]
12227
+
12228
+ @builtins.property
12229
+ @jsii.member(jsii_name="tags")
12230
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
12231
+ '''The tags associated with the service environment.'''
12232
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], jsii.get(self, "tags"))
12233
+
12234
+ @tags.setter
12235
+ def tags(
12236
+ self,
12237
+ value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
12238
+ ) -> None:
12239
+ if __debug__:
12240
+ type_hints = typing.get_type_hints(_typecheckingstub__07a3aaaa5bb4d6dbce1c225211ed2ba7848e8258ea1ae35767262fbfb6c68d93)
12241
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
12242
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
12243
+
12244
+ @jsii.data_type(
12245
+ jsii_type="aws-cdk-lib.aws_batch.CfnServiceEnvironment.CapacityLimitProperty",
12246
+ jsii_struct_bases=[],
12247
+ name_mapping={"capacity_unit": "capacityUnit", "max_capacity": "maxCapacity"},
12248
+ )
12249
+ class CapacityLimitProperty:
12250
+ def __init__(
12251
+ self,
12252
+ *,
12253
+ capacity_unit: typing.Optional[builtins.str] = None,
12254
+ max_capacity: typing.Optional[jsii.Number] = None,
12255
+ ) -> None:
12256
+ '''Defines the capacity limit for a service environment.
12257
+
12258
+ This structure specifies the maximum amount of resources that can be used by service jobs in the environment.
12259
+
12260
+ :param capacity_unit: The unit of measure for the capacity limit. This defines how the maxCapacity value should be interpreted. For ``SAGEMAKER_TRAINING`` jobs, use ``NUM_INSTANCES`` .
12261
+ :param max_capacity: The maximum capacity available for the service environment. This value represents the maximum amount resources that can be allocated to service jobs. For example, ``maxCapacity=50`` , ``capacityUnit=NUM_INSTANCES`` . This indicates that the maximum number of instances that can be run on this service environment is 50. You could then run 5 SageMaker Training jobs that each use 10 instances. However, if you submit another job that requires 10 instances, it will wait in the queue.
12262
+
12263
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-serviceenvironment-capacitylimit.html
12264
+ :exampleMetadata: fixture=_generated
12265
+
12266
+ Example::
12267
+
12268
+ # The code below shows an example of how to instantiate this type.
12269
+ # The values are placeholders you should change.
12270
+ from aws_cdk import aws_batch as batch
12271
+
12272
+ capacity_limit_property = batch.CfnServiceEnvironment.CapacityLimitProperty(
12273
+ capacity_unit="capacityUnit",
12274
+ max_capacity=123
12275
+ )
12276
+ '''
12277
+ if __debug__:
12278
+ type_hints = typing.get_type_hints(_typecheckingstub__8d4366eeddf34eff3fc133ef72e4bd900563fba6b925f9d9524d8c92ac2f3e4a)
12279
+ check_type(argname="argument capacity_unit", value=capacity_unit, expected_type=type_hints["capacity_unit"])
12280
+ check_type(argname="argument max_capacity", value=max_capacity, expected_type=type_hints["max_capacity"])
12281
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
12282
+ if capacity_unit is not None:
12283
+ self._values["capacity_unit"] = capacity_unit
12284
+ if max_capacity is not None:
12285
+ self._values["max_capacity"] = max_capacity
12286
+
12287
+ @builtins.property
12288
+ def capacity_unit(self) -> typing.Optional[builtins.str]:
12289
+ '''The unit of measure for the capacity limit.
12290
+
12291
+ This defines how the maxCapacity value should be interpreted. For ``SAGEMAKER_TRAINING`` jobs, use ``NUM_INSTANCES`` .
12292
+
12293
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-serviceenvironment-capacitylimit.html#cfn-batch-serviceenvironment-capacitylimit-capacityunit
12294
+ '''
12295
+ result = self._values.get("capacity_unit")
12296
+ return typing.cast(typing.Optional[builtins.str], result)
12297
+
12298
+ @builtins.property
12299
+ def max_capacity(self) -> typing.Optional[jsii.Number]:
12300
+ '''The maximum capacity available for the service environment.
12301
+
12302
+ This value represents the maximum amount resources that can be allocated to service jobs.
12303
+
12304
+ For example, ``maxCapacity=50`` , ``capacityUnit=NUM_INSTANCES`` . This indicates that the maximum number of instances that can be run on this service environment is 50. You could then run 5 SageMaker Training jobs that each use 10 instances. However, if you submit another job that requires 10 instances, it will wait in the queue.
12305
+
12306
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-serviceenvironment-capacitylimit.html#cfn-batch-serviceenvironment-capacitylimit-maxcapacity
12307
+ '''
12308
+ result = self._values.get("max_capacity")
12309
+ return typing.cast(typing.Optional[jsii.Number], result)
12310
+
12311
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
12312
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12313
+
12314
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12315
+ return not (rhs == self)
12316
+
12317
+ def __repr__(self) -> str:
12318
+ return "CapacityLimitProperty(%s)" % ", ".join(
12319
+ k + "=" + repr(v) for k, v in self._values.items()
12320
+ )
12321
+
12322
+
12323
+ @jsii.data_type(
12324
+ jsii_type="aws-cdk-lib.aws_batch.CfnServiceEnvironmentProps",
12325
+ jsii_struct_bases=[],
12326
+ name_mapping={
12327
+ "capacity_limits": "capacityLimits",
12328
+ "service_environment_type": "serviceEnvironmentType",
12329
+ "service_environment_name": "serviceEnvironmentName",
12330
+ "state": "state",
12331
+ "tags": "tags",
12332
+ },
12333
+ )
12334
+ class CfnServiceEnvironmentProps:
12335
+ def __init__(
12336
+ self,
12337
+ *,
12338
+ capacity_limits: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceEnvironment.CapacityLimitProperty, typing.Dict[builtins.str, typing.Any]]]]],
12339
+ service_environment_type: builtins.str,
12340
+ service_environment_name: typing.Optional[builtins.str] = None,
12341
+ state: typing.Optional[builtins.str] = None,
12342
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
12343
+ ) -> None:
12344
+ '''Properties for defining a ``CfnServiceEnvironment``.
12345
+
12346
+ :param capacity_limits: The capacity limits for the service environment. This defines the maximum resources that can be used by service jobs in this environment.
12347
+ :param service_environment_type: The type of service environment. For SageMaker Training jobs, this value is ``SAGEMAKER_TRAINING`` .
12348
+ :param service_environment_name: The name of the service environment.
12349
+ :param state: The state of the service environment. Valid values are ``ENABLED`` and ``DISABLED`` .
12350
+ :param tags: The tags associated with the service environment. Each tag consists of a key and an optional value. For more information, see `Tagging your AWS Batch resources <https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html>`_ .
12351
+
12352
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-serviceenvironment.html
12353
+ :exampleMetadata: fixture=_generated
12354
+
12355
+ Example::
12356
+
12357
+ # The code below shows an example of how to instantiate this type.
12358
+ # The values are placeholders you should change.
12359
+ from aws_cdk import aws_batch as batch
12360
+
12361
+ cfn_service_environment_props = batch.CfnServiceEnvironmentProps(
12362
+ capacity_limits=[batch.CfnServiceEnvironment.CapacityLimitProperty(
12363
+ capacity_unit="capacityUnit",
12364
+ max_capacity=123
12365
+ )],
12366
+ service_environment_type="serviceEnvironmentType",
12367
+
12368
+ # the properties below are optional
12369
+ service_environment_name="serviceEnvironmentName",
12370
+ state="state",
12371
+ tags={
12372
+ "tags_key": "tags"
12373
+ }
12374
+ )
12375
+ '''
12376
+ if __debug__:
12377
+ type_hints = typing.get_type_hints(_typecheckingstub__dfdb5cc25e8550eb4e42278bd3377213122f3560aa9c8e788955ad66e1ecad9a)
12378
+ check_type(argname="argument capacity_limits", value=capacity_limits, expected_type=type_hints["capacity_limits"])
12379
+ check_type(argname="argument service_environment_type", value=service_environment_type, expected_type=type_hints["service_environment_type"])
12380
+ check_type(argname="argument service_environment_name", value=service_environment_name, expected_type=type_hints["service_environment_name"])
12381
+ check_type(argname="argument state", value=state, expected_type=type_hints["state"])
12382
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
12383
+ self._values: typing.Dict[builtins.str, typing.Any] = {
12384
+ "capacity_limits": capacity_limits,
12385
+ "service_environment_type": service_environment_type,
12386
+ }
12387
+ if service_environment_name is not None:
12388
+ self._values["service_environment_name"] = service_environment_name
12389
+ if state is not None:
12390
+ self._values["state"] = state
12391
+ if tags is not None:
12392
+ self._values["tags"] = tags
12393
+
12394
+ @builtins.property
12395
+ def capacity_limits(
12396
+ self,
12397
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnServiceEnvironment.CapacityLimitProperty]]]:
12398
+ '''The capacity limits for the service environment.
12399
+
12400
+ This defines the maximum resources that can be used by service jobs in this environment.
12401
+
12402
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-serviceenvironment.html#cfn-batch-serviceenvironment-capacitylimits
12403
+ '''
12404
+ result = self._values.get("capacity_limits")
12405
+ assert result is not None, "Required property 'capacity_limits' is missing"
12406
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnServiceEnvironment.CapacityLimitProperty]]], result)
12407
+
12408
+ @builtins.property
12409
+ def service_environment_type(self) -> builtins.str:
12410
+ '''The type of service environment.
11525
12411
 
11526
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html#cfn-batch-schedulingpolicy-fairsharepolicy
12412
+ For SageMaker Training jobs, this value is ``SAGEMAKER_TRAINING`` .
12413
+
12414
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-serviceenvironment.html#cfn-batch-serviceenvironment-serviceenvironmenttype
11527
12415
  '''
11528
- result = self._values.get("fairshare_policy")
11529
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnSchedulingPolicy.FairsharePolicyProperty]], result)
12416
+ result = self._values.get("service_environment_type")
12417
+ assert result is not None, "Required property 'service_environment_type' is missing"
12418
+ return typing.cast(builtins.str, result)
11530
12419
 
11531
12420
  @builtins.property
11532
- def name(self) -> typing.Optional[builtins.str]:
11533
- '''The name of the fair-share scheduling policy.
12421
+ def service_environment_name(self) -> typing.Optional[builtins.str]:
12422
+ '''The name of the service environment.
11534
12423
 
11535
- It can be up to 128 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).
12424
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-serviceenvironment.html#cfn-batch-serviceenvironment-serviceenvironmentname
12425
+ '''
12426
+ result = self._values.get("service_environment_name")
12427
+ return typing.cast(typing.Optional[builtins.str], result)
11536
12428
 
11537
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html#cfn-batch-schedulingpolicy-name
12429
+ @builtins.property
12430
+ def state(self) -> typing.Optional[builtins.str]:
12431
+ '''The state of the service environment.
12432
+
12433
+ Valid values are ``ENABLED`` and ``DISABLED`` .
12434
+
12435
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-serviceenvironment.html#cfn-batch-serviceenvironment-state
11538
12436
  '''
11539
- result = self._values.get("name")
12437
+ result = self._values.get("state")
11540
12438
  return typing.cast(typing.Optional[builtins.str], result)
11541
12439
 
11542
12440
  @builtins.property
11543
12441
  def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
11544
- '''The tags that you apply to the scheduling policy to help you categorize and organize your resources.
11545
-
11546
- Each tag consists of a key and an optional value. For more information, see `Tagging AWS Resources <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html>`_ in *AWS General Reference* .
12442
+ '''The tags associated with the service environment.
11547
12443
 
11548
- These tags can be updated or removed using the `TagResource <https://docs.aws.amazon.com/batch/latest/APIReference/API_TagResource.html>`_ and `UntagResource <https://docs.aws.amazon.com/batch/latest/APIReference/API_UntagResource.html>`_ API operations.
12444
+ Each tag consists of a key and an optional value. For more information, see `Tagging your AWS Batch resources <https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html>`_ .
11549
12445
 
11550
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html#cfn-batch-schedulingpolicy-tags
12446
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-serviceenvironment.html#cfn-batch-serviceenvironment-tags
11551
12447
  '''
11552
12448
  result = self._values.get("tags")
11553
12449
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
@@ -11559,7 +12455,7 @@ class CfnSchedulingPolicyProps:
11559
12455
  return not (rhs == self)
11560
12456
 
11561
12457
  def __repr__(self) -> str:
11562
- return "CfnSchedulingPolicyProps(%s)" % ", ".join(
12458
+ return "CfnServiceEnvironmentProps(%s)" % ", ".join(
11563
12459
  k + "=" + repr(v) for k, v in self._values.items()
11564
12460
  )
11565
12461
 
@@ -11771,6 +12667,29 @@ class CustomReason:
11771
12667
  )
11772
12668
 
11773
12669
 
12670
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_batch.DefaultInstanceClass")
12671
+ class DefaultInstanceClass(enum.Enum):
12672
+ '''Batch default instances types.
12673
+
12674
+ :see: https://docs.aws.amazon.com/batch/latest/userguide/instance-type-compute-table.html
12675
+ :exampleMetadata: infused
12676
+
12677
+ Example::
12678
+
12679
+ vpc = ec2.Vpc(self, "VPC")
12680
+
12681
+ batch.ManagedEc2EcsComputeEnvironment(self, "myEc2ComputeEnv",
12682
+ vpc=vpc,
12683
+ default_instance_classes=[batch.DefaultInstanceClass.ARM64]
12684
+ )
12685
+ '''
12686
+
12687
+ X86_64 = "X86_64"
12688
+ '''x86 based instance types (from the m6i, c6i, r6i, and c7i instance families).'''
12689
+ ARM64 = "ARM64"
12690
+ '''ARM64 based instance types (from the m6g, c6g, r6g, and c7g instance families).'''
12691
+
12692
+
11774
12693
  @jsii.data_type(
11775
12694
  jsii_type="aws-cdk-lib.aws_batch.Device",
11776
12695
  jsii_struct_bases=[],
@@ -11900,6 +12819,7 @@ class DnsPolicy(enum.Enum):
11900
12819
  "image": "image",
11901
12820
  "memory": "memory",
11902
12821
  "command": "command",
12822
+ "enable_execute_command": "enableExecuteCommand",
11903
12823
  "environment": "environment",
11904
12824
  "execution_role": "executionRole",
11905
12825
  "job_role": "jobRole",
@@ -11919,6 +12839,7 @@ class EcsContainerDefinitionProps:
11919
12839
  image: _ContainerImage_94af1b43,
11920
12840
  memory: _Size_7b441c34,
11921
12841
  command: typing.Optional[typing.Sequence[builtins.str]] = None,
12842
+ enable_execute_command: typing.Optional[builtins.bool] = None,
11922
12843
  environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
11923
12844
  execution_role: typing.Optional[_IRole_235f5d8e] = None,
11924
12845
  job_role: typing.Optional[_IRole_235f5d8e] = None,
@@ -11935,6 +12856,7 @@ class EcsContainerDefinitionProps:
11935
12856
  :param image: The image that this container will run.
11936
12857
  :param memory: The memory hard limit present to the container. If your container attempts to exceed the memory specified, the container is terminated. You must specify at least 4 MiB of memory for a job.
11937
12858
  :param command: The command that's passed to the container. Default: - no command
12859
+ :param enable_execute_command: Determines whether execute command functionality is turned on for this task. If true, execute command functionality is turned on all the containers in the task. This allows you to use ECS Exec to access containers interactively. When enabled, a job role with required SSM permissions will be created automatically if no job role is provided. If a job role is alreadyprovided, the required permissions will be added to it. Default: undefined - AWS Batch default is false
11938
12860
  :param environment: The environment variables to pass to a container. Cannot start with ``AWS_BATCH``. We don't recommend using plaintext environment variables for sensitive information, such as credential data. Default: - no environment variables
11939
12861
  :param execution_role: The role used by Amazon ECS container and AWS Fargate agents to make AWS API calls on your behalf. Default: - a Role will be created
11940
12862
  :param job_role: The role that the container can assume. Default: - no job role
@@ -11971,6 +12893,7 @@ class EcsContainerDefinitionProps:
11971
12893
 
11972
12894
  # the properties below are optional
11973
12895
  command=["command"],
12896
+ enable_execute_command=False,
11974
12897
  environment={
11975
12898
  "environment_key": "environment"
11976
12899
  },
@@ -11992,6 +12915,7 @@ class EcsContainerDefinitionProps:
11992
12915
  check_type(argname="argument image", value=image, expected_type=type_hints["image"])
11993
12916
  check_type(argname="argument memory", value=memory, expected_type=type_hints["memory"])
11994
12917
  check_type(argname="argument command", value=command, expected_type=type_hints["command"])
12918
+ check_type(argname="argument enable_execute_command", value=enable_execute_command, expected_type=type_hints["enable_execute_command"])
11995
12919
  check_type(argname="argument environment", value=environment, expected_type=type_hints["environment"])
11996
12920
  check_type(argname="argument execution_role", value=execution_role, expected_type=type_hints["execution_role"])
11997
12921
  check_type(argname="argument job_role", value=job_role, expected_type=type_hints["job_role"])
@@ -12008,6 +12932,8 @@ class EcsContainerDefinitionProps:
12008
12932
  }
12009
12933
  if command is not None:
12010
12934
  self._values["command"] = command
12935
+ if enable_execute_command is not None:
12936
+ self._values["enable_execute_command"] = enable_execute_command
12011
12937
  if environment is not None:
12012
12938
  self._values["environment"] = environment
12013
12939
  if execution_role is not None:
@@ -12067,6 +12993,23 @@ class EcsContainerDefinitionProps:
12067
12993
  result = self._values.get("command")
12068
12994
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
12069
12995
 
12996
+ @builtins.property
12997
+ def enable_execute_command(self) -> typing.Optional[builtins.bool]:
12998
+ '''Determines whether execute command functionality is turned on for this task.
12999
+
13000
+ If true, execute command functionality is turned on all the containers in the task.
13001
+
13002
+ This allows you to use ECS Exec to access containers interactively.
13003
+ When enabled, a job role with required SSM permissions will be created automatically if no job role is provided.
13004
+ If a job role is alreadyprovided, the required permissions will be added to it.
13005
+
13006
+ :default: undefined - AWS Batch default is false
13007
+
13008
+ :see: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html
13009
+ '''
13010
+ result = self._values.get("enable_execute_command")
13011
+ return typing.cast(typing.Optional[builtins.bool], result)
13012
+
12070
13013
  @builtins.property
12071
13014
  def environment(
12072
13015
  self,
@@ -12184,6 +13127,7 @@ class EcsContainerDefinitionProps:
12184
13127
  "image": "image",
12185
13128
  "memory": "memory",
12186
13129
  "command": "command",
13130
+ "enable_execute_command": "enableExecuteCommand",
12187
13131
  "environment": "environment",
12188
13132
  "execution_role": "executionRole",
12189
13133
  "job_role": "jobRole",
@@ -12206,6 +13150,7 @@ class EcsEc2ContainerDefinitionProps(EcsContainerDefinitionProps):
12206
13150
  image: _ContainerImage_94af1b43,
12207
13151
  memory: _Size_7b441c34,
12208
13152
  command: typing.Optional[typing.Sequence[builtins.str]] = None,
13153
+ enable_execute_command: typing.Optional[builtins.bool] = None,
12209
13154
  environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
12210
13155
  execution_role: typing.Optional[_IRole_235f5d8e] = None,
12211
13156
  job_role: typing.Optional[_IRole_235f5d8e] = None,
@@ -12225,6 +13170,7 @@ class EcsEc2ContainerDefinitionProps(EcsContainerDefinitionProps):
12225
13170
  :param image: The image that this container will run.
12226
13171
  :param memory: The memory hard limit present to the container. If your container attempts to exceed the memory specified, the container is terminated. You must specify at least 4 MiB of memory for a job.
12227
13172
  :param command: The command that's passed to the container. Default: - no command
13173
+ :param enable_execute_command: Determines whether execute command functionality is turned on for this task. If true, execute command functionality is turned on all the containers in the task. This allows you to use ECS Exec to access containers interactively. When enabled, a job role with required SSM permissions will be created automatically if no job role is provided. If a job role is alreadyprovided, the required permissions will be added to it. Default: undefined - AWS Batch default is false
12228
13174
  :param environment: The environment variables to pass to a container. Cannot start with ``AWS_BATCH``. We don't recommend using plaintext environment variables for sensitive information, such as credential data. Default: - no environment variables
12229
13175
  :param execution_role: The role used by Amazon ECS container and AWS Fargate agents to make AWS API calls on your behalf. Default: - a Role will be created
12230
13176
  :param job_role: The role that the container can assume. Default: - no job role
@@ -12272,6 +13218,7 @@ class EcsEc2ContainerDefinitionProps(EcsContainerDefinitionProps):
12272
13218
  check_type(argname="argument image", value=image, expected_type=type_hints["image"])
12273
13219
  check_type(argname="argument memory", value=memory, expected_type=type_hints["memory"])
12274
13220
  check_type(argname="argument command", value=command, expected_type=type_hints["command"])
13221
+ check_type(argname="argument enable_execute_command", value=enable_execute_command, expected_type=type_hints["enable_execute_command"])
12275
13222
  check_type(argname="argument environment", value=environment, expected_type=type_hints["environment"])
12276
13223
  check_type(argname="argument execution_role", value=execution_role, expected_type=type_hints["execution_role"])
12277
13224
  check_type(argname="argument job_role", value=job_role, expected_type=type_hints["job_role"])
@@ -12291,6 +13238,8 @@ class EcsEc2ContainerDefinitionProps(EcsContainerDefinitionProps):
12291
13238
  }
12292
13239
  if command is not None:
12293
13240
  self._values["command"] = command
13241
+ if enable_execute_command is not None:
13242
+ self._values["enable_execute_command"] = enable_execute_command
12294
13243
  if environment is not None:
12295
13244
  self._values["environment"] = environment
12296
13245
  if execution_role is not None:
@@ -12356,6 +13305,23 @@ class EcsEc2ContainerDefinitionProps(EcsContainerDefinitionProps):
12356
13305
  result = self._values.get("command")
12357
13306
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
12358
13307
 
13308
+ @builtins.property
13309
+ def enable_execute_command(self) -> typing.Optional[builtins.bool]:
13310
+ '''Determines whether execute command functionality is turned on for this task.
13311
+
13312
+ If true, execute command functionality is turned on all the containers in the task.
13313
+
13314
+ This allows you to use ECS Exec to access containers interactively.
13315
+ When enabled, a job role with required SSM permissions will be created automatically if no job role is provided.
13316
+ If a job role is alreadyprovided, the required permissions will be added to it.
13317
+
13318
+ :default: undefined - AWS Batch default is false
13319
+
13320
+ :see: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html
13321
+ '''
13322
+ result = self._values.get("enable_execute_command")
13323
+ return typing.cast(typing.Optional[builtins.bool], result)
13324
+
12359
13325
  @builtins.property
12360
13326
  def environment(
12361
13327
  self,
@@ -12503,6 +13469,7 @@ class EcsEc2ContainerDefinitionProps(EcsContainerDefinitionProps):
12503
13469
  "image": "image",
12504
13470
  "memory": "memory",
12505
13471
  "command": "command",
13472
+ "enable_execute_command": "enableExecuteCommand",
12506
13473
  "environment": "environment",
12507
13474
  "execution_role": "executionRole",
12508
13475
  "job_role": "jobRole",
@@ -12527,6 +13494,7 @@ class EcsFargateContainerDefinitionProps(EcsContainerDefinitionProps):
12527
13494
  image: _ContainerImage_94af1b43,
12528
13495
  memory: _Size_7b441c34,
12529
13496
  command: typing.Optional[typing.Sequence[builtins.str]] = None,
13497
+ enable_execute_command: typing.Optional[builtins.bool] = None,
12530
13498
  environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
12531
13499
  execution_role: typing.Optional[_IRole_235f5d8e] = None,
12532
13500
  job_role: typing.Optional[_IRole_235f5d8e] = None,
@@ -12548,6 +13516,7 @@ class EcsFargateContainerDefinitionProps(EcsContainerDefinitionProps):
12548
13516
  :param image: The image that this container will run.
12549
13517
  :param memory: The memory hard limit present to the container. If your container attempts to exceed the memory specified, the container is terminated. You must specify at least 4 MiB of memory for a job.
12550
13518
  :param command: The command that's passed to the container. Default: - no command
13519
+ :param enable_execute_command: Determines whether execute command functionality is turned on for this task. If true, execute command functionality is turned on all the containers in the task. This allows you to use ECS Exec to access containers interactively. When enabled, a job role with required SSM permissions will be created automatically if no job role is provided. If a job role is alreadyprovided, the required permissions will be added to it. Default: undefined - AWS Batch default is false
12551
13520
  :param environment: The environment variables to pass to a container. Cannot start with ``AWS_BATCH``. We don't recommend using plaintext environment variables for sensitive information, such as credential data. Default: - no environment variables
12552
13521
  :param execution_role: The role used by Amazon ECS container and AWS Fargate agents to make AWS API calls on your behalf. Default: - a Role will be created
12553
13522
  :param job_role: The role that the container can assume. Default: - no job role
@@ -12584,6 +13553,7 @@ class EcsFargateContainerDefinitionProps(EcsContainerDefinitionProps):
12584
13553
  check_type(argname="argument image", value=image, expected_type=type_hints["image"])
12585
13554
  check_type(argname="argument memory", value=memory, expected_type=type_hints["memory"])
12586
13555
  check_type(argname="argument command", value=command, expected_type=type_hints["command"])
13556
+ check_type(argname="argument enable_execute_command", value=enable_execute_command, expected_type=type_hints["enable_execute_command"])
12587
13557
  check_type(argname="argument environment", value=environment, expected_type=type_hints["environment"])
12588
13558
  check_type(argname="argument execution_role", value=execution_role, expected_type=type_hints["execution_role"])
12589
13559
  check_type(argname="argument job_role", value=job_role, expected_type=type_hints["job_role"])
@@ -12605,6 +13575,8 @@ class EcsFargateContainerDefinitionProps(EcsContainerDefinitionProps):
12605
13575
  }
12606
13576
  if command is not None:
12607
13577
  self._values["command"] = command
13578
+ if enable_execute_command is not None:
13579
+ self._values["enable_execute_command"] = enable_execute_command
12608
13580
  if environment is not None:
12609
13581
  self._values["environment"] = environment
12610
13582
  if execution_role is not None:
@@ -12674,6 +13646,23 @@ class EcsFargateContainerDefinitionProps(EcsContainerDefinitionProps):
12674
13646
  result = self._values.get("command")
12675
13647
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
12676
13648
 
13649
+ @builtins.property
13650
+ def enable_execute_command(self) -> typing.Optional[builtins.bool]:
13651
+ '''Determines whether execute command functionality is turned on for this task.
13652
+
13653
+ If true, execute command functionality is turned on all the containers in the task.
13654
+
13655
+ This allows you to use ECS Exec to access containers interactively.
13656
+ When enabled, a job role with required SSM permissions will be created automatically if no job role is provided.
13657
+ If a job role is alreadyprovided, the required permissions will be added to it.
13658
+
13659
+ :default: undefined - AWS Batch default is false
13660
+
13661
+ :see: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html
13662
+ '''
13663
+ result = self._values.get("enable_execute_command")
13664
+ return typing.cast(typing.Optional[builtins.bool], result)
13665
+
12677
13666
  @builtins.property
12678
13667
  def environment(
12679
13668
  self,
@@ -15217,6 +16206,15 @@ class IEcsContainerDefinition(
15217
16206
  '''
15218
16207
  ...
15219
16208
 
16209
+ @builtins.property
16210
+ @jsii.member(jsii_name="enableExecuteCommand")
16211
+ def enable_execute_command(self) -> typing.Optional[builtins.bool]:
16212
+ '''Whether to enable ecs exec for this container.
16213
+
16214
+ :default: undefined - AWS Batch default is false
16215
+ '''
16216
+ ...
16217
+
15220
16218
  @builtins.property
15221
16219
  @jsii.member(jsii_name="environment")
15222
16220
  def environment(
@@ -15360,6 +16358,15 @@ class _IEcsContainerDefinitionProxy(
15360
16358
  '''
15361
16359
  return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "command"))
15362
16360
 
16361
+ @builtins.property
16362
+ @jsii.member(jsii_name="enableExecuteCommand")
16363
+ def enable_execute_command(self) -> typing.Optional[builtins.bool]:
16364
+ '''Whether to enable ecs exec for this container.
16365
+
16366
+ :default: undefined - AWS Batch default is false
16367
+ '''
16368
+ return typing.cast(typing.Optional[builtins.bool], jsii.get(self, "enableExecuteCommand"))
16369
+
15363
16370
  @builtins.property
15364
16371
  @jsii.member(jsii_name="environment")
15365
16372
  def environment(
@@ -17955,6 +18962,8 @@ class JobStateTimeLimitActionsAction(enum.Enum):
17955
18962
 
17956
18963
  CANCEL = "CANCEL"
17957
18964
  '''Cancel the job.'''
18965
+ TERMINATE = "TERMINATE"
18966
+ '''Terminate the job.'''
17958
18967
 
17959
18968
 
17960
18969
  @jsii.enum(jsii_type="aws-cdk-lib.aws_batch.JobStateTimeLimitActionsReason")
@@ -18591,13 +19600,14 @@ class ManagedEc2EcsComputeEnvironment(
18591
19600
  id: builtins.str,
18592
19601
  *,
18593
19602
  allocation_strategy: typing.Optional[AllocationStrategy] = None,
19603
+ default_instance_classes: typing.Optional[typing.Sequence[DefaultInstanceClass]] = None,
18594
19604
  images: typing.Optional[typing.Sequence[typing.Union[EcsMachineImage, typing.Dict[builtins.str, typing.Any]]]] = None,
18595
19605
  instance_classes: typing.Optional[typing.Sequence[_InstanceClass_85a592e7]] = None,
18596
19606
  instance_role: typing.Optional[_IRole_235f5d8e] = None,
18597
19607
  instance_types: typing.Optional[typing.Sequence[_InstanceType_f64915b9]] = None,
18598
19608
  launch_template: typing.Optional[_ILaunchTemplate_f32c0fd7] = None,
18599
19609
  minv_cpus: typing.Optional[jsii.Number] = None,
18600
- placement_group: typing.Optional[_IPlacementGroup_583ddf23] = None,
19610
+ placement_group: typing.Optional[_IPlacementGroupRef_5d6e601f] = None,
18601
19611
  spot_bid_percentage: typing.Optional[jsii.Number] = None,
18602
19612
  spot_fleet_role: typing.Optional[_IRole_235f5d8e] = None,
18603
19613
  use_optimal_instance_classes: typing.Optional[builtins.bool] = None,
@@ -18618,6 +19628,7 @@ class ManagedEc2EcsComputeEnvironment(
18618
19628
  :param scope: -
18619
19629
  :param id: -
18620
19630
  :param allocation_strategy: The allocation strategy to use if not enough instances of the best fitting instance type can be allocated. Default: - ``BEST_FIT_PROGRESSIVE`` if not using Spot instances, ``SPOT_CAPACITY_OPTIMIZED`` if using Spot instances.
19631
+ :param default_instance_classes: Use batch's default instance types. A simpler way to choose up-to-date instance classes based on region instead of specifying exact instance classes. Default: - choose from instanceTypes and instanceClasses
18621
19632
  :param images: Configure which AMIs this Compute Environment can launch. If you specify this property with only ``image`` specified, then the ``imageType`` will default to ``ECS_AL2``. *If your image needs GPU resources, specify ``ECS_AL2_NVIDIA``; otherwise, the instances will not be able to properly join the ComputeEnvironment*. Default: - ECS_AL2 for non-GPU instances, ECS_AL2_NVIDIA for GPU instances
18622
19633
  :param instance_classes: The instance classes that this Compute Environment can launch. Which one is chosen depends on the ``AllocationStrategy`` used. Batch will automatically choose the instance size. Default: - the instances Batch considers will be used (currently C4, M4, and R4)
18623
19634
  :param instance_role: The execution Role that instances launched by this Compute Environment will use. Default: - a role will be created
@@ -18627,7 +19638,7 @@ class ManagedEc2EcsComputeEnvironment(
18627
19638
  :param placement_group: The EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to this Compute Environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. Default: - no placement group
18628
19639
  :param spot_bid_percentage: The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your maximum percentage is 20%, the Spot price must be less than 20% of the current On-Demand price for that Instance. You always pay the lowest market price and never more than your maximum percentage. For most use cases, Batch recommends leaving this field empty. Implies ``spot == true`` if set Default: 100%
18629
19640
  :param spot_fleet_role: The service-linked role that Spot Fleet needs to launch instances on your behalf. Default: - a new role will be created
18630
- :param use_optimal_instance_classes: Whether or not to use batch's optimal instance type. The optimal instance type is equivalent to adding the C4, M4, and R4 instance classes. You can specify other instance classes (of the same architecture) in addition to the optimal instance classes. Default: true
19641
+ :param use_optimal_instance_classes: (deprecated) Whether or not to use batch's optimal instance type. The optimal instance type is equivalent to adding the C4, M4, and R4 instance classes. You can specify other instance classes (of the same architecture) in addition to the optimal instance classes. Default: true
18631
19642
  :param vpc: VPC in which this Compute Environment will launch Instances.
18632
19643
  :param maxv_cpus: The maximum vCpus this ``ManagedComputeEnvironment`` can scale up to. Each vCPU is equivalent to 1024 CPU shares. *Note*: if this Compute Environment uses EC2 resources (not Fargate) with either ``AllocationStrategy.BEST_FIT_PROGRESSIVE`` or ``AllocationStrategy.SPOT_CAPACITY_OPTIMIZED``, or ``AllocationStrategy.BEST_FIT`` with Spot instances, The scheduler may exceed this number by at most one of the instances specified in ``instanceTypes`` or ``instanceClasses``. Default: 256
18633
19644
  :param replace_compute_environment: Specifies whether this Compute Environment is replaced if an update is made that requires replacing its instances. To enable more properties to be updated, set this property to ``false``. When changing the value of this property to false, do not change any other properties at the same time. If other properties are changed at the same time, and the change needs to be rolled back but it can't, it's possible for the stack to go into the UPDATE_ROLLBACK_FAILED state. You can't update a stack that is in the UPDATE_ROLLBACK_FAILED state. However, if you can continue to roll it back, you can return the stack to its original settings and then try to update it again. The properties which require a replacement of the Compute Environment are: Default: false
@@ -18647,6 +19658,7 @@ class ManagedEc2EcsComputeEnvironment(
18647
19658
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
18648
19659
  props = ManagedEc2EcsComputeEnvironmentProps(
18649
19660
  allocation_strategy=allocation_strategy,
19661
+ default_instance_classes=default_instance_classes,
18650
19662
  images=images,
18651
19663
  instance_classes=instance_classes,
18652
19664
  instance_role=instance_role,
@@ -18957,6 +19969,7 @@ class ManagedEc2EcsComputeEnvironment(
18957
19969
  "update_to_latest_image_version": "updateToLatestImageVersion",
18958
19970
  "vpc_subnets": "vpcSubnets",
18959
19971
  "allocation_strategy": "allocationStrategy",
19972
+ "default_instance_classes": "defaultInstanceClasses",
18960
19973
  "images": "images",
18961
19974
  "instance_classes": "instanceClasses",
18962
19975
  "instance_role": "instanceRole",
@@ -18986,13 +19999,14 @@ class ManagedEc2EcsComputeEnvironmentProps(ManagedComputeEnvironmentProps):
18986
19999
  update_to_latest_image_version: typing.Optional[builtins.bool] = None,
18987
20000
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
18988
20001
  allocation_strategy: typing.Optional[AllocationStrategy] = None,
20002
+ default_instance_classes: typing.Optional[typing.Sequence[DefaultInstanceClass]] = None,
18989
20003
  images: typing.Optional[typing.Sequence[typing.Union[EcsMachineImage, typing.Dict[builtins.str, typing.Any]]]] = None,
18990
20004
  instance_classes: typing.Optional[typing.Sequence[_InstanceClass_85a592e7]] = None,
18991
20005
  instance_role: typing.Optional[_IRole_235f5d8e] = None,
18992
20006
  instance_types: typing.Optional[typing.Sequence[_InstanceType_f64915b9]] = None,
18993
20007
  launch_template: typing.Optional[_ILaunchTemplate_f32c0fd7] = None,
18994
20008
  minv_cpus: typing.Optional[jsii.Number] = None,
18995
- placement_group: typing.Optional[_IPlacementGroup_583ddf23] = None,
20009
+ placement_group: typing.Optional[_IPlacementGroupRef_5d6e601f] = None,
18996
20010
  spot_bid_percentage: typing.Optional[jsii.Number] = None,
18997
20011
  spot_fleet_role: typing.Optional[_IRole_235f5d8e] = None,
18998
20012
  use_optimal_instance_classes: typing.Optional[builtins.bool] = None,
@@ -19012,6 +20026,7 @@ class ManagedEc2EcsComputeEnvironmentProps(ManagedComputeEnvironmentProps):
19012
20026
  :param update_to_latest_image_version: Whether or not the AMI is updated to the latest one supported by Batch when an infrastructure update occurs. If you specify a specific AMI, this property will be ignored. Note: the CDK will never set this value by default, ``false`` will set by CFN. This is to avoid a deployment failure that occurs when this value is set. Default: false
19013
20027
  :param vpc_subnets: The VPC Subnets this Compute Environment will launch instances in. Default: new subnets will be created
19014
20028
  :param allocation_strategy: The allocation strategy to use if not enough instances of the best fitting instance type can be allocated. Default: - ``BEST_FIT_PROGRESSIVE`` if not using Spot instances, ``SPOT_CAPACITY_OPTIMIZED`` if using Spot instances.
20029
+ :param default_instance_classes: Use batch's default instance types. A simpler way to choose up-to-date instance classes based on region instead of specifying exact instance classes. Default: - choose from instanceTypes and instanceClasses
19015
20030
  :param images: Configure which AMIs this Compute Environment can launch. If you specify this property with only ``image`` specified, then the ``imageType`` will default to ``ECS_AL2``. *If your image needs GPU resources, specify ``ECS_AL2_NVIDIA``; otherwise, the instances will not be able to properly join the ComputeEnvironment*. Default: - ECS_AL2 for non-GPU instances, ECS_AL2_NVIDIA for GPU instances
19016
20031
  :param instance_classes: The instance classes that this Compute Environment can launch. Which one is chosen depends on the ``AllocationStrategy`` used. Batch will automatically choose the instance size. Default: - the instances Batch considers will be used (currently C4, M4, and R4)
19017
20032
  :param instance_role: The execution Role that instances launched by this Compute Environment will use. Default: - a role will be created
@@ -19021,7 +20036,7 @@ class ManagedEc2EcsComputeEnvironmentProps(ManagedComputeEnvironmentProps):
19021
20036
  :param placement_group: The EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to this Compute Environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. Default: - no placement group
19022
20037
  :param spot_bid_percentage: The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your maximum percentage is 20%, the Spot price must be less than 20% of the current On-Demand price for that Instance. You always pay the lowest market price and never more than your maximum percentage. For most use cases, Batch recommends leaving this field empty. Implies ``spot == true`` if set Default: 100%
19023
20038
  :param spot_fleet_role: The service-linked role that Spot Fleet needs to launch instances on your behalf. Default: - a new role will be created
19024
- :param use_optimal_instance_classes: Whether or not to use batch's optimal instance type. The optimal instance type is equivalent to adding the C4, M4, and R4 instance classes. You can specify other instance classes (of the same architecture) in addition to the optimal instance classes. Default: true
20039
+ :param use_optimal_instance_classes: (deprecated) Whether or not to use batch's optimal instance type. The optimal instance type is equivalent to adding the C4, M4, and R4 instance classes. You can specify other instance classes (of the same architecture) in addition to the optimal instance classes. Default: true
19025
20040
 
19026
20041
  :exampleMetadata: infused
19027
20042
 
@@ -19053,6 +20068,7 @@ class ManagedEc2EcsComputeEnvironmentProps(ManagedComputeEnvironmentProps):
19053
20068
  check_type(argname="argument update_to_latest_image_version", value=update_to_latest_image_version, expected_type=type_hints["update_to_latest_image_version"])
19054
20069
  check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
19055
20070
  check_type(argname="argument allocation_strategy", value=allocation_strategy, expected_type=type_hints["allocation_strategy"])
20071
+ check_type(argname="argument default_instance_classes", value=default_instance_classes, expected_type=type_hints["default_instance_classes"])
19056
20072
  check_type(argname="argument images", value=images, expected_type=type_hints["images"])
19057
20073
  check_type(argname="argument instance_classes", value=instance_classes, expected_type=type_hints["instance_classes"])
19058
20074
  check_type(argname="argument instance_role", value=instance_role, expected_type=type_hints["instance_role"])
@@ -19090,6 +20106,8 @@ class ManagedEc2EcsComputeEnvironmentProps(ManagedComputeEnvironmentProps):
19090
20106
  self._values["vpc_subnets"] = vpc_subnets
19091
20107
  if allocation_strategy is not None:
19092
20108
  self._values["allocation_strategy"] = allocation_strategy
20109
+ if default_instance_classes is not None:
20110
+ self._values["default_instance_classes"] = default_instance_classes
19093
20111
  if images is not None:
19094
20112
  self._values["images"] = images
19095
20113
  if instance_classes is not None:
@@ -19281,6 +20299,22 @@ class ManagedEc2EcsComputeEnvironmentProps(ManagedComputeEnvironmentProps):
19281
20299
  result = self._values.get("allocation_strategy")
19282
20300
  return typing.cast(typing.Optional[AllocationStrategy], result)
19283
20301
 
20302
+ @builtins.property
20303
+ def default_instance_classes(
20304
+ self,
20305
+ ) -> typing.Optional[typing.List[DefaultInstanceClass]]:
20306
+ '''Use batch's default instance types.
20307
+
20308
+ A simpler way to choose up-to-date instance classes based on region
20309
+ instead of specifying exact instance classes.
20310
+
20311
+ :default: - choose from instanceTypes and instanceClasses
20312
+
20313
+ :see: https://docs.aws.amazon.com/batch/latest/userguide/instance-type-compute-table.html
20314
+ '''
20315
+ result = self._values.get("default_instance_classes")
20316
+ return typing.cast(typing.Optional[typing.List[DefaultInstanceClass]], result)
20317
+
19284
20318
  @builtins.property
19285
20319
  def images(self) -> typing.Optional[typing.List[EcsMachineImage]]:
19286
20320
  '''Configure which AMIs this Compute Environment can launch.
@@ -19351,7 +20385,7 @@ class ManagedEc2EcsComputeEnvironmentProps(ManagedComputeEnvironmentProps):
19351
20385
  return typing.cast(typing.Optional[jsii.Number], result)
19352
20386
 
19353
20387
  @builtins.property
19354
- def placement_group(self) -> typing.Optional[_IPlacementGroup_583ddf23]:
20388
+ def placement_group(self) -> typing.Optional[_IPlacementGroupRef_5d6e601f]:
19355
20389
  '''The EC2 placement group to associate with your compute resources.
19356
20390
 
19357
20391
  If you intend to submit multi-node parallel jobs to this Compute Environment,
@@ -19364,7 +20398,7 @@ class ManagedEc2EcsComputeEnvironmentProps(ManagedComputeEnvironmentProps):
19364
20398
  :see: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html
19365
20399
  '''
19366
20400
  result = self._values.get("placement_group")
19367
- return typing.cast(typing.Optional[_IPlacementGroup_583ddf23], result)
20401
+ return typing.cast(typing.Optional[_IPlacementGroupRef_5d6e601f], result)
19368
20402
 
19369
20403
  @builtins.property
19370
20404
  def spot_bid_percentage(self) -> typing.Optional[jsii.Number]:
@@ -19395,13 +20429,17 @@ class ManagedEc2EcsComputeEnvironmentProps(ManagedComputeEnvironmentProps):
19395
20429
 
19396
20430
  @builtins.property
19397
20431
  def use_optimal_instance_classes(self) -> typing.Optional[builtins.bool]:
19398
- '''Whether or not to use batch's optimal instance type.
20432
+ '''(deprecated) Whether or not to use batch's optimal instance type.
19399
20433
 
19400
20434
  The optimal instance type is equivalent to adding the
19401
20435
  C4, M4, and R4 instance classes. You can specify other instance classes
19402
20436
  (of the same architecture) in addition to the optimal instance classes.
19403
20437
 
19404
20438
  :default: true
20439
+
20440
+ :deprecated: use defaultInstanceClasses instead
20441
+
20442
+ :stability: deprecated
19405
20443
  '''
19406
20444
  result = self._values.get("use_optimal_instance_classes")
19407
20445
  return typing.cast(typing.Optional[builtins.bool], result)
@@ -19438,12 +20476,13 @@ class ManagedEc2EksComputeEnvironment(
19438
20476
  from aws_cdk import aws_ec2 as ec2
19439
20477
  from aws_cdk import aws_eks as eks
19440
20478
  from aws_cdk import aws_iam as iam
20479
+ from aws_cdk.interfaces import aws_ec2 as interfaces_aws_ec2
19441
20480
 
19442
20481
  # cluster: eks.Cluster
19443
20482
  # instance_type: ec2.InstanceType
19444
20483
  # launch_template: ec2.LaunchTemplate
19445
20484
  # machine_image: ec2.IMachineImage
19446
- # placement_group: ec2.PlacementGroup
20485
+ # placement_group_ref: interfaces_aws_ec2.IPlacementGroupRef
19447
20486
  # role: iam.Role
19448
20487
  # security_group: ec2.SecurityGroup
19449
20488
  # subnet: ec2.Subnet
@@ -19458,6 +20497,7 @@ class ManagedEc2EksComputeEnvironment(
19458
20497
  # the properties below are optional
19459
20498
  allocation_strategy=batch.AllocationStrategy.BEST_FIT,
19460
20499
  compute_environment_name="computeEnvironmentName",
20500
+ default_instance_classes=[batch.DefaultInstanceClass.X86_64],
19461
20501
  enabled=False,
19462
20502
  images=[batch.EksMachineImage(
19463
20503
  image=machine_image,
@@ -19469,7 +20509,7 @@ class ManagedEc2EksComputeEnvironment(
19469
20509
  launch_template=launch_template,
19470
20510
  maxv_cpus=123,
19471
20511
  minv_cpus=123,
19472
- placement_group=placement_group,
20512
+ placement_group=placement_group_ref,
19473
20513
  replace_compute_environment=False,
19474
20514
  security_groups=[security_group],
19475
20515
  service_role=role,
@@ -19498,13 +20538,14 @@ class ManagedEc2EksComputeEnvironment(
19498
20538
  eks_cluster: _ICluster_6b2b80df,
19499
20539
  kubernetes_namespace: builtins.str,
19500
20540
  allocation_strategy: typing.Optional[AllocationStrategy] = None,
20541
+ default_instance_classes: typing.Optional[typing.Sequence[DefaultInstanceClass]] = None,
19501
20542
  images: typing.Optional[typing.Sequence[typing.Union[EksMachineImage, typing.Dict[builtins.str, typing.Any]]]] = None,
19502
20543
  instance_classes: typing.Optional[typing.Sequence[_InstanceClass_85a592e7]] = None,
19503
20544
  instance_role: typing.Optional[_IRole_235f5d8e] = None,
19504
20545
  instance_types: typing.Optional[typing.Sequence[_InstanceType_f64915b9]] = None,
19505
20546
  launch_template: typing.Optional[_ILaunchTemplate_f32c0fd7] = None,
19506
20547
  minv_cpus: typing.Optional[jsii.Number] = None,
19507
- placement_group: typing.Optional[_IPlacementGroup_583ddf23] = None,
20548
+ placement_group: typing.Optional[_IPlacementGroupRef_5d6e601f] = None,
19508
20549
  spot_bid_percentage: typing.Optional[jsii.Number] = None,
19509
20550
  use_optimal_instance_classes: typing.Optional[builtins.bool] = None,
19510
20551
  vpc: _IVpc_f30d5663,
@@ -19526,6 +20567,7 @@ class ManagedEc2EksComputeEnvironment(
19526
20567
  :param eks_cluster: The cluster that backs this Compute Environment. Required for Compute Environments running Kubernetes jobs. Please ensure that you have followed the steps at https://docs.aws.amazon.com/batch/latest/userguide/getting-started-eks.html before attempting to deploy a ``ManagedEc2EksComputeEnvironment`` that uses this cluster. If you do not follow the steps in the link, the deployment fail with a message that the compute environment did not stabilize.
19527
20568
  :param kubernetes_namespace: The namespace of the Cluster.
19528
20569
  :param allocation_strategy: The allocation strategy to use if not enough instances of the best fitting instance type can be allocated. Default: - ``BEST_FIT_PROGRESSIVE`` if not using Spot instances, ``SPOT_CAPACITY_OPTIMIZED`` if using Spot instances.
20570
+ :param default_instance_classes: Use batch's default instance types. A simpler way to choose up-to-date instance classes based on region instead of specifying exact instance classes. Default: - choose from instanceTypes and instanceClasses
19529
20571
  :param images: Configure which AMIs this Compute Environment can launch. Default: If ``imageKubernetesVersion`` is specified, - EKS_AL2 for non-GPU instances, EKS_AL2_NVIDIA for GPU instances, Otherwise, - ECS_AL2 for non-GPU instances, ECS_AL2_NVIDIA for GPU instances,
19530
20572
  :param instance_classes: The instance types that this Compute Environment can launch. Which one is chosen depends on the ``AllocationStrategy`` used. Batch will automatically choose the instance size. Default: - the instances Batch considers will be used (currently C4, M4, and R4)
19531
20573
  :param instance_role: The execution Role that instances launched by this Compute Environment will use. Default: - a role will be created
@@ -19534,7 +20576,7 @@ class ManagedEc2EksComputeEnvironment(
19534
20576
  :param minv_cpus: The minimum vCPUs that an environment should maintain, even if the compute environment is DISABLED. Default: 0
19535
20577
  :param placement_group: The EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to this Compute Environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. Default: - no placement group
19536
20578
  :param spot_bid_percentage: The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your maximum percentage is 20%, the Spot price must be less than 20% of the current On-Demand price for that Instance. You always pay the lowest market price and never more than your maximum percentage. For most use cases, Batch recommends leaving this field empty. Implies ``spot == true`` if set Default: - 100%
19537
- :param use_optimal_instance_classes: Whether or not to use batch's optimal instance type. The optimal instance type is equivalent to adding the C4, M4, and R4 instance classes. You can specify other instance classes (of the same architecture) in addition to the optimal instance classes. Default: true
20579
+ :param use_optimal_instance_classes: (deprecated) Whether or not to use batch's optimal instance type. The optimal instance type is equivalent to adding the C4, M4, and R4 instance classes. You can specify other instance classes (of the same architecture) in addition to the optimal instance classes. Default: true
19538
20580
  :param vpc: VPC in which this Compute Environment will launch Instances.
19539
20581
  :param maxv_cpus: The maximum vCpus this ``ManagedComputeEnvironment`` can scale up to. Each vCPU is equivalent to 1024 CPU shares. *Note*: if this Compute Environment uses EC2 resources (not Fargate) with either ``AllocationStrategy.BEST_FIT_PROGRESSIVE`` or ``AllocationStrategy.SPOT_CAPACITY_OPTIMIZED``, or ``AllocationStrategy.BEST_FIT`` with Spot instances, The scheduler may exceed this number by at most one of the instances specified in ``instanceTypes`` or ``instanceClasses``. Default: 256
19540
20582
  :param replace_compute_environment: Specifies whether this Compute Environment is replaced if an update is made that requires replacing its instances. To enable more properties to be updated, set this property to ``false``. When changing the value of this property to false, do not change any other properties at the same time. If other properties are changed at the same time, and the change needs to be rolled back but it can't, it's possible for the stack to go into the UPDATE_ROLLBACK_FAILED state. You can't update a stack that is in the UPDATE_ROLLBACK_FAILED state. However, if you can continue to roll it back, you can return the stack to its original settings and then try to update it again. The properties which require a replacement of the Compute Environment are: Default: false
@@ -19556,6 +20598,7 @@ class ManagedEc2EksComputeEnvironment(
19556
20598
  eks_cluster=eks_cluster,
19557
20599
  kubernetes_namespace=kubernetes_namespace,
19558
20600
  allocation_strategy=allocation_strategy,
20601
+ default_instance_classes=default_instance_classes,
19559
20602
  images=images,
19560
20603
  instance_classes=instance_classes,
19561
20604
  instance_role=instance_role,
@@ -19862,6 +20905,7 @@ class ManagedEc2EksComputeEnvironment(
19862
20905
  "eks_cluster": "eksCluster",
19863
20906
  "kubernetes_namespace": "kubernetesNamespace",
19864
20907
  "allocation_strategy": "allocationStrategy",
20908
+ "default_instance_classes": "defaultInstanceClasses",
19865
20909
  "images": "images",
19866
20910
  "instance_classes": "instanceClasses",
19867
20911
  "instance_role": "instanceRole",
@@ -19892,13 +20936,14 @@ class ManagedEc2EksComputeEnvironmentProps(ManagedComputeEnvironmentProps):
19892
20936
  eks_cluster: _ICluster_6b2b80df,
19893
20937
  kubernetes_namespace: builtins.str,
19894
20938
  allocation_strategy: typing.Optional[AllocationStrategy] = None,
20939
+ default_instance_classes: typing.Optional[typing.Sequence[DefaultInstanceClass]] = None,
19895
20940
  images: typing.Optional[typing.Sequence[typing.Union[EksMachineImage, typing.Dict[builtins.str, typing.Any]]]] = None,
19896
20941
  instance_classes: typing.Optional[typing.Sequence[_InstanceClass_85a592e7]] = None,
19897
20942
  instance_role: typing.Optional[_IRole_235f5d8e] = None,
19898
20943
  instance_types: typing.Optional[typing.Sequence[_InstanceType_f64915b9]] = None,
19899
20944
  launch_template: typing.Optional[_ILaunchTemplate_f32c0fd7] = None,
19900
20945
  minv_cpus: typing.Optional[jsii.Number] = None,
19901
- placement_group: typing.Optional[_IPlacementGroup_583ddf23] = None,
20946
+ placement_group: typing.Optional[_IPlacementGroupRef_5d6e601f] = None,
19902
20947
  spot_bid_percentage: typing.Optional[jsii.Number] = None,
19903
20948
  use_optimal_instance_classes: typing.Optional[builtins.bool] = None,
19904
20949
  ) -> None:
@@ -19919,6 +20964,7 @@ class ManagedEc2EksComputeEnvironmentProps(ManagedComputeEnvironmentProps):
19919
20964
  :param eks_cluster: The cluster that backs this Compute Environment. Required for Compute Environments running Kubernetes jobs. Please ensure that you have followed the steps at https://docs.aws.amazon.com/batch/latest/userguide/getting-started-eks.html before attempting to deploy a ``ManagedEc2EksComputeEnvironment`` that uses this cluster. If you do not follow the steps in the link, the deployment fail with a message that the compute environment did not stabilize.
19920
20965
  :param kubernetes_namespace: The namespace of the Cluster.
19921
20966
  :param allocation_strategy: The allocation strategy to use if not enough instances of the best fitting instance type can be allocated. Default: - ``BEST_FIT_PROGRESSIVE`` if not using Spot instances, ``SPOT_CAPACITY_OPTIMIZED`` if using Spot instances.
20967
+ :param default_instance_classes: Use batch's default instance types. A simpler way to choose up-to-date instance classes based on region instead of specifying exact instance classes. Default: - choose from instanceTypes and instanceClasses
19922
20968
  :param images: Configure which AMIs this Compute Environment can launch. Default: If ``imageKubernetesVersion`` is specified, - EKS_AL2 for non-GPU instances, EKS_AL2_NVIDIA for GPU instances, Otherwise, - ECS_AL2 for non-GPU instances, ECS_AL2_NVIDIA for GPU instances,
19923
20969
  :param instance_classes: The instance types that this Compute Environment can launch. Which one is chosen depends on the ``AllocationStrategy`` used. Batch will automatically choose the instance size. Default: - the instances Batch considers will be used (currently C4, M4, and R4)
19924
20970
  :param instance_role: The execution Role that instances launched by this Compute Environment will use. Default: - a role will be created
@@ -19927,7 +20973,7 @@ class ManagedEc2EksComputeEnvironmentProps(ManagedComputeEnvironmentProps):
19927
20973
  :param minv_cpus: The minimum vCPUs that an environment should maintain, even if the compute environment is DISABLED. Default: 0
19928
20974
  :param placement_group: The EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to this Compute Environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. Default: - no placement group
19929
20975
  :param spot_bid_percentage: The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your maximum percentage is 20%, the Spot price must be less than 20% of the current On-Demand price for that Instance. You always pay the lowest market price and never more than your maximum percentage. For most use cases, Batch recommends leaving this field empty. Implies ``spot == true`` if set Default: - 100%
19930
- :param use_optimal_instance_classes: Whether or not to use batch's optimal instance type. The optimal instance type is equivalent to adding the C4, M4, and R4 instance classes. You can specify other instance classes (of the same architecture) in addition to the optimal instance classes. Default: true
20976
+ :param use_optimal_instance_classes: (deprecated) Whether or not to use batch's optimal instance type. The optimal instance type is equivalent to adding the C4, M4, and R4 instance classes. You can specify other instance classes (of the same architecture) in addition to the optimal instance classes. Default: true
19931
20977
 
19932
20978
  :exampleMetadata: fixture=_generated
19933
20979
 
@@ -19940,12 +20986,13 @@ class ManagedEc2EksComputeEnvironmentProps(ManagedComputeEnvironmentProps):
19940
20986
  from aws_cdk import aws_ec2 as ec2
19941
20987
  from aws_cdk import aws_eks as eks
19942
20988
  from aws_cdk import aws_iam as iam
20989
+ from aws_cdk.interfaces import aws_ec2 as interfaces_aws_ec2
19943
20990
 
19944
20991
  # cluster: eks.Cluster
19945
20992
  # instance_type: ec2.InstanceType
19946
20993
  # launch_template: ec2.LaunchTemplate
19947
20994
  # machine_image: ec2.IMachineImage
19948
- # placement_group: ec2.PlacementGroup
20995
+ # placement_group_ref: interfaces_aws_ec2.IPlacementGroupRef
19949
20996
  # role: iam.Role
19950
20997
  # security_group: ec2.SecurityGroup
19951
20998
  # subnet: ec2.Subnet
@@ -19960,6 +21007,7 @@ class ManagedEc2EksComputeEnvironmentProps(ManagedComputeEnvironmentProps):
19960
21007
  # the properties below are optional
19961
21008
  allocation_strategy=batch.AllocationStrategy.BEST_FIT,
19962
21009
  compute_environment_name="computeEnvironmentName",
21010
+ default_instance_classes=[batch.DefaultInstanceClass.X86_64],
19963
21011
  enabled=False,
19964
21012
  images=[batch.EksMachineImage(
19965
21013
  image=machine_image,
@@ -19971,7 +21019,7 @@ class ManagedEc2EksComputeEnvironmentProps(ManagedComputeEnvironmentProps):
19971
21019
  launch_template=launch_template,
19972
21020
  maxv_cpus=123,
19973
21021
  minv_cpus=123,
19974
- placement_group=placement_group,
21022
+ placement_group=placement_group_ref,
19975
21023
  replace_compute_environment=False,
19976
21024
  security_groups=[security_group],
19977
21025
  service_role=role,
@@ -20010,6 +21058,7 @@ class ManagedEc2EksComputeEnvironmentProps(ManagedComputeEnvironmentProps):
20010
21058
  check_type(argname="argument eks_cluster", value=eks_cluster, expected_type=type_hints["eks_cluster"])
20011
21059
  check_type(argname="argument kubernetes_namespace", value=kubernetes_namespace, expected_type=type_hints["kubernetes_namespace"])
20012
21060
  check_type(argname="argument allocation_strategy", value=allocation_strategy, expected_type=type_hints["allocation_strategy"])
21061
+ check_type(argname="argument default_instance_classes", value=default_instance_classes, expected_type=type_hints["default_instance_classes"])
20013
21062
  check_type(argname="argument images", value=images, expected_type=type_hints["images"])
20014
21063
  check_type(argname="argument instance_classes", value=instance_classes, expected_type=type_hints["instance_classes"])
20015
21064
  check_type(argname="argument instance_role", value=instance_role, expected_type=type_hints["instance_role"])
@@ -20048,6 +21097,8 @@ class ManagedEc2EksComputeEnvironmentProps(ManagedComputeEnvironmentProps):
20048
21097
  self._values["vpc_subnets"] = vpc_subnets
20049
21098
  if allocation_strategy is not None:
20050
21099
  self._values["allocation_strategy"] = allocation_strategy
21100
+ if default_instance_classes is not None:
21101
+ self._values["default_instance_classes"] = default_instance_classes
20051
21102
  if images is not None:
20052
21103
  self._values["images"] = images
20053
21104
  if instance_classes is not None:
@@ -20260,6 +21311,22 @@ class ManagedEc2EksComputeEnvironmentProps(ManagedComputeEnvironmentProps):
20260
21311
  result = self._values.get("allocation_strategy")
20261
21312
  return typing.cast(typing.Optional[AllocationStrategy], result)
20262
21313
 
21314
+ @builtins.property
21315
+ def default_instance_classes(
21316
+ self,
21317
+ ) -> typing.Optional[typing.List[DefaultInstanceClass]]:
21318
+ '''Use batch's default instance types.
21319
+
21320
+ A simpler way to choose up-to-date instance classes based on region
21321
+ instead of specifying exact instance classes.
21322
+
21323
+ :default: - choose from instanceTypes and instanceClasses
21324
+
21325
+ :see: https://docs.aws.amazon.com/batch/latest/userguide/instance-type-compute-table.html
21326
+ '''
21327
+ result = self._values.get("default_instance_classes")
21328
+ return typing.cast(typing.Optional[typing.List[DefaultInstanceClass]], result)
21329
+
20263
21330
  @builtins.property
20264
21331
  def images(self) -> typing.Optional[typing.List[EksMachineImage]]:
20265
21332
  '''Configure which AMIs this Compute Environment can launch.
@@ -20331,7 +21398,7 @@ class ManagedEc2EksComputeEnvironmentProps(ManagedComputeEnvironmentProps):
20331
21398
  return typing.cast(typing.Optional[jsii.Number], result)
20332
21399
 
20333
21400
  @builtins.property
20334
- def placement_group(self) -> typing.Optional[_IPlacementGroup_583ddf23]:
21401
+ def placement_group(self) -> typing.Optional[_IPlacementGroupRef_5d6e601f]:
20335
21402
  '''The EC2 placement group to associate with your compute resources.
20336
21403
 
20337
21404
  If you intend to submit multi-node parallel jobs to this Compute Environment,
@@ -20344,7 +21411,7 @@ class ManagedEc2EksComputeEnvironmentProps(ManagedComputeEnvironmentProps):
20344
21411
  :see: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html
20345
21412
  '''
20346
21413
  result = self._values.get("placement_group")
20347
- return typing.cast(typing.Optional[_IPlacementGroup_583ddf23], result)
21414
+ return typing.cast(typing.Optional[_IPlacementGroupRef_5d6e601f], result)
20348
21415
 
20349
21416
  @builtins.property
20350
21417
  def spot_bid_percentage(self) -> typing.Optional[jsii.Number]:
@@ -20364,13 +21431,17 @@ class ManagedEc2EksComputeEnvironmentProps(ManagedComputeEnvironmentProps):
20364
21431
 
20365
21432
  @builtins.property
20366
21433
  def use_optimal_instance_classes(self) -> typing.Optional[builtins.bool]:
20367
- '''Whether or not to use batch's optimal instance type.
21434
+ '''(deprecated) Whether or not to use batch's optimal instance type.
20368
21435
 
20369
21436
  The optimal instance type is equivalent to adding the
20370
21437
  C4, M4, and R4 instance classes. You can specify other instance classes
20371
21438
  (of the same architecture) in addition to the optimal instance classes.
20372
21439
 
20373
21440
  :default: true
21441
+
21442
+ :deprecated: use defaultInstanceClasses instead
21443
+
21444
+ :stability: deprecated
20374
21445
  '''
20375
21446
  result = self._values.get("use_optimal_instance_classes")
20376
21447
  return typing.cast(typing.Optional[builtins.bool], result)
@@ -22265,6 +23336,7 @@ class EcsEc2ContainerDefinition(
22265
23336
  image: _ContainerImage_94af1b43,
22266
23337
  memory: _Size_7b441c34,
22267
23338
  command: typing.Optional[typing.Sequence[builtins.str]] = None,
23339
+ enable_execute_command: typing.Optional[builtins.bool] = None,
22268
23340
  environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
22269
23341
  execution_role: typing.Optional[_IRole_235f5d8e] = None,
22270
23342
  job_role: typing.Optional[_IRole_235f5d8e] = None,
@@ -22285,6 +23357,7 @@ class EcsEc2ContainerDefinition(
22285
23357
  :param image: The image that this container will run.
22286
23358
  :param memory: The memory hard limit present to the container. If your container attempts to exceed the memory specified, the container is terminated. You must specify at least 4 MiB of memory for a job.
22287
23359
  :param command: The command that's passed to the container. Default: - no command
23360
+ :param enable_execute_command: Determines whether execute command functionality is turned on for this task. If true, execute command functionality is turned on all the containers in the task. This allows you to use ECS Exec to access containers interactively. When enabled, a job role with required SSM permissions will be created automatically if no job role is provided. If a job role is alreadyprovided, the required permissions will be added to it. Default: undefined - AWS Batch default is false
22288
23361
  :param environment: The environment variables to pass to a container. Cannot start with ``AWS_BATCH``. We don't recommend using plaintext environment variables for sensitive information, such as credential data. Default: - no environment variables
22289
23362
  :param execution_role: The role used by Amazon ECS container and AWS Fargate agents to make AWS API calls on your behalf. Default: - a Role will be created
22290
23363
  :param job_role: The role that the container can assume. Default: - no job role
@@ -22307,6 +23380,7 @@ class EcsEc2ContainerDefinition(
22307
23380
  image=image,
22308
23381
  memory=memory,
22309
23382
  command=command,
23383
+ enable_execute_command=enable_execute_command,
22310
23384
  environment=environment,
22311
23385
  execution_role=execution_role,
22312
23386
  job_role=job_role,
@@ -22408,6 +23482,12 @@ class EcsEc2ContainerDefinition(
22408
23482
  '''The command that's passed to the container.'''
22409
23483
  return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "command"))
22410
23484
 
23485
+ @builtins.property
23486
+ @jsii.member(jsii_name="enableExecuteCommand")
23487
+ def enable_execute_command(self) -> typing.Optional[builtins.bool]:
23488
+ '''Whether to enable ecs exec for this container.'''
23489
+ return typing.cast(typing.Optional[builtins.bool], jsii.get(self, "enableExecuteCommand"))
23490
+
22411
23491
  @builtins.property
22412
23492
  @jsii.member(jsii_name="environment")
22413
23493
  def environment(
@@ -22515,6 +23595,7 @@ class EcsFargateContainerDefinition(
22515
23595
  image: _ContainerImage_94af1b43,
22516
23596
  memory: _Size_7b441c34,
22517
23597
  command: typing.Optional[typing.Sequence[builtins.str]] = None,
23598
+ enable_execute_command: typing.Optional[builtins.bool] = None,
22518
23599
  environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
22519
23600
  execution_role: typing.Optional[_IRole_235f5d8e] = None,
22520
23601
  job_role: typing.Optional[_IRole_235f5d8e] = None,
@@ -22537,6 +23618,7 @@ class EcsFargateContainerDefinition(
22537
23618
  :param image: The image that this container will run.
22538
23619
  :param memory: The memory hard limit present to the container. If your container attempts to exceed the memory specified, the container is terminated. You must specify at least 4 MiB of memory for a job.
22539
23620
  :param command: The command that's passed to the container. Default: - no command
23621
+ :param enable_execute_command: Determines whether execute command functionality is turned on for this task. If true, execute command functionality is turned on all the containers in the task. This allows you to use ECS Exec to access containers interactively. When enabled, a job role with required SSM permissions will be created automatically if no job role is provided. If a job role is alreadyprovided, the required permissions will be added to it. Default: undefined - AWS Batch default is false
22540
23622
  :param environment: The environment variables to pass to a container. Cannot start with ``AWS_BATCH``. We don't recommend using plaintext environment variables for sensitive information, such as credential data. Default: - no environment variables
22541
23623
  :param execution_role: The role used by Amazon ECS container and AWS Fargate agents to make AWS API calls on your behalf. Default: - a Role will be created
22542
23624
  :param job_role: The role that the container can assume. Default: - no job role
@@ -22561,6 +23643,7 @@ class EcsFargateContainerDefinition(
22561
23643
  image=image,
22562
23644
  memory=memory,
22563
23645
  command=command,
23646
+ enable_execute_command=enable_execute_command,
22564
23647
  environment=environment,
22565
23648
  execution_role=execution_role,
22566
23649
  job_role=job_role,
@@ -22648,6 +23731,12 @@ class EcsFargateContainerDefinition(
22648
23731
  '''The command that's passed to the container.'''
22649
23732
  return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "command"))
22650
23733
 
23734
+ @builtins.property
23735
+ @jsii.member(jsii_name="enableExecuteCommand")
23736
+ def enable_execute_command(self) -> typing.Optional[builtins.bool]:
23737
+ '''Whether to enable ecs exec for this container.'''
23738
+ return typing.cast(typing.Optional[builtins.bool], jsii.get(self, "enableExecuteCommand"))
23739
+
22651
23740
  @builtins.property
22652
23741
  @jsii.member(jsii_name="environment")
22653
23742
  def environment(
@@ -22742,29 +23831,25 @@ class EcsJobDefinition(
22742
23831
 
22743
23832
  Example::
22744
23833
 
22745
- # vpc: ec2.IVpc
23834
+ # my_file_system: efs.IFileSystem
23835
+ # my_job_role: iam.Role
22746
23836
 
23837
+ my_file_system.grant_read(my_job_role)
22747
23838
 
22748
- ecs_job = batch.EcsJobDefinition(self, "JobDefn",
23839
+ job_defn = batch.EcsJobDefinition(self, "JobDefn",
22749
23840
  container=batch.EcsEc2ContainerDefinition(self, "containerDefn",
22750
23841
  image=ecs.ContainerImage.from_registry("public.ecr.aws/amazonlinux/amazonlinux:latest"),
22751
23842
  memory=cdk.Size.mebibytes(2048),
22752
- cpu=256
23843
+ cpu=256,
23844
+ volumes=[batch.EcsVolume.efs(
23845
+ name="myVolume",
23846
+ file_system=my_file_system,
23847
+ container_path="/Volumes/myVolume",
23848
+ use_job_role=True
23849
+ )],
23850
+ job_role=my_job_role
22753
23851
  )
22754
23852
  )
22755
-
22756
- queue = batch.JobQueue(self, "JobQueue",
22757
- compute_environments=[batch.OrderedComputeEnvironment(
22758
- compute_environment=batch.ManagedEc2EcsComputeEnvironment(self, "managedEc2CE",
22759
- vpc=vpc
22760
- ),
22761
- order=1
22762
- )],
22763
- priority=10
22764
- )
22765
-
22766
- user = iam.User(self, "MyUser")
22767
- ecs_job.grant_submit_job(user, queue)
22768
23853
  '''
22769
23854
 
22770
23855
  def __init__(
@@ -22974,29 +24059,25 @@ class EcsJobDefinitionProps(JobDefinitionProps):
22974
24059
 
22975
24060
  Example::
22976
24061
 
22977
- # vpc: ec2.IVpc
24062
+ # my_file_system: efs.IFileSystem
24063
+ # my_job_role: iam.Role
22978
24064
 
24065
+ my_file_system.grant_read(my_job_role)
22979
24066
 
22980
- ecs_job = batch.EcsJobDefinition(self, "JobDefn",
24067
+ job_defn = batch.EcsJobDefinition(self, "JobDefn",
22981
24068
  container=batch.EcsEc2ContainerDefinition(self, "containerDefn",
22982
24069
  image=ecs.ContainerImage.from_registry("public.ecr.aws/amazonlinux/amazonlinux:latest"),
22983
24070
  memory=cdk.Size.mebibytes(2048),
22984
- cpu=256
24071
+ cpu=256,
24072
+ volumes=[batch.EcsVolume.efs(
24073
+ name="myVolume",
24074
+ file_system=my_file_system,
24075
+ container_path="/Volumes/myVolume",
24076
+ use_job_role=True
24077
+ )],
24078
+ job_role=my_job_role
22985
24079
  )
22986
24080
  )
22987
-
22988
- queue = batch.JobQueue(self, "JobQueue",
22989
- compute_environments=[batch.OrderedComputeEnvironment(
22990
- compute_environment=batch.ManagedEc2EcsComputeEnvironment(self, "managedEc2CE",
22991
- vpc=vpc
22992
- ),
22993
- order=1
22994
- )],
22995
- priority=10
22996
- )
22997
-
22998
- user = iam.User(self, "MyUser")
22999
- ecs_job.grant_submit_job(user, queue)
23000
24081
  '''
23001
24082
  if __debug__:
23002
24083
  type_hints = typing.get_type_hints(_typecheckingstub__b8c494afeabc17e9b4e022255720a4708371545e981a1d166b385628fe681d4b)
@@ -24821,8 +25902,11 @@ __all__ = [
24821
25902
  "CfnJobQueueProps",
24822
25903
  "CfnSchedulingPolicy",
24823
25904
  "CfnSchedulingPolicyProps",
25905
+ "CfnServiceEnvironment",
25906
+ "CfnServiceEnvironmentProps",
24824
25907
  "ComputeEnvironmentProps",
24825
25908
  "CustomReason",
25909
+ "DefaultInstanceClass",
24826
25910
  "Device",
24827
25911
  "DevicePermission",
24828
25912
  "DnsPolicy",
@@ -25052,6 +26136,7 @@ def _typecheckingstub__4b5bc20e5d24e0d359d6430d6ef9cdce99590872d896d3e0d65372a69
25052
26136
  launch_template_id: typing.Optional[builtins.str] = None,
25053
26137
  launch_template_name: typing.Optional[builtins.str] = None,
25054
26138
  target_instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
26139
+ userdata_type: typing.Optional[builtins.str] = None,
25055
26140
  version: typing.Optional[builtins.str] = None,
25056
26141
  ) -> None:
25057
26142
  """Type checking stubs"""
@@ -25062,6 +26147,7 @@ def _typecheckingstub__e2a48b24f0297afff0df36a352af2f9856ad8fac713d1ecbc2161d0b9
25062
26147
  launch_template_id: typing.Optional[builtins.str] = None,
25063
26148
  launch_template_name: typing.Optional[builtins.str] = None,
25064
26149
  overrides: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeEnvironment.LaunchTemplateSpecificationOverrideProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
26150
+ userdata_type: typing.Optional[builtins.str] = None,
25065
26151
  version: typing.Optional[builtins.str] = None,
25066
26152
  ) -> None:
25067
26153
  """Type checking stubs"""
@@ -25164,6 +26250,7 @@ def _typecheckingstub__37959c68856ab28ea1a57515db976bc2215806d52c75f6166834df6ae
25164
26250
  parameters: typing.Any = None,
25165
26251
  platform_capabilities: typing.Optional[typing.Sequence[builtins.str]] = None,
25166
26252
  propagate_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
26253
+ resource_retention_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.ResourceRetentionPolicyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
25167
26254
  retry_strategy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.RetryStrategyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
25168
26255
  scheduling_priority: typing.Optional[jsii.Number] = None,
25169
26256
  tags: typing.Any = None,
@@ -25172,6 +26259,22 @@ def _typecheckingstub__37959c68856ab28ea1a57515db976bc2215806d52c75f6166834df6ae
25172
26259
  """Type checking stubs"""
25173
26260
  pass
25174
26261
 
26262
+ def _typecheckingstub__9eb64c713801d4b9b5ffb80a279b71c78cb6317fd0c771df22f2646f9d957f0d(
26263
+ scope: _constructs_77d1e7e8.Construct,
26264
+ id: builtins.str,
26265
+ arn: builtins.str,
26266
+ ) -> None:
26267
+ """Type checking stubs"""
26268
+ pass
26269
+
26270
+ def _typecheckingstub__825692ecdcf61885a93251433de856e5a5f6a3a7d68b8673883d418e98bd1956(
26271
+ scope: _constructs_77d1e7e8.Construct,
26272
+ id: builtins.str,
26273
+ job_definition_name: builtins.str,
26274
+ ) -> None:
26275
+ """Type checking stubs"""
26276
+ pass
26277
+
25175
26278
  def _typecheckingstub__84b6af858f7642dbc10029a34c2ed90c61a840b3c9d8a639fbe0690b4aa593d9(
25176
26279
  inspector: _TreeInspector_488e0dd5,
25177
26280
  ) -> None:
@@ -25244,6 +26347,12 @@ def _typecheckingstub__269e7fe24ddc93928c4ed8726528871fc789de7275942860c547acd76
25244
26347
  """Type checking stubs"""
25245
26348
  pass
25246
26349
 
26350
+ def _typecheckingstub__24d6c12e4e40e86cb18eef4cad19675ced395908001d3f74f425b06ab99bb085(
26351
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnJobDefinition.ResourceRetentionPolicyProperty]],
26352
+ ) -> None:
26353
+ """Type checking stubs"""
26354
+ pass
26355
+
25247
26356
  def _typecheckingstub__2ac615dba37cd2b5a6e9d6f8cdd4b6beef51ff826d65fe0b5cdc31685de03def(
25248
26357
  value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnJobDefinition.RetryStrategyProperty]],
25249
26358
  ) -> None:
@@ -25625,6 +26734,13 @@ def _typecheckingstub__7384d4b3b97f8aebbaa3dfe7ec74991276f6b53d6e1885662f675369f
25625
26734
  """Type checking stubs"""
25626
26735
  pass
25627
26736
 
26737
+ def _typecheckingstub__96a556bd9c16087d87c49ecc18104d825d1cd7dc2f678a8e272fcb8ad46b87ff(
26738
+ *,
26739
+ skip_deregister_on_update: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
26740
+ ) -> None:
26741
+ """Type checking stubs"""
26742
+ pass
26743
+
25628
26744
  def _typecheckingstub__634ef7ff057388be2736fb45bfab10d038183951137f893e49e433ed83008f6a(
25629
26745
  *,
25630
26746
  limits: typing.Any = None,
@@ -25753,6 +26869,7 @@ def _typecheckingstub__ed150d027b29486332c3fd2205a51f3c6f64c25946114fb86a6eba384
25753
26869
  parameters: typing.Any = None,
25754
26870
  platform_capabilities: typing.Optional[typing.Sequence[builtins.str]] = None,
25755
26871
  propagate_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
26872
+ resource_retention_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.ResourceRetentionPolicyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
25756
26873
  retry_strategy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.RetryStrategyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
25757
26874
  scheduling_priority: typing.Optional[jsii.Number] = None,
25758
26875
  tags: typing.Any = None,
@@ -25765,11 +26882,13 @@ def _typecheckingstub__6480ab252bc515b2cdb6dc0c833877438fd473fd39eadf6b8a064969a
25765
26882
  scope: _constructs_77d1e7e8.Construct,
25766
26883
  id: builtins.str,
25767
26884
  *,
25768
- compute_environment_order: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.ComputeEnvironmentOrderProperty, typing.Dict[builtins.str, typing.Any]]]]],
25769
26885
  priority: jsii.Number,
26886
+ compute_environment_order: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.ComputeEnvironmentOrderProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
25770
26887
  job_queue_name: typing.Optional[builtins.str] = None,
26888
+ job_queue_type: typing.Optional[builtins.str] = None,
25771
26889
  job_state_time_limit_actions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.JobStateTimeLimitActionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
25772
26890
  scheduling_policy_arn: typing.Optional[builtins.str] = None,
26891
+ service_environment_order: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.ServiceEnvironmentOrderProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
25773
26892
  state: typing.Optional[builtins.str] = None,
25774
26893
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
25775
26894
  ) -> None:
@@ -25788,14 +26907,14 @@ def _typecheckingstub__ce1fe922d9589f26998c2113a8a19530d98bfc01fe2462a8639a35935
25788
26907
  """Type checking stubs"""
25789
26908
  pass
25790
26909
 
25791
- def _typecheckingstub__aa1c2f3f42165309672c3fdf8c286ff9dc5e99756ec1a5b3ffca9e719d4c7036(
25792
- value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnJobQueue.ComputeEnvironmentOrderProperty]]],
26910
+ def _typecheckingstub__620331f74c116d31a6d43627e1a45e7041bc3c110194265f30dc193863c8ed94(
26911
+ value: jsii.Number,
25793
26912
  ) -> None:
25794
26913
  """Type checking stubs"""
25795
26914
  pass
25796
26915
 
25797
- def _typecheckingstub__620331f74c116d31a6d43627e1a45e7041bc3c110194265f30dc193863c8ed94(
25798
- value: jsii.Number,
26916
+ def _typecheckingstub__aa1c2f3f42165309672c3fdf8c286ff9dc5e99756ec1a5b3ffca9e719d4c7036(
26917
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnJobQueue.ComputeEnvironmentOrderProperty]]]],
25799
26918
  ) -> None:
25800
26919
  """Type checking stubs"""
25801
26920
  pass
@@ -25806,6 +26925,12 @@ def _typecheckingstub__3b88e27e62b46f1049263a61bb14f62674a8121083de64c2db32d5856
25806
26925
  """Type checking stubs"""
25807
26926
  pass
25808
26927
 
26928
+ def _typecheckingstub__cf7ba788adc96e65e278a0278721e322a7b2c5ad42c7d2cafd707c74e58d6e65(
26929
+ value: typing.Optional[builtins.str],
26930
+ ) -> None:
26931
+ """Type checking stubs"""
26932
+ pass
26933
+
25809
26934
  def _typecheckingstub__6e248d0029fc3043fabb974edf0f06b8f9f721a8f13ce794fd6c39b5ae3bb91e(
25810
26935
  value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnJobQueue.JobStateTimeLimitActionProperty]]]],
25811
26936
  ) -> None:
@@ -25818,6 +26943,12 @@ def _typecheckingstub__48a6952b4a8d4426554895a52085bf8c88701735f3f94a3426e81e56a
25818
26943
  """Type checking stubs"""
25819
26944
  pass
25820
26945
 
26946
+ def _typecheckingstub__59b5173dac1cdbe1bbc03df51cc226f4cddcdbdc7dd27fbfc1081cce50fc2d50(
26947
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnJobQueue.ServiceEnvironmentOrderProperty]]]],
26948
+ ) -> None:
26949
+ """Type checking stubs"""
26950
+ pass
26951
+
25821
26952
  def _typecheckingstub__e97106b05367d04f8f618f0b8edf4f7fdc4b88436890062ac6e344ede4e180b0(
25822
26953
  value: typing.Optional[builtins.str],
25823
26954
  ) -> None:
@@ -25848,13 +26979,23 @@ def _typecheckingstub__78ff35092216cfb2ffd2106f7da574c86c17494e3404a6f2ccdc020cc
25848
26979
  """Type checking stubs"""
25849
26980
  pass
25850
26981
 
26982
+ def _typecheckingstub__04c4b071542df93d5d7f1e7493b1bd821aaeae2008c337f58b1d399f309446bf(
26983
+ *,
26984
+ order: jsii.Number,
26985
+ service_environment: builtins.str,
26986
+ ) -> None:
26987
+ """Type checking stubs"""
26988
+ pass
26989
+
25851
26990
  def _typecheckingstub__009d6d384b1b723169e64875095e05fe852ae3931adf5ba2004d22475a76caa9(
25852
26991
  *,
25853
- compute_environment_order: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.ComputeEnvironmentOrderProperty, typing.Dict[builtins.str, typing.Any]]]]],
25854
26992
  priority: jsii.Number,
26993
+ compute_environment_order: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.ComputeEnvironmentOrderProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
25855
26994
  job_queue_name: typing.Optional[builtins.str] = None,
26995
+ job_queue_type: typing.Optional[builtins.str] = None,
25856
26996
  job_state_time_limit_actions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.JobStateTimeLimitActionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
25857
26997
  scheduling_policy_arn: typing.Optional[builtins.str] = None,
26998
+ service_environment_order: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.ServiceEnvironmentOrderProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
25858
26999
  state: typing.Optional[builtins.str] = None,
25859
27000
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
25860
27001
  ) -> None:
@@ -25928,6 +27069,80 @@ def _typecheckingstub__baa72ee437297b58169f0020ba3178c321d8f72981fcd34857611be31
25928
27069
  """Type checking stubs"""
25929
27070
  pass
25930
27071
 
27072
+ def _typecheckingstub__a6f9de8dd6d91e1ef3541444262c3bd9eba874d47c3dbe2b368127e55802962d(
27073
+ scope: _constructs_77d1e7e8.Construct,
27074
+ id: builtins.str,
27075
+ *,
27076
+ capacity_limits: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceEnvironment.CapacityLimitProperty, typing.Dict[builtins.str, typing.Any]]]]],
27077
+ service_environment_type: builtins.str,
27078
+ service_environment_name: typing.Optional[builtins.str] = None,
27079
+ state: typing.Optional[builtins.str] = None,
27080
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
27081
+ ) -> None:
27082
+ """Type checking stubs"""
27083
+ pass
27084
+
27085
+ def _typecheckingstub__96e0974d2660553889a9af3a927bfad81828948853f01018235f809576a4c6b9(
27086
+ inspector: _TreeInspector_488e0dd5,
27087
+ ) -> None:
27088
+ """Type checking stubs"""
27089
+ pass
27090
+
27091
+ def _typecheckingstub__e6991ed0f2dc20fa74e5cde5971e4b3997019046ee7c1e1fc7eca96b677bc91b(
27092
+ props: typing.Mapping[builtins.str, typing.Any],
27093
+ ) -> None:
27094
+ """Type checking stubs"""
27095
+ pass
27096
+
27097
+ def _typecheckingstub__d996fbedbaec7f1ef9fada43375af4381f0a867d50517c77d6662e6e7d7d26ae(
27098
+ value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnServiceEnvironment.CapacityLimitProperty]]],
27099
+ ) -> None:
27100
+ """Type checking stubs"""
27101
+ pass
27102
+
27103
+ def _typecheckingstub__555f27a186fb86df6655903dee02e46968e9230d8927d6c74bb13420e35fb703(
27104
+ value: builtins.str,
27105
+ ) -> None:
27106
+ """Type checking stubs"""
27107
+ pass
27108
+
27109
+ def _typecheckingstub__2f9d1cde60619bebd040c4ca1b04e45af9a3d96ad1c7d934c1fe4f4c102b0fde(
27110
+ value: typing.Optional[builtins.str],
27111
+ ) -> None:
27112
+ """Type checking stubs"""
27113
+ pass
27114
+
27115
+ def _typecheckingstub__eb9c6d092d73d302c59d162da7ef41f680de210ef8b625b0d6804765c19c16cf(
27116
+ value: typing.Optional[builtins.str],
27117
+ ) -> None:
27118
+ """Type checking stubs"""
27119
+ pass
27120
+
27121
+ def _typecheckingstub__07a3aaaa5bb4d6dbce1c225211ed2ba7848e8258ea1ae35767262fbfb6c68d93(
27122
+ value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
27123
+ ) -> None:
27124
+ """Type checking stubs"""
27125
+ pass
27126
+
27127
+ def _typecheckingstub__8d4366eeddf34eff3fc133ef72e4bd900563fba6b925f9d9524d8c92ac2f3e4a(
27128
+ *,
27129
+ capacity_unit: typing.Optional[builtins.str] = None,
27130
+ max_capacity: typing.Optional[jsii.Number] = None,
27131
+ ) -> None:
27132
+ """Type checking stubs"""
27133
+ pass
27134
+
27135
+ def _typecheckingstub__dfdb5cc25e8550eb4e42278bd3377213122f3560aa9c8e788955ad66e1ecad9a(
27136
+ *,
27137
+ capacity_limits: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceEnvironment.CapacityLimitProperty, typing.Dict[builtins.str, typing.Any]]]]],
27138
+ service_environment_type: builtins.str,
27139
+ service_environment_name: typing.Optional[builtins.str] = None,
27140
+ state: typing.Optional[builtins.str] = None,
27141
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
27142
+ ) -> None:
27143
+ """Type checking stubs"""
27144
+ pass
27145
+
25931
27146
  def _typecheckingstub__ed356ed6d550d61b3cd35694bb99d63fcbc2d06693243747eaf82004f05f9958(
25932
27147
  *,
25933
27148
  compute_environment_name: typing.Optional[builtins.str] = None,
@@ -25961,6 +27176,7 @@ def _typecheckingstub__be0d7a8daca28c8e38e4e8dc8b20bc2ac1814af7b5292ed57768ad6bb
25961
27176
  image: _ContainerImage_94af1b43,
25962
27177
  memory: _Size_7b441c34,
25963
27178
  command: typing.Optional[typing.Sequence[builtins.str]] = None,
27179
+ enable_execute_command: typing.Optional[builtins.bool] = None,
25964
27180
  environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
25965
27181
  execution_role: typing.Optional[_IRole_235f5d8e] = None,
25966
27182
  job_role: typing.Optional[_IRole_235f5d8e] = None,
@@ -25980,6 +27196,7 @@ def _typecheckingstub__397c7ba6003633e0c17fd25493d817d40262ed9fcf2688d3147876a33
25980
27196
  image: _ContainerImage_94af1b43,
25981
27197
  memory: _Size_7b441c34,
25982
27198
  command: typing.Optional[typing.Sequence[builtins.str]] = None,
27199
+ enable_execute_command: typing.Optional[builtins.bool] = None,
25983
27200
  environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
25984
27201
  execution_role: typing.Optional[_IRole_235f5d8e] = None,
25985
27202
  job_role: typing.Optional[_IRole_235f5d8e] = None,
@@ -26002,6 +27219,7 @@ def _typecheckingstub__e5c078c2a3d8816b92a00e4027344466064444955323dc2ff127e9c01
26002
27219
  image: _ContainerImage_94af1b43,
26003
27220
  memory: _Size_7b441c34,
26004
27221
  command: typing.Optional[typing.Sequence[builtins.str]] = None,
27222
+ enable_execute_command: typing.Optional[builtins.bool] = None,
26005
27223
  environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
26006
27224
  execution_role: typing.Optional[_IRole_235f5d8e] = None,
26007
27225
  job_role: typing.Optional[_IRole_235f5d8e] = None,
@@ -26315,13 +27533,14 @@ def _typecheckingstub__f512f54787789f74db02e15bede1080e7c35d142bce05240edb789cee
26315
27533
  id: builtins.str,
26316
27534
  *,
26317
27535
  allocation_strategy: typing.Optional[AllocationStrategy] = None,
27536
+ default_instance_classes: typing.Optional[typing.Sequence[DefaultInstanceClass]] = None,
26318
27537
  images: typing.Optional[typing.Sequence[typing.Union[EcsMachineImage, typing.Dict[builtins.str, typing.Any]]]] = None,
26319
27538
  instance_classes: typing.Optional[typing.Sequence[_InstanceClass_85a592e7]] = None,
26320
27539
  instance_role: typing.Optional[_IRole_235f5d8e] = None,
26321
27540
  instance_types: typing.Optional[typing.Sequence[_InstanceType_f64915b9]] = None,
26322
27541
  launch_template: typing.Optional[_ILaunchTemplate_f32c0fd7] = None,
26323
27542
  minv_cpus: typing.Optional[jsii.Number] = None,
26324
- placement_group: typing.Optional[_IPlacementGroup_583ddf23] = None,
27543
+ placement_group: typing.Optional[_IPlacementGroupRef_5d6e601f] = None,
26325
27544
  spot_bid_percentage: typing.Optional[jsii.Number] = None,
26326
27545
  spot_fleet_role: typing.Optional[_IRole_235f5d8e] = None,
26327
27546
  use_optimal_instance_classes: typing.Optional[builtins.bool] = None,
@@ -26376,13 +27595,14 @@ def _typecheckingstub__8eb858d67ed25e3f273cc247ebf45f3c3f60ddc697df4791d3298b29a
26376
27595
  update_to_latest_image_version: typing.Optional[builtins.bool] = None,
26377
27596
  vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
26378
27597
  allocation_strategy: typing.Optional[AllocationStrategy] = None,
27598
+ default_instance_classes: typing.Optional[typing.Sequence[DefaultInstanceClass]] = None,
26379
27599
  images: typing.Optional[typing.Sequence[typing.Union[EcsMachineImage, typing.Dict[builtins.str, typing.Any]]]] = None,
26380
27600
  instance_classes: typing.Optional[typing.Sequence[_InstanceClass_85a592e7]] = None,
26381
27601
  instance_role: typing.Optional[_IRole_235f5d8e] = None,
26382
27602
  instance_types: typing.Optional[typing.Sequence[_InstanceType_f64915b9]] = None,
26383
27603
  launch_template: typing.Optional[_ILaunchTemplate_f32c0fd7] = None,
26384
27604
  minv_cpus: typing.Optional[jsii.Number] = None,
26385
- placement_group: typing.Optional[_IPlacementGroup_583ddf23] = None,
27605
+ placement_group: typing.Optional[_IPlacementGroupRef_5d6e601f] = None,
26386
27606
  spot_bid_percentage: typing.Optional[jsii.Number] = None,
26387
27607
  spot_fleet_role: typing.Optional[_IRole_235f5d8e] = None,
26388
27608
  use_optimal_instance_classes: typing.Optional[builtins.bool] = None,
@@ -26397,13 +27617,14 @@ def _typecheckingstub__9d1d04f77f1ffdbbe37085b164b175a3e5f0615a7fcde154dcc7f2b64
26397
27617
  eks_cluster: _ICluster_6b2b80df,
26398
27618
  kubernetes_namespace: builtins.str,
26399
27619
  allocation_strategy: typing.Optional[AllocationStrategy] = None,
27620
+ default_instance_classes: typing.Optional[typing.Sequence[DefaultInstanceClass]] = None,
26400
27621
  images: typing.Optional[typing.Sequence[typing.Union[EksMachineImage, typing.Dict[builtins.str, typing.Any]]]] = None,
26401
27622
  instance_classes: typing.Optional[typing.Sequence[_InstanceClass_85a592e7]] = None,
26402
27623
  instance_role: typing.Optional[_IRole_235f5d8e] = None,
26403
27624
  instance_types: typing.Optional[typing.Sequence[_InstanceType_f64915b9]] = None,
26404
27625
  launch_template: typing.Optional[_ILaunchTemplate_f32c0fd7] = None,
26405
27626
  minv_cpus: typing.Optional[jsii.Number] = None,
26406
- placement_group: typing.Optional[_IPlacementGroup_583ddf23] = None,
27627
+ placement_group: typing.Optional[_IPlacementGroupRef_5d6e601f] = None,
26407
27628
  spot_bid_percentage: typing.Optional[jsii.Number] = None,
26408
27629
  use_optimal_instance_classes: typing.Optional[builtins.bool] = None,
26409
27630
  vpc: _IVpc_f30d5663,
@@ -26451,13 +27672,14 @@ def _typecheckingstub__0a94139ce5fac0f77a3f41888dd3906c6a6876b7e2df289a2bb742a8c
26451
27672
  eks_cluster: _ICluster_6b2b80df,
26452
27673
  kubernetes_namespace: builtins.str,
26453
27674
  allocation_strategy: typing.Optional[AllocationStrategy] = None,
27675
+ default_instance_classes: typing.Optional[typing.Sequence[DefaultInstanceClass]] = None,
26454
27676
  images: typing.Optional[typing.Sequence[typing.Union[EksMachineImage, typing.Dict[builtins.str, typing.Any]]]] = None,
26455
27677
  instance_classes: typing.Optional[typing.Sequence[_InstanceClass_85a592e7]] = None,
26456
27678
  instance_role: typing.Optional[_IRole_235f5d8e] = None,
26457
27679
  instance_types: typing.Optional[typing.Sequence[_InstanceType_f64915b9]] = None,
26458
27680
  launch_template: typing.Optional[_ILaunchTemplate_f32c0fd7] = None,
26459
27681
  minv_cpus: typing.Optional[jsii.Number] = None,
26460
- placement_group: typing.Optional[_IPlacementGroup_583ddf23] = None,
27682
+ placement_group: typing.Optional[_IPlacementGroupRef_5d6e601f] = None,
26461
27683
  spot_bid_percentage: typing.Optional[jsii.Number] = None,
26462
27684
  use_optimal_instance_classes: typing.Optional[builtins.bool] = None,
26463
27685
  ) -> None:
@@ -26662,6 +27884,7 @@ def _typecheckingstub__e10b04cbfabc7b4f22d3019c7492dc27b542667400ab4e258b28839c7
26662
27884
  image: _ContainerImage_94af1b43,
26663
27885
  memory: _Size_7b441c34,
26664
27886
  command: typing.Optional[typing.Sequence[builtins.str]] = None,
27887
+ enable_execute_command: typing.Optional[builtins.bool] = None,
26665
27888
  environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
26666
27889
  execution_role: typing.Optional[_IRole_235f5d8e] = None,
26667
27890
  job_role: typing.Optional[_IRole_235f5d8e] = None,
@@ -26694,6 +27917,7 @@ def _typecheckingstub__b55710648e6c85d4781b971c282911ebf6e5f4b765f9f77bb61c7cb35
26694
27917
  image: _ContainerImage_94af1b43,
26695
27918
  memory: _Size_7b441c34,
26696
27919
  command: typing.Optional[typing.Sequence[builtins.str]] = None,
27920
+ enable_execute_command: typing.Optional[builtins.bool] = None,
26697
27921
  environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
26698
27922
  execution_role: typing.Optional[_IRole_235f5d8e] = None,
26699
27923
  job_role: typing.Optional[_IRole_235f5d8e] = None,
@@ -26909,3 +28133,6 @@ def _typecheckingstub__336ca5bcbe380ed2e934b92392f8548b45a77fa6056f7dbbf4741722d
26909
28133
  ) -> None:
26910
28134
  """Type checking stubs"""
26911
28135
  pass
28136
+
28137
+ for cls in [IComputeEnvironment, IEcsContainerDefinition, IEcsEc2ContainerDefinition, IEcsFargateContainerDefinition, IEksContainerDefinition, IEksJobDefinition, IFairshareSchedulingPolicy, IFargateComputeEnvironment, IJobDefinition, IJobQueue, IManagedComputeEnvironment, IManagedEc2EcsComputeEnvironment, ISchedulingPolicy, IUnmanagedComputeEnvironment]:
28138
+ typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])