Skip to content

Commit 4f78a2a

Browse files
author
awstools
committed
feat(client-sagemaker): This release adds the ability for customers to attach and detach their EBS volumes to EKS-orchestrated HyperPod cluster nodes.
1 parent 0f75d46 commit 4f78a2a

19 files changed

Lines changed: 1297 additions & 500 deletions

clients/client-sagemaker/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,14 @@ AssociateTrialComponent
226226

227227
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sagemaker/command/AssociateTrialComponentCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sagemaker/Interface/AssociateTrialComponentCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sagemaker/Interface/AssociateTrialComponentCommandOutput/)
228228

229+
</details>
230+
<details>
231+
<summary>
232+
AttachClusterNodeVolume
233+
</summary>
234+
235+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sagemaker/command/AttachClusterNodeVolumeCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sagemaker/Interface/AttachClusterNodeVolumeCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sagemaker/Interface/AttachClusterNodeVolumeCommandOutput/)
236+
229237
</details>
230238
<details>
231239
<summary>
@@ -1754,6 +1762,14 @@ DescribeWorkteam
17541762

17551763
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sagemaker/command/DescribeWorkteamCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sagemaker/Interface/DescribeWorkteamCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sagemaker/Interface/DescribeWorkteamCommandOutput/)
17561764

1765+
</details>
1766+
<details>
1767+
<summary>
1768+
DetachClusterNodeVolume
1769+
</summary>
1770+
1771+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sagemaker/command/DetachClusterNodeVolumeCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sagemaker/Interface/DetachClusterNodeVolumeCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sagemaker/Interface/DetachClusterNodeVolumeCommandOutput/)
1772+
17571773
</details>
17581774
<details>
17591775
<summary>

clients/client-sagemaker/src/SageMaker.ts

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ import {
1313
AssociateTrialComponentCommandInput,
1414
AssociateTrialComponentCommandOutput,
1515
} from "./commands/AssociateTrialComponentCommand";
16+
import {
17+
AttachClusterNodeVolumeCommand,
18+
AttachClusterNodeVolumeCommandInput,
19+
AttachClusterNodeVolumeCommandOutput,
20+
} from "./commands/AttachClusterNodeVolumeCommand";
1621
import {
1722
BatchDeleteClusterNodesCommand,
1823
BatchDeleteClusterNodesCommandInput,
@@ -908,6 +913,11 @@ import {
908913
DescribeWorkteamCommandInput,
909914
DescribeWorkteamCommandOutput,
910915
} from "./commands/DescribeWorkteamCommand";
916+
import {
917+
DetachClusterNodeVolumeCommand,
918+
DetachClusterNodeVolumeCommandInput,
919+
DetachClusterNodeVolumeCommandOutput,
920+
} from "./commands/DetachClusterNodeVolumeCommand";
911921
import {
912922
DisableSagemakerServicecatalogPortfolioCommand,
913923
DisableSagemakerServicecatalogPortfolioCommandInput,
@@ -1690,6 +1700,7 @@ const commands = {
16901700
AddAssociationCommand,
16911701
AddTagsCommand,
16921702
AssociateTrialComponentCommand,
1703+
AttachClusterNodeVolumeCommand,
16931704
BatchDeleteClusterNodesCommand,
16941705
BatchDescribeModelPackageCommand,
16951706
CreateActionCommand,
@@ -1881,6 +1892,7 @@ const commands = {
18811892
DescribeUserProfileCommand,
18821893
DescribeWorkforceCommand,
18831894
DescribeWorkteamCommand,
1895+
DetachClusterNodeVolumeCommand,
18841896
DisableSagemakerServicecatalogPortfolioCommand,
18851897
DisassociateTrialComponentCommand,
18861898
EnableSagemakerServicecatalogPortfolioCommand,
@@ -2094,6 +2106,23 @@ export interface SageMaker {
20942106
cb: (err: any, data?: AssociateTrialComponentCommandOutput) => void
20952107
): void;
20962108

2109+
/**
2110+
* @see {@link AttachClusterNodeVolumeCommand}
2111+
*/
2112+
attachClusterNodeVolume(
2113+
args: AttachClusterNodeVolumeCommandInput,
2114+
options?: __HttpHandlerOptions
2115+
): Promise<AttachClusterNodeVolumeCommandOutput>;
2116+
attachClusterNodeVolume(
2117+
args: AttachClusterNodeVolumeCommandInput,
2118+
cb: (err: any, data?: AttachClusterNodeVolumeCommandOutput) => void
2119+
): void;
2120+
attachClusterNodeVolume(
2121+
args: AttachClusterNodeVolumeCommandInput,
2122+
options: __HttpHandlerOptions,
2123+
cb: (err: any, data?: AttachClusterNodeVolumeCommandOutput) => void
2124+
): void;
2125+
20972126
/**
20982127
* @see {@link BatchDeleteClusterNodesCommand}
20992128
*/
@@ -5106,6 +5135,23 @@ export interface SageMaker {
51065135
cb: (err: any, data?: DescribeWorkteamCommandOutput) => void
51075136
): void;
51085137

5138+
/**
5139+
* @see {@link DetachClusterNodeVolumeCommand}
5140+
*/
5141+
detachClusterNodeVolume(
5142+
args: DetachClusterNodeVolumeCommandInput,
5143+
options?: __HttpHandlerOptions
5144+
): Promise<DetachClusterNodeVolumeCommandOutput>;
5145+
detachClusterNodeVolume(
5146+
args: DetachClusterNodeVolumeCommandInput,
5147+
cb: (err: any, data?: DetachClusterNodeVolumeCommandOutput) => void
5148+
): void;
5149+
detachClusterNodeVolume(
5150+
args: DetachClusterNodeVolumeCommandInput,
5151+
options: __HttpHandlerOptions,
5152+
cb: (err: any, data?: DetachClusterNodeVolumeCommandOutput) => void
5153+
): void;
5154+
51095155
/**
51105156
* @see {@link DisableSagemakerServicecatalogPortfolioCommand}
51115157
*/

clients/client-sagemaker/src/SageMakerClient.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ import {
5959
AssociateTrialComponentCommandInput,
6060
AssociateTrialComponentCommandOutput,
6161
} from "./commands/AssociateTrialComponentCommand";
62+
import {
63+
AttachClusterNodeVolumeCommandInput,
64+
AttachClusterNodeVolumeCommandOutput,
65+
} from "./commands/AttachClusterNodeVolumeCommand";
6266
import {
6367
BatchDeleteClusterNodesCommandInput,
6468
BatchDeleteClusterNodesCommandOutput,
@@ -562,6 +566,10 @@ import {
562566
} from "./commands/DescribeUserProfileCommand";
563567
import { DescribeWorkforceCommandInput, DescribeWorkforceCommandOutput } from "./commands/DescribeWorkforceCommand";
564568
import { DescribeWorkteamCommandInput, DescribeWorkteamCommandOutput } from "./commands/DescribeWorkteamCommand";
569+
import {
570+
DetachClusterNodeVolumeCommandInput,
571+
DetachClusterNodeVolumeCommandOutput,
572+
} from "./commands/DetachClusterNodeVolumeCommand";
565573
import {
566574
DisableSagemakerServicecatalogPortfolioCommandInput,
567575
DisableSagemakerServicecatalogPortfolioCommandOutput,
@@ -1012,6 +1020,7 @@ export type ServiceInputTypes =
10121020
| AddAssociationCommandInput
10131021
| AddTagsCommandInput
10141022
| AssociateTrialComponentCommandInput
1023+
| AttachClusterNodeVolumeCommandInput
10151024
| BatchDeleteClusterNodesCommandInput
10161025
| BatchDescribeModelPackageCommandInput
10171026
| CreateActionCommandInput
@@ -1203,6 +1212,7 @@ export type ServiceInputTypes =
12031212
| DescribeUserProfileCommandInput
12041213
| DescribeWorkforceCommandInput
12051214
| DescribeWorkteamCommandInput
1215+
| DetachClusterNodeVolumeCommandInput
12061216
| DisableSagemakerServicecatalogPortfolioCommandInput
12071217
| DisassociateTrialComponentCommandInput
12081218
| EnableSagemakerServicecatalogPortfolioCommandInput
@@ -1379,6 +1389,7 @@ export type ServiceOutputTypes =
13791389
| AddAssociationCommandOutput
13801390
| AddTagsCommandOutput
13811391
| AssociateTrialComponentCommandOutput
1392+
| AttachClusterNodeVolumeCommandOutput
13821393
| BatchDeleteClusterNodesCommandOutput
13831394
| BatchDescribeModelPackageCommandOutput
13841395
| CreateActionCommandOutput
@@ -1570,6 +1581,7 @@ export type ServiceOutputTypes =
15701581
| DescribeUserProfileCommandOutput
15711582
| DescribeWorkforceCommandOutput
15721583
| DescribeWorkteamCommandOutput
1584+
| DetachClusterNodeVolumeCommandOutput
15731585
| DisableSagemakerServicecatalogPortfolioCommandOutput
15741586
| DisassociateTrialComponentCommandOutput
15751587
| EnableSagemakerServicecatalogPortfolioCommandOutput
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
// smithy-typescript generated code
2+
import { getEndpointPlugin } from "@smithy/middleware-endpoint";
3+
import { getSerdePlugin } from "@smithy/middleware-serde";
4+
import { Command as $Command } from "@smithy/smithy-client";
5+
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
6+
7+
import { commonParams } from "../endpoint/EndpointParameters";
8+
import { AttachClusterNodeVolumeRequest, AttachClusterNodeVolumeResponse } from "../models/models_0";
9+
import { de_AttachClusterNodeVolumeCommand, se_AttachClusterNodeVolumeCommand } from "../protocols/Aws_json1_1";
10+
import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient";
11+
12+
/**
13+
* @public
14+
*/
15+
export type { __MetadataBearer };
16+
export { $Command };
17+
/**
18+
* @public
19+
*
20+
* The input for {@link AttachClusterNodeVolumeCommand}.
21+
*/
22+
export interface AttachClusterNodeVolumeCommandInput extends AttachClusterNodeVolumeRequest {}
23+
/**
24+
* @public
25+
*
26+
* The output of {@link AttachClusterNodeVolumeCommand}.
27+
*/
28+
export interface AttachClusterNodeVolumeCommandOutput extends AttachClusterNodeVolumeResponse, __MetadataBearer {}
29+
30+
/**
31+
* <p> Attaches your Amazon Elastic Block Store (Amazon EBS) volume to a node in your EKS-orchestrated HyperPod cluster. </p> <p> This API works with the Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) driver to manage the lifecycle of persistent storage in your HyperPod EKS clusters. </p>
32+
* @example
33+
* Use a bare-bones client and the command you need to make an API call.
34+
* ```javascript
35+
* import { SageMakerClient, AttachClusterNodeVolumeCommand } from "@aws-sdk/client-sagemaker"; // ES Modules import
36+
* // const { SageMakerClient, AttachClusterNodeVolumeCommand } = require("@aws-sdk/client-sagemaker"); // CommonJS import
37+
* const client = new SageMakerClient(config);
38+
* const input = { // AttachClusterNodeVolumeRequest
39+
* ClusterArn: "STRING_VALUE", // required
40+
* NodeId: "STRING_VALUE", // required
41+
* VolumeId: "STRING_VALUE", // required
42+
* };
43+
* const command = new AttachClusterNodeVolumeCommand(input);
44+
* const response = await client.send(command);
45+
* // { // AttachClusterNodeVolumeResponse
46+
* // ClusterArn: "STRING_VALUE", // required
47+
* // NodeId: "STRING_VALUE", // required
48+
* // VolumeId: "STRING_VALUE", // required
49+
* // AttachTime: new Date("TIMESTAMP"), // required
50+
* // Status: "attaching" || "attached" || "detaching" || "detached" || "busy", // required
51+
* // DeviceName: "STRING_VALUE", // required
52+
* // };
53+
*
54+
* ```
55+
*
56+
* @param AttachClusterNodeVolumeCommandInput - {@link AttachClusterNodeVolumeCommandInput}
57+
* @returns {@link AttachClusterNodeVolumeCommandOutput}
58+
* @see {@link AttachClusterNodeVolumeCommandInput} for command's `input` shape.
59+
* @see {@link AttachClusterNodeVolumeCommandOutput} for command's `response` shape.
60+
* @see {@link SageMakerClientResolvedConfig | config} for SageMakerClient's `config` shape.
61+
*
62+
* @throws {@link ResourceNotFound} (client fault)
63+
* <p>Resource being access is not found.</p>
64+
*
65+
* @throws {@link SageMakerServiceException}
66+
* <p>Base exception class for all service exceptions from SageMaker service.</p>
67+
*
68+
*
69+
* @public
70+
*/
71+
export class AttachClusterNodeVolumeCommand extends $Command
72+
.classBuilder<
73+
AttachClusterNodeVolumeCommandInput,
74+
AttachClusterNodeVolumeCommandOutput,
75+
SageMakerClientResolvedConfig,
76+
ServiceInputTypes,
77+
ServiceOutputTypes
78+
>()
79+
.ep(commonParams)
80+
.m(function (this: any, Command: any, cs: any, config: SageMakerClientResolvedConfig, o: any) {
81+
return [
82+
getSerdePlugin(config, this.serialize, this.deserialize),
83+
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
84+
];
85+
})
86+
.s("SageMaker", "AttachClusterNodeVolume", {})
87+
.n("SageMakerClient", "AttachClusterNodeVolumeCommand")
88+
.f(void 0, void 0)
89+
.ser(se_AttachClusterNodeVolumeCommand)
90+
.de(de_AttachClusterNodeVolumeCommand)
91+
.build() {
92+
/** @internal type navigation helper, not in runtime. */
93+
protected declare static __types: {
94+
api: {
95+
input: AttachClusterNodeVolumeRequest;
96+
output: AttachClusterNodeVolumeResponse;
97+
};
98+
sdk: {
99+
input: AttachClusterNodeVolumeCommandInput;
100+
output: AttachClusterNodeVolumeCommandOutput;
101+
};
102+
};
103+
}
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
// smithy-typescript generated code
2+
import { getEndpointPlugin } from "@smithy/middleware-endpoint";
3+
import { getSerdePlugin } from "@smithy/middleware-serde";
4+
import { Command as $Command } from "@smithy/smithy-client";
5+
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
6+
7+
import { commonParams } from "../endpoint/EndpointParameters";
8+
import { DetachClusterNodeVolumeRequest, DetachClusterNodeVolumeResponse } from "../models/models_3";
9+
import { de_DetachClusterNodeVolumeCommand, se_DetachClusterNodeVolumeCommand } from "../protocols/Aws_json1_1";
10+
import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient";
11+
12+
/**
13+
* @public
14+
*/
15+
export type { __MetadataBearer };
16+
export { $Command };
17+
/**
18+
* @public
19+
*
20+
* The input for {@link DetachClusterNodeVolumeCommand}.
21+
*/
22+
export interface DetachClusterNodeVolumeCommandInput extends DetachClusterNodeVolumeRequest {}
23+
/**
24+
* @public
25+
*
26+
* The output of {@link DetachClusterNodeVolumeCommand}.
27+
*/
28+
export interface DetachClusterNodeVolumeCommandOutput extends DetachClusterNodeVolumeResponse, __MetadataBearer {}
29+
30+
/**
31+
* <p> Detaches your Amazon Elastic Block Store (Amazon EBS) volume from a node in your EKS-orchestrated SageMaker HyperPod cluster.</p> <p> This API works with the Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) driver to manage the lifecycle of persistent storage in your HyperPod EKS clusters. </p>
32+
* @example
33+
* Use a bare-bones client and the command you need to make an API call.
34+
* ```javascript
35+
* import { SageMakerClient, DetachClusterNodeVolumeCommand } from "@aws-sdk/client-sagemaker"; // ES Modules import
36+
* // const { SageMakerClient, DetachClusterNodeVolumeCommand } = require("@aws-sdk/client-sagemaker"); // CommonJS import
37+
* const client = new SageMakerClient(config);
38+
* const input = { // DetachClusterNodeVolumeRequest
39+
* ClusterArn: "STRING_VALUE", // required
40+
* NodeId: "STRING_VALUE", // required
41+
* VolumeId: "STRING_VALUE", // required
42+
* };
43+
* const command = new DetachClusterNodeVolumeCommand(input);
44+
* const response = await client.send(command);
45+
* // { // DetachClusterNodeVolumeResponse
46+
* // ClusterArn: "STRING_VALUE", // required
47+
* // NodeId: "STRING_VALUE", // required
48+
* // VolumeId: "STRING_VALUE", // required
49+
* // AttachTime: new Date("TIMESTAMP"), // required
50+
* // Status: "attaching" || "attached" || "detaching" || "detached" || "busy", // required
51+
* // DeviceName: "STRING_VALUE", // required
52+
* // };
53+
*
54+
* ```
55+
*
56+
* @param DetachClusterNodeVolumeCommandInput - {@link DetachClusterNodeVolumeCommandInput}
57+
* @returns {@link DetachClusterNodeVolumeCommandOutput}
58+
* @see {@link DetachClusterNodeVolumeCommandInput} for command's `input` shape.
59+
* @see {@link DetachClusterNodeVolumeCommandOutput} for command's `response` shape.
60+
* @see {@link SageMakerClientResolvedConfig | config} for SageMakerClient's `config` shape.
61+
*
62+
* @throws {@link ResourceNotFound} (client fault)
63+
* <p>Resource being access is not found.</p>
64+
*
65+
* @throws {@link SageMakerServiceException}
66+
* <p>Base exception class for all service exceptions from SageMaker service.</p>
67+
*
68+
*
69+
* @public
70+
*/
71+
export class DetachClusterNodeVolumeCommand extends $Command
72+
.classBuilder<
73+
DetachClusterNodeVolumeCommandInput,
74+
DetachClusterNodeVolumeCommandOutput,
75+
SageMakerClientResolvedConfig,
76+
ServiceInputTypes,
77+
ServiceOutputTypes
78+
>()
79+
.ep(commonParams)
80+
.m(function (this: any, Command: any, cs: any, config: SageMakerClientResolvedConfig, o: any) {
81+
return [
82+
getSerdePlugin(config, this.serialize, this.deserialize),
83+
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
84+
];
85+
})
86+
.s("SageMaker", "DetachClusterNodeVolume", {})
87+
.n("SageMakerClient", "DetachClusterNodeVolumeCommand")
88+
.f(void 0, void 0)
89+
.ser(se_DetachClusterNodeVolumeCommand)
90+
.de(de_DetachClusterNodeVolumeCommand)
91+
.build() {
92+
/** @internal type navigation helper, not in runtime. */
93+
protected declare static __types: {
94+
api: {
95+
input: DetachClusterNodeVolumeRequest;
96+
output: DetachClusterNodeVolumeResponse;
97+
};
98+
sdk: {
99+
input: DetachClusterNodeVolumeCommandInput;
100+
output: DetachClusterNodeVolumeCommandOutput;
101+
};
102+
};
103+
}

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

Lines changed: 2 additions & 1 deletion
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 { ListActionsRequest, ListActionsResponse } from "../models/models_3";
8+
import { ListActionsRequest } from "../models/models_3";
9+
import { ListActionsResponse } from "../models/models_4";
910
import { de_ListActionsCommand, se_ListActionsCommand } from "../protocols/Aws_json1_1";
1011
import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient";
1112

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +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 { ListAlgorithmsInput, ListAlgorithmsOutput } from "../models/models_3";
8+
import { ListAlgorithmsInput, ListAlgorithmsOutput } from "../models/models_4";
99
import { de_ListAlgorithmsCommand, se_ListAlgorithmsCommand } from "../protocols/Aws_json1_1";
1010
import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient";
1111

0 commit comments

Comments
 (0)