aws-sdk-sagemaker 1.317.0 → 1.319.0

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.
@@ -95,8 +95,8 @@ module Aws::SageMaker
95
95
  # class name or an instance of a plugin class.
96
96
  #
97
97
  # @option options [required, Aws::CredentialProvider] :credentials
98
- # Your AWS credentials used for authentication. This can be an instance of any one of the
99
- # following classes:
98
+ # Your AWS credentials used for authentication. This can be any class that includes and implements
99
+ # `Aws::CredentialProvider`, or instance of any one of the following classes:
100
100
  #
101
101
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
102
102
  # credentials.
@@ -124,8 +124,7 @@ module Aws::SageMaker
124
124
  # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
125
125
  # from the Cognito Identity service.
126
126
  #
127
- # When `:credentials` are not configured directly, the following
128
- # locations will be searched for credentials:
127
+ # When `:credentials` are not configured directly, the following locations will be searched for credentials:
129
128
  #
130
129
  # * `Aws.config[:credentials]`
131
130
  #
@@ -139,12 +138,10 @@ module Aws::SageMaker
139
138
  #
140
139
  # * `~/.aws/config`
141
140
  #
142
- # * EC2/ECS IMDS instance profile - When used by default, the timeouts
143
- # are very aggressive. Construct and pass an instance of
144
- # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
145
- # enable retries and extended timeouts. Instance profile credential
146
- # fetching can be disabled by setting `ENV['AWS_EC2_METADATA_DISABLED']`
147
- # to `true`.
141
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
142
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
143
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
144
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
148
145
  #
149
146
  # @option options [required, String] :region
150
147
  # The AWS region to connect to. The configured `:region` is
@@ -384,8 +381,8 @@ module Aws::SageMaker
384
381
  # `Aws::Telemetry::OTelProvider` for telemetry provider.
385
382
  #
386
383
  # @option options [Aws::TokenProvider] :token_provider
387
- # Your Bearer token used for authentication. This can be an instance of any one of the
388
- # following classes:
384
+ # Your Bearer token used for authentication. This can be any class that includes and implements
385
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
389
386
  #
390
387
  # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
391
388
  # tokens.
@@ -670,6 +667,131 @@ module Aws::SageMaker
670
667
  req.send_request(options)
671
668
  end
672
669
 
670
+ # Attaches your Amazon Elastic Block Store (Amazon EBS) volume to a node
671
+ # in your EKS-orchestrated HyperPod cluster.
672
+ #
673
+ # This API works with the Amazon Elastic Block Store (Amazon EBS)
674
+ # Container Storage Interface (CSI) driver to manage the lifecycle of
675
+ # persistent storage in your HyperPod EKS clusters.
676
+ #
677
+ # @option params [required, String] :cluster_arn
678
+ # The Amazon Resource Name (ARN) of your SageMaker HyperPod cluster
679
+ # containing the target node. Your cluster must use EKS as the
680
+ # orchestration and be in the `InService` state.
681
+ #
682
+ # @option params [required, String] :node_id
683
+ # The unique identifier of the cluster node to which you want to attach
684
+ # the volume. The node must belong to your specified HyperPod cluster
685
+ # and cannot be part of a Restricted Instance Group (RIG).
686
+ #
687
+ # @option params [required, String] :volume_id
688
+ # The unique identifier of your EBS volume to attach. The volume must be
689
+ # in the `available` state.
690
+ #
691
+ # @return [Types::AttachClusterNodeVolumeResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
692
+ #
693
+ # * {Types::AttachClusterNodeVolumeResponse#cluster_arn #cluster_arn} => String
694
+ # * {Types::AttachClusterNodeVolumeResponse#node_id #node_id} => String
695
+ # * {Types::AttachClusterNodeVolumeResponse#volume_id #volume_id} => String
696
+ # * {Types::AttachClusterNodeVolumeResponse#attach_time #attach_time} => Time
697
+ # * {Types::AttachClusterNodeVolumeResponse#status #status} => String
698
+ # * {Types::AttachClusterNodeVolumeResponse#device_name #device_name} => String
699
+ #
700
+ # @example Request syntax with placeholder values
701
+ #
702
+ # resp = client.attach_cluster_node_volume({
703
+ # cluster_arn: "ClusterArn", # required
704
+ # node_id: "ClusterNodeId", # required
705
+ # volume_id: "VolumeId", # required
706
+ # })
707
+ #
708
+ # @example Response structure
709
+ #
710
+ # resp.cluster_arn #=> String
711
+ # resp.node_id #=> String
712
+ # resp.volume_id #=> String
713
+ # resp.attach_time #=> Time
714
+ # resp.status #=> String, one of "attaching", "attached", "detaching", "detached", "busy"
715
+ # resp.device_name #=> String
716
+ #
717
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AttachClusterNodeVolume AWS API Documentation
718
+ #
719
+ # @overload attach_cluster_node_volume(params = {})
720
+ # @param [Hash] params ({})
721
+ def attach_cluster_node_volume(params = {}, options = {})
722
+ req = build_request(:attach_cluster_node_volume, params)
723
+ req.send_request(options)
724
+ end
725
+
726
+ # Adds nodes to a HyperPod cluster by incrementing the target count for
727
+ # one or more instance groups. This operation returns a unique
728
+ # `NodeLogicalId` for each node being added, which can be used to track
729
+ # the provisioning status of the node. This API provides a safer
730
+ # alternative to `UpdateCluster` for scaling operations by avoiding
731
+ # unintended configuration changes.
732
+ #
733
+ # <note markdown="1"> This API is only supported for clusters using `Continuous` as the
734
+ # `NodeProvisioningMode`.
735
+ #
736
+ # </note>
737
+ #
738
+ # @option params [required, String] :cluster_name
739
+ # The name of the HyperPod cluster to which you want to add nodes.
740
+ #
741
+ # @option params [String] :client_token
742
+ # A unique, case-sensitive identifier that you provide to ensure the
743
+ # idempotency of the request. This token is valid for 8 hours. If you
744
+ # retry the request with the same client token within this timeframe and
745
+ # the same parameters, the API returns the same set of `NodeLogicalIds`
746
+ # with their latest status.
747
+ #
748
+ # **A suitable default value is auto-generated.** You should normally
749
+ # not need to pass this option.**
750
+ #
751
+ # @option params [required, Array<Types::AddClusterNodeSpecification>] :nodes_to_add
752
+ # A list of instance groups and the number of nodes to add to each. You
753
+ # can specify up to 5 instance groups in a single request, with a
754
+ # maximum of 50 nodes total across all instance groups.
755
+ #
756
+ # @return [Types::BatchAddClusterNodesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
757
+ #
758
+ # * {Types::BatchAddClusterNodesResponse#successful #successful} => Array&lt;Types::NodeAdditionResult&gt;
759
+ # * {Types::BatchAddClusterNodesResponse#failed #failed} => Array&lt;Types::BatchAddClusterNodesError&gt;
760
+ #
761
+ # @example Request syntax with placeholder values
762
+ #
763
+ # resp = client.batch_add_cluster_nodes({
764
+ # cluster_name: "ClusterNameOrArn", # required
765
+ # client_token: "BatchAddClusterNodesRequestClientTokenString",
766
+ # nodes_to_add: [ # required
767
+ # {
768
+ # instance_group_name: "ClusterInstanceGroupName", # required
769
+ # increment_target_count_by: 1, # required
770
+ # },
771
+ # ],
772
+ # })
773
+ #
774
+ # @example Response structure
775
+ #
776
+ # resp.successful #=> Array
777
+ # resp.successful[0].node_logical_id #=> String
778
+ # resp.successful[0].instance_group_name #=> String
779
+ # resp.successful[0].status #=> String, one of "Running", "Failure", "Pending", "ShuttingDown", "SystemUpdating", "DeepHealthCheckInProgress", "NotFound"
780
+ # resp.failed #=> Array
781
+ # resp.failed[0].instance_group_name #=> String
782
+ # resp.failed[0].error_code #=> String, one of "InstanceGroupNotFound", "InvalidInstanceGroupStatus"
783
+ # resp.failed[0].failed_count #=> Integer
784
+ # resp.failed[0].message #=> String
785
+ #
786
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchAddClusterNodes AWS API Documentation
787
+ #
788
+ # @overload batch_add_cluster_nodes(params = {})
789
+ # @param [Hash] params ({})
790
+ def batch_add_cluster_nodes(params = {}, options = {})
791
+ req = build_request(:batch_add_cluster_nodes, params)
792
+ req.send_request(options)
793
+ end
794
+
673
795
  # Deletes specific nodes within a SageMaker HyperPod cluster.
674
796
  # `BatchDeleteClusterNodes` accepts a cluster name and a list of node
675
797
  # IDs.
@@ -711,16 +833,25 @@ module Aws::SageMaker
711
833
  #
712
834
  # [1]: http://aws.amazon.com/contact-us/
713
835
  #
836
+ # @option params [Array<String>] :node_logical_ids
837
+ # A list of `NodeLogicalIds` identifying the nodes to be deleted. You
838
+ # can specify up to 50 `NodeLogicalIds`. You must specify either
839
+ # `NodeLogicalIds`, `InstanceIds`, or both, with a combined maximum of
840
+ # 50 identifiers.
841
+ #
714
842
  # @return [Types::BatchDeleteClusterNodesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
715
843
  #
716
844
  # * {Types::BatchDeleteClusterNodesResponse#failed #failed} => Array&lt;Types::BatchDeleteClusterNodesError&gt;
717
845
  # * {Types::BatchDeleteClusterNodesResponse#successful #successful} => Array&lt;String&gt;
846
+ # * {Types::BatchDeleteClusterNodesResponse#failed_node_logical_ids #failed_node_logical_ids} => Array&lt;Types::BatchDeleteClusterNodeLogicalIdsError&gt;
847
+ # * {Types::BatchDeleteClusterNodesResponse#successful_node_logical_ids #successful_node_logical_ids} => Array&lt;String&gt;
718
848
  #
719
849
  # @example Request syntax with placeholder values
720
850
  #
721
851
  # resp = client.batch_delete_cluster_nodes({
722
852
  # cluster_name: "ClusterNameOrArn", # required
723
853
  # node_ids: ["ClusterNodeId"],
854
+ # node_logical_ids: ["ClusterNodeLogicalId"],
724
855
  # })
725
856
  #
726
857
  # @example Response structure
@@ -731,6 +862,12 @@ module Aws::SageMaker
731
862
  # resp.failed[0].node_id #=> String
732
863
  # resp.successful #=> Array
733
864
  # resp.successful[0] #=> String
865
+ # resp.failed_node_logical_ids #=> Array
866
+ # resp.failed_node_logical_ids[0].code #=> String, one of "NodeIdNotFound", "InvalidNodeStatus", "NodeIdInUse"
867
+ # resp.failed_node_logical_ids[0].message #=> String
868
+ # resp.failed_node_logical_ids[0].node_logical_id #=> String
869
+ # resp.successful_node_logical_ids #=> Array
870
+ # resp.successful_node_logical_ids[0] #=> String
734
871
  #
735
872
  # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchDeleteClusterNodes AWS API Documentation
736
873
  #
@@ -2053,6 +2190,20 @@ module Aws::SageMaker
2053
2190
  # administrators will need to manually manage any faulty cluster
2054
2191
  # instances.
2055
2192
  #
2193
+ # @option params [String] :node_provisioning_mode
2194
+ # The mode for provisioning nodes in the cluster. You can specify the
2195
+ # following modes:
2196
+ #
2197
+ # * **Continuous**: Scaling behavior that enables 1) concurrent
2198
+ # operation execution within instance groups, 2) continuous retry
2199
+ # mechanisms for failed operations, 3) enhanced customer visibility
2200
+ # into cluster events through detailed event streams, 4) partial
2201
+ # provisioning capabilities. Your clusters and instance groups remain
2202
+ # `InService` while scaling. This mode is only supported for EKS
2203
+ # orchestrated clusters.
2204
+ #
2205
+ # ^
2206
+ #
2056
2207
  # @return [Types::CreateClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2057
2208
  #
2058
2209
  # * {Types::CreateClusterResponse#cluster_arn #cluster_arn} => String
@@ -2106,6 +2257,7 @@ module Aws::SageMaker
2106
2257
  # ],
2107
2258
  # },
2108
2259
  # },
2260
+ # image_id: "ImageId",
2109
2261
  # },
2110
2262
  # ],
2111
2263
  # restricted_instance_groups: [
@@ -2173,6 +2325,7 @@ module Aws::SageMaker
2173
2325
  # },
2174
2326
  # },
2175
2327
  # node_recovery: "Automatic", # accepts Automatic, None
2328
+ # node_provisioning_mode: "Continuous", # accepts Continuous
2176
2329
  # })
2177
2330
  #
2178
2331
  # @example Response structure
@@ -13094,6 +13247,7 @@ module Aws::SageMaker
13094
13247
  # * {Types::DescribeClusterResponse#vpc_config #vpc_config} => Types::VpcConfig
13095
13248
  # * {Types::DescribeClusterResponse#orchestrator #orchestrator} => Types::ClusterOrchestrator
13096
13249
  # * {Types::DescribeClusterResponse#node_recovery #node_recovery} => String
13250
+ # * {Types::DescribeClusterResponse#node_provisioning_mode #node_provisioning_mode} => String
13097
13251
  #
13098
13252
  # @example Request syntax with placeholder values
13099
13253
  #
@@ -13136,6 +13290,8 @@ module Aws::SageMaker
13136
13290
  # resp.instance_groups[0].scheduled_update_config.deployment_config.wait_interval_in_seconds #=> Integer
13137
13291
  # resp.instance_groups[0].scheduled_update_config.deployment_config.auto_rollback_configuration #=> Array
13138
13292
  # resp.instance_groups[0].scheduled_update_config.deployment_config.auto_rollback_configuration[0].alarm_name #=> String
13293
+ # resp.instance_groups[0].current_image_id #=> String
13294
+ # resp.instance_groups[0].desired_image_id #=> String
13139
13295
  # resp.restricted_instance_groups #=> Array
13140
13296
  # resp.restricted_instance_groups[0].current_count #=> Integer
13141
13297
  # resp.restricted_instance_groups[0].target_count #=> Integer
@@ -13171,6 +13327,7 @@ module Aws::SageMaker
13171
13327
  # resp.vpc_config.subnets[0] #=> String
13172
13328
  # resp.orchestrator.eks.cluster_arn #=> String
13173
13329
  # resp.node_recovery #=> String, one of "Automatic", "None"
13330
+ # resp.node_provisioning_mode #=> String, one of "Continuous"
13174
13331
  #
13175
13332
  # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeCluster AWS API Documentation
13176
13333
  #
@@ -13181,6 +13338,72 @@ module Aws::SageMaker
13181
13338
  req.send_request(options)
13182
13339
  end
13183
13340
 
13341
+ # Retrieves detailed information about a specific event for a given
13342
+ # HyperPod cluster. This functionality is only supported when the
13343
+ # `NodeProvisioningMode` is set to `Continuous`.
13344
+ #
13345
+ # @option params [required, String] :event_id
13346
+ # The unique identifier (UUID) of the event to describe. This ID can be
13347
+ # obtained from the `ListClusterEvents` operation.
13348
+ #
13349
+ # @option params [required, String] :cluster_name
13350
+ # The name or Amazon Resource Name (ARN) of the HyperPod cluster
13351
+ # associated with the event.
13352
+ #
13353
+ # @return [Types::DescribeClusterEventResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
13354
+ #
13355
+ # * {Types::DescribeClusterEventResponse#event_details #event_details} => Types::ClusterEventDetail
13356
+ #
13357
+ # @example Request syntax with placeholder values
13358
+ #
13359
+ # resp = client.describe_cluster_event({
13360
+ # event_id: "EventId", # required
13361
+ # cluster_name: "ClusterNameOrArn", # required
13362
+ # })
13363
+ #
13364
+ # @example Response structure
13365
+ #
13366
+ # resp.event_details.event_id #=> String
13367
+ # resp.event_details.cluster_arn #=> String
13368
+ # resp.event_details.cluster_name #=> String
13369
+ # resp.event_details.instance_group_name #=> String
13370
+ # resp.event_details.instance_id #=> String
13371
+ # resp.event_details.resource_type #=> String, one of "Cluster", "InstanceGroup", "Instance"
13372
+ # resp.event_details.event_time #=> Time
13373
+ # resp.event_details.event_details.event_metadata.cluster.failure_message #=> String
13374
+ # resp.event_details.event_details.event_metadata.cluster.eks_role_access_entries #=> Array
13375
+ # resp.event_details.event_details.event_metadata.cluster.eks_role_access_entries[0] #=> String
13376
+ # resp.event_details.event_details.event_metadata.cluster.slr_access_entry #=> String
13377
+ # resp.event_details.event_details.event_metadata.instance_group.failure_message #=> String
13378
+ # resp.event_details.event_details.event_metadata.instance_group.availability_zone_id #=> String
13379
+ # resp.event_details.event_details.event_metadata.instance_group.capacity_reservation.arn #=> String
13380
+ # resp.event_details.event_details.event_metadata.instance_group.capacity_reservation.type #=> String, one of "ODCR", "CRG"
13381
+ # resp.event_details.event_details.event_metadata.instance_group.subnet_id #=> String
13382
+ # resp.event_details.event_details.event_metadata.instance_group.security_group_ids #=> Array
13383
+ # resp.event_details.event_details.event_metadata.instance_group.security_group_ids[0] #=> String
13384
+ # resp.event_details.event_details.event_metadata.instance_group.ami_override #=> String
13385
+ # resp.event_details.event_details.event_metadata.instance_group_scaling.instance_count #=> Integer
13386
+ # resp.event_details.event_details.event_metadata.instance_group_scaling.target_count #=> Integer
13387
+ # resp.event_details.event_details.event_metadata.instance_group_scaling.failure_message #=> String
13388
+ # resp.event_details.event_details.event_metadata.instance.customer_eni #=> String
13389
+ # resp.event_details.event_details.event_metadata.instance.additional_enis.efa_enis #=> Array
13390
+ # resp.event_details.event_details.event_metadata.instance.additional_enis.efa_enis[0] #=> String
13391
+ # resp.event_details.event_details.event_metadata.instance.capacity_reservation.arn #=> String
13392
+ # resp.event_details.event_details.event_metadata.instance.capacity_reservation.type #=> String, one of "ODCR", "CRG"
13393
+ # resp.event_details.event_details.event_metadata.instance.failure_message #=> String
13394
+ # resp.event_details.event_details.event_metadata.instance.lcs_execution_state #=> String
13395
+ # resp.event_details.event_details.event_metadata.instance.node_logical_id #=> String
13396
+ # resp.event_details.description #=> String
13397
+ #
13398
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeClusterEvent AWS API Documentation
13399
+ #
13400
+ # @overload describe_cluster_event(params = {})
13401
+ # @param [Hash] params ({})
13402
+ def describe_cluster_event(params = {}, options = {})
13403
+ req = build_request(:describe_cluster_event, params)
13404
+ req.send_request(options)
13405
+ end
13406
+
13184
13407
  # Retrieves information of a node (also called a *instance*
13185
13408
  # interchangeably) of a SageMaker HyperPod cluster.
13186
13409
  #
@@ -13191,6 +13414,12 @@ module Aws::SageMaker
13191
13414
  # @option params [String] :node_id
13192
13415
  # The ID of the SageMaker HyperPod cluster node.
13193
13416
  #
13417
+ # @option params [String] :node_logical_id
13418
+ # The logical identifier of the node to describe. You can specify either
13419
+ # `NodeLogicalId` or `InstanceId`, but not both. `NodeLogicalId` can be
13420
+ # used to describe nodes that are still being provisioned and don't yet
13421
+ # have an `InstanceId` assigned.
13422
+ #
13194
13423
  # @return [Types::DescribeClusterNodeResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
13195
13424
  #
13196
13425
  # * {Types::DescribeClusterNodeResponse#node_details #node_details} => Types::ClusterNodeDetails
@@ -13200,13 +13429,15 @@ module Aws::SageMaker
13200
13429
  # resp = client.describe_cluster_node({
13201
13430
  # cluster_name: "ClusterNameOrArn", # required
13202
13431
  # node_id: "ClusterNodeId",
13432
+ # node_logical_id: "ClusterNodeLogicalId",
13203
13433
  # })
13204
13434
  #
13205
13435
  # @example Response structure
13206
13436
  #
13207
13437
  # resp.node_details.instance_group_name #=> String
13208
13438
  # resp.node_details.instance_id #=> String
13209
- # resp.node_details.instance_status.status #=> String, one of "Running", "Failure", "Pending", "ShuttingDown", "SystemUpdating", "DeepHealthCheckInProgress"
13439
+ # resp.node_details.node_logical_id #=> String
13440
+ # resp.node_details.instance_status.status #=> String, one of "Running", "Failure", "Pending", "ShuttingDown", "SystemUpdating", "DeepHealthCheckInProgress", "NotFound"
13210
13441
  # resp.node_details.instance_status.message #=> String
13211
13442
  # resp.node_details.instance_type #=> String, one of "ml.p4d.24xlarge", "ml.p4de.24xlarge", "ml.p5.48xlarge", "ml.trn1.32xlarge", "ml.trn1n.32xlarge", "ml.g5.xlarge", "ml.g5.2xlarge", "ml.g5.4xlarge", "ml.g5.8xlarge", "ml.g5.12xlarge", "ml.g5.16xlarge", "ml.g5.24xlarge", "ml.g5.48xlarge", "ml.c5.large", "ml.c5.xlarge", "ml.c5.2xlarge", "ml.c5.4xlarge", "ml.c5.9xlarge", "ml.c5.12xlarge", "ml.c5.18xlarge", "ml.c5.24xlarge", "ml.c5n.large", "ml.c5n.2xlarge", "ml.c5n.4xlarge", "ml.c5n.9xlarge", "ml.c5n.18xlarge", "ml.m5.large", "ml.m5.xlarge", "ml.m5.2xlarge", "ml.m5.4xlarge", "ml.m5.8xlarge", "ml.m5.12xlarge", "ml.m5.16xlarge", "ml.m5.24xlarge", "ml.t3.medium", "ml.t3.large", "ml.t3.xlarge", "ml.t3.2xlarge", "ml.g6.xlarge", "ml.g6.2xlarge", "ml.g6.4xlarge", "ml.g6.8xlarge", "ml.g6.16xlarge", "ml.g6.12xlarge", "ml.g6.24xlarge", "ml.g6.48xlarge", "ml.gr6.4xlarge", "ml.gr6.8xlarge", "ml.g6e.xlarge", "ml.g6e.2xlarge", "ml.g6e.4xlarge", "ml.g6e.8xlarge", "ml.g6e.16xlarge", "ml.g6e.12xlarge", "ml.g6e.24xlarge", "ml.g6e.48xlarge", "ml.p5e.48xlarge", "ml.p5en.48xlarge", "ml.p6-b200.48xlarge", "ml.trn2.48xlarge", "ml.c6i.large", "ml.c6i.xlarge", "ml.c6i.2xlarge", "ml.c6i.4xlarge", "ml.c6i.8xlarge", "ml.c6i.12xlarge", "ml.c6i.16xlarge", "ml.c6i.24xlarge", "ml.c6i.32xlarge", "ml.m6i.large", "ml.m6i.xlarge", "ml.m6i.2xlarge", "ml.m6i.4xlarge", "ml.m6i.8xlarge", "ml.m6i.12xlarge", "ml.m6i.16xlarge", "ml.m6i.24xlarge", "ml.m6i.32xlarge", "ml.r6i.large", "ml.r6i.xlarge", "ml.r6i.2xlarge", "ml.r6i.4xlarge", "ml.r6i.8xlarge", "ml.r6i.12xlarge", "ml.r6i.16xlarge", "ml.r6i.24xlarge", "ml.r6i.32xlarge", "ml.i3en.large", "ml.i3en.xlarge", "ml.i3en.2xlarge", "ml.i3en.3xlarge", "ml.i3en.6xlarge", "ml.i3en.12xlarge", "ml.i3en.24xlarge", "ml.m7i.large", "ml.m7i.xlarge", "ml.m7i.2xlarge", "ml.m7i.4xlarge", "ml.m7i.8xlarge", "ml.m7i.12xlarge", "ml.m7i.16xlarge", "ml.m7i.24xlarge", "ml.m7i.48xlarge", "ml.r7i.large", "ml.r7i.xlarge", "ml.r7i.2xlarge", "ml.r7i.4xlarge", "ml.r7i.8xlarge", "ml.r7i.12xlarge", "ml.r7i.16xlarge", "ml.r7i.24xlarge", "ml.r7i.48xlarge"
13212
13443
  # resp.node_details.launch_time #=> Time
@@ -13225,6 +13456,8 @@ module Aws::SageMaker
13225
13456
  # resp.node_details.private_dns_hostname #=> String
13226
13457
  # resp.node_details.placement.availability_zone #=> String
13227
13458
  # resp.node_details.placement.availability_zone_id #=> String
13459
+ # resp.node_details.current_image_id #=> String
13460
+ # resp.node_details.desired_image_id #=> String
13228
13461
  #
13229
13462
  # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeClusterNode AWS API Documentation
13230
13463
  #
@@ -18420,6 +18653,61 @@ module Aws::SageMaker
18420
18653
  req.send_request(options)
18421
18654
  end
18422
18655
 
18656
+ # Detaches your Amazon Elastic Block Store (Amazon EBS) volume from a
18657
+ # node in your EKS-orchestrated SageMaker HyperPod cluster.
18658
+ #
18659
+ # This API works with the Amazon Elastic Block Store (Amazon EBS)
18660
+ # Container Storage Interface (CSI) driver to manage the lifecycle of
18661
+ # persistent storage in your HyperPod EKS clusters.
18662
+ #
18663
+ # @option params [required, String] :cluster_arn
18664
+ # The Amazon Resource Name (ARN) of your SageMaker HyperPod cluster
18665
+ # containing the target node. Your cluster must use EKS as the
18666
+ # orchestration and be in the `InService` state.
18667
+ #
18668
+ # @option params [required, String] :node_id
18669
+ # The unique identifier of the cluster node from which you want to
18670
+ # detach the volume.
18671
+ #
18672
+ # @option params [required, String] :volume_id
18673
+ # The unique identifier of your EBS volume that you want to detach. Your
18674
+ # volume must be currently attached to the specified node.
18675
+ #
18676
+ # @return [Types::DetachClusterNodeVolumeResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
18677
+ #
18678
+ # * {Types::DetachClusterNodeVolumeResponse#cluster_arn #cluster_arn} => String
18679
+ # * {Types::DetachClusterNodeVolumeResponse#node_id #node_id} => String
18680
+ # * {Types::DetachClusterNodeVolumeResponse#volume_id #volume_id} => String
18681
+ # * {Types::DetachClusterNodeVolumeResponse#attach_time #attach_time} => Time
18682
+ # * {Types::DetachClusterNodeVolumeResponse#status #status} => String
18683
+ # * {Types::DetachClusterNodeVolumeResponse#device_name #device_name} => String
18684
+ #
18685
+ # @example Request syntax with placeholder values
18686
+ #
18687
+ # resp = client.detach_cluster_node_volume({
18688
+ # cluster_arn: "ClusterArn", # required
18689
+ # node_id: "ClusterNodeId", # required
18690
+ # volume_id: "VolumeId", # required
18691
+ # })
18692
+ #
18693
+ # @example Response structure
18694
+ #
18695
+ # resp.cluster_arn #=> String
18696
+ # resp.node_id #=> String
18697
+ # resp.volume_id #=> String
18698
+ # resp.attach_time #=> Time
18699
+ # resp.status #=> String, one of "attaching", "attached", "detaching", "detached", "busy"
18700
+ # resp.device_name #=> String
18701
+ #
18702
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DetachClusterNodeVolume AWS API Documentation
18703
+ #
18704
+ # @overload detach_cluster_node_volume(params = {})
18705
+ # @param [Hash] params ({})
18706
+ def detach_cluster_node_volume(params = {}, options = {})
18707
+ req = build_request(:detach_cluster_node_volume, params)
18708
+ req.send_request(options)
18709
+ end
18710
+
18423
18711
  # Disables using Service Catalog in SageMaker. Service Catalog is used
18424
18712
  # to create SageMaker projects.
18425
18713
  #
@@ -19558,6 +19846,95 @@ module Aws::SageMaker
19558
19846
  req.send_request(options)
19559
19847
  end
19560
19848
 
19849
+ # Retrieves a list of event summaries for a specified HyperPod cluster.
19850
+ # The operation supports filtering, sorting, and pagination of results.
19851
+ # This functionality is only supported when the `NodeProvisioningMode`
19852
+ # is set to `Continuous`.
19853
+ #
19854
+ # @option params [required, String] :cluster_name
19855
+ # The name or Amazon Resource Name (ARN) of the HyperPod cluster for
19856
+ # which to list events.
19857
+ #
19858
+ # @option params [String] :instance_group_name
19859
+ # The name of the instance group to filter events. If specified, only
19860
+ # events related to this instance group are returned.
19861
+ #
19862
+ # @option params [String] :node_id
19863
+ # The EC2 instance ID to filter events. If specified, only events
19864
+ # related to this instance are returned.
19865
+ #
19866
+ # @option params [Time,DateTime,Date,Integer,String] :event_time_after
19867
+ # The start of the time range for filtering events. Only events that
19868
+ # occurred after this time are included in the results.
19869
+ #
19870
+ # @option params [Time,DateTime,Date,Integer,String] :event_time_before
19871
+ # The end of the time range for filtering events. Only events that
19872
+ # occurred before this time are included in the results.
19873
+ #
19874
+ # @option params [String] :sort_by
19875
+ # The field to use for sorting the event list. Currently, the only
19876
+ # supported value is `EventTime`.
19877
+ #
19878
+ # @option params [String] :sort_order
19879
+ # The order in which to sort the results. Valid values are `Ascending`
19880
+ # or `Descending` (the default is `Descending`).
19881
+ #
19882
+ # @option params [String] :resource_type
19883
+ # The type of resource for which to filter events. Valid values are
19884
+ # `Cluster`, `InstanceGroup`, or `Instance`.
19885
+ #
19886
+ # @option params [Integer] :max_results
19887
+ # The maximum number of events to return in the response. Valid range is
19888
+ # 1 to 100.
19889
+ #
19890
+ # @option params [String] :next_token
19891
+ # A token to retrieve the next set of results. This token is obtained
19892
+ # from the output of a previous `ListClusterEvents` call.
19893
+ #
19894
+ # @return [Types::ListClusterEventsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
19895
+ #
19896
+ # * {Types::ListClusterEventsResponse#next_token #next_token} => String
19897
+ # * {Types::ListClusterEventsResponse#events #events} => Array&lt;Types::ClusterEventSummary&gt;
19898
+ #
19899
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
19900
+ #
19901
+ # @example Request syntax with placeholder values
19902
+ #
19903
+ # resp = client.list_cluster_events({
19904
+ # cluster_name: "ClusterNameOrArn", # required
19905
+ # instance_group_name: "ClusterInstanceGroupName",
19906
+ # node_id: "ClusterNodeId",
19907
+ # event_time_after: Time.now,
19908
+ # event_time_before: Time.now,
19909
+ # sort_by: "EventTime", # accepts EventTime
19910
+ # sort_order: "Ascending", # accepts Ascending, Descending
19911
+ # resource_type: "Cluster", # accepts Cluster, InstanceGroup, Instance
19912
+ # max_results: 1,
19913
+ # next_token: "NextToken",
19914
+ # })
19915
+ #
19916
+ # @example Response structure
19917
+ #
19918
+ # resp.next_token #=> String
19919
+ # resp.events #=> Array
19920
+ # resp.events[0].event_id #=> String
19921
+ # resp.events[0].cluster_arn #=> String
19922
+ # resp.events[0].cluster_name #=> String
19923
+ # resp.events[0].instance_group_name #=> String
19924
+ # resp.events[0].instance_id #=> String
19925
+ # resp.events[0].resource_type #=> String, one of "Cluster", "InstanceGroup", "Instance"
19926
+ # resp.events[0].event_time #=> Time
19927
+ # resp.events[0].description #=> String
19928
+ #
19929
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListClusterEvents AWS API Documentation
19930
+ #
19931
+ # @overload list_cluster_events(params = {})
19932
+ # @param [Hash] params ({})
19933
+ def list_cluster_events(params = {}, options = {})
19934
+ req = build_request(:list_cluster_events, params)
19935
+ req.send_request(options)
19936
+ end
19937
+
19561
19938
  # Retrieves the list of instances (also called *nodes* interchangeably)
19562
19939
  # in a SageMaker HyperPod cluster.
19563
19940
  #
@@ -19621,6 +19998,12 @@ module Aws::SageMaker
19621
19998
  # @option params [String] :sort_order
19622
19999
  # The sort order for results. The default value is `Ascending`.
19623
20000
  #
20001
+ # @option params [Boolean] :include_node_logical_ids
20002
+ # Specifies whether to include nodes that are still being provisioned in
20003
+ # the response. When set to true, the response includes all nodes
20004
+ # regardless of their provisioning status. When set to `False`
20005
+ # (default), only nodes with assigned `InstanceIds` are returned.
20006
+ #
19624
20007
  # @return [Types::ListClusterNodesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
19625
20008
  #
19626
20009
  # * {Types::ListClusterNodesResponse#next_token #next_token} => String
@@ -19639,6 +20022,7 @@ module Aws::SageMaker
19639
20022
  # next_token: "NextToken",
19640
20023
  # sort_by: "CREATION_TIME", # accepts CREATION_TIME, NAME
19641
20024
  # sort_order: "Ascending", # accepts Ascending, Descending
20025
+ # include_node_logical_ids: false,
19642
20026
  # })
19643
20027
  #
19644
20028
  # @example Response structure
@@ -19647,10 +20031,11 @@ module Aws::SageMaker
19647
20031
  # resp.cluster_node_summaries #=> Array
19648
20032
  # resp.cluster_node_summaries[0].instance_group_name #=> String
19649
20033
  # resp.cluster_node_summaries[0].instance_id #=> String
20034
+ # resp.cluster_node_summaries[0].node_logical_id #=> String
19650
20035
  # resp.cluster_node_summaries[0].instance_type #=> String, one of "ml.p4d.24xlarge", "ml.p4de.24xlarge", "ml.p5.48xlarge", "ml.trn1.32xlarge", "ml.trn1n.32xlarge", "ml.g5.xlarge", "ml.g5.2xlarge", "ml.g5.4xlarge", "ml.g5.8xlarge", "ml.g5.12xlarge", "ml.g5.16xlarge", "ml.g5.24xlarge", "ml.g5.48xlarge", "ml.c5.large", "ml.c5.xlarge", "ml.c5.2xlarge", "ml.c5.4xlarge", "ml.c5.9xlarge", "ml.c5.12xlarge", "ml.c5.18xlarge", "ml.c5.24xlarge", "ml.c5n.large", "ml.c5n.2xlarge", "ml.c5n.4xlarge", "ml.c5n.9xlarge", "ml.c5n.18xlarge", "ml.m5.large", "ml.m5.xlarge", "ml.m5.2xlarge", "ml.m5.4xlarge", "ml.m5.8xlarge", "ml.m5.12xlarge", "ml.m5.16xlarge", "ml.m5.24xlarge", "ml.t3.medium", "ml.t3.large", "ml.t3.xlarge", "ml.t3.2xlarge", "ml.g6.xlarge", "ml.g6.2xlarge", "ml.g6.4xlarge", "ml.g6.8xlarge", "ml.g6.16xlarge", "ml.g6.12xlarge", "ml.g6.24xlarge", "ml.g6.48xlarge", "ml.gr6.4xlarge", "ml.gr6.8xlarge", "ml.g6e.xlarge", "ml.g6e.2xlarge", "ml.g6e.4xlarge", "ml.g6e.8xlarge", "ml.g6e.16xlarge", "ml.g6e.12xlarge", "ml.g6e.24xlarge", "ml.g6e.48xlarge", "ml.p5e.48xlarge", "ml.p5en.48xlarge", "ml.p6-b200.48xlarge", "ml.trn2.48xlarge", "ml.c6i.large", "ml.c6i.xlarge", "ml.c6i.2xlarge", "ml.c6i.4xlarge", "ml.c6i.8xlarge", "ml.c6i.12xlarge", "ml.c6i.16xlarge", "ml.c6i.24xlarge", "ml.c6i.32xlarge", "ml.m6i.large", "ml.m6i.xlarge", "ml.m6i.2xlarge", "ml.m6i.4xlarge", "ml.m6i.8xlarge", "ml.m6i.12xlarge", "ml.m6i.16xlarge", "ml.m6i.24xlarge", "ml.m6i.32xlarge", "ml.r6i.large", "ml.r6i.xlarge", "ml.r6i.2xlarge", "ml.r6i.4xlarge", "ml.r6i.8xlarge", "ml.r6i.12xlarge", "ml.r6i.16xlarge", "ml.r6i.24xlarge", "ml.r6i.32xlarge", "ml.i3en.large", "ml.i3en.xlarge", "ml.i3en.2xlarge", "ml.i3en.3xlarge", "ml.i3en.6xlarge", "ml.i3en.12xlarge", "ml.i3en.24xlarge", "ml.m7i.large", "ml.m7i.xlarge", "ml.m7i.2xlarge", "ml.m7i.4xlarge", "ml.m7i.8xlarge", "ml.m7i.12xlarge", "ml.m7i.16xlarge", "ml.m7i.24xlarge", "ml.m7i.48xlarge", "ml.r7i.large", "ml.r7i.xlarge", "ml.r7i.2xlarge", "ml.r7i.4xlarge", "ml.r7i.8xlarge", "ml.r7i.12xlarge", "ml.r7i.16xlarge", "ml.r7i.24xlarge", "ml.r7i.48xlarge"
19651
20036
  # resp.cluster_node_summaries[0].launch_time #=> Time
19652
20037
  # resp.cluster_node_summaries[0].last_software_update_time #=> Time
19653
- # resp.cluster_node_summaries[0].instance_status.status #=> String, one of "Running", "Failure", "Pending", "ShuttingDown", "SystemUpdating", "DeepHealthCheckInProgress"
20038
+ # resp.cluster_node_summaries[0].instance_status.status #=> String, one of "Running", "Failure", "Pending", "ShuttingDown", "SystemUpdating", "DeepHealthCheckInProgress", "NotFound"
19654
20039
  # resp.cluster_node_summaries[0].instance_status.message #=> String
19655
20040
  #
19656
20041
  # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListClusterNodes AWS API Documentation
@@ -26846,6 +27231,7 @@ module Aws::SageMaker
26846
27231
  # ],
26847
27232
  # },
26848
27233
  # },
27234
+ # image_id: "ImageId",
26849
27235
  # },
26850
27236
  # ],
26851
27237
  # restricted_instance_groups: [
@@ -26986,6 +27372,31 @@ module Aws::SageMaker
26986
27372
  # @option params [Types::DeploymentConfiguration] :deployment_config
26987
27373
  # The configuration to use when updating the AMI versions.
26988
27374
  #
27375
+ # @option params [String] :image_id
27376
+ # When configuring your HyperPod cluster, you can specify an image ID
27377
+ # using one of the following options:
27378
+ #
27379
+ # * `HyperPodPublicAmiId`: Use a HyperPod public AMI
27380
+ #
27381
+ # * `CustomAmiId`: Use your custom AMI
27382
+ #
27383
+ # * `default`: Use the default latest system image
27384
+ #
27385
+ # f you choose to use a custom AMI (`CustomAmiId`), ensure it meets the
27386
+ # following requirements:
27387
+ #
27388
+ # * Encryption: The custom AMI must be unencrypted.
27389
+ #
27390
+ # * Ownership: The custom AMI must be owned by the same Amazon Web
27391
+ # Services account that is creating the HyperPod cluster.
27392
+ #
27393
+ # * Volume support: Only the primary AMI snapshot volume is supported;
27394
+ # additional AMI volumes are not supported.
27395
+ #
27396
+ # When updating the instance group's AMI through the
27397
+ # `UpdateClusterSoftware` operation, if an instance group uses a custom
27398
+ # AMI, you must provide an `ImageId` or use the default as input.
27399
+ #
26989
27400
  # @return [Types::UpdateClusterSoftwareResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
26990
27401
  #
26991
27402
  # * {Types::UpdateClusterSoftwareResponse#cluster_arn #cluster_arn} => String
@@ -27017,6 +27428,7 @@ module Aws::SageMaker
27017
27428
  # },
27018
27429
  # ],
27019
27430
  # },
27431
+ # image_id: "ImageId",
27020
27432
  # })
27021
27433
  #
27022
27434
  # @example Response structure
@@ -30206,8 +30618,14 @@ module Aws::SageMaker
30206
30618
  # outside the specified range are denied and get a `Not Found` error
30207
30619
  # message on the worker portal.
30208
30620
  #
30209
- # To restrict access to all the workers in public internet, add the
30210
- # `SourceIpConfig` CIDR value as "10.0.0.0/16".
30621
+ # To restrict public internet access for all workers, configure the
30622
+ # `SourceIpConfig` CIDR value. For example, when using `SourceIpConfig`
30623
+ # with an `IpAddressType` of `IPv4`, you can restrict access to the IPv4
30624
+ # CIDR block "10.0.0.0/16". When using an `IpAddressType` of
30625
+ # `dualstack`, you can specify both the IPv4 and IPv6 CIDR blocks, such
30626
+ # as "10.0.0.0/16" for IPv4 only, "2001:db8:1234:1a00::/56" for IPv6
30627
+ # only, or "10.0.0.0/16" and "2001:db8:1234:1a00::/56" for dual
30628
+ # stack.
30211
30629
  #
30212
30630
  # Amazon SageMaker does not support Source Ip restriction for worker
30213
30631
  # portals in VPC.
@@ -30465,7 +30883,7 @@ module Aws::SageMaker
30465
30883
  tracer: tracer
30466
30884
  )
30467
30885
  context[:gem_name] = 'aws-sdk-sagemaker'
30468
- context[:gem_version] = '1.317.0'
30886
+ context[:gem_version] = '1.319.0'
30469
30887
  Seahorse::Client::Request.new(handlers, context)
30470
30888
  end
30471
30889