diff --git a/clients/client-deadline/src/commands/CreateFleetCommand.ts b/clients/client-deadline/src/commands/CreateFleetCommand.ts index ea3c881980b99..f337ded73a200 100644 --- a/clients/client-deadline/src/commands/CreateFleetCommand.ts +++ b/clients/client-deadline/src/commands/CreateFleetCommand.ts @@ -105,6 +105,18 @@ export interface CreateFleetCommandOutput extends CreateFleetResponse, __Metadat * iops: Number("int"), * throughputMiB: Number("int"), * }, + * acceleratorCapabilities: { // AcceleratorCapabilities + * selections: [ // AcceleratorSelections // required + * { // AcceleratorSelection + * name: "t4" || "a10g" || "l4" || "l40s", // required + * runtime: "STRING_VALUE", + * }, + * ], + * count: { + * min: Number("int"), // required + * max: Number("int"), + * }, + * }, * allowedInstanceTypes: [ // InstanceTypes * "STRING_VALUE", * ], diff --git a/clients/client-deadline/src/commands/GetFleetCommand.ts b/clients/client-deadline/src/commands/GetFleetCommand.ts index 3bf72c69ed4a2..29d9591fde1e2 100644 --- a/clients/client-deadline/src/commands/GetFleetCommand.ts +++ b/clients/client-deadline/src/commands/GetFleetCommand.ts @@ -112,6 +112,18 @@ export interface GetFleetCommandOutput extends GetFleetResponse, __MetadataBeare * // iops: Number("int"), * // throughputMiB: Number("int"), * // }, + * // acceleratorCapabilities: { // AcceleratorCapabilities + * // selections: [ // AcceleratorSelections // required + * // { // AcceleratorSelection + * // name: "t4" || "a10g" || "l4" || "l40s", // required + * // runtime: "STRING_VALUE", + * // }, + * // ], + * // count: { + * // min: Number("int"), // required + * // max: Number("int"), + * // }, + * // }, * // allowedInstanceTypes: [ // InstanceTypes * // "STRING_VALUE", * // ], diff --git a/clients/client-deadline/src/commands/ListFleetsCommand.ts b/clients/client-deadline/src/commands/ListFleetsCommand.ts index 8d72c3e54e268..e17c82191bad2 100644 --- a/clients/client-deadline/src/commands/ListFleetsCommand.ts +++ b/clients/client-deadline/src/commands/ListFleetsCommand.ts @@ -117,6 +117,18 @@ export interface ListFleetsCommandOutput extends ListFleetsResponse, __MetadataB * // iops: Number("int"), * // throughputMiB: Number("int"), * // }, + * // acceleratorCapabilities: { // AcceleratorCapabilities + * // selections: [ // AcceleratorSelections // required + * // { // AcceleratorSelection + * // name: "t4" || "a10g" || "l4" || "l40s", // required + * // runtime: "STRING_VALUE", + * // }, + * // ], + * // count: { + * // min: Number("int"), // required + * // max: Number("int"), + * // }, + * // }, * // allowedInstanceTypes: [ // InstanceTypes * // "STRING_VALUE", * // ], diff --git a/clients/client-deadline/src/commands/ListQueueMembersCommand.ts b/clients/client-deadline/src/commands/ListQueueMembersCommand.ts index 1e6b799c8e14e..9652fa76725cf 100644 --- a/clients/client-deadline/src/commands/ListQueueMembersCommand.ts +++ b/clients/client-deadline/src/commands/ListQueueMembersCommand.ts @@ -6,7 +6,8 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { DeadlineClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DeadlineClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { ListQueueMembersRequest, ListQueueMembersResponse } from "../models/models_0"; +import { ListQueueMembersRequest } from "../models/models_0"; +import { ListQueueMembersResponse } from "../models/models_1"; import { de_ListQueueMembersCommand, se_ListQueueMembersCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-deadline/src/commands/ListQueuesCommand.ts b/clients/client-deadline/src/commands/ListQueuesCommand.ts index 65231a9cae336..5086218d2120a 100644 --- a/clients/client-deadline/src/commands/ListQueuesCommand.ts +++ b/clients/client-deadline/src/commands/ListQueuesCommand.ts @@ -6,8 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { DeadlineClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DeadlineClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { ListQueuesRequest } from "../models/models_0"; -import { ListQueuesResponse } from "../models/models_1"; +import { ListQueuesRequest, ListQueuesResponse } from "../models/models_1"; import { de_ListQueuesCommand, se_ListQueuesCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-deadline/src/commands/UpdateFleetCommand.ts b/clients/client-deadline/src/commands/UpdateFleetCommand.ts index 9177b70a09f89..8782f097de3c4 100644 --- a/clients/client-deadline/src/commands/UpdateFleetCommand.ts +++ b/clients/client-deadline/src/commands/UpdateFleetCommand.ts @@ -104,6 +104,18 @@ export interface UpdateFleetCommandOutput extends UpdateFleetResponse, __Metadat * iops: Number("int"), * throughputMiB: Number("int"), * }, + * acceleratorCapabilities: { // AcceleratorCapabilities + * selections: [ // AcceleratorSelections // required + * { // AcceleratorSelection + * name: "t4" || "a10g" || "l4" || "l40s", // required + * runtime: "STRING_VALUE", + * }, + * ], + * count: { + * min: Number("int"), // required + * max: Number("int"), + * }, + * }, * allowedInstanceTypes: [ // InstanceTypes * "STRING_VALUE", * ], diff --git a/clients/client-deadline/src/models/models_0.ts b/clients/client-deadline/src/models/models_0.ts index 131b78921fea0..1e482175dc208 100644 --- a/clients/client-deadline/src/models/models_0.ts +++ b/clients/client-deadline/src/models/models_0.ts @@ -11,18 +11,74 @@ import { DeadlineServiceException as __BaseException } from "./DeadlineServiceEx */ export interface AcceleratorCountRange { /** - *

The minimum GPU for the accelerator.

+ *

The minimum number of GPUs for the accelerator. If you set the value to 0, a worker will + * still have 1 GPU.

* @public */ min: number | undefined; /** - *

The maximum GPU for the accelerator.

+ *

The maximum number of GPUs for the accelerator.

* @public */ max?: number | undefined; } +/** + * @public + * @enum + */ +export const AcceleratorName = { + A10G: "a10g", + L4: "l4", + L40S: "l40s", + T4: "t4", +} as const; + +/** + * @public + */ +export type AcceleratorName = (typeof AcceleratorName)[keyof typeof AcceleratorName]; + +/** + *

Values that you can use to select a particular Amazon EC2 instance type.

+ * @public + */ +export interface AcceleratorSelection { + /** + *

The name of the GPU accelerator.

+ * @public + */ + name: AcceleratorName | undefined; + + /** + *

The driver version that the GPU accelerator uses.

+ * @public + */ + runtime?: string | undefined; +} + +/** + *

Provides information about the GPU accelerators and drivers for the instance types in a + * fleet. If you include the acceleratorCapabilities property in the ServiceManagedEc2InstanceCapabilities object, all of the Amazon EC2 + * instances will have at least one accelerator.

+ * @public + */ +export interface AcceleratorCapabilities { + /** + *

A list of objects that contain the GPU name of the accelerator and driver for the + * instance types that support the accelerator.

+ * @public + */ + selections: AcceleratorSelection[] | undefined; + + /** + *

The number of GPUs on each worker. The default is 1.

+ * @public + */ + count?: AcceleratorCountRange | undefined; +} + /** *

The range for memory, in MiB, to use for the accelerator.

* @public @@ -3189,6 +3245,14 @@ export interface ServiceManagedEc2InstanceCapabilities { */ rootEbsVolume?: Ec2EbsVolume | undefined; + /** + *

The GPU accelerator capabilities required for the Amazon EC2 instances. If you + * include the acceleratorCapabilities property in the ServiceManagedEc2InstanceCapabilities object, all of the Amazon EC2 + * instances will have at least one accelerator.

+ * @public + */ + acceleratorCapabilities?: AcceleratorCapabilities | undefined; + /** *

The allowable Amazon EC2 instance types.

* @public @@ -8707,142 +8771,6 @@ export interface QueueMember { membershipLevel: MembershipLevel | undefined; } -/** - * @public - */ -export interface ListQueueMembersResponse { - /** - *

The members on the list.

- * @public - */ - members: QueueMember[] | undefined; - - /** - *

If Deadline Cloud returns nextToken, then there are more results available. The value of nextToken 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 nextToken is set to null. Each pagination token expires after 24 hours. If you provide a token that isn't valid, then you receive an HTTP 400 ValidationException error.

- * @public - */ - nextToken?: string | undefined; -} - -/** - * @public - */ -export interface ListQueuesRequest { - /** - *

The farm ID of the queue.

- * @public - */ - farmId: string | undefined; - - /** - *

The principal IDs to include in the list of queues.

- * @public - */ - principalId?: string | undefined; - - /** - *

The status of the queues listed.

- * - * @public - */ - status?: QueueStatus | undefined; - - /** - *

The token for the next set of results, or null to start from the beginning.

- * @public - */ - nextToken?: string | undefined; - - /** - *

The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

- * @public - */ - maxResults?: number | undefined; -} - -/** - *

The details of a queue summary.

- * @public - */ -export interface QueueSummary { - /** - *

The farm ID.

- * @public - */ - farmId: string | undefined; - - /** - *

The queue ID.

- * @public - */ - queueId: string | undefined; - - /** - *

The display name of the queue summary to update.

- * - *

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.

- *
- * @public - */ - displayName: string | undefined; - - /** - *

That status of the queue.

- * @public - */ - status: QueueStatus | undefined; - - /** - *

The default action taken on a queue summary if a budget wasn't configured.

- * @public - */ - defaultBudgetAction: DefaultQueueBudgetAction | undefined; - - /** - *

The reason the queue is blocked, if applicable.

- * @public - */ - blockedReason?: QueueBlockedReason | undefined; - - /** - *

The date and time the resource was created.

- * @public - */ - createdAt: Date | undefined; - - /** - *

The user or system that created this resource.

- * @public - */ - createdBy: string | undefined; - - /** - *

The date and time the resource was updated.

- * @public - */ - updatedAt?: Date | undefined; - - /** - *

The user or system that updated this resource.

- * @public - */ - updatedBy?: string | undefined; -} - /** * @internal */ diff --git a/clients/client-deadline/src/models/models_1.ts b/clients/client-deadline/src/models/models_1.ts index bdce8acd8ec0c..f98dde1a57578 100644 --- a/clients/client-deadline/src/models/models_1.ts +++ b/clients/client-deadline/src/models/models_1.ts @@ -14,7 +14,9 @@ import { JobRunAsUser, JobTargetTaskRunStatus, ParameterSpace, - QueueSummary, + QueueBlockedReason, + QueueMember, + QueueStatus, StepLifecycleStatus, StepTargetTaskRunStatus, StorageProfileOperatingSystemFamily, @@ -25,6 +27,142 @@ import { WorkerStatus, } from "./models_0"; +/** + * @public + */ +export interface ListQueueMembersResponse { + /** + *

The members on the list.

+ * @public + */ + members: QueueMember[] | undefined; + + /** + *

If Deadline Cloud returns nextToken, then there are more results available. The value of nextToken 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 nextToken is set to null. Each pagination token expires after 24 hours. If you provide a token that isn't valid, then you receive an HTTP 400 ValidationException error.

+ * @public + */ + nextToken?: string | undefined; +} + +/** + * @public + */ +export interface ListQueuesRequest { + /** + *

The farm ID of the queue.

+ * @public + */ + farmId: string | undefined; + + /** + *

The principal IDs to include in the list of queues.

+ * @public + */ + principalId?: string | undefined; + + /** + *

The status of the queues listed.

+ * + * @public + */ + status?: QueueStatus | undefined; + + /** + *

The token for the next set of results, or null to start from the beginning.

+ * @public + */ + nextToken?: string | undefined; + + /** + *

The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

+ * @public + */ + maxResults?: number | undefined; +} + +/** + *

The details of a queue summary.

+ * @public + */ +export interface QueueSummary { + /** + *

The farm ID.

+ * @public + */ + farmId: string | undefined; + + /** + *

The queue ID.

+ * @public + */ + queueId: string | undefined; + + /** + *

The display name of the queue summary to update.

+ * + *

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.

+ *
+ * @public + */ + displayName: string | undefined; + + /** + *

That status of the queue.

+ * @public + */ + status: QueueStatus | undefined; + + /** + *

The default action taken on a queue summary if a budget wasn't configured.

+ * @public + */ + defaultBudgetAction: DefaultQueueBudgetAction | undefined; + + /** + *

The reason the queue is blocked, if applicable.

+ * @public + */ + blockedReason?: QueueBlockedReason | undefined; + + /** + *

The date and time the resource was created.

+ * @public + */ + createdAt: Date | undefined; + + /** + *

The user or system that created this resource.

+ * @public + */ + createdBy: string | undefined; + + /** + *

The date and time the resource was updated.

+ * @public + */ + updatedAt?: Date | undefined; + + /** + *

The user or system that updated this resource.

+ * @public + */ + updatedBy?: string | undefined; +} + /** * @public */ diff --git a/clients/client-deadline/src/protocols/Aws_restJson1.ts b/clients/client-deadline/src/protocols/Aws_restJson1.ts index 85f290b0a3858..680a58761e51b 100644 --- a/clients/client-deadline/src/protocols/Aws_restJson1.ts +++ b/clients/client-deadline/src/protocols/Aws_restJson1.ts @@ -271,7 +271,9 @@ import { } from "../commands/UpdateWorkerScheduleCommand"; import { DeadlineServiceException as __BaseException } from "../models/DeadlineServiceException"; import { + AcceleratorCapabilities, AcceleratorCountRange, + AcceleratorSelection, AcceleratorTotalMemoryMiBRange, AcceleratorType, AccessDeniedException, @@ -311,7 +313,6 @@ import { ManifestProperties, MemoryMiBRange, PosixUser, - QueueSummary, ResourceNotFoundException, ResponseBudgetAction, S3Location, @@ -346,6 +347,7 @@ import { ParameterFilterExpression, ParameterSortExpression, QueueFleetAssociationSummary, + QueueSummary, SearchFilterExpression, SearchGroupedFilterExpressions, SearchSortExpression, @@ -5888,8 +5890,14 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont return __decorateServiceException(exception, parsedOutput.body); }; +// se_AcceleratorCapabilities omitted. + // se_AcceleratorCountRange omitted. +// se_AcceleratorSelection omitted. + +// se_AcceleratorSelections omitted. + // se_AcceleratorTotalMemoryMiBRange omitted. // se_AcceleratorTypes omitted. @@ -6167,6 +6175,7 @@ const se_ServiceManagedEc2InstanceCapabilities = ( context: __SerdeContext ): any => { return take(input, { + acceleratorCapabilities: _json, allowedInstanceTypes: _json, cpuArchitectureType: [], customAmounts: (_) => se_CustomFleetAmountCapabilities(_, context), @@ -6266,8 +6275,14 @@ const se_WorkerCapabilities = (input: WorkerCapabilities, context: __SerdeContex }); }; +// de_AcceleratorCapabilities omitted. + // de_AcceleratorCountRange omitted. +// de_AcceleratorSelection omitted. + +// de_AcceleratorSelections omitted. + // de_AcceleratorTotalMemoryMiBRange omitted. // de_AcceleratorTypes omitted. @@ -6938,6 +6953,7 @@ const de_ServiceManagedEc2InstanceCapabilities = ( context: __SerdeContext ): ServiceManagedEc2InstanceCapabilities => { return take(output, { + acceleratorCapabilities: _json, allowedInstanceTypes: _json, cpuArchitectureType: __expectString, customAmounts: (_: any) => de_CustomFleetAmountCapabilities(_, context), diff --git a/codegen/sdk-codegen/aws-models/deadline.json b/codegen/sdk-codegen/aws-models/deadline.json index 4990eacd0fded..2601435253868 100644 --- a/codegen/sdk-codegen/aws-models/deadline.json +++ b/codegen/sdk-codegen/aws-models/deadline.json @@ -16,20 +16,41 @@ "smithy.api#private": {} } }, + "com.amazonaws.deadline#AcceleratorCapabilities": { + "type": "structure", + "members": { + "selections": { + "target": "com.amazonaws.deadline#AcceleratorSelections", + "traits": { + "smithy.api#documentation": "

A list of objects that contain the GPU name of the accelerator and driver for the\n instance types that support the accelerator.

", + "smithy.api#required": {} + } + }, + "count": { + "target": "com.amazonaws.deadline#AcceleratorCountRange", + "traits": { + "smithy.api#documentation": "

The number of GPUs on each worker. The default is 1.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides information about the GPU accelerators and drivers for the instance types in a\n fleet. If you include the acceleratorCapabilities property in the ServiceManagedEc2InstanceCapabilities object, all of the Amazon EC2\n instances will have at least one accelerator.

" + } + }, "com.amazonaws.deadline#AcceleratorCountRange": { "type": "structure", "members": { "min": { "target": "com.amazonaws.deadline#MinZeroMaxInteger", "traits": { - "smithy.api#documentation": "

The minimum GPU for the accelerator.

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

The minimum number of GPUs for the accelerator. If you set the value to 0, a worker will\n still have 1 GPU.

", "smithy.api#required": {} } }, "max": { "target": "com.amazonaws.deadline#MinZeroMaxInteger", "traits": { - "smithy.api#documentation": "

The maximum GPU for the accelerator.

" + "smithy.api#documentation": "

The maximum number of GPUs for the accelerator.

" } } }, @@ -37,6 +58,72 @@ "smithy.api#documentation": "

The range for the GPU fleet acceleration.

" } }, + "com.amazonaws.deadline#AcceleratorName": { + "type": "enum", + "members": { + "T4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t4" + } + }, + "A10G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "a10g" + } + }, + "L4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "l4" + } + }, + "L40S": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "l40s" + } + } + } + }, + "com.amazonaws.deadline#AcceleratorRuntime": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.deadline#AcceleratorSelection": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.deadline#AcceleratorName", + "traits": { + "smithy.api#documentation": "

The name of the GPU accelerator.

", + "smithy.api#required": {} + } + }, + "runtime": { + "target": "com.amazonaws.deadline#AcceleratorRuntime", + "traits": { + "smithy.api#default": "latest", + "smithy.api#documentation": "

The driver version that the GPU accelerator uses.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Values that you can use to select a particular Amazon EC2 instance type.

" + } + }, + "com.amazonaws.deadline#AcceleratorSelections": { + "type": "list", + "member": { + "target": "com.amazonaws.deadline#AcceleratorSelection" + } + }, "com.amazonaws.deadline#AcceleratorTotalMemoryMiBRange": { "type": "structure", "members": { @@ -15962,6 +16049,12 @@ "smithy.api#documentation": "

The root EBS volume.

" } }, + "acceleratorCapabilities": { + "target": "com.amazonaws.deadline#AcceleratorCapabilities", + "traits": { + "smithy.api#documentation": "

The GPU accelerator capabilities required for the Amazon EC2 instances. If you\n include the acceleratorCapabilities property in the ServiceManagedEc2InstanceCapabilities object, all of the Amazon EC2\n instances will have at least one accelerator.

" + } + }, "allowedInstanceTypes": { "target": "com.amazonaws.deadline#InstanceTypes", "traits": { @@ -16809,6 +16902,12 @@ "type": "list", "member": { "target": "com.amazonaws.deadline#StepAmountCapability" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } } }, "com.amazonaws.deadline#StepAmountCapability": { @@ -16848,6 +16947,12 @@ "type": "list", "member": { "target": "com.amazonaws.deadline#StepAttributeCapability" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } } }, "com.amazonaws.deadline#StepAttributeCapability": {