From bfe260bffc143ad14d06e8b212c3bc6cc0888494 Mon Sep 17 00:00:00 2001 From: awstools Date: Thu, 15 Feb 2024 19:17:47 +0000 Subject: [PATCH] feat(client-sagemaker): This release adds a new API UpdateClusterSoftware for SageMaker HyperPod. This API allows users to patch HyperPod clusters with latest platform softwares. --- clients/client-sagemaker/README.md | 8 ++ clients/client-sagemaker/src/SageMaker.ts | 23 +++++ .../client-sagemaker/src/SageMakerClient.ts | 6 ++ .../src/commands/AddTagsCommand.ts | 14 +-- .../DeleteHyperParameterTuningJobCommand.ts | 2 +- .../src/commands/DeleteTagsCommand.ts | 6 +- .../src/commands/UpdateClusterCommand.ts | 2 +- .../commands/UpdateClusterSoftwareCommand.ts | 89 +++++++++++++++++++ .../src/commands/UpdateEndpointCommand.ts | 19 ++-- .../client-sagemaker/src/commands/index.ts | 1 + .../client-sagemaker/src/models/models_0.ts | 6 +- .../client-sagemaker/src/models/models_2.ts | 22 +++-- .../client-sagemaker/src/models/models_3.ts | 7 +- .../client-sagemaker/src/models/models_4.ts | 41 +++++++-- .../src/protocols/Aws_json1_1.ts | 50 +++++++++++ codegen/sdk-codegen/aws-models/sagemaker.json | 81 ++++++++++++++--- 16 files changed, 319 insertions(+), 58 deletions(-) create mode 100644 clients/client-sagemaker/src/commands/UpdateClusterSoftwareCommand.ts diff --git a/clients/client-sagemaker/README.md b/clients/client-sagemaker/README.md index 66698aeb6681..8f60eddf03da 100644 --- a/clients/client-sagemaker/README.md +++ b/clients/client-sagemaker/README.md @@ -2513,6 +2513,14 @@ UpdateCluster [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sagemaker/command/UpdateClusterCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sagemaker/Interface/UpdateClusterCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sagemaker/Interface/UpdateClusterCommandOutput/) + +
+ +UpdateClusterSoftware + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sagemaker/command/UpdateClusterSoftwareCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sagemaker/Interface/UpdateClusterSoftwareCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sagemaker/Interface/UpdateClusterSoftwareCommandOutput/) +
diff --git a/clients/client-sagemaker/src/SageMaker.ts b/clients/client-sagemaker/src/SageMaker.ts index 397ef2b0fc09..5b7a4c369e07 100644 --- a/clients/client-sagemaker/src/SageMaker.ts +++ b/clients/client-sagemaker/src/SageMaker.ts @@ -1325,6 +1325,11 @@ import { UpdateClusterCommandInput, UpdateClusterCommandOutput, } from "./commands/UpdateClusterCommand"; +import { + UpdateClusterSoftwareCommand, + UpdateClusterSoftwareCommandInput, + UpdateClusterSoftwareCommandOutput, +} from "./commands/UpdateClusterSoftwareCommand"; import { UpdateCodeRepositoryCommand, UpdateCodeRepositoryCommandInput, @@ -1759,6 +1764,7 @@ const commands = { UpdateAppImageConfigCommand, UpdateArtifactCommand, UpdateClusterCommand, + UpdateClusterSoftwareCommand, UpdateCodeRepositoryCommand, UpdateContextCommand, UpdateDeviceFleetCommand, @@ -6259,6 +6265,23 @@ export interface SageMaker { cb: (err: any, data?: UpdateClusterCommandOutput) => void ): void; + /** + * @see {@link UpdateClusterSoftwareCommand} + */ + updateClusterSoftware( + args: UpdateClusterSoftwareCommandInput, + options?: __HttpHandlerOptions + ): Promise; + updateClusterSoftware( + args: UpdateClusterSoftwareCommandInput, + cb: (err: any, data?: UpdateClusterSoftwareCommandOutput) => void + ): void; + updateClusterSoftware( + args: UpdateClusterSoftwareCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateClusterSoftwareCommandOutput) => void + ): void; + /** * @see {@link UpdateCodeRepositoryCommand} */ diff --git a/clients/client-sagemaker/src/SageMakerClient.ts b/clients/client-sagemaker/src/SageMakerClient.ts index c31672c2ba08..18204692d0f4 100644 --- a/clients/client-sagemaker/src/SageMakerClient.ts +++ b/clients/client-sagemaker/src/SageMakerClient.ts @@ -793,6 +793,10 @@ import { } from "./commands/UpdateAppImageConfigCommand"; import { UpdateArtifactCommandInput, UpdateArtifactCommandOutput } from "./commands/UpdateArtifactCommand"; import { UpdateClusterCommandInput, UpdateClusterCommandOutput } from "./commands/UpdateClusterCommand"; +import { + UpdateClusterSoftwareCommandInput, + UpdateClusterSoftwareCommandOutput, +} from "./commands/UpdateClusterSoftwareCommand"; import { UpdateCodeRepositoryCommandInput, UpdateCodeRepositoryCommandOutput, @@ -1163,6 +1167,7 @@ export type ServiceInputTypes = | UpdateAppImageConfigCommandInput | UpdateArtifactCommandInput | UpdateClusterCommandInput + | UpdateClusterSoftwareCommandInput | UpdateCodeRepositoryCommandInput | UpdateContextCommandInput | UpdateDeviceFleetCommandInput @@ -1487,6 +1492,7 @@ export type ServiceOutputTypes = | UpdateAppImageConfigCommandOutput | UpdateArtifactCommandOutput | UpdateClusterCommandOutput + | UpdateClusterSoftwareCommandOutput | UpdateCodeRepositoryCommandOutput | UpdateContextCommandOutput | UpdateDeviceFleetCommandOutput diff --git a/clients/client-sagemaker/src/commands/AddTagsCommand.ts b/clients/client-sagemaker/src/commands/AddTagsCommand.ts index 2883d2d19fb0..ccd93b36bb50 100644 --- a/clients/client-sagemaker/src/commands/AddTagsCommand.ts +++ b/clients/client-sagemaker/src/commands/AddTagsCommand.ts @@ -45,13 +45,13 @@ export interface AddTagsCommandOutput extends AddTagsOutput, __MetadataBearer {} *

* * - *

Tags that you add to a SageMaker Domain or User Profile by calling this API - * are also added to any Apps that the Domain or User Profile launches after you call - * this API, but not to Apps that the Domain or User Profile launched before you called - * this API. To make sure that the tags associated with a Domain or User Profile are - * also added to all Apps that the Domain or User Profile launches, add the tags when - * you first create the Domain or User Profile by specifying them in the - * Tags parameter of CreateDomain + *

Tags that you add to a SageMaker Domain or User Profile by calling this API are + * also added to any Apps that the Domain or User Profile launches after you call this + * API, but not to Apps that the Domain or User Profile launched before you called this + * API. To make sure that the tags associated with a Domain or User Profile are also + * added to all Apps that the Domain or User Profile launches, add the tags when you + * first create the Domain or User Profile by specifying them in the Tags + * parameter of CreateDomain * or CreateUserProfile.

*
* @example diff --git a/clients/client-sagemaker/src/commands/DeleteHyperParameterTuningJobCommand.ts b/clients/client-sagemaker/src/commands/DeleteHyperParameterTuningJobCommand.ts index 9b0721ea88b5..0e3f3fb75658 100644 --- a/clients/client-sagemaker/src/commands/DeleteHyperParameterTuningJobCommand.ts +++ b/clients/client-sagemaker/src/commands/DeleteHyperParameterTuningJobCommand.ts @@ -33,7 +33,7 @@ export interface DeleteHyperParameterTuningJobCommandOutput extends __MetadataBe * @public *

Deletes a hyperparameter tuning job. The DeleteHyperParameterTuningJob * API deletes only the tuning job entry that was created in SageMaker when you called the - * CreateHyperParameterTuningJob API. It does not delete training jobs, + * CreateHyperParameterTuningJob API. It does not delete training jobs, * artifacts, or the IAM role that you specified when creating the model.

* @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-sagemaker/src/commands/DeleteTagsCommand.ts b/clients/client-sagemaker/src/commands/DeleteTagsCommand.ts index 202dc1c0b1f3..c51892c9a119 100644 --- a/clients/client-sagemaker/src/commands/DeleteTagsCommand.ts +++ b/clients/client-sagemaker/src/commands/DeleteTagsCommand.ts @@ -36,9 +36,9 @@ export interface DeleteTagsCommandOutput extends DeleteTagsOutput, __MetadataBea * launched before you called this API.

* * - *

When you call this API to delete tags from a SageMaker Domain or User - * Profile, the deleted tags are not removed from Apps that the SageMaker Domain - * or User Profile launched before you called this API.

+ *

When you call this API to delete tags from a SageMaker Domain or User Profile, the + * deleted tags are not removed from Apps that the SageMaker Domain or User Profile + * launched before you called this API.

*
* @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-sagemaker/src/commands/UpdateClusterCommand.ts b/clients/client-sagemaker/src/commands/UpdateClusterCommand.ts index 2b453c8b8645..00875cc1428a 100644 --- a/clients/client-sagemaker/src/commands/UpdateClusterCommand.ts +++ b/clients/client-sagemaker/src/commands/UpdateClusterCommand.ts @@ -28,7 +28,7 @@ export interface UpdateClusterCommandOutput extends UpdateClusterResponse, __Met /** * @public - *

Update a SageMaker HyperPod cluster.

+ *

Updates a SageMaker HyperPod cluster.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-sagemaker/src/commands/UpdateClusterSoftwareCommand.ts b/clients/client-sagemaker/src/commands/UpdateClusterSoftwareCommand.ts new file mode 100644 index 000000000000..6867a6a1c757 --- /dev/null +++ b/clients/client-sagemaker/src/commands/UpdateClusterSoftwareCommand.ts @@ -0,0 +1,89 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { UpdateClusterSoftwareRequest, UpdateClusterSoftwareResponse } from "../models/models_4"; +import { de_UpdateClusterSoftwareCommand, se_UpdateClusterSoftwareCommand } from "../protocols/Aws_json1_1"; +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link UpdateClusterSoftwareCommand}. + */ +export interface UpdateClusterSoftwareCommandInput extends UpdateClusterSoftwareRequest {} +/** + * @public + * + * The output of {@link UpdateClusterSoftwareCommand}. + */ +export interface UpdateClusterSoftwareCommandOutput extends UpdateClusterSoftwareResponse, __MetadataBearer {} + +/** + * @public + *

Updates the platform software of a SageMaker HyperPod cluster for security patching. To learn how to + * use this API, see Update the SageMaker HyperPod platform software of a cluster.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { SageMakerClient, UpdateClusterSoftwareCommand } from "@aws-sdk/client-sagemaker"; // ES Modules import + * // const { SageMakerClient, UpdateClusterSoftwareCommand } = require("@aws-sdk/client-sagemaker"); // CommonJS import + * const client = new SageMakerClient(config); + * const input = { // UpdateClusterSoftwareRequest + * ClusterName: "STRING_VALUE", // required + * }; + * const command = new UpdateClusterSoftwareCommand(input); + * const response = await client.send(command); + * // { // UpdateClusterSoftwareResponse + * // ClusterArn: "STRING_VALUE", // required + * // }; + * + * ``` + * + * @param UpdateClusterSoftwareCommandInput - {@link UpdateClusterSoftwareCommandInput} + * @returns {@link UpdateClusterSoftwareCommandOutput} + * @see {@link UpdateClusterSoftwareCommandInput} for command's `input` shape. + * @see {@link UpdateClusterSoftwareCommandOutput} for command's `response` shape. + * @see {@link SageMakerClientResolvedConfig | config} for SageMakerClient's `config` shape. + * + * @throws {@link ConflictException} (client fault) + *

There was a conflict when you attempted to modify a SageMaker entity such as an + * Experiment or Artifact.

+ * + * @throws {@link ResourceNotFound} (client fault) + *

Resource being access is not found.

+ * + * @throws {@link SageMakerServiceException} + *

Base exception class for all service exceptions from SageMaker service.

+ * + */ +export class UpdateClusterSoftwareCommand extends $Command + .classBuilder< + UpdateClusterSoftwareCommandInput, + UpdateClusterSoftwareCommandOutput, + SageMakerClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: SageMakerClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("SageMaker", "UpdateClusterSoftware", {}) + .n("SageMakerClient", "UpdateClusterSoftwareCommand") + .f(void 0, void 0) + .ser(se_UpdateClusterSoftwareCommand) + .de(de_UpdateClusterSoftwareCommand) + .build() {} diff --git a/clients/client-sagemaker/src/commands/UpdateEndpointCommand.ts b/clients/client-sagemaker/src/commands/UpdateEndpointCommand.ts index 8b108dc5e2ec..f0974e730a98 100644 --- a/clients/client-sagemaker/src/commands/UpdateEndpointCommand.ts +++ b/clients/client-sagemaker/src/commands/UpdateEndpointCommand.ts @@ -28,16 +28,15 @@ export interface UpdateEndpointCommandOutput extends UpdateEndpointOutput, __Met /** * @public - *

Deploys the EndpointConfig specified in the request - * to a new fleet of instances. SageMaker shifts endpoint traffic to the new instances - * with the updated endpoint configuration and then deletes the old instances - * using the previous EndpointConfig (there is no availability loss). - * For more information about how to control the update and traffic shifting process, see - * - * Update models in production.

- *

When SageMaker receives the request, it sets the endpoint status to - * Updating. After updating the endpoint, it sets the status to - * InService. To check the status of an endpoint, use the DescribeEndpoint API. + *

Deploys the EndpointConfig specified in the request to a new fleet of + * instances. SageMaker shifts endpoint traffic to the new instances with the updated endpoint + * configuration and then deletes the old instances using the previous + * EndpointConfig (there is no availability loss). For more information + * about how to control the update and traffic shifting process, see Update + * models in production.

+ *

When SageMaker receives the request, it sets the endpoint status to Updating. + * After updating the endpoint, it sets the status to InService. To check the + * status of an endpoint, use the DescribeEndpoint API. * *

* diff --git a/clients/client-sagemaker/src/commands/index.ts b/clients/client-sagemaker/src/commands/index.ts index 792c53758a99..16e4a363e33c 100644 --- a/clients/client-sagemaker/src/commands/index.ts +++ b/clients/client-sagemaker/src/commands/index.ts @@ -286,6 +286,7 @@ export * from "./UpdateActionCommand"; export * from "./UpdateAppImageConfigCommand"; export * from "./UpdateArtifactCommand"; export * from "./UpdateClusterCommand"; +export * from "./UpdateClusterSoftwareCommand"; export * from "./UpdateCodeRepositoryCommand"; export * from "./UpdateContextCommand"; export * from "./UpdateDeviceFleetCommand"; diff --git a/clients/client-sagemaker/src/models/models_0.ts b/clients/client-sagemaker/src/models/models_0.ts index d6112a51fadd..67aa4c6329a2 100644 --- a/clients/client-sagemaker/src/models/models_0.ts +++ b/clients/client-sagemaker/src/models/models_0.ts @@ -1249,7 +1249,7 @@ export interface S3DataSource { *
    *
  • *

    A key name prefix might look like this: - * s3://bucketname/exampleprefix/ + * s3://bucketname/exampleprefix/ *

    *
  • *
  • @@ -1531,8 +1531,8 @@ export interface OutputDataConfig { * * For more information, see KMS-Managed Encryption * Keys in the Amazon Simple Storage Service Developer Guide. If the output - * data is stored in Amazon S3 Express One Zone, it is encrypted with server-side - * encryption with Amazon S3 managed keys (SSE-S3). KMS key is not supported for Amazon S3 Express One Zone

    + * data is stored in Amazon S3 Express One Zone, it is encrypted with server-side encryption with Amazon S3 + * managed keys (SSE-S3). KMS key is not supported for Amazon S3 Express One Zone

    *

    The KMS key policy must grant permission to the IAM role that you specify in your * CreateTrainingJob, CreateTransformJob, or * CreateHyperParameterTuningJob requests. For more information, see diff --git a/clients/client-sagemaker/src/models/models_2.ts b/clients/client-sagemaker/src/models/models_2.ts index 1c7053cfe1f0..21947bb69416 100644 --- a/clients/client-sagemaker/src/models/models_2.ts +++ b/clients/client-sagemaker/src/models/models_2.ts @@ -362,9 +362,10 @@ export interface ProfilerRuleConfiguration { /** * @public - *

    Configuration for remote debugging for the CreateTrainingJob API. To learn more about the remote - * debugging functionality of SageMaker, see Access a training container through Amazon Web Services Systems Manager (SSM) - * for remote debugging.

    + *

    Configuration for remote debugging for the CreateTrainingJob API. To learn more about the remote debugging + * functionality of SageMaker, see Access a training container + * through Amazon Web Services Systems Manager (SSM) for remote + * debugging.

    */ export interface RemoteDebugConfig { /** @@ -628,9 +629,10 @@ export interface CreateTrainingJobRequest { /** * @public - *

    Configuration for remote debugging. To learn more about the remote - * debugging functionality of SageMaker, see Access a training container through Amazon Web Services Systems Manager (SSM) - * for remote debugging.

    + *

    Configuration for remote debugging. To learn more about the remote debugging + * functionality of SageMaker, see Access a training container + * through Amazon Web Services Systems Manager (SSM) for remote + * debugging.

    */ RemoteDebugConfig?: RemoteDebugConfig; @@ -3656,9 +3658,11 @@ export interface DescribeCompilationJobRequest { * @public *

    Provides information about the location that is configured for storing model * artifacts.

    - *

    Model artifacts are the output that results from training a model, and typically - * consist of trained parameters, a model definition that describes how to compute - * inferences, and other metadata.

    + *

    Model artifacts are outputs that result from training a model. They typically consist + * of trained parameters, a model definition that describes how to compute inferences, and + * other metadata. A SageMaker container stores your trained model artifacts in the + * /opt/ml/model directory. After training has completed, by default, these artifacts + * are uploaded to your Amazon S3 bucket as compressed files.

    */ export interface ModelArtifacts { /** diff --git a/clients/client-sagemaker/src/models/models_3.ts b/clients/client-sagemaker/src/models/models_3.ts index d85ecd67d321..3c6ae8db29a6 100644 --- a/clients/client-sagemaker/src/models/models_3.ts +++ b/clients/client-sagemaker/src/models/models_3.ts @@ -1073,9 +1073,10 @@ export interface DescribeTrainingJobResponse { /** * @public - *

    Configuration for remote debugging. To learn more about the remote - * debugging functionality of SageMaker, see Access a training container through Amazon Web Services Systems Manager (SSM) - * for remote debugging.

    + *

    Configuration for remote debugging. To learn more about the remote debugging + * functionality of SageMaker, see Access a training container + * through Amazon Web Services Systems Manager (SSM) for remote + * debugging.

    */ RemoteDebugConfig?: RemoteDebugConfig; diff --git a/clients/client-sagemaker/src/models/models_4.ts b/clients/client-sagemaker/src/models/models_4.ts index 4cd30d98e1a9..e3a7ab0ab7ac 100644 --- a/clients/client-sagemaker/src/models/models_4.ts +++ b/clients/client-sagemaker/src/models/models_4.ts @@ -4277,9 +4277,10 @@ export interface RegisterDevicesRequest { /** * @public - *

    Configuration for remote debugging for the UpdateTrainingJob API. To learn more about the remote - * debugging functionality of SageMaker, see Access a training container through Amazon Web Services Systems Manager (SSM) - * for remote debugging.

    + *

    Configuration for remote debugging for the UpdateTrainingJob API. To learn more about the remote debugging + * functionality of SageMaker, see Access a training container + * through Amazon Web Services Systems Manager (SSM) for remote + * debugging.

    */ export interface RemoteDebugConfigForUpdate { /** @@ -5858,6 +5859,29 @@ export interface UpdateClusterResponse { ClusterArn: string | undefined; } +/** + * @public + */ +export interface UpdateClusterSoftwareRequest { + /** + * @public + *

    Specify the name or the Amazon Resource Name (ARN) of the SageMaker HyperPod cluster you want to update for security + * patching.

    + */ + ClusterName: string | undefined; +} + +/** + * @public + */ +export interface UpdateClusterSoftwareResponse { + /** + * @public + *

    The Amazon Resource Name (ARN) of the SageMaker HyperPod cluster being updated for security patching.

    + */ + ClusterArn: string | undefined; +} + /** * @public */ @@ -7302,11 +7326,12 @@ export interface UpdateTrainingJobRequest { /** * @public - *

    Configuration for remote debugging while the training job is running. You can - * update the remote debugging configuration when the SecondaryStatus of the job - * is Downloading or Training.To learn more about the remote - * debugging functionality of SageMaker, see Access a training container through Amazon Web Services Systems Manager (SSM) - * for remote debugging.

    + *

    Configuration for remote debugging while the training job is running. You can update + * the remote debugging configuration when the SecondaryStatus of the job is + * Downloading or Training.To learn more about the remote + * debugging functionality of SageMaker, see Access a training container + * through Amazon Web Services Systems Manager (SSM) for remote + * debugging.

    */ RemoteDebugConfig?: RemoteDebugConfigForUpdate; } diff --git a/clients/client-sagemaker/src/protocols/Aws_json1_1.ts b/clients/client-sagemaker/src/protocols/Aws_json1_1.ts index f14c4ecc6519..b7f94bd3a0e8 100644 --- a/clients/client-sagemaker/src/protocols/Aws_json1_1.ts +++ b/clients/client-sagemaker/src/protocols/Aws_json1_1.ts @@ -767,6 +767,10 @@ import { } from "../commands/UpdateAppImageConfigCommand"; import { UpdateArtifactCommandInput, UpdateArtifactCommandOutput } from "../commands/UpdateArtifactCommand"; import { UpdateClusterCommandInput, UpdateClusterCommandOutput } from "../commands/UpdateClusterCommand"; +import { + UpdateClusterSoftwareCommandInput, + UpdateClusterSoftwareCommandOutput, +} from "../commands/UpdateClusterSoftwareCommand"; import { UpdateCodeRepositoryCommandInput, UpdateCodeRepositoryCommandOutput, @@ -1950,6 +1954,8 @@ import { UpdateArtifactResponse, UpdateClusterRequest, UpdateClusterResponse, + UpdateClusterSoftwareRequest, + UpdateClusterSoftwareResponse, UpdateCodeRepositoryInput, UpdateCodeRepositoryOutput, UpdateContextRequest, @@ -5746,6 +5752,19 @@ export const se_UpdateClusterCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_json1_1UpdateClusterSoftwareCommand + */ +export const se_UpdateClusterSoftwareCommand = async ( + input: UpdateClusterSoftwareCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("UpdateClusterSoftware"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_json1_1UpdateCodeRepositoryCommand */ @@ -11746,6 +11765,26 @@ export const de_UpdateClusterCommand = async ( return response; }; +/** + * deserializeAws_json1_1UpdateClusterSoftwareCommand + */ +export const de_UpdateClusterSoftwareCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_UpdateClusterSoftwareResponse(data, context); + const response: UpdateClusterSoftwareCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + /** * deserializeAws_json1_1UpdateCodeRepositoryCommand */ @@ -15585,6 +15624,8 @@ const se_TuningJobCompletionCriteria = (input: TuningJobCompletionCriteria, cont // se_UpdateClusterRequest omitted. +// se_UpdateClusterSoftwareRequest omitted. + // se_UpdateCodeRepositoryInput omitted. // se_UpdateContextRequest omitted. @@ -28173,6 +28214,15 @@ const de_UpdateClusterResponse = (output: any, context: __SerdeContext): UpdateC }) as any; }; +/** + * deserializeAws_json1_1UpdateClusterSoftwareResponse + */ +const de_UpdateClusterSoftwareResponse = (output: any, context: __SerdeContext): UpdateClusterSoftwareResponse => { + return take(output, { + ClusterArn: __expectString, + }) as any; +}; + /** * deserializeAws_json1_1UpdateCodeRepositoryOutput */ diff --git a/codegen/sdk-codegen/aws-models/sagemaker.json b/codegen/sdk-codegen/aws-models/sagemaker.json index 800268bbf875..33152c132628 100644 --- a/codegen/sdk-codegen/aws-models/sagemaker.json +++ b/codegen/sdk-codegen/aws-models/sagemaker.json @@ -266,7 +266,7 @@ "target": "com.amazonaws.sagemaker#AddTagsOutput" }, "traits": { - "smithy.api#documentation": "

    Adds or overwrites one or more tags for the specified SageMaker resource. You can add\n tags to notebook instances, training jobs, hyperparameter tuning jobs, batch transform\n jobs, models, labeling jobs, work teams, endpoint configurations, and\n endpoints.

    \n

    Each tag consists of a key and an optional value. Tag keys must be unique per\n resource. For more information about tags, see For more information, see Amazon Web Services Tagging Strategies.

    \n \n

    Tags that you add to a hyperparameter tuning job by calling this API are also\n added to any training jobs that the hyperparameter tuning job launches after you\n call this API, but not to training jobs that the hyperparameter tuning job launched\n before you called this API. To make sure that the tags associated with a\n hyperparameter tuning job are also added to all training jobs that the\n hyperparameter tuning job launches, add the tags when you first create the tuning\n job by specifying them in the Tags parameter of CreateHyperParameterTuningJob\n

    \n
    \n \n

    Tags that you add to a SageMaker Domain or User Profile by calling this API\n are also added to any Apps that the Domain or User Profile launches after you call\n this API, but not to Apps that the Domain or User Profile launched before you called\n this API. To make sure that the tags associated with a Domain or User Profile are\n also added to all Apps that the Domain or User Profile launches, add the tags when\n you first create the Domain or User Profile by specifying them in the\n Tags parameter of CreateDomain\n or CreateUserProfile.

    \n
    " + "smithy.api#documentation": "

    Adds or overwrites one or more tags for the specified SageMaker resource. You can add\n tags to notebook instances, training jobs, hyperparameter tuning jobs, batch transform\n jobs, models, labeling jobs, work teams, endpoint configurations, and\n endpoints.

    \n

    Each tag consists of a key and an optional value. Tag keys must be unique per\n resource. For more information about tags, see For more information, see Amazon Web Services Tagging Strategies.

    \n \n

    Tags that you add to a hyperparameter tuning job by calling this API are also\n added to any training jobs that the hyperparameter tuning job launches after you\n call this API, but not to training jobs that the hyperparameter tuning job launched\n before you called this API. To make sure that the tags associated with a\n hyperparameter tuning job are also added to all training jobs that the\n hyperparameter tuning job launches, add the tags when you first create the tuning\n job by specifying them in the Tags parameter of CreateHyperParameterTuningJob\n

    \n
    \n \n

    Tags that you add to a SageMaker Domain or User Profile by calling this API are\n also added to any Apps that the Domain or User Profile launches after you call this\n API, but not to Apps that the Domain or User Profile launched before you called this\n API. To make sure that the tags associated with a Domain or User Profile are also\n added to all Apps that the Domain or User Profile launches, add the tags when you\n first create the Domain or User Profile by specifying them in the Tags\n parameter of CreateDomain\n or CreateUserProfile.

    \n
    " } }, "com.amazonaws.sagemaker#AddTagsInput": { @@ -12217,7 +12217,7 @@ "RemoteDebugConfig": { "target": "com.amazonaws.sagemaker#RemoteDebugConfig", "traits": { - "smithy.api#documentation": "

    Configuration for remote debugging. To learn more about the remote \n debugging functionality of SageMaker, see Access a training container through Amazon Web Services Systems Manager (SSM) \n for remote debugging.

    " + "smithy.api#documentation": "

    Configuration for remote debugging. To learn more about the remote debugging\n functionality of SageMaker, see Access a training container\n through Amazon Web Services Systems Manager (SSM) for remote\n debugging.

    " } }, "InfraCheckConfig": { @@ -14599,7 +14599,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "

    Deletes a hyperparameter tuning job. The DeleteHyperParameterTuningJob\n API deletes only the tuning job entry that was created in SageMaker when you called the\n CreateHyperParameterTuningJob API. It does not delete training jobs,\n artifacts, or the IAM role that you specified when creating the model.

    " + "smithy.api#documentation": "

    Deletes a hyperparameter tuning job. The DeleteHyperParameterTuningJob\n API deletes only the tuning job entry that was created in SageMaker when you called the\n CreateHyperParameterTuningJob API. It does not delete training jobs,\n artifacts, or the IAM role that you specified when creating the model.

    " } }, "com.amazonaws.sagemaker#DeleteHyperParameterTuningJobRequest": { @@ -15323,7 +15323,7 @@ "target": "com.amazonaws.sagemaker#DeleteTagsOutput" }, "traits": { - "smithy.api#documentation": "

    Deletes the specified tags from an SageMaker resource.

    \n

    To list a resource's tags, use the ListTags API.

    \n \n

    When you call this API to delete tags from a hyperparameter tuning job, the\n deleted tags are not removed from training jobs that the hyperparameter tuning job\n launched before you called this API.

    \n
    \n \n

    When you call this API to delete tags from a SageMaker Domain or User\n Profile, the deleted tags are not removed from Apps that the SageMaker Domain\n or User Profile launched before you called this API.

    \n
    " + "smithy.api#documentation": "

    Deletes the specified tags from an SageMaker resource.

    \n

    To list a resource's tags, use the ListTags API.

    \n \n

    When you call this API to delete tags from a hyperparameter tuning job, the\n deleted tags are not removed from training jobs that the hyperparameter tuning job\n launched before you called this API.

    \n
    \n \n

    When you call this API to delete tags from a SageMaker Domain or User Profile, the\n deleted tags are not removed from Apps that the SageMaker Domain or User Profile\n launched before you called this API.

    \n
    " } }, "com.amazonaws.sagemaker#DeleteTagsInput": { @@ -22949,7 +22949,7 @@ "RemoteDebugConfig": { "target": "com.amazonaws.sagemaker#RemoteDebugConfig", "traits": { - "smithy.api#documentation": "

    Configuration for remote debugging. To learn more about the remote \n debugging functionality of SageMaker, see Access a training container through Amazon Web Services Systems Manager (SSM) \n for remote debugging.

    " + "smithy.api#documentation": "

    Configuration for remote debugging. To learn more about the remote debugging\n functionality of SageMaker, see Access a training container\n through Amazon Web Services Systems Manager (SSM) for remote\n debugging.

    " } }, "InfraCheckConfig": { @@ -41688,7 +41688,7 @@ } }, "traits": { - "smithy.api#documentation": "

    Provides information about the location that is configured for storing model\n artifacts.

    \n

    Model artifacts are the output that results from training a model, and typically\n consist of trained parameters, a model definition that describes how to compute\n inferences, and other metadata.

    " + "smithy.api#documentation": "

    Provides information about the location that is configured for storing model\n artifacts.

    \n

    Model artifacts are outputs that result from training a model. They typically consist\n of trained parameters, a model definition that describes how to compute inferences, and\n other metadata. A SageMaker container stores your trained model artifacts in the\n /opt/ml/model directory. After training has completed, by default, these artifacts\n are uploaded to your Amazon S3 bucket as compressed files.

    " } }, "com.amazonaws.sagemaker#ModelBiasAppSpecification": { @@ -46505,7 +46505,7 @@ "KmsKeyId": { "target": "com.amazonaws.sagemaker#KmsKeyId", "traits": { - "smithy.api#documentation": "

    The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that SageMaker\n uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. The\n KmsKeyId can be any of the following formats:

    \n
      \n
    • \n

      // KMS Key ID

      \n

      \n \"1234abcd-12ab-34cd-56ef-1234567890ab\"\n

      \n
    • \n
    • \n

      // Amazon Resource Name (ARN) of a KMS Key

      \n

      \n \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"\n

      \n
    • \n
    • \n

      // KMS Key Alias

      \n

      \n \"alias/ExampleAlias\"\n

      \n
    • \n
    • \n

      // Amazon Resource Name (ARN) of a KMS Key Alias

      \n

      \n \"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias\"\n

      \n
    • \n
    \n

    If you use a KMS key ID or an alias of your KMS key, the SageMaker execution role must\n include permissions to call kms:Encrypt. If you don't provide a KMS key ID,\n SageMaker uses the default KMS key for Amazon S3 for your role's account.\n \n For more information, see KMS-Managed Encryption\n Keys in the Amazon Simple Storage Service Developer Guide. If the output\n data is stored in Amazon S3 Express One Zone, it is encrypted with server-side\n encryption with Amazon S3 managed keys (SSE-S3). KMS key is not supported for Amazon S3 Express One Zone

    \n

    The KMS key policy must grant permission to the IAM role that you specify in your\n CreateTrainingJob, CreateTransformJob, or\n CreateHyperParameterTuningJob requests. For more information, see\n Using\n Key Policies in Amazon Web Services KMS in the Amazon Web Services\n Key Management Service Developer Guide.

    " + "smithy.api#documentation": "

    The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that SageMaker\n uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. The\n KmsKeyId can be any of the following formats:

    \n
      \n
    • \n

      // KMS Key ID

      \n

      \n \"1234abcd-12ab-34cd-56ef-1234567890ab\"\n

      \n
    • \n
    • \n

      // Amazon Resource Name (ARN) of a KMS Key

      \n

      \n \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"\n

      \n
    • \n
    • \n

      // KMS Key Alias

      \n

      \n \"alias/ExampleAlias\"\n

      \n
    • \n
    • \n

      // Amazon Resource Name (ARN) of a KMS Key Alias

      \n

      \n \"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias\"\n

      \n
    • \n
    \n

    If you use a KMS key ID or an alias of your KMS key, the SageMaker execution role must\n include permissions to call kms:Encrypt. If you don't provide a KMS key ID,\n SageMaker uses the default KMS key for Amazon S3 for your role's account.\n \n For more information, see KMS-Managed Encryption\n Keys in the Amazon Simple Storage Service Developer Guide. If the output\n data is stored in Amazon S3 Express One Zone, it is encrypted with server-side encryption with Amazon S3\n managed keys (SSE-S3). KMS key is not supported for Amazon S3 Express One Zone

    \n

    The KMS key policy must grant permission to the IAM role that you specify in your\n CreateTrainingJob, CreateTransformJob, or\n CreateHyperParameterTuningJob requests. For more information, see\n Using\n Key Policies in Amazon Web Services KMS in the Amazon Web Services\n Key Management Service Developer Guide.

    " } }, "S3OutputPath": { @@ -52279,7 +52279,7 @@ } }, "traits": { - "smithy.api#documentation": "

    Configuration for remote debugging for the CreateTrainingJob API. To learn more about the remote \n debugging functionality of SageMaker, see Access a training container through Amazon Web Services Systems Manager (SSM) \n for remote debugging.

    " + "smithy.api#documentation": "

    Configuration for remote debugging for the CreateTrainingJob API. To learn more about the remote debugging\n functionality of SageMaker, see Access a training container\n through Amazon Web Services Systems Manager (SSM) for remote\n debugging.

    " } }, "com.amazonaws.sagemaker#RemoteDebugConfigForUpdate": { @@ -52293,7 +52293,7 @@ } }, "traits": { - "smithy.api#documentation": "

    Configuration for remote debugging for the UpdateTrainingJob API. To learn more about the remote \n debugging functionality of SageMaker, see Access a training container through Amazon Web Services Systems Manager (SSM) \n for remote debugging.

    " + "smithy.api#documentation": "

    Configuration for remote debugging for the UpdateTrainingJob API. To learn more about the remote debugging\n functionality of SageMaker, see Access a training container\n through Amazon Web Services Systems Manager (SSM) for remote\n debugging.

    " } }, "com.amazonaws.sagemaker#RenderUiTemplate": { @@ -53222,7 +53222,7 @@ "target": "com.amazonaws.sagemaker#S3Uri", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

    Depending on the value specified for the S3DataType, identifies either\n a key name prefix or a manifest. For example:

    \n
      \n
    • \n

      A key name prefix might look like this:\n\t\ts3://bucketname/exampleprefix/\n

      \n
    • \n
    • \n

      A manifest might look like this:\n s3://bucketname/example.manifest\n

      \n

      A manifest is an S3 object which is a JSON file consisting of an array of\n elements. The first element is a prefix which is followed by one or more\n suffixes. SageMaker appends the suffix elements to the prefix to get a full set of\n S3Uri. Note that the prefix must be a valid non-empty\n S3Uri that precludes users from specifying a manifest whose\n individual S3Uri is sourced from different S3 buckets.

      \n

      The following code example shows a valid manifest format:

      \n

      \n [ {\"prefix\": \"s3://customer_bucket/some/prefix/\"},\n

      \n

      \n \"relative/path/to/custdata-1\",\n

      \n

      \n \"relative/path/custdata-2\",\n

      \n

      \n ...\n

      \n

      \n \"relative/path/custdata-N\"\n

      \n

      \n ]\n

      \n

      This JSON is equivalent to the following S3Uri\n list:

      \n

      \n s3://customer_bucket/some/prefix/relative/path/to/custdata-1\n

      \n

      \n s3://customer_bucket/some/prefix/relative/path/custdata-2\n

      \n

      \n ...\n

      \n

      \n s3://customer_bucket/some/prefix/relative/path/custdata-N\n

      \n

      The complete set of S3Uri in this manifest is the input data\n for the channel for this data source. The object that each S3Uri\n points to must be readable by the IAM role that SageMaker uses to perform tasks on\n your behalf.

      \n
    • \n
    \n

    Your input bucket must be located in same Amazon Web Services region as your\n training job.

    ", + "smithy.api#documentation": "

    Depending on the value specified for the S3DataType, identifies either\n a key name prefix or a manifest. For example:

    \n
      \n
    • \n

      A key name prefix might look like this:\n s3://bucketname/exampleprefix/\n

      \n
    • \n
    • \n

      A manifest might look like this:\n s3://bucketname/example.manifest\n

      \n

      A manifest is an S3 object which is a JSON file consisting of an array of\n elements. The first element is a prefix which is followed by one or more\n suffixes. SageMaker appends the suffix elements to the prefix to get a full set of\n S3Uri. Note that the prefix must be a valid non-empty\n S3Uri that precludes users from specifying a manifest whose\n individual S3Uri is sourced from different S3 buckets.

      \n

      The following code example shows a valid manifest format:

      \n

      \n [ {\"prefix\": \"s3://customer_bucket/some/prefix/\"},\n

      \n

      \n \"relative/path/to/custdata-1\",\n

      \n

      \n \"relative/path/custdata-2\",\n

      \n

      \n ...\n

      \n

      \n \"relative/path/custdata-N\"\n

      \n

      \n ]\n

      \n

      This JSON is equivalent to the following S3Uri\n list:

      \n

      \n s3://customer_bucket/some/prefix/relative/path/to/custdata-1\n

      \n

      \n s3://customer_bucket/some/prefix/relative/path/custdata-2\n

      \n

      \n ...\n

      \n

      \n s3://customer_bucket/some/prefix/relative/path/custdata-N\n

      \n

      The complete set of S3Uri in this manifest is the input data\n for the channel for this data source. The object that each S3Uri\n points to must be readable by the IAM role that SageMaker uses to perform tasks on\n your behalf.

      \n
    • \n
    \n

    Your input bucket must be located in same Amazon Web Services region as your\n training job.

    ", "smithy.api#required": {} } }, @@ -54250,6 +54250,9 @@ { "target": "com.amazonaws.sagemaker#UpdateCluster" }, + { + "target": "com.amazonaws.sagemaker#UpdateClusterSoftware" + }, { "target": "com.amazonaws.sagemaker#UpdateCodeRepository" }, @@ -62665,7 +62668,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Update a SageMaker HyperPod cluster.

    " + "smithy.api#documentation": "

    Updates a SageMaker HyperPod cluster.

    " } }, "com.amazonaws.sagemaker#UpdateClusterRequest": { @@ -62708,6 +62711,58 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#UpdateClusterSoftware": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#UpdateClusterSoftwareRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#UpdateClusterSoftwareResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ConflictException" + }, + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

    Updates the platform software of a SageMaker HyperPod cluster for security patching. To learn how to\n use this API, see Update the SageMaker HyperPod platform software of a cluster.

    " + } + }, + "com.amazonaws.sagemaker#UpdateClusterSoftwareRequest": { + "type": "structure", + "members": { + "ClusterName": { + "target": "com.amazonaws.sagemaker#ClusterNameOrArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

    Specify the name or the Amazon Resource Name (ARN) of the SageMaker HyperPod cluster you want to update for security\n patching.

    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemaker#UpdateClusterSoftwareResponse": { + "type": "structure", + "members": { + "ClusterArn": { + "target": "com.amazonaws.sagemaker#ClusterArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the SageMaker HyperPod cluster being updated for security patching.

    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemaker#UpdateCodeRepository": { "type": "operation", "input": { @@ -63029,7 +63084,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Deploys the EndpointConfig specified in the request\n to a new fleet of instances. SageMaker shifts endpoint traffic to the new instances\n with the updated endpoint configuration and then deletes the old instances\n using the previous EndpointConfig (there is no availability loss).\n For more information about how to control the update and traffic shifting process, see\n \n Update models in production.

    \n

    When SageMaker receives the request, it sets the endpoint status to\n Updating. After updating the endpoint, it sets the status to\n InService. To check the status of an endpoint, use the DescribeEndpoint API.\n \n

    \n \n

    You must not delete an EndpointConfig in use by an endpoint that is\n live or while the UpdateEndpoint or CreateEndpoint\n operations are being performed on the endpoint. To update an endpoint, you must\n create a new EndpointConfig.

    \n

    If you delete the EndpointConfig of an endpoint that is active or\n being created or updated you may lose visibility into the instance type the endpoint\n is using. The endpoint must be deleted in order to stop incurring charges.

    \n
    " + "smithy.api#documentation": "

    Deploys the EndpointConfig specified in the request to a new fleet of\n instances. SageMaker shifts endpoint traffic to the new instances with the updated endpoint\n configuration and then deletes the old instances using the previous\n EndpointConfig (there is no availability loss). For more information\n about how to control the update and traffic shifting process, see Update\n models in production.

    \n

    When SageMaker receives the request, it sets the endpoint status to Updating.\n After updating the endpoint, it sets the status to InService. To check the\n status of an endpoint, use the DescribeEndpoint API.\n \n

    \n \n

    You must not delete an EndpointConfig in use by an endpoint that is\n live or while the UpdateEndpoint or CreateEndpoint\n operations are being performed on the endpoint. To update an endpoint, you must\n create a new EndpointConfig.

    \n

    If you delete the EndpointConfig of an endpoint that is active or\n being created or updated you may lose visibility into the instance type the endpoint\n is using. The endpoint must be deleted in order to stop incurring charges.

    \n
    " } }, "com.amazonaws.sagemaker#UpdateEndpointInput": { @@ -64602,7 +64657,7 @@ "RemoteDebugConfig": { "target": "com.amazonaws.sagemaker#RemoteDebugConfigForUpdate", "traits": { - "smithy.api#documentation": "

    Configuration for remote debugging while the training job is running. You can\n update the remote debugging configuration when the SecondaryStatus of the job\n is Downloading or Training.To learn more about the remote \n debugging functionality of SageMaker, see Access a training container through Amazon Web Services Systems Manager (SSM) \n for remote debugging.

    " + "smithy.api#documentation": "

    Configuration for remote debugging while the training job is running. You can update\n the remote debugging configuration when the SecondaryStatus of the job is\n Downloading or Training.To learn more about the remote\n debugging functionality of SageMaker, see Access a training container\n through Amazon Web Services Systems Manager (SSM) for remote\n debugging.

    " } } },