Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions sample/sagemaker/2017-07-24/service-2.json
Original file line number Diff line number Diff line change
Expand Up @@ -9311,6 +9311,10 @@
"SlurmConfig":{
"shape":"ClusterSlurmConfigDetails",
"documentation":"<p>The Slurm configuration for the instance group.</p>"
},
"NetworkInterface":{
"shape":"ClusterNetworkInterfaceDetails",
"documentation":"<p>The network interface configuration for the instance group.</p>"
}
},
"documentation":"<p>Details of an instance group in a SageMaker HyperPod cluster.</p>"
Expand Down Expand Up @@ -9400,6 +9404,10 @@
"CapacityRequirements":{
"shape":"ClusterCapacityRequirements",
"documentation":"<p>Specifies the capacity requirements for the instance group.</p>"
},
"NetworkInterface":{
"shape":"ClusterNetworkInterface",
"documentation":"<p>The network interface configuration for the instance group.</p>"
}
},
"documentation":"<p>The specifications of an instance group that you need to define.</p>"
Expand Down Expand Up @@ -9671,6 +9679,13 @@
"max":20,
"min":1
},
"ClusterInterfaceType":{
"type":"string",
"enum":[
"efa",
"efa-only"
]
},
"ClusterKubernetesConfig":{
"type":"structure",
"members":{
Expand Down Expand Up @@ -9806,6 +9821,10 @@
"OnCreate":{
"shape":"ClusterLifeCycleConfigFileName",
"documentation":"<p>The file name of the entrypoint script of lifecycle scripts under <code>SourceS3Uri</code>. This entrypoint script runs during cluster creation.</p>"
},
"OnInitComplete":{
"shape":"ClusterLifeCycleConfigFileName",
"documentation":"<p>The file name of the entrypoint script of lifecycle scripts under <code>SourceS3Uri</code>. This script runs on the node after the AMI-based initialization is complete.</p>"
}
},
"documentation":"<p>The lifecycle configuration for a SageMaker HyperPod cluster.</p>"
Expand Down Expand Up @@ -9852,6 +9871,26 @@
"min":0,
"pattern":"(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:cluster/[a-z0-9]{12})|([a-zA-Z0-9](-*[a-zA-Z0-9]){0,62})"
},
"ClusterNetworkInterface":{
"type":"structure",
"members":{
"InterfaceType":{
"shape":"ClusterInterfaceType",
"documentation":"<p>The type of network interface for the instance group. Valid values:</p> <ul> <li> <p> <code>efa</code> – An EFA with ENA interface, which provides both the EFA device for low-latency, high-throughput communication and the ENA device for IP networking.</p> </li> <li> <p> <code>efa-only</code> – An EFA-only interface, which provides only the EFA device capabilities without the ENA device for traditional IP networking.</p> </li> </ul> <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html\">Elastic Fabric Adapter</a>.</p>"
}
},
"documentation":"<p>The network interface configuration for a Amazon SageMaker HyperPod cluster instance group.</p>"
},
"ClusterNetworkInterfaceDetails":{
"type":"structure",
"members":{
"InterfaceType":{
"shape":"ClusterInterfaceType",
"documentation":"<p>The type of network interface for the instance group. Valid values are <code>efa</code> and <code>efa-only</code>.</p>"
}
},
"documentation":"<p>The network interface configuration details for a Amazon SageMaker HyperPod cluster instance group.</p>"
},
"ClusterNodeDetails":{
"type":"structure",
"members":{
Expand Down Expand Up @@ -9934,6 +9973,10 @@
"CapacityType":{
"shape":"ClusterCapacityType",
"documentation":"<p>The capacity type of the node. Valid values are <code>OnDemand</code> and <code>Spot</code>. When set to <code>OnDemand</code>, the node is launched as an On-Demand instance. When set to <code>Spot</code>, the node is launched as a Spot instance. </p>"
},
"NetworkInterface":{
"shape":"ClusterNetworkInterfaceDetails",
"documentation":"<p>The network interface configuration for the cluster node.</p>"
}
},
"documentation":"<p>Details of an instance (also called a <i>node</i> interchangeably) in a SageMaker HyperPod cluster.</p>"
Expand Down Expand Up @@ -21813,6 +21856,7 @@
},
"DomainId":{
"type":"string",
"documentation":"<p>Types duplicated from IronmanApiServiceModel for federation. These types are defined in other service directories and are not available via IronmanApiServiceCommonModel.</p>",
"max":63,
"min":0,
"pattern":"d-(-*[a-z0-9]){1,61}"
Expand Down
20 changes: 20 additions & 0 deletions src/sagemaker_core/main/code_injection/shape_dag.py
Original file line number Diff line number Diff line change
Expand Up @@ -1798,6 +1798,11 @@
"type": "structure",
},
{"name": "SlurmConfig", "shape": "ClusterSlurmConfigDetails", "type": "structure"},
{
"name": "NetworkInterface",
"shape": "ClusterNetworkInterfaceDetails",
"type": "structure",
},
],
"type": "structure",
},
Expand Down Expand Up @@ -1841,6 +1846,7 @@
"shape": "ClusterCapacityRequirements",
"type": "structure",
},
{"name": "NetworkInterface", "shape": "ClusterNetworkInterface", "type": "structure"},
],
"type": "structure",
},
Expand Down Expand Up @@ -1959,6 +1965,7 @@
"members": [
{"name": "SourceS3Uri", "shape": "S3Uri", "type": "string"},
{"name": "OnCreate", "shape": "ClusterLifeCycleConfigFileName", "type": "string"},
{"name": "OnInitComplete", "shape": "ClusterLifeCycleConfigFileName", "type": "string"},
],
"type": "structure",
},
Expand All @@ -1970,6 +1977,14 @@
],
"type": "structure",
},
"ClusterNetworkInterface": {
"members": [{"name": "InterfaceType", "shape": "ClusterInterfaceType", "type": "string"}],
"type": "structure",
},
"ClusterNetworkInterfaceDetails": {
"members": [{"name": "InterfaceType", "shape": "ClusterInterfaceType", "type": "string"}],
"type": "structure",
},
"ClusterNodeDetails": {
"members": [
{"name": "InstanceGroupName", "shape": "ClusterInstanceGroupName", "type": "string"},
Expand Down Expand Up @@ -2004,6 +2019,11 @@
"type": "structure",
},
{"name": "CapacityType", "shape": "ClusterCapacityType", "type": "string"},
{
"name": "NetworkInterface",
"shape": "ClusterNetworkInterfaceDetails",
"type": "structure",
},
],
"type": "structure",
},
Expand Down
6 changes: 5 additions & 1 deletion src/sagemaker_core/main/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -18209,7 +18209,11 @@ def get_name(self) -> str:
def populate_inputs_decorator(create_func):
@functools.wraps(create_func)
def wrapper(*args, **kwargs):
config_schema_for_resource = {"role_arn": {"type": "string"}}
config_schema_for_resource = {
"role_arn": {"type": "string"},
"s3_bucket_owner_account_id": {"type": "string"},
"s3_bucket_owner_verification": {"type": "boolean"},
}
return create_func(
*args,
**Base.get_updated_kwargs_with_configured_attributes(
Expand Down
34 changes: 34 additions & 0 deletions src/sagemaker_core/main/shapes.py
Original file line number Diff line number Diff line change
Expand Up @@ -3950,10 +3950,12 @@ class ClusterLifeCycleConfig(Base):
----------------------
source_s3_uri: An Amazon S3 bucket path where your lifecycle scripts are stored. Make sure that the S3 bucket path starts with s3://sagemaker-. The IAM role for SageMaker HyperPod has the managed AmazonSageMakerClusterInstanceRolePolicy attached, which allows access to S3 buckets with the specific prefix sagemaker-.
on_create: The file name of the entrypoint script of lifecycle scripts under SourceS3Uri. This entrypoint script runs during cluster creation.
on_init_complete: The file name of the entrypoint script of lifecycle scripts under SourceS3Uri. This script runs on the node after the AMI-based initialization is complete.
"""

source_s3_uri: Optional[str] = Unassigned()
on_create: Optional[str] = Unassigned()
on_init_complete: Optional[str] = Unassigned()


class ClusterInstanceStorageConfig(Base):
Expand Down Expand Up @@ -4071,6 +4073,19 @@ class ClusterSlurmConfigDetails(Base):
partition_names: Optional[List[str]] = Unassigned()


class ClusterNetworkInterfaceDetails(Base):
"""
ClusterNetworkInterfaceDetails
The network interface configuration details for a Amazon SageMaker HyperPod cluster instance group.

Attributes
----------------------
interface_type: The type of network interface for the instance group. Valid values are efa and efa-only.
"""

interface_type: Optional[str] = Unassigned()


class ClusterInstanceGroupDetails(Base):
"""
ClusterInstanceGroupDetails
Expand Down Expand Up @@ -4104,6 +4119,7 @@ class ClusterInstanceGroupDetails(Base):
software_update_status: Status of the last software udpate request. Status transitions follow these possible sequences: Pending -&gt; InProgress -&gt; Succeeded Pending -&gt; InProgress -&gt; RollbackInProgress -&gt; RollbackComplete Pending -&gt; InProgress -&gt; RollbackInProgress -&gt; Failed
active_software_update_config
slurm_config: The Slurm configuration for the instance group.
network_interface: The network interface configuration for the instance group.
"""

current_count: Optional[int] = Unassigned()
Expand Down Expand Up @@ -4132,6 +4148,7 @@ class ClusterInstanceGroupDetails(Base):
software_update_status: Optional[str] = Unassigned()
active_software_update_config: Optional[DeploymentConfiguration] = Unassigned()
slurm_config: Optional[ClusterSlurmConfigDetails] = Unassigned()
network_interface: Optional[ClusterNetworkInterfaceDetails] = Unassigned()


class ClusterInstanceRequirements(Base):
Expand Down Expand Up @@ -4177,6 +4194,19 @@ class ClusterSlurmConfig(Base):
partition_names: Optional[List[str]] = Unassigned()


class ClusterNetworkInterface(Base):
"""
ClusterNetworkInterface
The network interface configuration for a Amazon SageMaker HyperPod cluster instance group.

Attributes
----------------------
interface_type: The type of network interface for the instance group. Valid values: efa – An EFA with ENA interface, which provides both the EFA device for low-latency, high-throughput communication and the ENA device for IP networking. efa-only – An EFA-only interface, which provides only the EFA device capabilities without the ENA device for traditional IP networking. For more information, see Elastic Fabric Adapter.
"""

interface_type: Optional[str] = Unassigned()


class ClusterInstanceGroupSpecification(Base):
"""
ClusterInstanceGroupSpecification
Expand All @@ -4201,6 +4231,7 @@ class ClusterInstanceGroupSpecification(Base):
kubernetes_config: Specifies the Kubernetes configuration for the instance group. You describe what you want the labels and taints to look like, and the cluster works to reconcile the actual state with the declared state for nodes in this instance group.
slurm_config: Specifies the Slurm configuration for the instance group.
capacity_requirements: Specifies the capacity requirements for the instance group.
network_interface: The network interface configuration for the instance group.
"""

instance_count: int
Expand All @@ -4220,6 +4251,7 @@ class ClusterInstanceGroupSpecification(Base):
kubernetes_config: Optional[ClusterKubernetesConfig] = Unassigned()
slurm_config: Optional[ClusterSlurmConfig] = Unassigned()
capacity_requirements: Optional[ClusterCapacityRequirements] = Unassigned()
network_interface: Optional[ClusterNetworkInterface] = Unassigned()


class ClusterInstancePlacement(Base):
Expand Down Expand Up @@ -4313,6 +4345,7 @@ class ClusterNodeDetails(Base):
ultra_server_info: Contains information about the UltraServer.
kubernetes_config: The Kubernetes configuration applied to this node, showing both the current and desired state of labels and taints. The cluster works to reconcile the actual state with the declared state.
capacity_type: The capacity type of the node. Valid values are OnDemand and Spot. When set to OnDemand, the node is launched as an On-Demand instance. When set to Spot, the node is launched as a Spot instance.
network_interface: The network interface configuration for the cluster node.
"""

instance_group_name: Optional[str] = Unassigned()
Expand All @@ -4335,6 +4368,7 @@ class ClusterNodeDetails(Base):
ultra_server_info: Optional[UltraServerInfo] = Unassigned()
kubernetes_config: Optional[ClusterKubernetesConfigNodeDetails] = Unassigned()
capacity_type: Optional[str] = Unassigned()
network_interface: Optional[ClusterNetworkInterfaceDetails] = Unassigned()


class ClusterNodeSummary(Base):
Expand Down
Loading