diff --git a/sample/sagemaker/2017-07-24/service-2.json b/sample/sagemaker/2017-07-24/service-2.json index 73af775..cc75fd2 100644 --- a/sample/sagemaker/2017-07-24/service-2.json +++ b/sample/sagemaker/2017-07-24/service-2.json @@ -9311,6 +9311,10 @@ "SlurmConfig":{ "shape":"ClusterSlurmConfigDetails", "documentation":"

The Slurm configuration for the instance group.

" + }, + "NetworkInterface":{ + "shape":"ClusterNetworkInterfaceDetails", + "documentation":"

The network interface configuration for the instance group.

" } }, "documentation":"

Details of an instance group in a SageMaker HyperPod cluster.

" @@ -9400,6 +9404,10 @@ "CapacityRequirements":{ "shape":"ClusterCapacityRequirements", "documentation":"

Specifies the capacity requirements for the instance group.

" + }, + "NetworkInterface":{ + "shape":"ClusterNetworkInterface", + "documentation":"

The network interface configuration for the instance group.

" } }, "documentation":"

The specifications of an instance group that you need to define.

" @@ -9671,6 +9679,13 @@ "max":20, "min":1 }, + "ClusterInterfaceType":{ + "type":"string", + "enum":[ + "efa", + "efa-only" + ] + }, "ClusterKubernetesConfig":{ "type":"structure", "members":{ @@ -9806,6 +9821,10 @@ "OnCreate":{ "shape":"ClusterLifeCycleConfigFileName", "documentation":"

The file name of the entrypoint script of lifecycle scripts under SourceS3Uri. This entrypoint script runs during cluster creation.

" + }, + "OnInitComplete":{ + "shape":"ClusterLifeCycleConfigFileName", + "documentation":"

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.

" } }, "documentation":"

The lifecycle configuration for a SageMaker HyperPod cluster.

" @@ -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":"

The type of network interface for the instance group. Valid values:

For more information, see Elastic Fabric Adapter.

" + } + }, + "documentation":"

The network interface configuration for a Amazon SageMaker HyperPod cluster instance group.

" + }, + "ClusterNetworkInterfaceDetails":{ + "type":"structure", + "members":{ + "InterfaceType":{ + "shape":"ClusterInterfaceType", + "documentation":"

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

" + } + }, + "documentation":"

The network interface configuration details for a Amazon SageMaker HyperPod cluster instance group.

" + }, "ClusterNodeDetails":{ "type":"structure", "members":{ @@ -9934,6 +9973,10 @@ "CapacityType":{ "shape":"ClusterCapacityType", "documentation":"

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.

" + }, + "NetworkInterface":{ + "shape":"ClusterNetworkInterfaceDetails", + "documentation":"

The network interface configuration for the cluster node.

" } }, "documentation":"

Details of an instance (also called a node interchangeably) in a SageMaker HyperPod cluster.

" @@ -21813,6 +21856,7 @@ }, "DomainId":{ "type":"string", + "documentation":"

Types duplicated from IronmanApiServiceModel for federation. These types are defined in other service directories and are not available via IronmanApiServiceCommonModel.

", "max":63, "min":0, "pattern":"d-(-*[a-z0-9]){1,61}" diff --git a/src/sagemaker_core/main/code_injection/shape_dag.py b/src/sagemaker_core/main/code_injection/shape_dag.py index c57e643..2dcb233 100644 --- a/src/sagemaker_core/main/code_injection/shape_dag.py +++ b/src/sagemaker_core/main/code_injection/shape_dag.py @@ -1798,6 +1798,11 @@ "type": "structure", }, {"name": "SlurmConfig", "shape": "ClusterSlurmConfigDetails", "type": "structure"}, + { + "name": "NetworkInterface", + "shape": "ClusterNetworkInterfaceDetails", + "type": "structure", + }, ], "type": "structure", }, @@ -1841,6 +1846,7 @@ "shape": "ClusterCapacityRequirements", "type": "structure", }, + {"name": "NetworkInterface", "shape": "ClusterNetworkInterface", "type": "structure"}, ], "type": "structure", }, @@ -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", }, @@ -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"}, @@ -2004,6 +2019,11 @@ "type": "structure", }, {"name": "CapacityType", "shape": "ClusterCapacityType", "type": "string"}, + { + "name": "NetworkInterface", + "shape": "ClusterNetworkInterfaceDetails", + "type": "structure", + }, ], "type": "structure", }, diff --git a/src/sagemaker_core/main/resources.py b/src/sagemaker_core/main/resources.py index 4315562..013bf07 100644 --- a/src/sagemaker_core/main/resources.py +++ b/src/sagemaker_core/main/resources.py @@ -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( diff --git a/src/sagemaker_core/main/shapes.py b/src/sagemaker_core/main/shapes.py index da1bef2..168be4b 100644 --- a/src/sagemaker_core/main/shapes.py +++ b/src/sagemaker_core/main/shapes.py @@ -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): @@ -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 @@ -4104,6 +4119,7 @@ class ClusterInstanceGroupDetails(Base): software_update_status: Status of the last software udpate request. Status transitions follow these possible sequences: Pending -> InProgress -> Succeeded Pending -> InProgress -> RollbackInProgress -> RollbackComplete Pending -> InProgress -> RollbackInProgress -> 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() @@ -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): @@ -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 @@ -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 @@ -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): @@ -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() @@ -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):