aws-cdk-lib 2.156.0__py3-none-any.whl → 2.158.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 (294) hide show
  1. aws_cdk/__init__.py +42 -23
  2. aws_cdk/_jsii/__init__.py +17 -2
  3. aws_cdk/_jsii/{aws-cdk-lib@2.156.0.jsii.tgz → aws-cdk-lib@2.158.0.jsii.tgz} +0 -0
  4. aws_cdk/alexa_ask/__init__.py +16 -1
  5. aws_cdk/assertions/__init__.py +16 -1
  6. aws_cdk/aws_accessanalyzer/__init__.py +16 -1
  7. aws_cdk/aws_acmpca/__init__.py +26 -76
  8. aws_cdk/aws_amazonmq/__init__.py +16 -1
  9. aws_cdk/aws_amplify/__init__.py +122 -1
  10. aws_cdk/aws_amplifyuibuilder/__init__.py +16 -1
  11. aws_cdk/aws_apigateway/__init__.py +16 -1
  12. aws_cdk/aws_apigatewayv2/__init__.py +97 -14
  13. aws_cdk/aws_apigatewayv2_authorizers/__init__.py +16 -1
  14. aws_cdk/aws_apigatewayv2_integrations/__init__.py +16 -1
  15. aws_cdk/aws_appconfig/__init__.py +16 -1
  16. aws_cdk/aws_appflow/__init__.py +16 -1
  17. aws_cdk/aws_appintegrations/__init__.py +30 -15
  18. aws_cdk/aws_applicationautoscaling/__init__.py +16 -1
  19. aws_cdk/aws_applicationinsights/__init__.py +16 -1
  20. aws_cdk/aws_applicationsignals/__init__.py +766 -2
  21. aws_cdk/aws_appmesh/__init__.py +16 -1
  22. aws_cdk/aws_apprunner/__init__.py +16 -1
  23. aws_cdk/aws_appstream/__init__.py +16 -1
  24. aws_cdk/aws_appsync/__init__.py +66 -19
  25. aws_cdk/aws_apptest/__init__.py +16 -1
  26. aws_cdk/aws_aps/__init__.py +16 -1
  27. aws_cdk/aws_arczonalshift/__init__.py +16 -1
  28. aws_cdk/aws_athena/__init__.py +16 -1
  29. aws_cdk/aws_auditmanager/__init__.py +16 -1
  30. aws_cdk/aws_autoscaling/__init__.py +22 -7
  31. aws_cdk/aws_autoscaling_common/__init__.py +16 -1
  32. aws_cdk/aws_autoscaling_hooktargets/__init__.py +16 -1
  33. aws_cdk/aws_autoscalingplans/__init__.py +16 -1
  34. aws_cdk/aws_b2bi/__init__.py +16 -1
  35. aws_cdk/aws_backup/__init__.py +55 -1
  36. aws_cdk/aws_backupgateway/__init__.py +16 -1
  37. aws_cdk/aws_batch/__init__.py +57 -1
  38. aws_cdk/aws_bcmdataexports/__init__.py +16 -1
  39. aws_cdk/aws_bedrock/__init__.py +1529 -95
  40. aws_cdk/aws_billingconductor/__init__.py +16 -1
  41. aws_cdk/aws_budgets/__init__.py +16 -1
  42. aws_cdk/aws_cassandra/__init__.py +16 -1
  43. aws_cdk/aws_ce/__init__.py +16 -1
  44. aws_cdk/aws_certificatemanager/__init__.py +16 -1
  45. aws_cdk/aws_chatbot/__init__.py +22 -7
  46. aws_cdk/aws_cleanrooms/__init__.py +16 -1
  47. aws_cdk/aws_cleanroomsml/__init__.py +16 -1
  48. aws_cdk/aws_cloud9/__init__.py +16 -1
  49. aws_cdk/aws_cloudformation/__init__.py +38 -23
  50. aws_cdk/aws_cloudfront/__init__.py +16 -1
  51. aws_cdk/aws_cloudfront/experimental/__init__.py +46 -4
  52. aws_cdk/aws_cloudfront_origins/__init__.py +16 -1
  53. aws_cdk/aws_cloudtrail/__init__.py +16 -1
  54. aws_cdk/aws_cloudwatch/__init__.py +16 -1
  55. aws_cdk/aws_cloudwatch_actions/__init__.py +16 -1
  56. aws_cdk/aws_codeartifact/__init__.py +16 -1
  57. aws_cdk/aws_codebuild/__init__.py +16 -1
  58. aws_cdk/aws_codecommit/__init__.py +16 -1
  59. aws_cdk/aws_codeconnections/__init__.py +16 -1
  60. aws_cdk/aws_codedeploy/__init__.py +16 -1
  61. aws_cdk/aws_codeguruprofiler/__init__.py +16 -1
  62. aws_cdk/aws_codegurureviewer/__init__.py +16 -1
  63. aws_cdk/aws_codepipeline/__init__.py +16 -1
  64. aws_cdk/aws_codepipeline_actions/__init__.py +16 -1
  65. aws_cdk/aws_codestar/__init__.py +16 -1
  66. aws_cdk/aws_codestarconnections/__init__.py +16 -1
  67. aws_cdk/aws_codestarnotifications/__init__.py +16 -1
  68. aws_cdk/aws_cognito/__init__.py +16 -1
  69. aws_cdk/aws_comprehend/__init__.py +16 -1
  70. aws_cdk/aws_config/__init__.py +16 -1
  71. aws_cdk/aws_connect/__init__.py +16 -1
  72. aws_cdk/aws_connectcampaigns/__init__.py +16 -1
  73. aws_cdk/aws_controltower/__init__.py +16 -1
  74. aws_cdk/aws_cur/__init__.py +16 -1
  75. aws_cdk/aws_customerprofiles/__init__.py +16 -1
  76. aws_cdk/aws_databrew/__init__.py +16 -1
  77. aws_cdk/aws_datapipeline/__init__.py +16 -1
  78. aws_cdk/aws_datasync/__init__.py +56 -30
  79. aws_cdk/aws_datazone/__init__.py +16 -1
  80. aws_cdk/aws_dax/__init__.py +16 -1
  81. aws_cdk/aws_deadline/__init__.py +16 -1
  82. aws_cdk/aws_detective/__init__.py +16 -1
  83. aws_cdk/aws_devicefarm/__init__.py +16 -1
  84. aws_cdk/aws_devopsguru/__init__.py +16 -1
  85. aws_cdk/aws_directoryservice/__init__.py +16 -1
  86. aws_cdk/aws_dlm/__init__.py +16 -1
  87. aws_cdk/aws_dms/__init__.py +16 -1
  88. aws_cdk/aws_docdb/__init__.py +16 -1
  89. aws_cdk/aws_docdbelastic/__init__.py +16 -1
  90. aws_cdk/aws_dynamodb/__init__.py +16 -1
  91. aws_cdk/aws_ec2/__init__.py +389 -50
  92. aws_cdk/aws_ecr/__init__.py +16 -1
  93. aws_cdk/aws_ecr_assets/__init__.py +16 -1
  94. aws_cdk/aws_ecs/__init__.py +269 -88
  95. aws_cdk/aws_ecs_patterns/__init__.py +16 -1
  96. aws_cdk/aws_efs/__init__.py +16 -1
  97. aws_cdk/aws_eks/__init__.py +16 -1
  98. aws_cdk/aws_elasticache/__init__.py +16 -1
  99. aws_cdk/aws_elasticbeanstalk/__init__.py +16 -1
  100. aws_cdk/aws_elasticloadbalancing/__init__.py +16 -1
  101. aws_cdk/aws_elasticloadbalancingv2/__init__.py +20 -5
  102. aws_cdk/aws_elasticloadbalancingv2_actions/__init__.py +16 -1
  103. aws_cdk/aws_elasticloadbalancingv2_targets/__init__.py +16 -1
  104. aws_cdk/aws_elasticsearch/__init__.py +16 -1
  105. aws_cdk/aws_emr/__init__.py +16 -1
  106. aws_cdk/aws_emrcontainers/__init__.py +16 -1
  107. aws_cdk/aws_emrserverless/__init__.py +16 -1
  108. aws_cdk/aws_entityresolution/__init__.py +133 -5
  109. aws_cdk/aws_events/__init__.py +16 -1
  110. aws_cdk/aws_events_targets/__init__.py +16 -1
  111. aws_cdk/aws_eventschemas/__init__.py +16 -1
  112. aws_cdk/aws_evidently/__init__.py +16 -1
  113. aws_cdk/aws_finspace/__init__.py +16 -1
  114. aws_cdk/aws_fis/__init__.py +16 -1
  115. aws_cdk/aws_fms/__init__.py +16 -1
  116. aws_cdk/aws_forecast/__init__.py +16 -1
  117. aws_cdk/aws_frauddetector/__init__.py +16 -1
  118. aws_cdk/aws_fsx/__init__.py +16 -1
  119. aws_cdk/aws_gamelift/__init__.py +16 -1
  120. aws_cdk/aws_globalaccelerator/__init__.py +16 -1
  121. aws_cdk/aws_globalaccelerator_endpoints/__init__.py +16 -1
  122. aws_cdk/aws_glue/__init__.py +16 -9
  123. aws_cdk/aws_grafana/__init__.py +16 -1
  124. aws_cdk/aws_greengrass/__init__.py +16 -1
  125. aws_cdk/aws_greengrassv2/__init__.py +16 -1
  126. aws_cdk/aws_groundstation/__init__.py +43 -17
  127. aws_cdk/aws_guardduty/__init__.py +42 -15
  128. aws_cdk/aws_healthimaging/__init__.py +16 -1
  129. aws_cdk/aws_healthlake/__init__.py +16 -1
  130. aws_cdk/aws_iam/__init__.py +16 -1
  131. aws_cdk/aws_identitystore/__init__.py +16 -1
  132. aws_cdk/aws_imagebuilder/__init__.py +16 -1
  133. aws_cdk/aws_inspector/__init__.py +16 -1
  134. aws_cdk/aws_inspectorv2/__init__.py +16 -1
  135. aws_cdk/aws_internetmonitor/__init__.py +16 -1
  136. aws_cdk/aws_iot/__init__.py +16 -1
  137. aws_cdk/aws_iot1click/__init__.py +16 -1
  138. aws_cdk/aws_iotanalytics/__init__.py +16 -1
  139. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +16 -1
  140. aws_cdk/aws_iotevents/__init__.py +16 -1
  141. aws_cdk/aws_iotfleethub/__init__.py +16 -1
  142. aws_cdk/aws_iotfleetwise/__init__.py +124 -1
  143. aws_cdk/aws_iotsitewise/__init__.py +16 -1
  144. aws_cdk/aws_iotthingsgraph/__init__.py +16 -1
  145. aws_cdk/aws_iottwinmaker/__init__.py +16 -1
  146. aws_cdk/aws_iotwireless/__init__.py +16 -1
  147. aws_cdk/aws_ivs/__init__.py +16 -1
  148. aws_cdk/aws_ivschat/__init__.py +16 -1
  149. aws_cdk/aws_kafkaconnect/__init__.py +16 -1
  150. aws_cdk/aws_kendra/__init__.py +16 -1
  151. aws_cdk/aws_kendraranking/__init__.py +16 -1
  152. aws_cdk/aws_kinesis/__init__.py +16 -1
  153. aws_cdk/aws_kinesisanalytics/__init__.py +16 -1
  154. aws_cdk/aws_kinesisanalyticsv2/__init__.py +16 -1
  155. aws_cdk/aws_kinesisfirehose/__init__.py +16 -1
  156. aws_cdk/aws_kinesisvideo/__init__.py +16 -1
  157. aws_cdk/aws_kms/__init__.py +16 -1
  158. aws_cdk/aws_lakeformation/__init__.py +16 -1
  159. aws_cdk/aws_lambda/__init__.py +163 -18
  160. aws_cdk/aws_lambda_destinations/__init__.py +16 -1
  161. aws_cdk/aws_lambda_event_sources/__init__.py +16 -1
  162. aws_cdk/aws_lambda_nodejs/__init__.py +46 -4
  163. aws_cdk/aws_launchwizard/__init__.py +16 -1
  164. aws_cdk/aws_lex/__init__.py +16 -1
  165. aws_cdk/aws_licensemanager/__init__.py +16 -1
  166. aws_cdk/aws_lightsail/__init__.py +16 -1
  167. aws_cdk/aws_location/__init__.py +16 -1
  168. aws_cdk/aws_logs/__init__.py +16 -1
  169. aws_cdk/aws_logs_destinations/__init__.py +16 -1
  170. aws_cdk/aws_lookoutequipment/__init__.py +16 -1
  171. aws_cdk/aws_lookoutmetrics/__init__.py +16 -1
  172. aws_cdk/aws_lookoutvision/__init__.py +16 -1
  173. aws_cdk/aws_m2/__init__.py +16 -1
  174. aws_cdk/aws_macie/__init__.py +20 -5
  175. aws_cdk/aws_managedblockchain/__init__.py +16 -1
  176. aws_cdk/aws_mediaconnect/__init__.py +16 -1
  177. aws_cdk/aws_mediaconvert/__init__.py +16 -1
  178. aws_cdk/aws_medialive/__init__.py +364 -1
  179. aws_cdk/aws_mediapackage/__init__.py +16 -1
  180. aws_cdk/aws_mediapackagev2/__init__.py +54 -39
  181. aws_cdk/aws_mediastore/__init__.py +16 -1
  182. aws_cdk/aws_mediatailor/__init__.py +16 -1
  183. aws_cdk/aws_memorydb/__init__.py +16 -1
  184. aws_cdk/aws_msk/__init__.py +16 -1
  185. aws_cdk/aws_mwaa/__init__.py +16 -1
  186. aws_cdk/aws_neptune/__init__.py +30 -9
  187. aws_cdk/aws_neptunegraph/__init__.py +16 -1
  188. aws_cdk/aws_networkfirewall/__init__.py +16 -1
  189. aws_cdk/aws_networkmanager/__init__.py +16 -1
  190. aws_cdk/aws_nimblestudio/__init__.py +16 -1
  191. aws_cdk/aws_oam/__init__.py +16 -1
  192. aws_cdk/aws_omics/__init__.py +16 -1
  193. aws_cdk/aws_opensearchserverless/__init__.py +16 -1
  194. aws_cdk/aws_opensearchservice/__init__.py +210 -1
  195. aws_cdk/aws_opsworks/__init__.py +16 -1
  196. aws_cdk/aws_opsworkscm/__init__.py +16 -1
  197. aws_cdk/aws_organizations/__init__.py +16 -1
  198. aws_cdk/aws_osis/__init__.py +16 -1
  199. aws_cdk/aws_panorama/__init__.py +16 -1
  200. aws_cdk/aws_paymentcryptography/__init__.py +16 -1
  201. aws_cdk/aws_pcaconnectorad/__init__.py +16 -1
  202. aws_cdk/aws_pcaconnectorscep/__init__.py +899 -0
  203. aws_cdk/aws_personalize/__init__.py +18 -3
  204. aws_cdk/aws_pinpoint/__init__.py +16 -1
  205. aws_cdk/aws_pinpointemail/__init__.py +16 -1
  206. aws_cdk/aws_pipes/__init__.py +38 -23
  207. aws_cdk/aws_proton/__init__.py +16 -1
  208. aws_cdk/aws_qbusiness/__init__.py +691 -7
  209. aws_cdk/aws_qldb/__init__.py +16 -1
  210. aws_cdk/aws_quicksight/__init__.py +3301 -1
  211. aws_cdk/aws_ram/__init__.py +16 -1
  212. aws_cdk/aws_rds/__init__.py +58 -5
  213. aws_cdk/aws_redshift/__init__.py +16 -1
  214. aws_cdk/aws_redshiftserverless/__init__.py +16 -1
  215. aws_cdk/aws_refactorspaces/__init__.py +16 -1
  216. aws_cdk/aws_rekognition/__init__.py +16 -1
  217. aws_cdk/aws_resiliencehub/__init__.py +16 -1
  218. aws_cdk/aws_resourceexplorer2/__init__.py +16 -1
  219. aws_cdk/aws_resourcegroups/__init__.py +16 -1
  220. aws_cdk/aws_robomaker/__init__.py +16 -1
  221. aws_cdk/aws_rolesanywhere/__init__.py +16 -1
  222. aws_cdk/aws_route53/__init__.py +16 -1
  223. aws_cdk/aws_route53_patterns/__init__.py +16 -1
  224. aws_cdk/aws_route53_targets/__init__.py +16 -1
  225. aws_cdk/aws_route53profiles/__init__.py +16 -1
  226. aws_cdk/aws_route53recoverycontrol/__init__.py +16 -1
  227. aws_cdk/aws_route53recoveryreadiness/__init__.py +16 -1
  228. aws_cdk/aws_route53resolver/__init__.py +16 -1
  229. aws_cdk/aws_rum/__init__.py +16 -1
  230. aws_cdk/aws_s3/__init__.py +16 -1
  231. aws_cdk/aws_s3_assets/__init__.py +16 -1
  232. aws_cdk/aws_s3_deployment/__init__.py +16 -1
  233. aws_cdk/aws_s3_notifications/__init__.py +16 -1
  234. aws_cdk/aws_s3express/__init__.py +16 -1
  235. aws_cdk/aws_s3objectlambda/__init__.py +16 -1
  236. aws_cdk/aws_s3outposts/__init__.py +16 -1
  237. aws_cdk/aws_sagemaker/__init__.py +1183 -1
  238. aws_cdk/aws_sam/__init__.py +16 -1
  239. aws_cdk/aws_scheduler/__init__.py +16 -1
  240. aws_cdk/aws_sdb/__init__.py +16 -1
  241. aws_cdk/aws_secretsmanager/__init__.py +18 -4
  242. aws_cdk/aws_securityhub/__init__.py +124 -104
  243. aws_cdk/aws_securitylake/__init__.py +16 -1
  244. aws_cdk/aws_servicecatalog/__init__.py +16 -1
  245. aws_cdk/aws_servicecatalogappregistry/__init__.py +16 -1
  246. aws_cdk/aws_servicediscovery/__init__.py +16 -1
  247. aws_cdk/aws_ses/__init__.py +47 -1
  248. aws_cdk/aws_ses_actions/__init__.py +16 -1
  249. aws_cdk/aws_shield/__init__.py +16 -1
  250. aws_cdk/aws_signer/__init__.py +16 -1
  251. aws_cdk/aws_simspaceweaver/__init__.py +16 -1
  252. aws_cdk/aws_sns/__init__.py +35 -14
  253. aws_cdk/aws_sns_subscriptions/__init__.py +16 -1
  254. aws_cdk/aws_sqs/__init__.py +16 -1
  255. aws_cdk/aws_ssm/__init__.py +26 -7
  256. aws_cdk/aws_ssmcontacts/__init__.py +16 -1
  257. aws_cdk/aws_ssmincidents/__init__.py +16 -1
  258. aws_cdk/aws_ssmquicksetup/__init__.py +982 -0
  259. aws_cdk/aws_sso/__init__.py +16 -1
  260. aws_cdk/aws_stepfunctions/__init__.py +16 -1
  261. aws_cdk/aws_stepfunctions_tasks/__init__.py +20 -5
  262. aws_cdk/aws_supportapp/__init__.py +16 -1
  263. aws_cdk/aws_synthetics/__init__.py +16 -1
  264. aws_cdk/aws_systemsmanagersap/__init__.py +16 -1
  265. aws_cdk/aws_timestream/__init__.py +16 -1
  266. aws_cdk/aws_transfer/__init__.py +16 -1
  267. aws_cdk/aws_verifiedpermissions/__init__.py +16 -1
  268. aws_cdk/aws_voiceid/__init__.py +16 -1
  269. aws_cdk/aws_vpclattice/__init__.py +16 -1
  270. aws_cdk/aws_waf/__init__.py +16 -1
  271. aws_cdk/aws_wafregional/__init__.py +16 -1
  272. aws_cdk/aws_wafv2/__init__.py +16 -1
  273. aws_cdk/aws_wisdom/__init__.py +16 -1
  274. aws_cdk/aws_workspaces/__init__.py +16 -1
  275. aws_cdk/aws_workspacesthinclient/__init__.py +16 -1
  276. aws_cdk/aws_workspacesweb/__init__.py +16 -1
  277. aws_cdk/aws_xray/__init__.py +16 -1
  278. aws_cdk/cloud_assembly_schema/__init__.py +16 -1
  279. aws_cdk/cloudformation_include/__init__.py +16 -1
  280. aws_cdk/custom_resources/__init__.py +16 -1
  281. aws_cdk/cx_api/__init__.py +16 -1
  282. aws_cdk/lambda_layer_awscli/__init__.py +16 -1
  283. aws_cdk/lambda_layer_kubectl/__init__.py +16 -1
  284. aws_cdk/lambda_layer_node_proxy_agent/__init__.py +16 -1
  285. aws_cdk/pipelines/__init__.py +16 -1
  286. aws_cdk/region_info/__init__.py +16 -1
  287. aws_cdk/triggers/__init__.py +46 -4
  288. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.158.0.dist-info}/METADATA +5 -5
  289. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.158.0.dist-info}/NOTICE +27 -8
  290. aws_cdk_lib-2.158.0.dist-info/RECORD +294 -0
  291. aws_cdk_lib-2.156.0.dist-info/RECORD +0 -292
  292. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.158.0.dist-info}/LICENSE +0 -0
  293. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.158.0.dist-info}/WHEEL +0 -0
  294. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.158.0.dist-info}/top_level.txt +0 -0
@@ -43,7 +43,22 @@ import jsii
43
43
  import publication
44
44
  import typing_extensions
45
45
 
46
- from typeguard import check_type
46
+ import typeguard
47
+ from importlib.metadata import version as _metadata_package_version
48
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
49
+
50
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
51
+ if TYPEGUARD_MAJOR_VERSION <= 2:
52
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
53
+ else:
54
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
55
+ pass
56
+ else:
57
+ if TYPEGUARD_MAJOR_VERSION == 3:
58
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
59
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
60
+ else:
61
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
47
62
 
48
63
  from .._jsii import *
49
64
 
@@ -1489,6 +1504,1038 @@ class CfnAppProps:
1489
1504
  )
1490
1505
 
1491
1506
 
1507
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
1508
+ class CfnCluster(
1509
+ _CfnResource_9df397a6,
1510
+ metaclass=jsii.JSIIMeta,
1511
+ jsii_type="aws-cdk-lib.aws_sagemaker.CfnCluster",
1512
+ ):
1513
+ '''Resource Type definition for AWS::SageMaker::Cluster.
1514
+
1515
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html
1516
+ :cloudformationResource: AWS::SageMaker::Cluster
1517
+ :exampleMetadata: fixture=_generated
1518
+
1519
+ Example::
1520
+
1521
+ # The code below shows an example of how to instantiate this type.
1522
+ # The values are placeholders you should change.
1523
+ from aws_cdk import aws_sagemaker as sagemaker
1524
+
1525
+ cfn_cluster = sagemaker.CfnCluster(self, "MyCfnCluster",
1526
+ instance_groups=[sagemaker.CfnCluster.ClusterInstanceGroupProperty(
1527
+ execution_role="executionRole",
1528
+ instance_count=123,
1529
+ instance_group_name="instanceGroupName",
1530
+ instance_type="instanceType",
1531
+ life_cycle_config=sagemaker.CfnCluster.ClusterLifeCycleConfigProperty(
1532
+ on_create="onCreate",
1533
+ source_s3_uri="sourceS3Uri"
1534
+ ),
1535
+
1536
+ # the properties below are optional
1537
+ current_count=123,
1538
+ instance_storage_configs=[sagemaker.CfnCluster.ClusterInstanceStorageConfigProperty(
1539
+ ebs_volume_config=sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty(
1540
+ volume_size_in_gb=123
1541
+ )
1542
+ )],
1543
+ on_start_deep_health_checks=["onStartDeepHealthChecks"],
1544
+ threads_per_core=123
1545
+ )],
1546
+
1547
+ # the properties below are optional
1548
+ cluster_name="clusterName",
1549
+ node_recovery="nodeRecovery",
1550
+ orchestrator=sagemaker.CfnCluster.OrchestratorProperty(
1551
+ eks=sagemaker.CfnCluster.ClusterOrchestratorEksConfigProperty(
1552
+ cluster_arn="clusterArn"
1553
+ )
1554
+ ),
1555
+ tags=[CfnTag(
1556
+ key="key",
1557
+ value="value"
1558
+ )],
1559
+ vpc_config=sagemaker.CfnCluster.VpcConfigProperty(
1560
+ security_group_ids=["securityGroupIds"],
1561
+ subnets=["subnets"]
1562
+ )
1563
+ )
1564
+ '''
1565
+
1566
+ def __init__(
1567
+ self,
1568
+ scope: _constructs_77d1e7e8.Construct,
1569
+ id: builtins.str,
1570
+ *,
1571
+ instance_groups: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.ClusterInstanceGroupProperty", typing.Dict[builtins.str, typing.Any]]]]],
1572
+ cluster_name: typing.Optional[builtins.str] = None,
1573
+ node_recovery: typing.Optional[builtins.str] = None,
1574
+ orchestrator: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.OrchestratorProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1575
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1576
+ vpc_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.VpcConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1577
+ ) -> None:
1578
+ '''
1579
+ :param scope: Scope in which this resource is defined.
1580
+ :param id: Construct identifier for this resource (unique in its scope).
1581
+ :param instance_groups: The instance groups of the SageMaker HyperPod cluster.
1582
+ :param cluster_name: The name of the HyperPod Cluster.
1583
+ :param node_recovery: If node auto-recovery is set to true, faulty nodes will be replaced or rebooted when a failure is detected. If set to false, nodes will be labelled when a fault is detected.
1584
+ :param orchestrator: Specifies parameter(s) specific to the orchestrator, e.g. specify the EKS cluster.
1585
+ :param tags: Custom tags for managing the SageMaker HyperPod cluster as an AWS resource. You can add tags to your cluster in the same way you add them in other AWS services that support tagging.
1586
+ :param vpc_config: Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, hosted models, and compute resources have access to. You can control access to and from your resources by configuring a VPC.
1587
+ '''
1588
+ if __debug__:
1589
+ type_hints = typing.get_type_hints(_typecheckingstub__b1441bbec1bb60460bda62b43765e140885fbb36e13b090ded31c919b4f27ca6)
1590
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1591
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1592
+ props = CfnClusterProps(
1593
+ instance_groups=instance_groups,
1594
+ cluster_name=cluster_name,
1595
+ node_recovery=node_recovery,
1596
+ orchestrator=orchestrator,
1597
+ tags=tags,
1598
+ vpc_config=vpc_config,
1599
+ )
1600
+
1601
+ jsii.create(self.__class__, self, [scope, id, props])
1602
+
1603
+ @jsii.member(jsii_name="inspect")
1604
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
1605
+ '''Examines the CloudFormation resource and discloses attributes.
1606
+
1607
+ :param inspector: tree inspector to collect and process attributes.
1608
+ '''
1609
+ if __debug__:
1610
+ type_hints = typing.get_type_hints(_typecheckingstub__c6bf38c830f5d60bc842320feb4dec3a217b386f6d517f4958fd6640eda19286)
1611
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
1612
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
1613
+
1614
+ @jsii.member(jsii_name="renderProperties")
1615
+ def _render_properties(
1616
+ self,
1617
+ props: typing.Mapping[builtins.str, typing.Any],
1618
+ ) -> typing.Mapping[builtins.str, typing.Any]:
1619
+ '''
1620
+ :param props: -
1621
+ '''
1622
+ if __debug__:
1623
+ type_hints = typing.get_type_hints(_typecheckingstub__23ff930ab861d82c5316349d3cb92e229dc76252f7fe321a81296dd8049216aa)
1624
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
1625
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
1626
+
1627
+ @jsii.python.classproperty
1628
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
1629
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
1630
+ '''The CloudFormation resource type name for this resource class.'''
1631
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
1632
+
1633
+ @builtins.property
1634
+ @jsii.member(jsii_name="attrClusterArn")
1635
+ def attr_cluster_arn(self) -> builtins.str:
1636
+ '''The Amazon Resource Name (ARN) of the HyperPod Cluster.
1637
+
1638
+ :cloudformationAttribute: ClusterArn
1639
+ '''
1640
+ return typing.cast(builtins.str, jsii.get(self, "attrClusterArn"))
1641
+
1642
+ @builtins.property
1643
+ @jsii.member(jsii_name="attrClusterStatus")
1644
+ def attr_cluster_status(self) -> builtins.str:
1645
+ '''The status of the HyperPod Cluster.
1646
+
1647
+ :cloudformationAttribute: ClusterStatus
1648
+ '''
1649
+ return typing.cast(builtins.str, jsii.get(self, "attrClusterStatus"))
1650
+
1651
+ @builtins.property
1652
+ @jsii.member(jsii_name="attrCreationTime")
1653
+ def attr_creation_time(self) -> builtins.str:
1654
+ '''The time at which the HyperPod cluster was created.
1655
+
1656
+ :cloudformationAttribute: CreationTime
1657
+ '''
1658
+ return typing.cast(builtins.str, jsii.get(self, "attrCreationTime"))
1659
+
1660
+ @builtins.property
1661
+ @jsii.member(jsii_name="attrFailureMessage")
1662
+ def attr_failure_message(self) -> builtins.str:
1663
+ '''The failure message of the HyperPod Cluster.
1664
+
1665
+ :cloudformationAttribute: FailureMessage
1666
+ '''
1667
+ return typing.cast(builtins.str, jsii.get(self, "attrFailureMessage"))
1668
+
1669
+ @builtins.property
1670
+ @jsii.member(jsii_name="cdkTagManager")
1671
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
1672
+ '''Tag Manager which manages the tags for this resource.'''
1673
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
1674
+
1675
+ @builtins.property
1676
+ @jsii.member(jsii_name="cfnProperties")
1677
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1678
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1679
+
1680
+ @builtins.property
1681
+ @jsii.member(jsii_name="instanceGroups")
1682
+ def instance_groups(
1683
+ self,
1684
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterInstanceGroupProperty"]]]:
1685
+ '''The instance groups of the SageMaker HyperPod cluster.'''
1686
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterInstanceGroupProperty"]]], jsii.get(self, "instanceGroups"))
1687
+
1688
+ @instance_groups.setter
1689
+ def instance_groups(
1690
+ self,
1691
+ value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterInstanceGroupProperty"]]],
1692
+ ) -> None:
1693
+ if __debug__:
1694
+ type_hints = typing.get_type_hints(_typecheckingstub__4e78b567f109d38ee1f8221168fe230f3c378e24d69dab4b08d88a01e417dae5)
1695
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1696
+ jsii.set(self, "instanceGroups", value) # pyright: ignore[reportArgumentType]
1697
+
1698
+ @builtins.property
1699
+ @jsii.member(jsii_name="clusterName")
1700
+ def cluster_name(self) -> typing.Optional[builtins.str]:
1701
+ '''The name of the HyperPod Cluster.'''
1702
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "clusterName"))
1703
+
1704
+ @cluster_name.setter
1705
+ def cluster_name(self, value: typing.Optional[builtins.str]) -> None:
1706
+ if __debug__:
1707
+ type_hints = typing.get_type_hints(_typecheckingstub__8c72731c4fb9d1b248db78e05e403c022229ea39aa9884e7da88a1c9dd345bfb)
1708
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1709
+ jsii.set(self, "clusterName", value) # pyright: ignore[reportArgumentType]
1710
+
1711
+ @builtins.property
1712
+ @jsii.member(jsii_name="nodeRecovery")
1713
+ def node_recovery(self) -> typing.Optional[builtins.str]:
1714
+ '''If node auto-recovery is set to true, faulty nodes will be replaced or rebooted when a failure is detected.'''
1715
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "nodeRecovery"))
1716
+
1717
+ @node_recovery.setter
1718
+ def node_recovery(self, value: typing.Optional[builtins.str]) -> None:
1719
+ if __debug__:
1720
+ type_hints = typing.get_type_hints(_typecheckingstub__4fbe65936cd747930256e6fb03ae406dcd4ea78b463b13ed47a475b84468f655)
1721
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1722
+ jsii.set(self, "nodeRecovery", value) # pyright: ignore[reportArgumentType]
1723
+
1724
+ @builtins.property
1725
+ @jsii.member(jsii_name="orchestrator")
1726
+ def orchestrator(
1727
+ self,
1728
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.OrchestratorProperty"]]:
1729
+ '''Specifies parameter(s) specific to the orchestrator, e.g. specify the EKS cluster.'''
1730
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.OrchestratorProperty"]], jsii.get(self, "orchestrator"))
1731
+
1732
+ @orchestrator.setter
1733
+ def orchestrator(
1734
+ self,
1735
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.OrchestratorProperty"]],
1736
+ ) -> None:
1737
+ if __debug__:
1738
+ type_hints = typing.get_type_hints(_typecheckingstub__b28b5799cdd1c859107ae372c1215ec60b0e0936d622ea46ffde5ae876779722)
1739
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1740
+ jsii.set(self, "orchestrator", value) # pyright: ignore[reportArgumentType]
1741
+
1742
+ @builtins.property
1743
+ @jsii.member(jsii_name="tags")
1744
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1745
+ '''Custom tags for managing the SageMaker HyperPod cluster as an AWS resource.'''
1746
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
1747
+
1748
+ @tags.setter
1749
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
1750
+ if __debug__:
1751
+ type_hints = typing.get_type_hints(_typecheckingstub__d084f139dda46e8f580a7b39f59ba1634670f397fa2aa5cb51e1f2f0cb2b6cbe)
1752
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1753
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
1754
+
1755
+ @builtins.property
1756
+ @jsii.member(jsii_name="vpcConfig")
1757
+ def vpc_config(
1758
+ self,
1759
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.VpcConfigProperty"]]:
1760
+ '''Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, hosted models, and compute resources have access to.'''
1761
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.VpcConfigProperty"]], jsii.get(self, "vpcConfig"))
1762
+
1763
+ @vpc_config.setter
1764
+ def vpc_config(
1765
+ self,
1766
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.VpcConfigProperty"]],
1767
+ ) -> None:
1768
+ if __debug__:
1769
+ type_hints = typing.get_type_hints(_typecheckingstub__429f3349777c49353a90fb2e147d893a183eb1e53971ad423f88736afc16b14c)
1770
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1771
+ jsii.set(self, "vpcConfig", value) # pyright: ignore[reportArgumentType]
1772
+
1773
+ @jsii.data_type(
1774
+ jsii_type="aws-cdk-lib.aws_sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty",
1775
+ jsii_struct_bases=[],
1776
+ name_mapping={"volume_size_in_gb": "volumeSizeInGb"},
1777
+ )
1778
+ class ClusterEbsVolumeConfigProperty:
1779
+ def __init__(
1780
+ self,
1781
+ *,
1782
+ volume_size_in_gb: typing.Optional[jsii.Number] = None,
1783
+ ) -> None:
1784
+ '''Defines the configuration for attaching additional Amazon Elastic Block Store (EBS) volumes to the instances in the SageMaker HyperPod cluster instance group.
1785
+
1786
+ The additional EBS volume is attached to each instance within the SageMaker HyperPod cluster instance group and mounted to /opt/sagemaker.
1787
+
1788
+ :param volume_size_in_gb: The size in gigabytes (GB) of the additional EBS volume to be attached to the instances in the SageMaker HyperPod cluster instance group. The additional EBS volume is attached to each instance within the SageMaker HyperPod cluster instance group and mounted to /opt/sagemaker.
1789
+
1790
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterebsvolumeconfig.html
1791
+ :exampleMetadata: fixture=_generated
1792
+
1793
+ Example::
1794
+
1795
+ # The code below shows an example of how to instantiate this type.
1796
+ # The values are placeholders you should change.
1797
+ from aws_cdk import aws_sagemaker as sagemaker
1798
+
1799
+ cluster_ebs_volume_config_property = sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty(
1800
+ volume_size_in_gb=123
1801
+ )
1802
+ '''
1803
+ if __debug__:
1804
+ type_hints = typing.get_type_hints(_typecheckingstub__9c3cafd59fbc880606685f87e0e67d5a5ce5428cfebf3db8838122cd54c4a361)
1805
+ check_type(argname="argument volume_size_in_gb", value=volume_size_in_gb, expected_type=type_hints["volume_size_in_gb"])
1806
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1807
+ if volume_size_in_gb is not None:
1808
+ self._values["volume_size_in_gb"] = volume_size_in_gb
1809
+
1810
+ @builtins.property
1811
+ def volume_size_in_gb(self) -> typing.Optional[jsii.Number]:
1812
+ '''The size in gigabytes (GB) of the additional EBS volume to be attached to the instances in the SageMaker HyperPod cluster instance group.
1813
+
1814
+ The additional EBS volume is attached to each instance within the SageMaker HyperPod cluster instance group and mounted to /opt/sagemaker.
1815
+
1816
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterebsvolumeconfig.html#cfn-sagemaker-cluster-clusterebsvolumeconfig-volumesizeingb
1817
+ '''
1818
+ result = self._values.get("volume_size_in_gb")
1819
+ return typing.cast(typing.Optional[jsii.Number], result)
1820
+
1821
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1822
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1823
+
1824
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1825
+ return not (rhs == self)
1826
+
1827
+ def __repr__(self) -> str:
1828
+ return "ClusterEbsVolumeConfigProperty(%s)" % ", ".join(
1829
+ k + "=" + repr(v) for k, v in self._values.items()
1830
+ )
1831
+
1832
+ @jsii.data_type(
1833
+ jsii_type="aws-cdk-lib.aws_sagemaker.CfnCluster.ClusterInstanceGroupProperty",
1834
+ jsii_struct_bases=[],
1835
+ name_mapping={
1836
+ "execution_role": "executionRole",
1837
+ "instance_count": "instanceCount",
1838
+ "instance_group_name": "instanceGroupName",
1839
+ "instance_type": "instanceType",
1840
+ "life_cycle_config": "lifeCycleConfig",
1841
+ "current_count": "currentCount",
1842
+ "instance_storage_configs": "instanceStorageConfigs",
1843
+ "on_start_deep_health_checks": "onStartDeepHealthChecks",
1844
+ "threads_per_core": "threadsPerCore",
1845
+ },
1846
+ )
1847
+ class ClusterInstanceGroupProperty:
1848
+ def __init__(
1849
+ self,
1850
+ *,
1851
+ execution_role: builtins.str,
1852
+ instance_count: jsii.Number,
1853
+ instance_group_name: builtins.str,
1854
+ instance_type: builtins.str,
1855
+ life_cycle_config: typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.ClusterLifeCycleConfigProperty", typing.Dict[builtins.str, typing.Any]]],
1856
+ current_count: typing.Optional[jsii.Number] = None,
1857
+ instance_storage_configs: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.ClusterInstanceStorageConfigProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
1858
+ on_start_deep_health_checks: typing.Optional[typing.Sequence[builtins.str]] = None,
1859
+ threads_per_core: typing.Optional[jsii.Number] = None,
1860
+ ) -> None:
1861
+ '''Details of an instance group in a SageMaker HyperPod cluster.
1862
+
1863
+ :param execution_role: The execution role for the instance group to assume.
1864
+ :param instance_count: The number of instances you specified to add to the instance group of a SageMaker HyperPod cluster.
1865
+ :param instance_group_name: The name of the instance group of a SageMaker HyperPod cluster.
1866
+ :param instance_type: The instance type of the instance group of a SageMaker HyperPod cluster.
1867
+ :param life_cycle_config: The lifecycle configuration for a SageMaker HyperPod cluster.
1868
+ :param current_count: The number of instances that are currently in the instance group of a SageMaker HyperPod cluster.
1869
+ :param instance_storage_configs: The instance storage configuration for the instance group.
1870
+ :param on_start_deep_health_checks: Nodes will undergo advanced stress test to detect and replace faulty instances, based on the type of deep health check(s) passed in.
1871
+ :param threads_per_core: The number you specified to TreadsPerCore in CreateCluster for enabling or disabling multithreading. For instance types that support multithreading, you can specify 1 for disabling multithreading and 2 for enabling multithreading.
1872
+
1873
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterinstancegroup.html
1874
+ :exampleMetadata: fixture=_generated
1875
+
1876
+ Example::
1877
+
1878
+ # The code below shows an example of how to instantiate this type.
1879
+ # The values are placeholders you should change.
1880
+ from aws_cdk import aws_sagemaker as sagemaker
1881
+
1882
+ cluster_instance_group_property = sagemaker.CfnCluster.ClusterInstanceGroupProperty(
1883
+ execution_role="executionRole",
1884
+ instance_count=123,
1885
+ instance_group_name="instanceGroupName",
1886
+ instance_type="instanceType",
1887
+ life_cycle_config=sagemaker.CfnCluster.ClusterLifeCycleConfigProperty(
1888
+ on_create="onCreate",
1889
+ source_s3_uri="sourceS3Uri"
1890
+ ),
1891
+
1892
+ # the properties below are optional
1893
+ current_count=123,
1894
+ instance_storage_configs=[sagemaker.CfnCluster.ClusterInstanceStorageConfigProperty(
1895
+ ebs_volume_config=sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty(
1896
+ volume_size_in_gb=123
1897
+ )
1898
+ )],
1899
+ on_start_deep_health_checks=["onStartDeepHealthChecks"],
1900
+ threads_per_core=123
1901
+ )
1902
+ '''
1903
+ if __debug__:
1904
+ type_hints = typing.get_type_hints(_typecheckingstub__3a19719ba9f3f785eebfbcc6ee996f6178944dfe9cbd5d5cdf73341bd47bcc03)
1905
+ check_type(argname="argument execution_role", value=execution_role, expected_type=type_hints["execution_role"])
1906
+ check_type(argname="argument instance_count", value=instance_count, expected_type=type_hints["instance_count"])
1907
+ check_type(argname="argument instance_group_name", value=instance_group_name, expected_type=type_hints["instance_group_name"])
1908
+ check_type(argname="argument instance_type", value=instance_type, expected_type=type_hints["instance_type"])
1909
+ check_type(argname="argument life_cycle_config", value=life_cycle_config, expected_type=type_hints["life_cycle_config"])
1910
+ check_type(argname="argument current_count", value=current_count, expected_type=type_hints["current_count"])
1911
+ check_type(argname="argument instance_storage_configs", value=instance_storage_configs, expected_type=type_hints["instance_storage_configs"])
1912
+ check_type(argname="argument on_start_deep_health_checks", value=on_start_deep_health_checks, expected_type=type_hints["on_start_deep_health_checks"])
1913
+ check_type(argname="argument threads_per_core", value=threads_per_core, expected_type=type_hints["threads_per_core"])
1914
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1915
+ "execution_role": execution_role,
1916
+ "instance_count": instance_count,
1917
+ "instance_group_name": instance_group_name,
1918
+ "instance_type": instance_type,
1919
+ "life_cycle_config": life_cycle_config,
1920
+ }
1921
+ if current_count is not None:
1922
+ self._values["current_count"] = current_count
1923
+ if instance_storage_configs is not None:
1924
+ self._values["instance_storage_configs"] = instance_storage_configs
1925
+ if on_start_deep_health_checks is not None:
1926
+ self._values["on_start_deep_health_checks"] = on_start_deep_health_checks
1927
+ if threads_per_core is not None:
1928
+ self._values["threads_per_core"] = threads_per_core
1929
+
1930
+ @builtins.property
1931
+ def execution_role(self) -> builtins.str:
1932
+ '''The execution role for the instance group to assume.
1933
+
1934
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterinstancegroup.html#cfn-sagemaker-cluster-clusterinstancegroup-executionrole
1935
+ '''
1936
+ result = self._values.get("execution_role")
1937
+ assert result is not None, "Required property 'execution_role' is missing"
1938
+ return typing.cast(builtins.str, result)
1939
+
1940
+ @builtins.property
1941
+ def instance_count(self) -> jsii.Number:
1942
+ '''The number of instances you specified to add to the instance group of a SageMaker HyperPod cluster.
1943
+
1944
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterinstancegroup.html#cfn-sagemaker-cluster-clusterinstancegroup-instancecount
1945
+ '''
1946
+ result = self._values.get("instance_count")
1947
+ assert result is not None, "Required property 'instance_count' is missing"
1948
+ return typing.cast(jsii.Number, result)
1949
+
1950
+ @builtins.property
1951
+ def instance_group_name(self) -> builtins.str:
1952
+ '''The name of the instance group of a SageMaker HyperPod cluster.
1953
+
1954
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterinstancegroup.html#cfn-sagemaker-cluster-clusterinstancegroup-instancegroupname
1955
+ '''
1956
+ result = self._values.get("instance_group_name")
1957
+ assert result is not None, "Required property 'instance_group_name' is missing"
1958
+ return typing.cast(builtins.str, result)
1959
+
1960
+ @builtins.property
1961
+ def instance_type(self) -> builtins.str:
1962
+ '''The instance type of the instance group of a SageMaker HyperPod cluster.
1963
+
1964
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterinstancegroup.html#cfn-sagemaker-cluster-clusterinstancegroup-instancetype
1965
+ '''
1966
+ result = self._values.get("instance_type")
1967
+ assert result is not None, "Required property 'instance_type' is missing"
1968
+ return typing.cast(builtins.str, result)
1969
+
1970
+ @builtins.property
1971
+ def life_cycle_config(
1972
+ self,
1973
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterLifeCycleConfigProperty"]:
1974
+ '''The lifecycle configuration for a SageMaker HyperPod cluster.
1975
+
1976
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterinstancegroup.html#cfn-sagemaker-cluster-clusterinstancegroup-lifecycleconfig
1977
+ '''
1978
+ result = self._values.get("life_cycle_config")
1979
+ assert result is not None, "Required property 'life_cycle_config' is missing"
1980
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterLifeCycleConfigProperty"], result)
1981
+
1982
+ @builtins.property
1983
+ def current_count(self) -> typing.Optional[jsii.Number]:
1984
+ '''The number of instances that are currently in the instance group of a SageMaker HyperPod cluster.
1985
+
1986
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterinstancegroup.html#cfn-sagemaker-cluster-clusterinstancegroup-currentcount
1987
+ '''
1988
+ result = self._values.get("current_count")
1989
+ return typing.cast(typing.Optional[jsii.Number], result)
1990
+
1991
+ @builtins.property
1992
+ def instance_storage_configs(
1993
+ self,
1994
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterInstanceStorageConfigProperty"]]]]:
1995
+ '''The instance storage configuration for the instance group.
1996
+
1997
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterinstancegroup.html#cfn-sagemaker-cluster-clusterinstancegroup-instancestorageconfigs
1998
+ '''
1999
+ result = self._values.get("instance_storage_configs")
2000
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterInstanceStorageConfigProperty"]]]], result)
2001
+
2002
+ @builtins.property
2003
+ def on_start_deep_health_checks(
2004
+ self,
2005
+ ) -> typing.Optional[typing.List[builtins.str]]:
2006
+ '''Nodes will undergo advanced stress test to detect and replace faulty instances, based on the type of deep health check(s) passed in.
2007
+
2008
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterinstancegroup.html#cfn-sagemaker-cluster-clusterinstancegroup-onstartdeephealthchecks
2009
+ '''
2010
+ result = self._values.get("on_start_deep_health_checks")
2011
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2012
+
2013
+ @builtins.property
2014
+ def threads_per_core(self) -> typing.Optional[jsii.Number]:
2015
+ '''The number you specified to TreadsPerCore in CreateCluster for enabling or disabling multithreading.
2016
+
2017
+ For instance types that support multithreading, you can specify 1 for disabling multithreading and 2 for enabling multithreading.
2018
+
2019
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterinstancegroup.html#cfn-sagemaker-cluster-clusterinstancegroup-threadspercore
2020
+ '''
2021
+ result = self._values.get("threads_per_core")
2022
+ return typing.cast(typing.Optional[jsii.Number], result)
2023
+
2024
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2025
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2026
+
2027
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2028
+ return not (rhs == self)
2029
+
2030
+ def __repr__(self) -> str:
2031
+ return "ClusterInstanceGroupProperty(%s)" % ", ".join(
2032
+ k + "=" + repr(v) for k, v in self._values.items()
2033
+ )
2034
+
2035
+ @jsii.data_type(
2036
+ jsii_type="aws-cdk-lib.aws_sagemaker.CfnCluster.ClusterInstanceStorageConfigProperty",
2037
+ jsii_struct_bases=[],
2038
+ name_mapping={"ebs_volume_config": "ebsVolumeConfig"},
2039
+ )
2040
+ class ClusterInstanceStorageConfigProperty:
2041
+ def __init__(
2042
+ self,
2043
+ *,
2044
+ ebs_volume_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.ClusterEbsVolumeConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2045
+ ) -> None:
2046
+ '''Defines the configuration for attaching additional storage to the instances in the SageMaker HyperPod cluster instance group.
2047
+
2048
+ :param ebs_volume_config: Defines the configuration for attaching additional Amazon Elastic Block Store (EBS) volumes to the instances in the SageMaker HyperPod cluster instance group. The additional EBS volume is attached to each instance within the SageMaker HyperPod cluster instance group and mounted to /opt/sagemaker.
2049
+
2050
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterinstancestorageconfig.html
2051
+ :exampleMetadata: fixture=_generated
2052
+
2053
+ Example::
2054
+
2055
+ # The code below shows an example of how to instantiate this type.
2056
+ # The values are placeholders you should change.
2057
+ from aws_cdk import aws_sagemaker as sagemaker
2058
+
2059
+ cluster_instance_storage_config_property = sagemaker.CfnCluster.ClusterInstanceStorageConfigProperty(
2060
+ ebs_volume_config=sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty(
2061
+ volume_size_in_gb=123
2062
+ )
2063
+ )
2064
+ '''
2065
+ if __debug__:
2066
+ type_hints = typing.get_type_hints(_typecheckingstub__43caf7c774c2545f8cff945a7d450e1acd83d6c11b7011b4cab6d25bea696218)
2067
+ check_type(argname="argument ebs_volume_config", value=ebs_volume_config, expected_type=type_hints["ebs_volume_config"])
2068
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
2069
+ if ebs_volume_config is not None:
2070
+ self._values["ebs_volume_config"] = ebs_volume_config
2071
+
2072
+ @builtins.property
2073
+ def ebs_volume_config(
2074
+ self,
2075
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterEbsVolumeConfigProperty"]]:
2076
+ '''Defines the configuration for attaching additional Amazon Elastic Block Store (EBS) volumes to the instances in the SageMaker HyperPod cluster instance group.
2077
+
2078
+ The additional EBS volume is attached to each instance within the SageMaker HyperPod cluster instance group and mounted to /opt/sagemaker.
2079
+
2080
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterinstancestorageconfig.html#cfn-sagemaker-cluster-clusterinstancestorageconfig-ebsvolumeconfig
2081
+ '''
2082
+ result = self._values.get("ebs_volume_config")
2083
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterEbsVolumeConfigProperty"]], result)
2084
+
2085
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2086
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2087
+
2088
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2089
+ return not (rhs == self)
2090
+
2091
+ def __repr__(self) -> str:
2092
+ return "ClusterInstanceStorageConfigProperty(%s)" % ", ".join(
2093
+ k + "=" + repr(v) for k, v in self._values.items()
2094
+ )
2095
+
2096
+ @jsii.data_type(
2097
+ jsii_type="aws-cdk-lib.aws_sagemaker.CfnCluster.ClusterLifeCycleConfigProperty",
2098
+ jsii_struct_bases=[],
2099
+ name_mapping={"on_create": "onCreate", "source_s3_uri": "sourceS3Uri"},
2100
+ )
2101
+ class ClusterLifeCycleConfigProperty:
2102
+ def __init__(
2103
+ self,
2104
+ *,
2105
+ on_create: builtins.str,
2106
+ source_s3_uri: builtins.str,
2107
+ ) -> None:
2108
+ '''The lifecycle configuration for a SageMaker HyperPod cluster.
2109
+
2110
+ :param on_create: The file name of the entrypoint script of lifecycle scripts under SourceS3Uri. This entrypoint script runs during cluster creation.
2111
+ :param source_s3_uri: An Amazon S3 bucket path where your lifecycle scripts are stored.
2112
+
2113
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterlifecycleconfig.html
2114
+ :exampleMetadata: fixture=_generated
2115
+
2116
+ Example::
2117
+
2118
+ # The code below shows an example of how to instantiate this type.
2119
+ # The values are placeholders you should change.
2120
+ from aws_cdk import aws_sagemaker as sagemaker
2121
+
2122
+ cluster_life_cycle_config_property = sagemaker.CfnCluster.ClusterLifeCycleConfigProperty(
2123
+ on_create="onCreate",
2124
+ source_s3_uri="sourceS3Uri"
2125
+ )
2126
+ '''
2127
+ if __debug__:
2128
+ type_hints = typing.get_type_hints(_typecheckingstub__9feca01a5855cd661f26c8dbf78069a1fe8e659c3851cf6144113cdfc3cdc58b)
2129
+ check_type(argname="argument on_create", value=on_create, expected_type=type_hints["on_create"])
2130
+ check_type(argname="argument source_s3_uri", value=source_s3_uri, expected_type=type_hints["source_s3_uri"])
2131
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2132
+ "on_create": on_create,
2133
+ "source_s3_uri": source_s3_uri,
2134
+ }
2135
+
2136
+ @builtins.property
2137
+ def on_create(self) -> builtins.str:
2138
+ '''The file name of the entrypoint script of lifecycle scripts under SourceS3Uri.
2139
+
2140
+ This entrypoint script runs during cluster creation.
2141
+
2142
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterlifecycleconfig.html#cfn-sagemaker-cluster-clusterlifecycleconfig-oncreate
2143
+ '''
2144
+ result = self._values.get("on_create")
2145
+ assert result is not None, "Required property 'on_create' is missing"
2146
+ return typing.cast(builtins.str, result)
2147
+
2148
+ @builtins.property
2149
+ def source_s3_uri(self) -> builtins.str:
2150
+ '''An Amazon S3 bucket path where your lifecycle scripts are stored.
2151
+
2152
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterlifecycleconfig.html#cfn-sagemaker-cluster-clusterlifecycleconfig-sources3uri
2153
+ '''
2154
+ result = self._values.get("source_s3_uri")
2155
+ assert result is not None, "Required property 'source_s3_uri' is missing"
2156
+ return typing.cast(builtins.str, result)
2157
+
2158
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2159
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2160
+
2161
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2162
+ return not (rhs == self)
2163
+
2164
+ def __repr__(self) -> str:
2165
+ return "ClusterLifeCycleConfigProperty(%s)" % ", ".join(
2166
+ k + "=" + repr(v) for k, v in self._values.items()
2167
+ )
2168
+
2169
+ @jsii.data_type(
2170
+ jsii_type="aws-cdk-lib.aws_sagemaker.CfnCluster.ClusterOrchestratorEksConfigProperty",
2171
+ jsii_struct_bases=[],
2172
+ name_mapping={"cluster_arn": "clusterArn"},
2173
+ )
2174
+ class ClusterOrchestratorEksConfigProperty:
2175
+ def __init__(self, *, cluster_arn: builtins.str) -> None:
2176
+ '''Specifies parameter(s) related to EKS as orchestrator, e.g. the EKS cluster nodes will attach to,.
2177
+
2178
+ :param cluster_arn: The ARN of the EKS cluster, such as arn:aws:eks:us-west-2:123456789012:cluster/my-eks-cluster.
2179
+
2180
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterorchestratoreksconfig.html
2181
+ :exampleMetadata: fixture=_generated
2182
+
2183
+ Example::
2184
+
2185
+ # The code below shows an example of how to instantiate this type.
2186
+ # The values are placeholders you should change.
2187
+ from aws_cdk import aws_sagemaker as sagemaker
2188
+
2189
+ cluster_orchestrator_eks_config_property = sagemaker.CfnCluster.ClusterOrchestratorEksConfigProperty(
2190
+ cluster_arn="clusterArn"
2191
+ )
2192
+ '''
2193
+ if __debug__:
2194
+ type_hints = typing.get_type_hints(_typecheckingstub__3b374679c88beb50318d8d8daa787c0b2f669d656010f29c3a5f6b1e4aa2fe2e)
2195
+ check_type(argname="argument cluster_arn", value=cluster_arn, expected_type=type_hints["cluster_arn"])
2196
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2197
+ "cluster_arn": cluster_arn,
2198
+ }
2199
+
2200
+ @builtins.property
2201
+ def cluster_arn(self) -> builtins.str:
2202
+ '''The ARN of the EKS cluster, such as arn:aws:eks:us-west-2:123456789012:cluster/my-eks-cluster.
2203
+
2204
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterorchestratoreksconfig.html#cfn-sagemaker-cluster-clusterorchestratoreksconfig-clusterarn
2205
+ '''
2206
+ result = self._values.get("cluster_arn")
2207
+ assert result is not None, "Required property 'cluster_arn' is missing"
2208
+ return typing.cast(builtins.str, result)
2209
+
2210
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2211
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2212
+
2213
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2214
+ return not (rhs == self)
2215
+
2216
+ def __repr__(self) -> str:
2217
+ return "ClusterOrchestratorEksConfigProperty(%s)" % ", ".join(
2218
+ k + "=" + repr(v) for k, v in self._values.items()
2219
+ )
2220
+
2221
+ @jsii.data_type(
2222
+ jsii_type="aws-cdk-lib.aws_sagemaker.CfnCluster.OrchestratorProperty",
2223
+ jsii_struct_bases=[],
2224
+ name_mapping={"eks": "eks"},
2225
+ )
2226
+ class OrchestratorProperty:
2227
+ def __init__(
2228
+ self,
2229
+ *,
2230
+ eks: typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.ClusterOrchestratorEksConfigProperty", typing.Dict[builtins.str, typing.Any]]],
2231
+ ) -> None:
2232
+ '''Specifies parameter(s) specific to the orchestrator, e.g. specify the EKS cluster.
2233
+
2234
+ :param eks: Specifies parameter(s) related to EKS as orchestrator, e.g. the EKS cluster nodes will attach to,.
2235
+
2236
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-orchestrator.html
2237
+ :exampleMetadata: fixture=_generated
2238
+
2239
+ Example::
2240
+
2241
+ # The code below shows an example of how to instantiate this type.
2242
+ # The values are placeholders you should change.
2243
+ from aws_cdk import aws_sagemaker as sagemaker
2244
+
2245
+ orchestrator_property = sagemaker.CfnCluster.OrchestratorProperty(
2246
+ eks=sagemaker.CfnCluster.ClusterOrchestratorEksConfigProperty(
2247
+ cluster_arn="clusterArn"
2248
+ )
2249
+ )
2250
+ '''
2251
+ if __debug__:
2252
+ type_hints = typing.get_type_hints(_typecheckingstub__bd76c8323d4b86bae18d24faa04bdbae1945db1d8ba5ca351b2ce27ff07f8aa6)
2253
+ check_type(argname="argument eks", value=eks, expected_type=type_hints["eks"])
2254
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2255
+ "eks": eks,
2256
+ }
2257
+
2258
+ @builtins.property
2259
+ def eks(
2260
+ self,
2261
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterOrchestratorEksConfigProperty"]:
2262
+ '''Specifies parameter(s) related to EKS as orchestrator, e.g. the EKS cluster nodes will attach to,.
2263
+
2264
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-orchestrator.html#cfn-sagemaker-cluster-orchestrator-eks
2265
+ '''
2266
+ result = self._values.get("eks")
2267
+ assert result is not None, "Required property 'eks' is missing"
2268
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterOrchestratorEksConfigProperty"], result)
2269
+
2270
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2271
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2272
+
2273
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2274
+ return not (rhs == self)
2275
+
2276
+ def __repr__(self) -> str:
2277
+ return "OrchestratorProperty(%s)" % ", ".join(
2278
+ k + "=" + repr(v) for k, v in self._values.items()
2279
+ )
2280
+
2281
+ @jsii.data_type(
2282
+ jsii_type="aws-cdk-lib.aws_sagemaker.CfnCluster.VpcConfigProperty",
2283
+ jsii_struct_bases=[],
2284
+ name_mapping={"security_group_ids": "securityGroupIds", "subnets": "subnets"},
2285
+ )
2286
+ class VpcConfigProperty:
2287
+ def __init__(
2288
+ self,
2289
+ *,
2290
+ security_group_ids: typing.Sequence[builtins.str],
2291
+ subnets: typing.Sequence[builtins.str],
2292
+ ) -> None:
2293
+ '''Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, hosted models, and compute resources have access to.
2294
+
2295
+ You can control access to and from your resources by configuring a VPC.
2296
+
2297
+ :param security_group_ids: The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the Subnets field.
2298
+ :param subnets: The ID of the subnets in the VPC to which you want to connect your training job or model.
2299
+
2300
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-vpcconfig.html
2301
+ :exampleMetadata: fixture=_generated
2302
+
2303
+ Example::
2304
+
2305
+ # The code below shows an example of how to instantiate this type.
2306
+ # The values are placeholders you should change.
2307
+ from aws_cdk import aws_sagemaker as sagemaker
2308
+
2309
+ vpc_config_property = sagemaker.CfnCluster.VpcConfigProperty(
2310
+ security_group_ids=["securityGroupIds"],
2311
+ subnets=["subnets"]
2312
+ )
2313
+ '''
2314
+ if __debug__:
2315
+ type_hints = typing.get_type_hints(_typecheckingstub__c25c63e6108b86a8b4d868c1bea98ca33c486d394309500187dda4d53e294a1a)
2316
+ check_type(argname="argument security_group_ids", value=security_group_ids, expected_type=type_hints["security_group_ids"])
2317
+ check_type(argname="argument subnets", value=subnets, expected_type=type_hints["subnets"])
2318
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2319
+ "security_group_ids": security_group_ids,
2320
+ "subnets": subnets,
2321
+ }
2322
+
2323
+ @builtins.property
2324
+ def security_group_ids(self) -> typing.List[builtins.str]:
2325
+ '''The VPC security group IDs, in the form sg-xxxxxxxx.
2326
+
2327
+ Specify the security groups for the VPC that is specified in the Subnets field.
2328
+
2329
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-vpcconfig.html#cfn-sagemaker-cluster-vpcconfig-securitygroupids
2330
+ '''
2331
+ result = self._values.get("security_group_ids")
2332
+ assert result is not None, "Required property 'security_group_ids' is missing"
2333
+ return typing.cast(typing.List[builtins.str], result)
2334
+
2335
+ @builtins.property
2336
+ def subnets(self) -> typing.List[builtins.str]:
2337
+ '''The ID of the subnets in the VPC to which you want to connect your training job or model.
2338
+
2339
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-vpcconfig.html#cfn-sagemaker-cluster-vpcconfig-subnets
2340
+ '''
2341
+ result = self._values.get("subnets")
2342
+ assert result is not None, "Required property 'subnets' is missing"
2343
+ return typing.cast(typing.List[builtins.str], result)
2344
+
2345
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2346
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2347
+
2348
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2349
+ return not (rhs == self)
2350
+
2351
+ def __repr__(self) -> str:
2352
+ return "VpcConfigProperty(%s)" % ", ".join(
2353
+ k + "=" + repr(v) for k, v in self._values.items()
2354
+ )
2355
+
2356
+
2357
+ @jsii.data_type(
2358
+ jsii_type="aws-cdk-lib.aws_sagemaker.CfnClusterProps",
2359
+ jsii_struct_bases=[],
2360
+ name_mapping={
2361
+ "instance_groups": "instanceGroups",
2362
+ "cluster_name": "clusterName",
2363
+ "node_recovery": "nodeRecovery",
2364
+ "orchestrator": "orchestrator",
2365
+ "tags": "tags",
2366
+ "vpc_config": "vpcConfig",
2367
+ },
2368
+ )
2369
+ class CfnClusterProps:
2370
+ def __init__(
2371
+ self,
2372
+ *,
2373
+ instance_groups: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ClusterInstanceGroupProperty, typing.Dict[builtins.str, typing.Any]]]]],
2374
+ cluster_name: typing.Optional[builtins.str] = None,
2375
+ node_recovery: typing.Optional[builtins.str] = None,
2376
+ orchestrator: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.OrchestratorProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2377
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
2378
+ vpc_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.VpcConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2379
+ ) -> None:
2380
+ '''Properties for defining a ``CfnCluster``.
2381
+
2382
+ :param instance_groups: The instance groups of the SageMaker HyperPod cluster.
2383
+ :param cluster_name: The name of the HyperPod Cluster.
2384
+ :param node_recovery: If node auto-recovery is set to true, faulty nodes will be replaced or rebooted when a failure is detected. If set to false, nodes will be labelled when a fault is detected.
2385
+ :param orchestrator: Specifies parameter(s) specific to the orchestrator, e.g. specify the EKS cluster.
2386
+ :param tags: Custom tags for managing the SageMaker HyperPod cluster as an AWS resource. You can add tags to your cluster in the same way you add them in other AWS services that support tagging.
2387
+ :param vpc_config: Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, hosted models, and compute resources have access to. You can control access to and from your resources by configuring a VPC.
2388
+
2389
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html
2390
+ :exampleMetadata: fixture=_generated
2391
+
2392
+ Example::
2393
+
2394
+ # The code below shows an example of how to instantiate this type.
2395
+ # The values are placeholders you should change.
2396
+ from aws_cdk import aws_sagemaker as sagemaker
2397
+
2398
+ cfn_cluster_props = sagemaker.CfnClusterProps(
2399
+ instance_groups=[sagemaker.CfnCluster.ClusterInstanceGroupProperty(
2400
+ execution_role="executionRole",
2401
+ instance_count=123,
2402
+ instance_group_name="instanceGroupName",
2403
+ instance_type="instanceType",
2404
+ life_cycle_config=sagemaker.CfnCluster.ClusterLifeCycleConfigProperty(
2405
+ on_create="onCreate",
2406
+ source_s3_uri="sourceS3Uri"
2407
+ ),
2408
+
2409
+ # the properties below are optional
2410
+ current_count=123,
2411
+ instance_storage_configs=[sagemaker.CfnCluster.ClusterInstanceStorageConfigProperty(
2412
+ ebs_volume_config=sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty(
2413
+ volume_size_in_gb=123
2414
+ )
2415
+ )],
2416
+ on_start_deep_health_checks=["onStartDeepHealthChecks"],
2417
+ threads_per_core=123
2418
+ )],
2419
+
2420
+ # the properties below are optional
2421
+ cluster_name="clusterName",
2422
+ node_recovery="nodeRecovery",
2423
+ orchestrator=sagemaker.CfnCluster.OrchestratorProperty(
2424
+ eks=sagemaker.CfnCluster.ClusterOrchestratorEksConfigProperty(
2425
+ cluster_arn="clusterArn"
2426
+ )
2427
+ ),
2428
+ tags=[CfnTag(
2429
+ key="key",
2430
+ value="value"
2431
+ )],
2432
+ vpc_config=sagemaker.CfnCluster.VpcConfigProperty(
2433
+ security_group_ids=["securityGroupIds"],
2434
+ subnets=["subnets"]
2435
+ )
2436
+ )
2437
+ '''
2438
+ if __debug__:
2439
+ type_hints = typing.get_type_hints(_typecheckingstub__c8126a53dc1741a2edde75d8d4eca79c53a2294746ea237dfba0097a758522ce)
2440
+ check_type(argname="argument instance_groups", value=instance_groups, expected_type=type_hints["instance_groups"])
2441
+ check_type(argname="argument cluster_name", value=cluster_name, expected_type=type_hints["cluster_name"])
2442
+ check_type(argname="argument node_recovery", value=node_recovery, expected_type=type_hints["node_recovery"])
2443
+ check_type(argname="argument orchestrator", value=orchestrator, expected_type=type_hints["orchestrator"])
2444
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
2445
+ check_type(argname="argument vpc_config", value=vpc_config, expected_type=type_hints["vpc_config"])
2446
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2447
+ "instance_groups": instance_groups,
2448
+ }
2449
+ if cluster_name is not None:
2450
+ self._values["cluster_name"] = cluster_name
2451
+ if node_recovery is not None:
2452
+ self._values["node_recovery"] = node_recovery
2453
+ if orchestrator is not None:
2454
+ self._values["orchestrator"] = orchestrator
2455
+ if tags is not None:
2456
+ self._values["tags"] = tags
2457
+ if vpc_config is not None:
2458
+ self._values["vpc_config"] = vpc_config
2459
+
2460
+ @builtins.property
2461
+ def instance_groups(
2462
+ self,
2463
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnCluster.ClusterInstanceGroupProperty]]]:
2464
+ '''The instance groups of the SageMaker HyperPod cluster.
2465
+
2466
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html#cfn-sagemaker-cluster-instancegroups
2467
+ '''
2468
+ result = self._values.get("instance_groups")
2469
+ assert result is not None, "Required property 'instance_groups' is missing"
2470
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnCluster.ClusterInstanceGroupProperty]]], result)
2471
+
2472
+ @builtins.property
2473
+ def cluster_name(self) -> typing.Optional[builtins.str]:
2474
+ '''The name of the HyperPod Cluster.
2475
+
2476
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html#cfn-sagemaker-cluster-clustername
2477
+ '''
2478
+ result = self._values.get("cluster_name")
2479
+ return typing.cast(typing.Optional[builtins.str], result)
2480
+
2481
+ @builtins.property
2482
+ def node_recovery(self) -> typing.Optional[builtins.str]:
2483
+ '''If node auto-recovery is set to true, faulty nodes will be replaced or rebooted when a failure is detected.
2484
+
2485
+ If set to false, nodes will be labelled when a fault is detected.
2486
+
2487
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html#cfn-sagemaker-cluster-noderecovery
2488
+ '''
2489
+ result = self._values.get("node_recovery")
2490
+ return typing.cast(typing.Optional[builtins.str], result)
2491
+
2492
+ @builtins.property
2493
+ def orchestrator(
2494
+ self,
2495
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnCluster.OrchestratorProperty]]:
2496
+ '''Specifies parameter(s) specific to the orchestrator, e.g. specify the EKS cluster.
2497
+
2498
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html#cfn-sagemaker-cluster-orchestrator
2499
+ '''
2500
+ result = self._values.get("orchestrator")
2501
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnCluster.OrchestratorProperty]], result)
2502
+
2503
+ @builtins.property
2504
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
2505
+ '''Custom tags for managing the SageMaker HyperPod cluster as an AWS resource.
2506
+
2507
+ You can add tags to your cluster in the same way you add them in other AWS services that support tagging.
2508
+
2509
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html#cfn-sagemaker-cluster-tags
2510
+ '''
2511
+ result = self._values.get("tags")
2512
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
2513
+
2514
+ @builtins.property
2515
+ def vpc_config(
2516
+ self,
2517
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnCluster.VpcConfigProperty]]:
2518
+ '''Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, hosted models, and compute resources have access to.
2519
+
2520
+ You can control access to and from your resources by configuring a VPC.
2521
+
2522
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html#cfn-sagemaker-cluster-vpcconfig
2523
+ '''
2524
+ result = self._values.get("vpc_config")
2525
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnCluster.VpcConfigProperty]], result)
2526
+
2527
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2528
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2529
+
2530
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2531
+ return not (rhs == self)
2532
+
2533
+ def __repr__(self) -> str:
2534
+ return "CfnClusterProps(%s)" % ", ".join(
2535
+ k + "=" + repr(v) for k, v in self._values.items()
2536
+ )
2537
+
2538
+
1492
2539
  @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
1493
2540
  class CfnCodeRepository(
1494
2541
  _CfnResource_9df397a6,
@@ -46123,6 +47170,8 @@ __all__ = [
46123
47170
  "CfnAppImageConfig",
46124
47171
  "CfnAppImageConfigProps",
46125
47172
  "CfnAppProps",
47173
+ "CfnCluster",
47174
+ "CfnClusterProps",
46126
47175
  "CfnCodeRepository",
46127
47176
  "CfnCodeRepositoryProps",
46128
47177
  "CfnDataQualityJobDefinition",
@@ -46393,6 +47442,139 @@ def _typecheckingstub__2f03f5ccb1b2c4633c9ef3bee30e7429d047ef909520efe2cbcf88d12
46393
47442
  """Type checking stubs"""
46394
47443
  pass
46395
47444
 
47445
+ def _typecheckingstub__b1441bbec1bb60460bda62b43765e140885fbb36e13b090ded31c919b4f27ca6(
47446
+ scope: _constructs_77d1e7e8.Construct,
47447
+ id: builtins.str,
47448
+ *,
47449
+ instance_groups: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ClusterInstanceGroupProperty, typing.Dict[builtins.str, typing.Any]]]]],
47450
+ cluster_name: typing.Optional[builtins.str] = None,
47451
+ node_recovery: typing.Optional[builtins.str] = None,
47452
+ orchestrator: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.OrchestratorProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
47453
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
47454
+ vpc_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.VpcConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
47455
+ ) -> None:
47456
+ """Type checking stubs"""
47457
+ pass
47458
+
47459
+ def _typecheckingstub__c6bf38c830f5d60bc842320feb4dec3a217b386f6d517f4958fd6640eda19286(
47460
+ inspector: _TreeInspector_488e0dd5,
47461
+ ) -> None:
47462
+ """Type checking stubs"""
47463
+ pass
47464
+
47465
+ def _typecheckingstub__23ff930ab861d82c5316349d3cb92e229dc76252f7fe321a81296dd8049216aa(
47466
+ props: typing.Mapping[builtins.str, typing.Any],
47467
+ ) -> None:
47468
+ """Type checking stubs"""
47469
+ pass
47470
+
47471
+ def _typecheckingstub__4e78b567f109d38ee1f8221168fe230f3c378e24d69dab4b08d88a01e417dae5(
47472
+ value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnCluster.ClusterInstanceGroupProperty]]],
47473
+ ) -> None:
47474
+ """Type checking stubs"""
47475
+ pass
47476
+
47477
+ def _typecheckingstub__8c72731c4fb9d1b248db78e05e403c022229ea39aa9884e7da88a1c9dd345bfb(
47478
+ value: typing.Optional[builtins.str],
47479
+ ) -> None:
47480
+ """Type checking stubs"""
47481
+ pass
47482
+
47483
+ def _typecheckingstub__4fbe65936cd747930256e6fb03ae406dcd4ea78b463b13ed47a475b84468f655(
47484
+ value: typing.Optional[builtins.str],
47485
+ ) -> None:
47486
+ """Type checking stubs"""
47487
+ pass
47488
+
47489
+ def _typecheckingstub__b28b5799cdd1c859107ae372c1215ec60b0e0936d622ea46ffde5ae876779722(
47490
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnCluster.OrchestratorProperty]],
47491
+ ) -> None:
47492
+ """Type checking stubs"""
47493
+ pass
47494
+
47495
+ def _typecheckingstub__d084f139dda46e8f580a7b39f59ba1634670f397fa2aa5cb51e1f2f0cb2b6cbe(
47496
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
47497
+ ) -> None:
47498
+ """Type checking stubs"""
47499
+ pass
47500
+
47501
+ def _typecheckingstub__429f3349777c49353a90fb2e147d893a183eb1e53971ad423f88736afc16b14c(
47502
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnCluster.VpcConfigProperty]],
47503
+ ) -> None:
47504
+ """Type checking stubs"""
47505
+ pass
47506
+
47507
+ def _typecheckingstub__9c3cafd59fbc880606685f87e0e67d5a5ce5428cfebf3db8838122cd54c4a361(
47508
+ *,
47509
+ volume_size_in_gb: typing.Optional[jsii.Number] = None,
47510
+ ) -> None:
47511
+ """Type checking stubs"""
47512
+ pass
47513
+
47514
+ def _typecheckingstub__3a19719ba9f3f785eebfbcc6ee996f6178944dfe9cbd5d5cdf73341bd47bcc03(
47515
+ *,
47516
+ execution_role: builtins.str,
47517
+ instance_count: jsii.Number,
47518
+ instance_group_name: builtins.str,
47519
+ instance_type: builtins.str,
47520
+ life_cycle_config: typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ClusterLifeCycleConfigProperty, typing.Dict[builtins.str, typing.Any]]],
47521
+ current_count: typing.Optional[jsii.Number] = None,
47522
+ instance_storage_configs: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ClusterInstanceStorageConfigProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
47523
+ on_start_deep_health_checks: typing.Optional[typing.Sequence[builtins.str]] = None,
47524
+ threads_per_core: typing.Optional[jsii.Number] = None,
47525
+ ) -> None:
47526
+ """Type checking stubs"""
47527
+ pass
47528
+
47529
+ def _typecheckingstub__43caf7c774c2545f8cff945a7d450e1acd83d6c11b7011b4cab6d25bea696218(
47530
+ *,
47531
+ ebs_volume_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ClusterEbsVolumeConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
47532
+ ) -> None:
47533
+ """Type checking stubs"""
47534
+ pass
47535
+
47536
+ def _typecheckingstub__9feca01a5855cd661f26c8dbf78069a1fe8e659c3851cf6144113cdfc3cdc58b(
47537
+ *,
47538
+ on_create: builtins.str,
47539
+ source_s3_uri: builtins.str,
47540
+ ) -> None:
47541
+ """Type checking stubs"""
47542
+ pass
47543
+
47544
+ def _typecheckingstub__3b374679c88beb50318d8d8daa787c0b2f669d656010f29c3a5f6b1e4aa2fe2e(
47545
+ *,
47546
+ cluster_arn: builtins.str,
47547
+ ) -> None:
47548
+ """Type checking stubs"""
47549
+ pass
47550
+
47551
+ def _typecheckingstub__bd76c8323d4b86bae18d24faa04bdbae1945db1d8ba5ca351b2ce27ff07f8aa6(
47552
+ *,
47553
+ eks: typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ClusterOrchestratorEksConfigProperty, typing.Dict[builtins.str, typing.Any]]],
47554
+ ) -> None:
47555
+ """Type checking stubs"""
47556
+ pass
47557
+
47558
+ def _typecheckingstub__c25c63e6108b86a8b4d868c1bea98ca33c486d394309500187dda4d53e294a1a(
47559
+ *,
47560
+ security_group_ids: typing.Sequence[builtins.str],
47561
+ subnets: typing.Sequence[builtins.str],
47562
+ ) -> None:
47563
+ """Type checking stubs"""
47564
+ pass
47565
+
47566
+ def _typecheckingstub__c8126a53dc1741a2edde75d8d4eca79c53a2294746ea237dfba0097a758522ce(
47567
+ *,
47568
+ instance_groups: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ClusterInstanceGroupProperty, typing.Dict[builtins.str, typing.Any]]]]],
47569
+ cluster_name: typing.Optional[builtins.str] = None,
47570
+ node_recovery: typing.Optional[builtins.str] = None,
47571
+ orchestrator: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.OrchestratorProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
47572
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
47573
+ vpc_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.VpcConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
47574
+ ) -> None:
47575
+ """Type checking stubs"""
47576
+ pass
47577
+
46396
47578
  def _typecheckingstub__5d17e8e1fa9515a89c3b89e14e1cbaa1aa86352b6f00eb195b7e040e28d143bb(
46397
47579
  scope: _constructs_77d1e7e8.Construct,
46398
47580
  id: builtins.str,