aws-cdk-lib 2.216.0__py3-none-any.whl → 2.217.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 (58) hide show
  1. aws_cdk/__init__.py +60 -28
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.216.0.jsii.tgz → aws-cdk-lib@2.217.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_acmpca/__init__.py +1 -1
  5. aws_cdk/aws_amplify/__init__.py +8 -8
  6. aws_cdk/aws_apigateway/__init__.py +26 -6
  7. aws_cdk/aws_apigatewayv2/__init__.py +2 -2
  8. aws_cdk/aws_appmesh/__init__.py +12 -12
  9. aws_cdk/aws_appstream/__init__.py +14 -4
  10. aws_cdk/aws_appsync/__init__.py +3 -3
  11. aws_cdk/aws_aps/__init__.py +459 -0
  12. aws_cdk/aws_batch/__init__.py +6 -2
  13. aws_cdk/aws_bedrock/__init__.py +132 -0
  14. aws_cdk/aws_bedrockagentcore/__init__.py +3178 -0
  15. aws_cdk/aws_certificatemanager/__init__.py +9 -10
  16. aws_cdk/aws_cleanrooms/__init__.py +163 -0
  17. aws_cdk/aws_cloudformation/__init__.py +14 -14
  18. aws_cdk/aws_cloudfront/__init__.py +12 -8
  19. aws_cdk/aws_cognito/__init__.py +2 -2
  20. aws_cdk/aws_connect/__init__.py +138 -10
  21. aws_cdk/aws_cur/__init__.py +57 -3
  22. aws_cdk/aws_datasync/__init__.py +351 -0
  23. aws_cdk/aws_datazone/__init__.py +675 -2
  24. aws_cdk/aws_dynamodb/__init__.py +123 -0
  25. aws_cdk/aws_ec2/__init__.py +55 -10
  26. aws_cdk/aws_ecs/__init__.py +55 -12
  27. aws_cdk/aws_elasticloadbalancingv2/__init__.py +48 -0
  28. aws_cdk/aws_elasticsearch/__init__.py +2 -2
  29. aws_cdk/aws_evs/__init__.py +58 -4
  30. aws_cdk/aws_gamelift/__init__.py +72 -56
  31. aws_cdk/aws_iam/__init__.py +1 -1
  32. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +35 -38
  33. aws_cdk/aws_iotsitewise/__init__.py +75 -111
  34. aws_cdk/aws_kms/__init__.py +10 -2
  35. aws_cdk/aws_lambda/__init__.py +46 -0
  36. aws_cdk/aws_medialive/__init__.py +127 -0
  37. aws_cdk/aws_mediapackage/__init__.py +2 -2
  38. aws_cdk/aws_networkfirewall/__init__.py +10 -10
  39. aws_cdk/aws_networkmanager/__init__.py +63 -0
  40. aws_cdk/aws_odb/__init__.py +2082 -195
  41. aws_cdk/aws_omics/__init__.py +1414 -171
  42. aws_cdk/aws_opensearchserverless/__init__.py +164 -21
  43. aws_cdk/aws_opensearchservice/__init__.py +5 -4
  44. aws_cdk/aws_pcs/__init__.py +9 -9
  45. aws_cdk/aws_quicksight/__init__.py +295 -3
  46. aws_cdk/aws_rds/__init__.py +338 -58
  47. aws_cdk/aws_sagemaker/__init__.py +251 -1
  48. aws_cdk/aws_servicecatalog/__init__.py +162 -154
  49. aws_cdk/aws_smsvoice/__init__.py +5218 -0
  50. aws_cdk/aws_transfer/__init__.py +13 -12
  51. aws_cdk/aws_verifiedpermissions/__init__.py +1 -1
  52. aws_cdk/aws_workspacesinstances/__init__.py +641 -2
  53. {aws_cdk_lib-2.216.0.dist-info → aws_cdk_lib-2.217.0.dist-info}/METADATA +1 -1
  54. {aws_cdk_lib-2.216.0.dist-info → aws_cdk_lib-2.217.0.dist-info}/RECORD +58 -56
  55. {aws_cdk_lib-2.216.0.dist-info → aws_cdk_lib-2.217.0.dist-info}/LICENSE +0 -0
  56. {aws_cdk_lib-2.216.0.dist-info → aws_cdk_lib-2.217.0.dist-info}/NOTICE +0 -0
  57. {aws_cdk_lib-2.216.0.dist-info → aws_cdk_lib-2.217.0.dist-info}/WHEEL +0 -0
  58. {aws_cdk_lib-2.216.0.dist-info → aws_cdk_lib-2.217.0.dist-info}/top_level.txt +0 -0
@@ -597,7 +597,9 @@ class CfnAppProps:
597
597
  jsii_type="aws-cdk-lib.aws_sagemaker.CfnClusterProps",
598
598
  jsii_struct_bases=[],
599
599
  name_mapping={
600
+ "auto_scaling": "autoScaling",
600
601
  "cluster_name": "clusterName",
602
+ "cluster_role": "clusterRole",
601
603
  "instance_groups": "instanceGroups",
602
604
  "node_provisioning_mode": "nodeProvisioningMode",
603
605
  "node_recovery": "nodeRecovery",
@@ -611,7 +613,9 @@ class CfnClusterProps:
611
613
  def __init__(
612
614
  self,
613
615
  *,
616
+ auto_scaling: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.ClusterAutoScalingConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
614
617
  cluster_name: typing.Optional[builtins.str] = None,
618
+ cluster_role: typing.Optional[builtins.str] = None,
615
619
  instance_groups: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.ClusterInstanceGroupProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
616
620
  node_provisioning_mode: typing.Optional[builtins.str] = None,
617
621
  node_recovery: typing.Optional[builtins.str] = None,
@@ -622,7 +626,9 @@ class CfnClusterProps:
622
626
  ) -> None:
623
627
  '''Properties for defining a ``CfnCluster``.
624
628
 
629
+ :param auto_scaling: Configuration for cluster auto-scaling.
625
630
  :param cluster_name: The name of the SageMaker HyperPod cluster.
631
+ :param cluster_role: The cluster role for the autoscaler to assume.
626
632
  :param instance_groups: The instance groups of the SageMaker HyperPod cluster. To delete an instance group, remove it from the array.
627
633
  :param node_provisioning_mode: Determines the scaling strategy for the SageMaker HyperPod cluster. When set to 'Continuous', enables continuous scaling which dynamically manages node provisioning. If the parameter is omitted, uses the standard scaling approach in previous release.
628
634
  :param node_recovery: Specifies whether to enable or disable the automatic node recovery feature of SageMaker HyperPod. Available values are ``Automatic`` for enabling and ``None`` for disabling.
@@ -641,7 +647,14 @@ class CfnClusterProps:
641
647
  from aws_cdk import aws_sagemaker as sagemaker
642
648
 
643
649
  cfn_cluster_props = sagemaker.CfnClusterProps(
650
+ auto_scaling=sagemaker.CfnCluster.ClusterAutoScalingConfigProperty(
651
+ mode="mode",
652
+
653
+ # the properties below are optional
654
+ auto_scaler_type="autoScalerType"
655
+ ),
644
656
  cluster_name="clusterName",
657
+ cluster_role="clusterRole",
645
658
  instance_groups=[sagemaker.CfnCluster.ClusterInstanceGroupProperty(
646
659
  execution_role="executionRole",
647
660
  instance_count=123,
@@ -657,6 +670,8 @@ class CfnClusterProps:
657
670
  image_id="imageId",
658
671
  instance_storage_configs=[sagemaker.CfnCluster.ClusterInstanceStorageConfigProperty(
659
672
  ebs_volume_config=sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty(
673
+ root_volume=False,
674
+ volume_kms_key_id="volumeKmsKeyId",
660
675
  volume_size_in_gb=123
661
676
  )
662
677
  )],
@@ -714,6 +729,8 @@ class CfnClusterProps:
714
729
  current_count=123,
715
730
  instance_storage_configs=[sagemaker.CfnCluster.ClusterInstanceStorageConfigProperty(
716
731
  ebs_volume_config=sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty(
732
+ root_volume=False,
733
+ volume_kms_key_id="volumeKmsKeyId",
717
734
  volume_size_in_gb=123
718
735
  )
719
736
  )],
@@ -737,7 +754,9 @@ class CfnClusterProps:
737
754
  '''
738
755
  if __debug__:
739
756
  type_hints = typing.get_type_hints(_typecheckingstub__c8126a53dc1741a2edde75d8d4eca79c53a2294746ea237dfba0097a758522ce)
757
+ check_type(argname="argument auto_scaling", value=auto_scaling, expected_type=type_hints["auto_scaling"])
740
758
  check_type(argname="argument cluster_name", value=cluster_name, expected_type=type_hints["cluster_name"])
759
+ check_type(argname="argument cluster_role", value=cluster_role, expected_type=type_hints["cluster_role"])
741
760
  check_type(argname="argument instance_groups", value=instance_groups, expected_type=type_hints["instance_groups"])
742
761
  check_type(argname="argument node_provisioning_mode", value=node_provisioning_mode, expected_type=type_hints["node_provisioning_mode"])
743
762
  check_type(argname="argument node_recovery", value=node_recovery, expected_type=type_hints["node_recovery"])
@@ -746,8 +765,12 @@ class CfnClusterProps:
746
765
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
747
766
  check_type(argname="argument vpc_config", value=vpc_config, expected_type=type_hints["vpc_config"])
748
767
  self._values: typing.Dict[builtins.str, typing.Any] = {}
768
+ if auto_scaling is not None:
769
+ self._values["auto_scaling"] = auto_scaling
749
770
  if cluster_name is not None:
750
771
  self._values["cluster_name"] = cluster_name
772
+ if cluster_role is not None:
773
+ self._values["cluster_role"] = cluster_role
751
774
  if instance_groups is not None:
752
775
  self._values["instance_groups"] = instance_groups
753
776
  if node_provisioning_mode is not None:
@@ -763,6 +786,17 @@ class CfnClusterProps:
763
786
  if vpc_config is not None:
764
787
  self._values["vpc_config"] = vpc_config
765
788
 
789
+ @builtins.property
790
+ def auto_scaling(
791
+ self,
792
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterAutoScalingConfigProperty"]]:
793
+ '''Configuration for cluster auto-scaling.
794
+
795
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html#cfn-sagemaker-cluster-autoscaling
796
+ '''
797
+ result = self._values.get("auto_scaling")
798
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterAutoScalingConfigProperty"]], result)
799
+
766
800
  @builtins.property
767
801
  def cluster_name(self) -> typing.Optional[builtins.str]:
768
802
  '''The name of the SageMaker HyperPod cluster.
@@ -772,6 +806,15 @@ class CfnClusterProps:
772
806
  result = self._values.get("cluster_name")
773
807
  return typing.cast(typing.Optional[builtins.str], result)
774
808
 
809
+ @builtins.property
810
+ def cluster_role(self) -> typing.Optional[builtins.str]:
811
+ '''The cluster role for the autoscaler to assume.
812
+
813
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html#cfn-sagemaker-cluster-clusterrole
814
+ '''
815
+ result = self._values.get("cluster_role")
816
+ return typing.cast(typing.Optional[builtins.str], result)
817
+
775
818
  @builtins.property
776
819
  def instance_groups(
777
820
  self,
@@ -13418,7 +13461,14 @@ class CfnCluster(
13418
13461
  from aws_cdk import aws_sagemaker as sagemaker
13419
13462
 
13420
13463
  cfn_cluster = sagemaker.CfnCluster(self, "MyCfnCluster",
13464
+ auto_scaling=sagemaker.CfnCluster.ClusterAutoScalingConfigProperty(
13465
+ mode="mode",
13466
+
13467
+ # the properties below are optional
13468
+ auto_scaler_type="autoScalerType"
13469
+ ),
13421
13470
  cluster_name="clusterName",
13471
+ cluster_role="clusterRole",
13422
13472
  instance_groups=[sagemaker.CfnCluster.ClusterInstanceGroupProperty(
13423
13473
  execution_role="executionRole",
13424
13474
  instance_count=123,
@@ -13434,6 +13484,8 @@ class CfnCluster(
13434
13484
  image_id="imageId",
13435
13485
  instance_storage_configs=[sagemaker.CfnCluster.ClusterInstanceStorageConfigProperty(
13436
13486
  ebs_volume_config=sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty(
13487
+ root_volume=False,
13488
+ volume_kms_key_id="volumeKmsKeyId",
13437
13489
  volume_size_in_gb=123
13438
13490
  )
13439
13491
  )],
@@ -13491,6 +13543,8 @@ class CfnCluster(
13491
13543
  current_count=123,
13492
13544
  instance_storage_configs=[sagemaker.CfnCluster.ClusterInstanceStorageConfigProperty(
13493
13545
  ebs_volume_config=sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty(
13546
+ root_volume=False,
13547
+ volume_kms_key_id="volumeKmsKeyId",
13494
13548
  volume_size_in_gb=123
13495
13549
  )
13496
13550
  )],
@@ -13518,7 +13572,9 @@ class CfnCluster(
13518
13572
  scope: _constructs_77d1e7e8.Construct,
13519
13573
  id: builtins.str,
13520
13574
  *,
13575
+ auto_scaling: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.ClusterAutoScalingConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
13521
13576
  cluster_name: typing.Optional[builtins.str] = None,
13577
+ cluster_role: typing.Optional[builtins.str] = None,
13522
13578
  instance_groups: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.ClusterInstanceGroupProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
13523
13579
  node_provisioning_mode: typing.Optional[builtins.str] = None,
13524
13580
  node_recovery: typing.Optional[builtins.str] = None,
@@ -13530,7 +13586,9 @@ class CfnCluster(
13530
13586
  '''
13531
13587
  :param scope: Scope in which this resource is defined.
13532
13588
  :param id: Construct identifier for this resource (unique in its scope).
13589
+ :param auto_scaling: Configuration for cluster auto-scaling.
13533
13590
  :param cluster_name: The name of the SageMaker HyperPod cluster.
13591
+ :param cluster_role: The cluster role for the autoscaler to assume.
13534
13592
  :param instance_groups: The instance groups of the SageMaker HyperPod cluster. To delete an instance group, remove it from the array.
13535
13593
  :param node_provisioning_mode: Determines the scaling strategy for the SageMaker HyperPod cluster. When set to 'Continuous', enables continuous scaling which dynamically manages node provisioning. If the parameter is omitted, uses the standard scaling approach in previous release.
13536
13594
  :param node_recovery: Specifies whether to enable or disable the automatic node recovery feature of SageMaker HyperPod. Available values are ``Automatic`` for enabling and ``None`` for disabling.
@@ -13544,7 +13602,9 @@ class CfnCluster(
13544
13602
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
13545
13603
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
13546
13604
  props = CfnClusterProps(
13605
+ auto_scaling=auto_scaling,
13547
13606
  cluster_name=cluster_name,
13607
+ cluster_role=cluster_role,
13548
13608
  instance_groups=instance_groups,
13549
13609
  node_provisioning_mode=node_provisioning_mode,
13550
13610
  node_recovery=node_recovery,
@@ -13639,6 +13699,24 @@ class CfnCluster(
13639
13699
  '''A reference to a Cluster resource.'''
13640
13700
  return typing.cast(ClusterReference, jsii.get(self, "clusterRef"))
13641
13701
 
13702
+ @builtins.property
13703
+ @jsii.member(jsii_name="autoScaling")
13704
+ def auto_scaling(
13705
+ self,
13706
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterAutoScalingConfigProperty"]]:
13707
+ '''Configuration for cluster auto-scaling.'''
13708
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterAutoScalingConfigProperty"]], jsii.get(self, "autoScaling"))
13709
+
13710
+ @auto_scaling.setter
13711
+ def auto_scaling(
13712
+ self,
13713
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.ClusterAutoScalingConfigProperty"]],
13714
+ ) -> None:
13715
+ if __debug__:
13716
+ type_hints = typing.get_type_hints(_typecheckingstub__03d7da9ac656d74f0fd594904f3b0f175e295650a74d5fee51bc8b4e3d92fe9d)
13717
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
13718
+ jsii.set(self, "autoScaling", value) # pyright: ignore[reportArgumentType]
13719
+
13642
13720
  @builtins.property
13643
13721
  @jsii.member(jsii_name="clusterName")
13644
13722
  def cluster_name(self) -> typing.Optional[builtins.str]:
@@ -13652,6 +13730,19 @@ class CfnCluster(
13652
13730
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
13653
13731
  jsii.set(self, "clusterName", value) # pyright: ignore[reportArgumentType]
13654
13732
 
13733
+ @builtins.property
13734
+ @jsii.member(jsii_name="clusterRole")
13735
+ def cluster_role(self) -> typing.Optional[builtins.str]:
13736
+ '''The cluster role for the autoscaler to assume.'''
13737
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "clusterRole"))
13738
+
13739
+ @cluster_role.setter
13740
+ def cluster_role(self, value: typing.Optional[builtins.str]) -> None:
13741
+ if __debug__:
13742
+ type_hints = typing.get_type_hints(_typecheckingstub__760df6e329ef2dd80dff7b473b5b81ce43f64102d3d691fcbb90473cdbcc9456)
13743
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
13744
+ jsii.set(self, "clusterRole", value) # pyright: ignore[reportArgumentType]
13745
+
13655
13746
  @builtins.property
13656
13747
  @jsii.member(jsii_name="instanceGroups")
13657
13748
  def instance_groups(
@@ -13883,21 +13974,108 @@ class CfnCluster(
13883
13974
  k + "=" + repr(v) for k, v in self._values.items()
13884
13975
  )
13885
13976
 
13977
+ @jsii.data_type(
13978
+ jsii_type="aws-cdk-lib.aws_sagemaker.CfnCluster.ClusterAutoScalingConfigProperty",
13979
+ jsii_struct_bases=[],
13980
+ name_mapping={"mode": "mode", "auto_scaler_type": "autoScalerType"},
13981
+ )
13982
+ class ClusterAutoScalingConfigProperty:
13983
+ def __init__(
13984
+ self,
13985
+ *,
13986
+ mode: builtins.str,
13987
+ auto_scaler_type: typing.Optional[builtins.str] = None,
13988
+ ) -> None:
13989
+ '''Specifies the autoscaling configuration for a HyperPod cluster.
13990
+
13991
+ :param mode: Describes whether autoscaling is enabled or disabled for the cluster. Valid values are ``Enable`` and ``Disable`` .
13992
+ :param auto_scaler_type: The type of autoscaler to use. Currently supported value is ``Karpenter`` . Default: - "Karpenter"
13993
+
13994
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterautoscalingconfig.html
13995
+ :exampleMetadata: fixture=_generated
13996
+
13997
+ Example::
13998
+
13999
+ # The code below shows an example of how to instantiate this type.
14000
+ # The values are placeholders you should change.
14001
+ from aws_cdk import aws_sagemaker as sagemaker
14002
+
14003
+ cluster_auto_scaling_config_property = sagemaker.CfnCluster.ClusterAutoScalingConfigProperty(
14004
+ mode="mode",
14005
+
14006
+ # the properties below are optional
14007
+ auto_scaler_type="autoScalerType"
14008
+ )
14009
+ '''
14010
+ if __debug__:
14011
+ type_hints = typing.get_type_hints(_typecheckingstub__ae932894a770df5cce53186dfdfa1f99ae9aedbf1a8f0d35bc6a0d5b6b5f9b49)
14012
+ check_type(argname="argument mode", value=mode, expected_type=type_hints["mode"])
14013
+ check_type(argname="argument auto_scaler_type", value=auto_scaler_type, expected_type=type_hints["auto_scaler_type"])
14014
+ self._values: typing.Dict[builtins.str, typing.Any] = {
14015
+ "mode": mode,
14016
+ }
14017
+ if auto_scaler_type is not None:
14018
+ self._values["auto_scaler_type"] = auto_scaler_type
14019
+
14020
+ @builtins.property
14021
+ def mode(self) -> builtins.str:
14022
+ '''Describes whether autoscaling is enabled or disabled for the cluster.
14023
+
14024
+ Valid values are ``Enable`` and ``Disable`` .
14025
+
14026
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterautoscalingconfig.html#cfn-sagemaker-cluster-clusterautoscalingconfig-mode
14027
+ '''
14028
+ result = self._values.get("mode")
14029
+ assert result is not None, "Required property 'mode' is missing"
14030
+ return typing.cast(builtins.str, result)
14031
+
14032
+ @builtins.property
14033
+ def auto_scaler_type(self) -> typing.Optional[builtins.str]:
14034
+ '''The type of autoscaler to use.
14035
+
14036
+ Currently supported value is ``Karpenter`` .
14037
+
14038
+ :default: - "Karpenter"
14039
+
14040
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterautoscalingconfig.html#cfn-sagemaker-cluster-clusterautoscalingconfig-autoscalertype
14041
+ '''
14042
+ result = self._values.get("auto_scaler_type")
14043
+ return typing.cast(typing.Optional[builtins.str], result)
14044
+
14045
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
14046
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
14047
+
14048
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
14049
+ return not (rhs == self)
14050
+
14051
+ def __repr__(self) -> str:
14052
+ return "ClusterAutoScalingConfigProperty(%s)" % ", ".join(
14053
+ k + "=" + repr(v) for k, v in self._values.items()
14054
+ )
14055
+
13886
14056
  @jsii.data_type(
13887
14057
  jsii_type="aws-cdk-lib.aws_sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty",
13888
14058
  jsii_struct_bases=[],
13889
- name_mapping={"volume_size_in_gb": "volumeSizeInGb"},
14059
+ name_mapping={
14060
+ "root_volume": "rootVolume",
14061
+ "volume_kms_key_id": "volumeKmsKeyId",
14062
+ "volume_size_in_gb": "volumeSizeInGb",
14063
+ },
13890
14064
  )
13891
14065
  class ClusterEbsVolumeConfigProperty:
13892
14066
  def __init__(
13893
14067
  self,
13894
14068
  *,
14069
+ root_volume: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
14070
+ volume_kms_key_id: typing.Optional[builtins.str] = None,
13895
14071
  volume_size_in_gb: typing.Optional[jsii.Number] = None,
13896
14072
  ) -> None:
13897
14073
  '''Defines the configuration for attaching an additional Amazon Elastic Block Store (EBS) volume to each instance of the SageMaker HyperPod cluster instance group.
13898
14074
 
13899
14075
  To learn more, see `SageMaker HyperPod release notes: June 20, 2024 <https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-release-notes.html#sagemaker-hyperpod-release-notes-20240620>`_ .
13900
14076
 
14077
+ :param root_volume: Specifies whether the configuration is for the cluster's root or secondary Amazon EBS volume. You can specify two ``ClusterEbsVolumeConfig`` fields to configure both the root and secondary volumes. Set the value to ``True`` if you'd like to provide your own customer managed AWS KMS key to encrypt the root volume. When ``True`` : - The configuration is applied to the root volume. - You can't specify the ``VolumeSizeInGB`` field. The size of the root volume is determined for you. - You must specify a KMS key ID for ``VolumeKmsKeyId`` to encrypt the root volume with your own KMS key instead of an AWS owned KMS key. Otherwise, by default, the value is ``False`` , and the following applies: - The configuration is applied to the secondary volume, while the root volume is encrypted with an AWS owned key. - You must specify the ``VolumeSizeInGB`` field. - You can optionally specify the ``VolumeKmsKeyId`` to encrypt the secondary volume with your own KMS key instead of an AWS owned KMS key.
14078
+ :param volume_kms_key_id: The ID of a KMS key to encrypt the Amazon EBS volume.
13901
14079
  :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`` .
13902
14080
 
13903
14081
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterebsvolumeconfig.html
@@ -13910,16 +14088,56 @@ class CfnCluster(
13910
14088
  from aws_cdk import aws_sagemaker as sagemaker
13911
14089
 
13912
14090
  cluster_ebs_volume_config_property = sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty(
14091
+ root_volume=False,
14092
+ volume_kms_key_id="volumeKmsKeyId",
13913
14093
  volume_size_in_gb=123
13914
14094
  )
13915
14095
  '''
13916
14096
  if __debug__:
13917
14097
  type_hints = typing.get_type_hints(_typecheckingstub__9c3cafd59fbc880606685f87e0e67d5a5ce5428cfebf3db8838122cd54c4a361)
14098
+ check_type(argname="argument root_volume", value=root_volume, expected_type=type_hints["root_volume"])
14099
+ check_type(argname="argument volume_kms_key_id", value=volume_kms_key_id, expected_type=type_hints["volume_kms_key_id"])
13918
14100
  check_type(argname="argument volume_size_in_gb", value=volume_size_in_gb, expected_type=type_hints["volume_size_in_gb"])
13919
14101
  self._values: typing.Dict[builtins.str, typing.Any] = {}
14102
+ if root_volume is not None:
14103
+ self._values["root_volume"] = root_volume
14104
+ if volume_kms_key_id is not None:
14105
+ self._values["volume_kms_key_id"] = volume_kms_key_id
13920
14106
  if volume_size_in_gb is not None:
13921
14107
  self._values["volume_size_in_gb"] = volume_size_in_gb
13922
14108
 
14109
+ @builtins.property
14110
+ def root_volume(
14111
+ self,
14112
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
14113
+ '''Specifies whether the configuration is for the cluster's root or secondary Amazon EBS volume.
14114
+
14115
+ You can specify two ``ClusterEbsVolumeConfig`` fields to configure both the root and secondary volumes. Set the value to ``True`` if you'd like to provide your own customer managed AWS KMS key to encrypt the root volume. When ``True`` :
14116
+
14117
+ - The configuration is applied to the root volume.
14118
+ - You can't specify the ``VolumeSizeInGB`` field. The size of the root volume is determined for you.
14119
+ - You must specify a KMS key ID for ``VolumeKmsKeyId`` to encrypt the root volume with your own KMS key instead of an AWS owned KMS key.
14120
+
14121
+ Otherwise, by default, the value is ``False`` , and the following applies:
14122
+
14123
+ - The configuration is applied to the secondary volume, while the root volume is encrypted with an AWS owned key.
14124
+ - You must specify the ``VolumeSizeInGB`` field.
14125
+ - You can optionally specify the ``VolumeKmsKeyId`` to encrypt the secondary volume with your own KMS key instead of an AWS owned KMS key.
14126
+
14127
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterebsvolumeconfig.html#cfn-sagemaker-cluster-clusterebsvolumeconfig-rootvolume
14128
+ '''
14129
+ result = self._values.get("root_volume")
14130
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
14131
+
14132
+ @builtins.property
14133
+ def volume_kms_key_id(self) -> typing.Optional[builtins.str]:
14134
+ '''The ID of a KMS key to encrypt the Amazon EBS volume.
14135
+
14136
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-cluster-clusterebsvolumeconfig.html#cfn-sagemaker-cluster-clusterebsvolumeconfig-volumekmskeyid
14137
+ '''
14138
+ result = self._values.get("volume_kms_key_id")
14139
+ return typing.cast(typing.Optional[builtins.str], result)
14140
+
13923
14141
  @builtins.property
13924
14142
  def volume_size_in_gb(self) -> typing.Optional[jsii.Number]:
13925
14143
  '''The size in gigabytes (GB) of the additional EBS volume to be attached to the instances in the SageMaker HyperPod cluster instance group.
@@ -14019,6 +14237,8 @@ class CfnCluster(
14019
14237
  image_id="imageId",
14020
14238
  instance_storage_configs=[sagemaker.CfnCluster.ClusterInstanceStorageConfigProperty(
14021
14239
  ebs_volume_config=sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty(
14240
+ root_volume=False,
14241
+ volume_kms_key_id="volumeKmsKeyId",
14022
14242
  volume_size_in_gb=123
14023
14243
  )
14024
14244
  )],
@@ -14268,6 +14488,8 @@ class CfnCluster(
14268
14488
 
14269
14489
  cluster_instance_storage_config_property = sagemaker.CfnCluster.ClusterInstanceStorageConfigProperty(
14270
14490
  ebs_volume_config=sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty(
14491
+ root_volume=False,
14492
+ volume_kms_key_id="volumeKmsKeyId",
14271
14493
  volume_size_in_gb=123
14272
14494
  )
14273
14495
  )
@@ -14506,6 +14728,8 @@ class CfnCluster(
14506
14728
  current_count=123,
14507
14729
  instance_storage_configs=[sagemaker.CfnCluster.ClusterInstanceStorageConfigProperty(
14508
14730
  ebs_volume_config=sagemaker.CfnCluster.ClusterEbsVolumeConfigProperty(
14731
+ root_volume=False,
14732
+ volume_kms_key_id="volumeKmsKeyId",
14509
14733
  volume_size_in_gb=123
14510
14734
  )
14511
14735
  )],
@@ -58475,7 +58699,9 @@ def _typecheckingstub__2f03f5ccb1b2c4633c9ef3bee30e7429d047ef909520efe2cbcf88d12
58475
58699
 
58476
58700
  def _typecheckingstub__c8126a53dc1741a2edde75d8d4eca79c53a2294746ea237dfba0097a758522ce(
58477
58701
  *,
58702
+ auto_scaling: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ClusterAutoScalingConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
58478
58703
  cluster_name: typing.Optional[builtins.str] = None,
58704
+ cluster_role: typing.Optional[builtins.str] = None,
58479
58705
  instance_groups: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ClusterInstanceGroupProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
58480
58706
  node_provisioning_mode: typing.Optional[builtins.str] = None,
58481
58707
  node_recovery: typing.Optional[builtins.str] = None,
@@ -59381,7 +59607,9 @@ def _typecheckingstub__b1441bbec1bb60460bda62b43765e140885fbb36e13b090ded31c919b
59381
59607
  scope: _constructs_77d1e7e8.Construct,
59382
59608
  id: builtins.str,
59383
59609
  *,
59610
+ auto_scaling: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ClusterAutoScalingConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
59384
59611
  cluster_name: typing.Optional[builtins.str] = None,
59612
+ cluster_role: typing.Optional[builtins.str] = None,
59385
59613
  instance_groups: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ClusterInstanceGroupProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
59386
59614
  node_provisioning_mode: typing.Optional[builtins.str] = None,
59387
59615
  node_recovery: typing.Optional[builtins.str] = None,
@@ -59405,12 +59633,24 @@ def _typecheckingstub__23ff930ab861d82c5316349d3cb92e229dc76252f7fe321a81296dd80
59405
59633
  """Type checking stubs"""
59406
59634
  pass
59407
59635
 
59636
+ def _typecheckingstub__03d7da9ac656d74f0fd594904f3b0f175e295650a74d5fee51bc8b4e3d92fe9d(
59637
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnCluster.ClusterAutoScalingConfigProperty]],
59638
+ ) -> None:
59639
+ """Type checking stubs"""
59640
+ pass
59641
+
59408
59642
  def _typecheckingstub__8c72731c4fb9d1b248db78e05e403c022229ea39aa9884e7da88a1c9dd345bfb(
59409
59643
  value: typing.Optional[builtins.str],
59410
59644
  ) -> None:
59411
59645
  """Type checking stubs"""
59412
59646
  pass
59413
59647
 
59648
+ def _typecheckingstub__760df6e329ef2dd80dff7b473b5b81ce43f64102d3d691fcbb90473cdbcc9456(
59649
+ value: typing.Optional[builtins.str],
59650
+ ) -> None:
59651
+ """Type checking stubs"""
59652
+ pass
59653
+
59414
59654
  def _typecheckingstub__4e78b567f109d38ee1f8221168fe230f3c378e24d69dab4b08d88a01e417dae5(
59415
59655
  value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnCluster.ClusterInstanceGroupProperty]]]],
59416
59656
  ) -> None:
@@ -59468,8 +59708,18 @@ def _typecheckingstub__037781baa9561e3f7cbaf9bb153526c9205251c5775d32248ba6db579
59468
59708
  """Type checking stubs"""
59469
59709
  pass
59470
59710
 
59711
+ def _typecheckingstub__ae932894a770df5cce53186dfdfa1f99ae9aedbf1a8f0d35bc6a0d5b6b5f9b49(
59712
+ *,
59713
+ mode: builtins.str,
59714
+ auto_scaler_type: typing.Optional[builtins.str] = None,
59715
+ ) -> None:
59716
+ """Type checking stubs"""
59717
+ pass
59718
+
59471
59719
  def _typecheckingstub__9c3cafd59fbc880606685f87e0e67d5a5ce5428cfebf3db8838122cd54c4a361(
59472
59720
  *,
59721
+ root_volume: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
59722
+ volume_kms_key_id: typing.Optional[builtins.str] = None,
59473
59723
  volume_size_in_gb: typing.Optional[jsii.Number] = None,
59474
59724
  ) -> None:
59475
59725
  """Type checking stubs"""