Skip to content

Commit a29341a

Browse files
author
awstools
committed
feat(client-sagemaker): Add new fields in SageMaker Hyperpod DescribeCluster API response: TargetStateCount, SoftwareUpdateStatus and ActiveSoftwareDeploymentConfig to provide AMI update progress visibility .
1 parent 64852ec commit a29341a

File tree

11 files changed

+421
-307
lines changed

11 files changed

+421
-307
lines changed

clients/client-sagemaker/src/commands/CreateLabelingJobCommand.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import { Command as $Command } from "@smithy/smithy-client";
55
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
8-
import { CreateLabelingJobRequest } from "../models/models_1";
9-
import { CreateLabelingJobResponse } from "../models/models_2";
8+
import { CreateLabelingJobRequest, CreateLabelingJobResponse } from "../models/models_2";
109
import { de_CreateLabelingJobCommand, se_CreateLabelingJobCommand } from "../protocols/Aws_json1_1";
1110
import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient";
1211

clients/client-sagemaker/src/commands/DescribeClusterCommand.ts

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import { Command as $Command } from "@smithy/smithy-client";
55
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
8-
import { DescribeClusterRequest, DescribeClusterResponse } from "../models/models_2";
8+
import { DescribeClusterRequest } from "../models/models_2";
9+
import { DescribeClusterResponse } from "../models/models_3";
910
import { de_DescribeClusterCommand, se_DescribeClusterCommand } from "../protocols/Aws_json1_1";
1011
import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient";
1112

@@ -106,6 +107,26 @@ export interface DescribeClusterCommandOutput extends DescribeClusterResponse, _
106107
* // },
107108
* // CurrentImageId: "STRING_VALUE",
108109
* // DesiredImageId: "STRING_VALUE",
110+
* // TargetStateCount: Number("int"),
111+
* // SoftwareUpdateStatus: "Pending" || "InProgress" || "Succeeded" || "Failed" || "RollbackInProgress" || "RollbackComplete",
112+
* // ActiveSoftwareUpdateConfig: {
113+
* // RollingUpdatePolicy: {
114+
* // MaximumBatchSize: {
115+
* // Type: "INSTANCE_COUNT" || "CAPACITY_PERCENTAGE", // required
116+
* // Value: Number("int"), // required
117+
* // },
118+
* // RollbackMaximumBatchSize: {
119+
* // Type: "INSTANCE_COUNT" || "CAPACITY_PERCENTAGE", // required
120+
* // Value: Number("int"), // required
121+
* // },
122+
* // },
123+
* // WaitIntervalInSeconds: Number("int"),
124+
* // AutoRollbackConfiguration: [
125+
* // {
126+
* // AlarmName: "STRING_VALUE", // required
127+
* // },
128+
* // ],
129+
* // },
109130
* // },
110131
* // ],
111132
* // RestrictedInstanceGroups: [ // ClusterRestrictedInstanceGroupDetailsList
@@ -147,10 +168,7 @@ export interface DescribeClusterCommandOutput extends DescribeClusterResponse, _
147168
* // Type: "INSTANCE_COUNT" || "CAPACITY_PERCENTAGE", // required
148169
* // Value: Number("int"), // required
149170
* // },
150-
* // RollbackMaximumBatchSize: {
151-
* // Type: "INSTANCE_COUNT" || "CAPACITY_PERCENTAGE", // required
152-
* // Value: Number("int"), // required
153-
* // },
171+
* // RollbackMaximumBatchSize: "<CapacitySizeConfig>",
154172
* // },
155173
* // WaitIntervalInSeconds: Number("int"),
156174
* // AutoRollbackConfiguration: [

clients/client-sagemaker/src/commands/ListTrialsCommand.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import { Command as $Command } from "@smithy/smithy-client";
55
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
8-
import { ListTrialsRequest } from "../models/models_4";
9-
import { ListTrialsResponse } from "../models/models_5";
8+
import { ListTrialsRequest, ListTrialsResponse } from "../models/models_5";
109
import { de_ListTrialsCommand, se_ListTrialsCommand } from "../protocols/Aws_json1_1";
1110
import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient";
1211

clients/client-sagemaker/src/models/models_0.ts

Lines changed: 76 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -7206,6 +7206,48 @@ export interface ClusterEventSummary {
72067206
Description?: string | undefined;
72077207
}
72087208

7209+
/**
7210+
* <p>The configurations that SageMaker uses when updating the AMI versions.</p>
7211+
* @public
7212+
*/
7213+
export interface RollingDeploymentPolicy {
7214+
/**
7215+
* <p>The maximum amount of instances in the cluster that SageMaker can update at a time.</p>
7216+
* @public
7217+
*/
7218+
MaximumBatchSize: CapacitySizeConfig | undefined;
7219+
7220+
/**
7221+
* <p>The maximum amount of instances in the cluster that SageMaker can roll back at a time.</p>
7222+
* @public
7223+
*/
7224+
RollbackMaximumBatchSize?: CapacitySizeConfig | undefined;
7225+
}
7226+
7227+
/**
7228+
* <p>The configuration to use when updating the AMI versions.</p>
7229+
* @public
7230+
*/
7231+
export interface DeploymentConfiguration {
7232+
/**
7233+
* <p>The policy that SageMaker uses when updating the AMI versions of the cluster. </p>
7234+
* @public
7235+
*/
7236+
RollingUpdatePolicy?: RollingDeploymentPolicy | undefined;
7237+
7238+
/**
7239+
* <p>The duration in seconds that SageMaker waits before updating more instances in the cluster.</p>
7240+
* @public
7241+
*/
7242+
WaitIntervalInSeconds?: number | undefined;
7243+
7244+
/**
7245+
* <p>An array that contains the alarms that SageMaker monitors to know whether to roll back the AMI update.</p>
7246+
* @public
7247+
*/
7248+
AutoRollbackConfiguration?: AlarmDetails[] | undefined;
7249+
}
7250+
72097251
/**
72107252
* <p>Defines the configuration for attaching additional storage to the instances in the SageMaker HyperPod cluster instance group. To learn more, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-release-notes.html#sagemaker-hyperpod-release-notes-20240620">SageMaker HyperPod release notes: June 20, 2024</a>.</p>
72117253
* @public
@@ -7404,64 +7446,40 @@ export const DeepHealthCheckType = {
74047446
export type DeepHealthCheckType = (typeof DeepHealthCheckType)[keyof typeof DeepHealthCheckType];
74057447

74067448
/**
7407-
* <p>The configurations that SageMaker uses when updating the AMI versions.</p>
7449+
* <p>The configuration object of the schedule that SageMaker follows when updating the AMI.</p>
74087450
* @public
74097451
*/
7410-
export interface RollingDeploymentPolicy {
7452+
export interface ScheduledUpdateConfig {
74117453
/**
7412-
* <p>The maximum amount of instances in the cluster that SageMaker can update at a time.</p>
7454+
* <p>A cron expression that specifies the schedule that SageMaker follows when updating the AMI.</p>
74137455
* @public
74147456
*/
7415-
MaximumBatchSize: CapacitySizeConfig | undefined;
7457+
ScheduleExpression: string | undefined;
74167458

74177459
/**
7418-
* <p>The maximum amount of instances in the cluster that SageMaker can roll back at a time.</p>
7460+
* <p>The configuration to use when updating the AMI versions.</p>
74197461
* @public
74207462
*/
7421-
RollbackMaximumBatchSize?: CapacitySizeConfig | undefined;
7463+
DeploymentConfig?: DeploymentConfiguration | undefined;
74227464
}
74237465

74247466
/**
7425-
* <p>The configuration to use when updating the AMI versions.</p>
74267467
* @public
7468+
* @enum
74277469
*/
7428-
export interface DeploymentConfiguration {
7429-
/**
7430-
* <p>The policy that SageMaker uses when updating the AMI versions of the cluster. </p>
7431-
* @public
7432-
*/
7433-
RollingUpdatePolicy?: RollingDeploymentPolicy | undefined;
7434-
7435-
/**
7436-
* <p>The duration in seconds that SageMaker waits before updating more instances in the cluster.</p>
7437-
* @public
7438-
*/
7439-
WaitIntervalInSeconds?: number | undefined;
7440-
7441-
/**
7442-
* <p>An array that contains the alarms that SageMaker monitors to know whether to roll back the AMI update.</p>
7443-
* @public
7444-
*/
7445-
AutoRollbackConfiguration?: AlarmDetails[] | undefined;
7446-
}
7470+
export const SoftwareUpdateStatus = {
7471+
FAILED: "Failed",
7472+
IN_PROGRESS: "InProgress",
7473+
PENDING: "Pending",
7474+
ROLLBACK_COMPLETE: "RollbackComplete",
7475+
ROLLBACK_IN_PROGRESS: "RollbackInProgress",
7476+
SUCCEEDED: "Succeeded",
7477+
} as const;
74477478

74487479
/**
7449-
* <p>The configuration object of the schedule that SageMaker follows when updating the AMI.</p>
74507480
* @public
74517481
*/
7452-
export interface ScheduledUpdateConfig {
7453-
/**
7454-
* <p>A cron expression that specifies the schedule that SageMaker follows when updating the AMI.</p>
7455-
* @public
7456-
*/
7457-
ScheduleExpression: string | undefined;
7458-
7459-
/**
7460-
* <p>The configuration to use when updating the AMI versions.</p>
7461-
* @public
7462-
*/
7463-
DeploymentConfig?: DeploymentConfiguration | undefined;
7464-
}
7482+
export type SoftwareUpdateStatus = (typeof SoftwareUpdateStatus)[keyof typeof SoftwareUpdateStatus];
74657483

74667484
/**
74677485
* @public
@@ -7582,6 +7600,24 @@ export interface ClusterInstanceGroupDetails {
75827600
* @public
75837601
*/
75847602
DesiredImageId?: string | undefined;
7603+
7604+
/**
7605+
* <p>The number of nodes running a specific image ID since the last software update request.</p>
7606+
* @public
7607+
*/
7608+
TargetStateCount?: number | undefined;
7609+
7610+
/**
7611+
* <p>Status of the last software udpate request.</p>
7612+
* @public
7613+
*/
7614+
SoftwareUpdateStatus?: SoftwareUpdateStatus | undefined;
7615+
7616+
/**
7617+
* <p>The configuration to use when updating the AMI versions.</p>
7618+
* @public
7619+
*/
7620+
ActiveSoftwareUpdateConfig?: DeploymentConfiguration | undefined;
75857621
}
75867622

75877623
/**
@@ -7917,15 +7953,3 @@ export interface ClusterOrchestratorEksConfig {
79177953
*/
79187954
ClusterArn: string | undefined;
79197955
}
7920-
7921-
/**
7922-
* <p>The type of orchestrator used for the SageMaker HyperPod cluster.</p>
7923-
* @public
7924-
*/
7925-
export interface ClusterOrchestrator {
7926-
/**
7927-
* <p>The Amazon EKS cluster used as the orchestrator for the SageMaker HyperPod cluster.</p>
7928-
* @public
7929-
*/
7930-
Eks: ClusterOrchestratorEksConfig | undefined;
7931-
}

clients/client-sagemaker/src/models/models_1.ts

Lines changed: 13 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ import {
5858
ClusterInstanceType,
5959
ClusterNodeProvisioningMode,
6060
ClusterNodeRecovery,
61-
ClusterOrchestrator,
61+
ClusterOrchestratorEksConfig,
6262
CodeEditorAppImageConfig,
6363
DeepHealthCheckType,
6464
FeatureStatus,
@@ -85,6 +85,18 @@ import {
8585

8686
import { SageMakerServiceException as __BaseException } from "./SageMakerServiceException";
8787

88+
/**
89+
* <p>The type of orchestrator used for the SageMaker HyperPod cluster.</p>
90+
* @public
91+
*/
92+
export interface ClusterOrchestrator {
93+
/**
94+
* <p>The Amazon EKS cluster used as the orchestrator for the SageMaker HyperPod cluster.</p>
95+
* @public
96+
*/
97+
Eks: ClusterOrchestratorEksConfig | undefined;
98+
}
99+
88100
/**
89101
* <p>Configuration settings for an Amazon FSx for Lustre file system to be used with the cluster.</p>
90102
* @public
@@ -8049,68 +8061,3 @@ export interface LabelingJobStoppingConditions {
80498061
*/
80508062
MaxPercentageOfInputDatasetLabeled?: number | undefined;
80518063
}
8052-
8053-
/**
8054-
* @public
8055-
*/
8056-
export interface CreateLabelingJobRequest {
8057-
/**
8058-
* <p>The name of the labeling job. This name is used to identify the job in a list of labeling jobs. Labeling job names must be unique within an Amazon Web Services account and region. <code>LabelingJobName</code> is not case sensitive. For example, Example-job and example-job are considered the same labeling job name by Ground Truth.</p>
8059-
* @public
8060-
*/
8061-
LabelingJobName: string | undefined;
8062-
8063-
/**
8064-
* <p>The attribute name to use for the label in the output manifest file. This is the key for the key/value pair formed with the label that a worker assigns to the object. The <code>LabelAttributeName</code> must meet the following requirements.</p> <ul> <li> <p>The name can't end with "-metadata". </p> </li> <li> <p>If you are using one of the <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html">built-in task types</a> or one of the following, the attribute name <i>must</i> end with "-ref".</p> <ul> <li> <p>Image semantic segmentation (<code>SemanticSegmentation)</code> and adjustment (<code>AdjustmentSemanticSegmentation</code>) labeling jobs for this task type. One exception is that verification (<code>VerificationSemanticSegmentation</code>) <i>must not</i> end with -"ref".</p> </li> <li> <p>Video frame object detection (<code>VideoObjectDetection</code>), and adjustment and verification (<code>AdjustmentVideoObjectDetection</code>) labeling jobs for this task type.</p> </li> <li> <p>Video frame object tracking (<code>VideoObjectTracking</code>), and adjustment and verification (<code>AdjustmentVideoObjectTracking</code>) labeling jobs for this task type.</p> </li> <li> <p>3D point cloud semantic segmentation (<code>3DPointCloudSemanticSegmentation</code>), and adjustment and verification (<code>Adjustment3DPointCloudSemanticSegmentation</code>) labeling jobs for this task type. </p> </li> <li> <p>3D point cloud object tracking (<code>3DPointCloudObjectTracking</code>), and adjustment and verification (<code>Adjustment3DPointCloudObjectTracking</code>) labeling jobs for this task type. </p> </li> </ul> </li> </ul> <p/> <important> <p>If you are creating an adjustment or verification labeling job, you must use a <i>different</i> <code>LabelAttributeName</code> than the one used in the original labeling job. The original labeling job is the Ground Truth labeling job that produced the labels that you want verified or adjusted. To learn more about adjustment and verification labeling jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html">Verify and Adjust Labels</a>.</p> </important>
8065-
* @public
8066-
*/
8067-
LabelAttributeName: string | undefined;
8068-
8069-
/**
8070-
* <p>Input data for the labeling job, such as the Amazon S3 location of the data objects and the location of the manifest file that describes the data objects.</p> <p>You must specify at least one of the following: <code>S3DataSource</code> or <code>SnsDataSource</code>. </p> <ul> <li> <p>Use <code>SnsDataSource</code> to specify an SNS input topic for a streaming labeling job. If you do not specify and SNS input topic ARN, Ground Truth will create a one-time labeling job that stops after all data objects in the input manifest file have been labeled.</p> </li> <li> <p>Use <code>S3DataSource</code> to specify an input manifest file for both streaming and one-time labeling jobs. Adding an <code>S3DataSource</code> is optional if you use <code>SnsDataSource</code> to create a streaming labeling job.</p> </li> </ul> <p>If you use the Amazon Mechanical Turk workforce, your input data should not include confidential information, personal information or protected health information. Use <code>ContentClassifiers</code> to specify that your data is free of personally identifiable information and adult content.</p>
8071-
* @public
8072-
*/
8073-
InputConfig: LabelingJobInputConfig | undefined;
8074-
8075-
/**
8076-
* <p>The location of the output data and the Amazon Web Services Key Management Service key ID for the key used to encrypt the output data, if any.</p>
8077-
* @public
8078-
*/
8079-
OutputConfig: LabelingJobOutputConfig | undefined;
8080-
8081-
/**
8082-
* <p>The Amazon Resource Number (ARN) that Amazon SageMaker assumes to perform tasks on your behalf during data labeling. You must grant this role the necessary permissions so that Amazon SageMaker can successfully complete data labeling.</p>
8083-
* @public
8084-
*/
8085-
RoleArn: string | undefined;
8086-
8087-
/**
8088-
* <p>The S3 URI of the file, referred to as a <i>label category configuration file</i>, that defines the categories used to label the data objects.</p> <p>For 3D point cloud and video frame task types, you can add label category attributes and frame attributes to your label category configuration file. To learn how, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud-label-category-config.html">Create a Labeling Category Configuration File for 3D Point Cloud Labeling Jobs</a>. </p> <p>For named entity recognition jobs, in addition to <code>"labels"</code>, you must provide worker instructions in the label category configuration file using the <code>"instructions"</code> parameter: <code>"instructions": \{"shortInstruction":"&lt;h1&gt;Add header&lt;/h1&gt;&lt;p&gt;Add Instructions&lt;/p&gt;", "fullInstruction":"&lt;p&gt;Add additional instructions.&lt;/p&gt;"\}</code>. For details and an example, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-named-entity-recg.html#sms-creating-ner-api">Create a Named Entity Recognition Labeling Job (API) </a>.</p> <p>For all other <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html">built-in task types</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates.html">custom tasks</a>, your label category configuration file must be a JSON file in the following format. Identify the labels you want to use by replacing <code>label_1</code>, <code>label_2</code>,<code>...</code>,<code>label_n</code> with your label categories.</p> <p> <code>\{ </code> </p> <p> <code>"document-version": "2018-11-28",</code> </p> <p> <code>"labels": [\{"label": "label_1"\},\{"label": "label_2"\},...\{"label": "label_n"\}]</code> </p> <p> <code>\}</code> </p> <p>Note the following about the label category configuration file:</p> <ul> <li> <p>For image classification and text classification (single and multi-label) you must specify at least two label categories. For all other task types, the minimum number of label categories required is one. </p> </li> <li> <p>Each label category must be unique, you cannot specify duplicate label categories.</p> </li> <li> <p>If you create a 3D point cloud or video frame adjustment or verification labeling job, you must include <code>auditLabelAttributeName</code> in the label category configuration. Use this parameter to enter the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#sagemaker-CreateLabelingJob-request-LabelAttributeName"> <code>LabelAttributeName</code> </a> of the labeling job you want to adjust or verify annotations of.</p> </li> </ul>
8089-
* @public
8090-
*/
8091-
LabelCategoryConfigS3Uri?: string | undefined;
8092-
8093-
/**
8094-
* <p>A set of conditions for stopping the labeling job. If any of the conditions are met, the job is automatically stopped. You can use these conditions to control the cost of data labeling.</p>
8095-
* @public
8096-
*/
8097-
StoppingConditions?: LabelingJobStoppingConditions | undefined;
8098-
8099-
/**
8100-
* <p>Configures the information required to perform automated data labeling.</p>
8101-
* @public
8102-
*/
8103-
LabelingJobAlgorithmsConfig?: LabelingJobAlgorithmsConfig | undefined;
8104-
8105-
/**
8106-
* <p>Configures the labeling task and how it is presented to workers; including, but not limited to price, keywords, and batch size (task count).</p>
8107-
* @public
8108-
*/
8109-
HumanTaskConfig: HumanTaskConfig | undefined;
8110-
8111-
/**
8112-
* <p>An array of key/value pairs. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what">Using Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost Management User Guide</i>.</p>
8113-
* @public
8114-
*/
8115-
Tags?: Tag[] | undefined;
8116-
}

0 commit comments

Comments
 (0)