Skip to content

Commit ac3309b

Browse files
author
awstools
committed
feat(client-deadline): Adds support for select GPU accelerated instance types when creating new service-managed fleets.
1 parent c9dfef1 commit ac3309b

File tree

10 files changed

+380
-145
lines changed

10 files changed

+380
-145
lines changed

clients/client-deadline/src/commands/CreateFleetCommand.ts

+12
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,18 @@ export interface CreateFleetCommandOutput extends CreateFleetResponse, __Metadat
105105
* iops: Number("int"),
106106
* throughputMiB: Number("int"),
107107
* },
108+
* acceleratorCapabilities: { // AcceleratorCapabilities
109+
* selections: [ // AcceleratorSelections // required
110+
* { // AcceleratorSelection
111+
* name: "t4" || "a10g" || "l4" || "l40s", // required
112+
* runtime: "STRING_VALUE",
113+
* },
114+
* ],
115+
* count: {
116+
* min: Number("int"), // required
117+
* max: Number("int"),
118+
* },
119+
* },
108120
* allowedInstanceTypes: [ // InstanceTypes
109121
* "STRING_VALUE",
110122
* ],

clients/client-deadline/src/commands/GetFleetCommand.ts

+12
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,18 @@ export interface GetFleetCommandOutput extends GetFleetResponse, __MetadataBeare
112112
* // iops: Number("int"),
113113
* // throughputMiB: Number("int"),
114114
* // },
115+
* // acceleratorCapabilities: { // AcceleratorCapabilities
116+
* // selections: [ // AcceleratorSelections // required
117+
* // { // AcceleratorSelection
118+
* // name: "t4" || "a10g" || "l4" || "l40s", // required
119+
* // runtime: "STRING_VALUE",
120+
* // },
121+
* // ],
122+
* // count: {
123+
* // min: Number("int"), // required
124+
* // max: Number("int"),
125+
* // },
126+
* // },
115127
* // allowedInstanceTypes: [ // InstanceTypes
116128
* // "STRING_VALUE",
117129
* // ],

clients/client-deadline/src/commands/ListFleetsCommand.ts

+12
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,18 @@ export interface ListFleetsCommandOutput extends ListFleetsResponse, __MetadataB
117117
* // iops: Number("int"),
118118
* // throughputMiB: Number("int"),
119119
* // },
120+
* // acceleratorCapabilities: { // AcceleratorCapabilities
121+
* // selections: [ // AcceleratorSelections // required
122+
* // { // AcceleratorSelection
123+
* // name: "t4" || "a10g" || "l4" || "l40s", // required
124+
* // runtime: "STRING_VALUE",
125+
* // },
126+
* // ],
127+
* // count: {
128+
* // min: Number("int"), // required
129+
* // max: Number("int"),
130+
* // },
131+
* // },
120132
* // allowedInstanceTypes: [ // InstanceTypes
121133
* // "STRING_VALUE",
122134
* // ],

clients/client-deadline/src/commands/ListQueueMembersCommand.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { DeadlineClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DeadlineClient";
88
import { commonParams } from "../endpoint/EndpointParameters";
9-
import { ListQueueMembersRequest, ListQueueMembersResponse } from "../models/models_0";
9+
import { ListQueueMembersRequest } from "../models/models_0";
10+
import { ListQueueMembersResponse } from "../models/models_1";
1011
import { de_ListQueueMembersCommand, se_ListQueueMembersCommand } from "../protocols/Aws_restJson1";
1112

1213
/**

clients/client-deadline/src/commands/ListQueuesCommand.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { DeadlineClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DeadlineClient";
88
import { commonParams } from "../endpoint/EndpointParameters";
9-
import { ListQueuesRequest } from "../models/models_0";
10-
import { ListQueuesResponse } from "../models/models_1";
9+
import { ListQueuesRequest, ListQueuesResponse } from "../models/models_1";
1110
import { de_ListQueuesCommand, se_ListQueuesCommand } from "../protocols/Aws_restJson1";
1211

1312
/**

clients/client-deadline/src/commands/UpdateFleetCommand.ts

+12
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,18 @@ export interface UpdateFleetCommandOutput extends UpdateFleetResponse, __Metadat
104104
* iops: Number("int"),
105105
* throughputMiB: Number("int"),
106106
* },
107+
* acceleratorCapabilities: { // AcceleratorCapabilities
108+
* selections: [ // AcceleratorSelections // required
109+
* { // AcceleratorSelection
110+
* name: "t4" || "a10g" || "l4" || "l40s", // required
111+
* runtime: "STRING_VALUE",
112+
* },
113+
* ],
114+
* count: {
115+
* min: Number("int"), // required
116+
* max: Number("int"),
117+
* },
118+
* },
107119
* allowedInstanceTypes: [ // InstanceTypes
108120
* "STRING_VALUE",
109121
* ],

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

+66-138
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,74 @@ import { DeadlineServiceException as __BaseException } from "./DeadlineServiceEx
1111
*/
1212
export interface AcceleratorCountRange {
1313
/**
14-
* <p>The minimum GPU for the accelerator.</p>
14+
* <p>The minimum number of GPUs for the accelerator. If you set the value to 0, a worker will
15+
* still have 1 GPU.</p>
1516
* @public
1617
*/
1718
min: number | undefined;
1819

1920
/**
20-
* <p>The maximum GPU for the accelerator.</p>
21+
* <p>The maximum number of GPUs for the accelerator.</p>
2122
* @public
2223
*/
2324
max?: number | undefined;
2425
}
2526

27+
/**
28+
* @public
29+
* @enum
30+
*/
31+
export const AcceleratorName = {
32+
A10G: "a10g",
33+
L4: "l4",
34+
L40S: "l40s",
35+
T4: "t4",
36+
} as const;
37+
38+
/**
39+
* @public
40+
*/
41+
export type AcceleratorName = (typeof AcceleratorName)[keyof typeof AcceleratorName];
42+
43+
/**
44+
* <p>Values that you can use to select a particular Amazon EC2 instance type. </p>
45+
* @public
46+
*/
47+
export interface AcceleratorSelection {
48+
/**
49+
* <p>The name of the GPU accelerator.</p>
50+
* @public
51+
*/
52+
name: AcceleratorName | undefined;
53+
54+
/**
55+
* <p>The driver version that the GPU accelerator uses. </p>
56+
* @public
57+
*/
58+
runtime?: string | undefined;
59+
}
60+
61+
/**
62+
* <p>Provides information about the GPU accelerators and drivers for the instance types in a
63+
* fleet. If you include the <code>acceleratorCapabilities</code> property in the <a href="https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_ServiceManagedEc2InstanceCapabilities">ServiceManagedEc2InstanceCapabilities</a> object, all of the Amazon EC2
64+
* instances will have at least one accelerator. </p>
65+
* @public
66+
*/
67+
export interface AcceleratorCapabilities {
68+
/**
69+
* <p>A list of objects that contain the GPU name of the accelerator and driver for the
70+
* instance types that support the accelerator.</p>
71+
* @public
72+
*/
73+
selections: AcceleratorSelection[] | undefined;
74+
75+
/**
76+
* <p>The number of GPUs on each worker. The default is 1.</p>
77+
* @public
78+
*/
79+
count?: AcceleratorCountRange | undefined;
80+
}
81+
2682
/**
2783
* <p>The range for memory, in MiB, to use for the accelerator.</p>
2884
* @public
@@ -3189,6 +3245,14 @@ export interface ServiceManagedEc2InstanceCapabilities {
31893245
*/
31903246
rootEbsVolume?: Ec2EbsVolume | undefined;
31913247

3248+
/**
3249+
* <p>The GPU accelerator capabilities required for the Amazon EC2 instances. If you
3250+
* include the <code>acceleratorCapabilities</code> property in the <a href="https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_ServiceManagedEc2InstanceCapabilities">ServiceManagedEc2InstanceCapabilities</a> object, all of the Amazon EC2
3251+
* instances will have at least one accelerator. </p>
3252+
* @public
3253+
*/
3254+
acceleratorCapabilities?: AcceleratorCapabilities | undefined;
3255+
31923256
/**
31933257
* <p>The allowable Amazon EC2 instance types.</p>
31943258
* @public
@@ -8707,142 +8771,6 @@ export interface QueueMember {
87078771
membershipLevel: MembershipLevel | undefined;
87088772
}
87098773

8710-
/**
8711-
* @public
8712-
*/
8713-
export interface ListQueueMembersResponse {
8714-
/**
8715-
* <p>The members on the list.</p>
8716-
* @public
8717-
*/
8718-
members: QueueMember[] | undefined;
8719-
8720-
/**
8721-
* <p>If Deadline Cloud returns <code>nextToken</code>, then there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. To retrieve the next page, call the operation again using the returned token. Keep all other arguments unchanged. If no results remain, then <code>nextToken</code> is set to <code>null</code>. Each pagination token expires after 24 hours. If you provide a token that isn't valid, then you receive an HTTP 400 <code>ValidationException</code> error.</p>
8722-
* @public
8723-
*/
8724-
nextToken?: string | undefined;
8725-
}
8726-
8727-
/**
8728-
* @public
8729-
*/
8730-
export interface ListQueuesRequest {
8731-
/**
8732-
* <p>The farm ID of the queue.</p>
8733-
* @public
8734-
*/
8735-
farmId: string | undefined;
8736-
8737-
/**
8738-
* <p>The principal IDs to include in the list of queues.</p>
8739-
* @public
8740-
*/
8741-
principalId?: string | undefined;
8742-
8743-
/**
8744-
* <p>The status of the queues listed.</p>
8745-
* <ul>
8746-
* <li>
8747-
* <p>
8748-
* <code>ACTIVE</code>–The queues are active.</p>
8749-
* </li>
8750-
* <li>
8751-
* <p>
8752-
* <code>SCHEDULING</code>–The queues are scheduling.</p>
8753-
* </li>
8754-
* <li>
8755-
* <p>
8756-
* <code>SCHEDULING_BLOCKED</code>–The queue scheduling is blocked for these
8757-
* queues.</p>
8758-
* </li>
8759-
* </ul>
8760-
* @public
8761-
*/
8762-
status?: QueueStatus | undefined;
8763-
8764-
/**
8765-
* <p>The token for the next set of results, or <code>null</code> to start from the beginning.</p>
8766-
* @public
8767-
*/
8768-
nextToken?: string | undefined;
8769-
8770-
/**
8771-
* <p>The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages.</p>
8772-
* @public
8773-
*/
8774-
maxResults?: number | undefined;
8775-
}
8776-
8777-
/**
8778-
* <p>The details of a queue summary.</p>
8779-
* @public
8780-
*/
8781-
export interface QueueSummary {
8782-
/**
8783-
* <p>The farm ID.</p>
8784-
* @public
8785-
*/
8786-
farmId: string | undefined;
8787-
8788-
/**
8789-
* <p>The queue ID.</p>
8790-
* @public
8791-
*/
8792-
queueId: string | undefined;
8793-
8794-
/**
8795-
* <p>The display name of the queue summary to update.</p>
8796-
* <important>
8797-
* <p>This field can store any content. Escape or encode this content before displaying it on a webpage or any other system that might interpret the content of this field.</p>
8798-
* </important>
8799-
* @public
8800-
*/
8801-
displayName: string | undefined;
8802-
8803-
/**
8804-
* <p>That status of the queue.</p>
8805-
* @public
8806-
*/
8807-
status: QueueStatus | undefined;
8808-
8809-
/**
8810-
* <p>The default action taken on a queue summary if a budget wasn't configured.</p>
8811-
* @public
8812-
*/
8813-
defaultBudgetAction: DefaultQueueBudgetAction | undefined;
8814-
8815-
/**
8816-
* <p>The reason the queue is blocked, if applicable.</p>
8817-
* @public
8818-
*/
8819-
blockedReason?: QueueBlockedReason | undefined;
8820-
8821-
/**
8822-
* <p>The date and time the resource was created.</p>
8823-
* @public
8824-
*/
8825-
createdAt: Date | undefined;
8826-
8827-
/**
8828-
* <p>The user or system that created this resource.</p>
8829-
* @public
8830-
*/
8831-
createdBy: string | undefined;
8832-
8833-
/**
8834-
* <p>The date and time the resource was updated.</p>
8835-
* @public
8836-
*/
8837-
updatedAt?: Date | undefined;
8838-
8839-
/**
8840-
* <p>The user or system that updated this resource.</p>
8841-
* @public
8842-
*/
8843-
updatedBy?: string | undefined;
8844-
}
8845-
88468774
/**
88478775
* @internal
88488776
*/

0 commit comments

Comments
 (0)