diff --git a/clients/client-workspaces/src/WorkSpaces.ts b/clients/client-workspaces/src/WorkSpaces.ts index b028159d6fd4..4255286e5bfd 100644 --- a/clients/client-workspaces/src/WorkSpaces.ts +++ b/clients/client-workspaces/src/WorkSpaces.ts @@ -47,6 +47,11 @@ import { CreateWorkspaceBundleCommandInput, CreateWorkspaceBundleCommandOutput, } from "./commands/CreateWorkspaceBundleCommand"; +import { + CreateWorkspaceImageCommand, + CreateWorkspaceImageCommandInput, + CreateWorkspaceImageCommandOutput, +} from "./commands/CreateWorkspaceImageCommand"; import { CreateWorkspacesCommand, CreateWorkspacesCommandInput, @@ -687,6 +692,38 @@ export class WorkSpaces extends WorkSpacesClient { } } + /** + *

Creates a new WorkSpace image from an existing WorkSpace.

+ */ + public createWorkspaceImage( + args: CreateWorkspaceImageCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createWorkspaceImage( + args: CreateWorkspaceImageCommandInput, + cb: (err: any, data?: CreateWorkspaceImageCommandOutput) => void + ): void; + public createWorkspaceImage( + args: CreateWorkspaceImageCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateWorkspaceImageCommandOutput) => void + ): void; + public createWorkspaceImage( + args: CreateWorkspaceImageCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateWorkspaceImageCommandOutput) => void), + cb?: (err: any, data?: CreateWorkspaceImageCommandOutput) => void + ): Promise | void { + const command = new CreateWorkspaceImageCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Creates one or more WorkSpaces.

*

This operation is asynchronous and returns before the WorkSpaces are created.

diff --git a/clients/client-workspaces/src/WorkSpacesClient.ts b/clients/client-workspaces/src/WorkSpacesClient.ts index 1f095f2d82be..57f986a9849b 100644 --- a/clients/client-workspaces/src/WorkSpacesClient.ts +++ b/clients/client-workspaces/src/WorkSpacesClient.ts @@ -78,6 +78,10 @@ import { CreateWorkspaceBundleCommandInput, CreateWorkspaceBundleCommandOutput, } from "./commands/CreateWorkspaceBundleCommand"; +import { + CreateWorkspaceImageCommandInput, + CreateWorkspaceImageCommandOutput, +} from "./commands/CreateWorkspaceImageCommand"; import { CreateWorkspacesCommandInput, CreateWorkspacesCommandOutput } from "./commands/CreateWorkspacesCommand"; import { DeleteClientBrandingCommandInput, @@ -250,6 +254,7 @@ export type ServiceInputTypes = | CreateTagsCommandInput | CreateUpdatedWorkspaceImageCommandInput | CreateWorkspaceBundleCommandInput + | CreateWorkspaceImageCommandInput | CreateWorkspacesCommandInput | DeleteClientBrandingCommandInput | DeleteConnectClientAddInCommandInput @@ -313,6 +318,7 @@ export type ServiceOutputTypes = | CreateTagsCommandOutput | CreateUpdatedWorkspaceImageCommandOutput | CreateWorkspaceBundleCommandOutput + | CreateWorkspaceImageCommandOutput | CreateWorkspacesCommandOutput | DeleteClientBrandingCommandOutput | DeleteConnectClientAddInCommandOutput diff --git a/clients/client-workspaces/src/commands/CreateWorkspaceImageCommand.ts b/clients/client-workspaces/src/commands/CreateWorkspaceImageCommand.ts new file mode 100644 index 000000000000..1cbc12b346ce --- /dev/null +++ b/clients/client-workspaces/src/commands/CreateWorkspaceImageCommand.ts @@ -0,0 +1,101 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + CreateWorkspaceImageRequest, + CreateWorkspaceImageRequestFilterSensitiveLog, + CreateWorkspaceImageResult, + CreateWorkspaceImageResultFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1CreateWorkspaceImageCommand, + serializeAws_json1_1CreateWorkspaceImageCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, WorkSpacesClientResolvedConfig } from "../WorkSpacesClient"; + +export interface CreateWorkspaceImageCommandInput extends CreateWorkspaceImageRequest {} +export interface CreateWorkspaceImageCommandOutput extends CreateWorkspaceImageResult, __MetadataBearer {} + +/** + *

Creates a new WorkSpace image from an existing WorkSpace.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { WorkSpacesClient, CreateWorkspaceImageCommand } from "@aws-sdk/client-workspaces"; // ES Modules import + * // const { WorkSpacesClient, CreateWorkspaceImageCommand } = require("@aws-sdk/client-workspaces"); // CommonJS import + * const client = new WorkSpacesClient(config); + * const command = new CreateWorkspaceImageCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link CreateWorkspaceImageCommandInput} for command's `input` shape. + * @see {@link CreateWorkspaceImageCommandOutput} for command's `response` shape. + * @see {@link WorkSpacesClientResolvedConfig | config} for WorkSpacesClient's `config` shape. + * + */ +export class CreateWorkspaceImageCommand extends $Command< + CreateWorkspaceImageCommandInput, + CreateWorkspaceImageCommandOutput, + WorkSpacesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateWorkspaceImageCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: WorkSpacesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "WorkSpacesClient"; + const commandName = "CreateWorkspaceImageCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateWorkspaceImageRequestFilterSensitiveLog, + outputFilterSensitiveLog: CreateWorkspaceImageResultFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateWorkspaceImageCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateWorkspaceImageCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CreateWorkspaceImageCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-workspaces/src/commands/index.ts b/clients/client-workspaces/src/commands/index.ts index f29f2355a9c3..0b3889554050 100644 --- a/clients/client-workspaces/src/commands/index.ts +++ b/clients/client-workspaces/src/commands/index.ts @@ -9,6 +9,7 @@ export * from "./CreateIpGroupCommand"; export * from "./CreateTagsCommand"; export * from "./CreateUpdatedWorkspaceImageCommand"; export * from "./CreateWorkspaceBundleCommand"; +export * from "./CreateWorkspaceImageCommand"; export * from "./CreateWorkspacesCommand"; export * from "./DeleteClientBrandingCommand"; export * from "./DeleteConnectClientAddInCommand"; diff --git a/clients/client-workspaces/src/models/models_0.ts b/clients/client-workspaces/src/models/models_0.ts index 3901c4bf1065..c55e3bd6f41a 100644 --- a/clients/client-workspaces/src/models/models_0.ts +++ b/clients/client-workspaces/src/models/models_0.ts @@ -826,6 +826,103 @@ export interface CreateWorkspaceBundleResult { WorkspaceBundle?: WorkspaceBundle; } +export interface CreateWorkspaceImageRequest { + /** + *

The name of the new WorkSpace image.

+ */ + Name: string | undefined; + + /** + *

The description of the new WorkSpace image.

+ */ + Description: string | undefined; + + /** + *

The identifier of the source WorkSpace

+ */ + WorkspaceId: string | undefined; + + /** + *

The tags that you want to add to the new WorkSpace image. + * To add tags when you're creating the image, you must create an IAM policy that grants + * your IAM user permission to use workspaces:CreateTags.

+ */ + Tags?: Tag[]; +} + +export enum OperatingSystemType { + LINUX = "LINUX", + WINDOWS = "WINDOWS", +} + +/** + *

The operating system that the image is running.

+ */ +export interface OperatingSystem { + /** + *

The operating system.

+ */ + Type?: OperatingSystemType | string; +} + +export enum WorkspaceImageRequiredTenancy { + DEDICATED = "DEDICATED", + DEFAULT = "DEFAULT", +} + +export enum WorkspaceImageState { + AVAILABLE = "AVAILABLE", + ERROR = "ERROR", + PENDING = "PENDING", +} + +export interface CreateWorkspaceImageResult { + /** + *

The identifier of the new WorkSpace image.

+ */ + ImageId?: string; + + /** + *

The name of the image.

+ */ + Name?: string; + + /** + *

The description of the image.

+ */ + Description?: string; + + /** + *

The operating system that the image is running.

+ */ + OperatingSystem?: OperatingSystem; + + /** + *

The availability status of the image.

+ */ + State?: WorkspaceImageState | string; + + /** + *

Specifies whether the image is running on dedicated hardware. + * When Bring Your Own License (BYOL) is enabled, this value is set + * to DEDICATED. For more information, see + * + * Bring Your Own Windows Desktop Images. + *

+ */ + RequiredTenancy?: WorkspaceImageRequiredTenancy | string; + + /** + *

The date when the image was created.

+ */ + Created?: Date; + + /** + *

The identifier of the AWS account that owns the image.

+ */ + OwnerAccountId?: string; +} + export enum RunningMode { ALWAYS_ON = "ALWAYS_ON", AUTO_STOP = "AUTO_STOP", @@ -1109,8 +1206,7 @@ export enum DedicatedTenancySupportEnum { */ export interface DefaultClientBrandingAttributes { /** - *

The logo URL. The only image - * format accepted is a binary data object that is converted from a .png file.

+ *

The logo. The only image format accepted is a binary data object that is converted from a .png file.

*/ LogoUrl?: string; @@ -1158,7 +1254,8 @@ export interface DefaultClientBrandingAttributes { /** *

The login message. Specified as a key value pair, in which the key is a locale and the * value is the localized message for that locale. The only key supported is - * en_US.

+ * en_US. The HTML tags supported include the following: a, b, blockquote, br, cite, code, dd, dl, dt, div, em, + * i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul.

*/ LoginMessage?: Record; } @@ -1173,8 +1270,7 @@ export interface DefaultClientBrandingAttributes { */ export interface DefaultImportClientBrandingAttributes { /** - *

The logo. The only image - * format accepted is a binary data object that is converted from a .png file.

+ *

The logo. The only image format accepted is a binary data object that is converted from a .png file.

*/ Logo?: Uint8Array; @@ -1222,7 +1318,8 @@ export interface DefaultImportClientBrandingAttributes { /** *

The login message. Specified as a key value pair, in which the key is a locale and the * value is the localized message for that locale. The only key supported is - * en_US.

+ * en_US. The HTML tags supported include the following: a, b, blockquote, br, cite, code, dd, dl, dt, div, em, + * i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul.

*/ LoginMessage?: Record; } @@ -1425,8 +1522,8 @@ export interface DescribeClientBrandingRequest { */ export interface IosClientBrandingAttributes { /** - *

The logo. This is the - * standard-resolution display that has a 1:1 pixel density (or @1x), where one pixel is equal + *

The logo. This is the standard-resolution display that has a 1:1 pixel density + * (or @1x), where one pixel is equal * to one point. The only image format accepted is a binary data object that is converted from * a .png file.

*/ @@ -1498,7 +1595,8 @@ export interface IosClientBrandingAttributes { /** *

The login message. Specified as a key value pair, in which the key is a locale and the * value is the localized message for that locale. The only key supported is - * en_US.

+ * en_US. The HTML tags supported include the following: a, b, blockquote, br, cite, code, dd, dl, dt, div, em, + * i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul.

*/ LoginMessage?: Record; } @@ -2059,32 +2157,6 @@ export interface DescribeWorkspaceImagesRequest { MaxResults?: number; } -export enum OperatingSystemType { - LINUX = "LINUX", - WINDOWS = "WINDOWS", -} - -/** - *

The operating system that the image is running.

- */ -export interface OperatingSystem { - /** - *

The operating system.

- */ - Type?: OperatingSystemType | string; -} - -export enum WorkspaceImageRequiredTenancy { - DEDICATED = "DEDICATED", - DEFAULT = "DEFAULT", -} - -export enum WorkspaceImageState { - AVAILABLE = "AVAILABLE", - ERROR = "ERROR", - PENDING = "PENDING", -} - /** *

Describes whether a WorkSpace image needs to be updated with the latest drivers and * other components required by Amazon WorkSpaces.

@@ -2449,7 +2521,8 @@ export interface IosImportClientBrandingAttributes { /** *

The login message. Specified as a key value pair, in which the key is a locale and the * value is the localized message for that locale. The only key supported is - * en_US.

+ * en_US. The HTML tags supported include the following: a, b, blockquote, br, cite, code, dd, dl, dt, div, em, + * i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul.

*/ LoginMessage?: Record; } @@ -3410,6 +3483,27 @@ export const CreateWorkspaceBundleResultFilterSensitiveLog = (obj: CreateWorkspa ...obj, }); +/** + * @internal + */ +export const CreateWorkspaceImageRequestFilterSensitiveLog = (obj: CreateWorkspaceImageRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const OperatingSystemFilterSensitiveLog = (obj: OperatingSystem): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const CreateWorkspaceImageResultFilterSensitiveLog = (obj: CreateWorkspaceImageResult): any => ({ + ...obj, +}); + /** * @internal */ @@ -3825,13 +3919,6 @@ export const DescribeWorkspaceImagesRequestFilterSensitiveLog = (obj: DescribeWo ...obj, }); -/** - * @internal - */ -export const OperatingSystemFilterSensitiveLog = (obj: OperatingSystem): any => ({ - ...obj, -}); - /** * @internal */ diff --git a/clients/client-workspaces/src/protocols/Aws_json1_1.ts b/clients/client-workspaces/src/protocols/Aws_json1_1.ts index 812da26737ef..c48c6e6e52a0 100644 --- a/clients/client-workspaces/src/protocols/Aws_json1_1.ts +++ b/clients/client-workspaces/src/protocols/Aws_json1_1.ts @@ -41,6 +41,10 @@ import { CreateWorkspaceBundleCommandInput, CreateWorkspaceBundleCommandOutput, } from "../commands/CreateWorkspaceBundleCommand"; +import { + CreateWorkspaceImageCommandInput, + CreateWorkspaceImageCommandOutput, +} from "../commands/CreateWorkspaceImageCommand"; import { CreateWorkspacesCommandInput, CreateWorkspacesCommandOutput } from "../commands/CreateWorkspacesCommand"; import { DeleteClientBrandingCommandInput, @@ -232,6 +236,8 @@ import { CreateUpdatedWorkspaceImageResult, CreateWorkspaceBundleRequest, CreateWorkspaceBundleResult, + CreateWorkspaceImageRequest, + CreateWorkspaceImageResult, CreateWorkspacesRequest, CreateWorkspacesResult, DefaultClientBrandingAttributes, @@ -512,6 +518,19 @@ export const serializeAws_json1_1CreateWorkspaceBundleCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1CreateWorkspaceImageCommand = async ( + input: CreateWorkspaceImageCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "WorkspacesService.CreateWorkspaceImage", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateWorkspaceImageRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1CreateWorkspacesCommand = async ( input: CreateWorkspacesCommandInput, context: __SerdeContext @@ -1753,6 +1772,68 @@ const deserializeAws_json1_1CreateWorkspaceBundleCommandError = async ( } }; +export const deserializeAws_json1_1CreateWorkspaceImageCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1CreateWorkspaceImageCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreateWorkspaceImageResult(data, context); + const response: CreateWorkspaceImageCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1CreateWorkspaceImageCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.workspaces#AccessDeniedException": + throw await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context); + case "InvalidParameterValuesException": + case "com.amazonaws.workspaces#InvalidParameterValuesException": + throw await deserializeAws_json1_1InvalidParameterValuesExceptionResponse(parsedOutput, context); + case "InvalidResourceStateException": + case "com.amazonaws.workspaces#InvalidResourceStateException": + throw await deserializeAws_json1_1InvalidResourceStateExceptionResponse(parsedOutput, context); + case "OperationNotSupportedException": + case "com.amazonaws.workspaces#OperationNotSupportedException": + throw await deserializeAws_json1_1OperationNotSupportedExceptionResponse(parsedOutput, context); + case "ResourceAlreadyExistsException": + case "com.amazonaws.workspaces#ResourceAlreadyExistsException": + throw await deserializeAws_json1_1ResourceAlreadyExistsExceptionResponse(parsedOutput, context); + case "ResourceLimitExceededException": + case "com.amazonaws.workspaces#ResourceLimitExceededException": + throw await deserializeAws_json1_1ResourceLimitExceededExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.workspaces#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + export const deserializeAws_json1_1CreateWorkspacesCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -4673,6 +4754,18 @@ const serializeAws_json1_1CreateWorkspaceBundleRequest = ( }; }; +const serializeAws_json1_1CreateWorkspaceImageRequest = ( + input: CreateWorkspaceImageRequest, + context: __SerdeContext +): any => { + return { + ...(input.Description != null && { Description: input.Description }), + ...(input.Name != null && { Name: input.Name }), + ...(input.Tags != null && { Tags: serializeAws_json1_1TagList(input.Tags, context) }), + ...(input.WorkspaceId != null && { WorkspaceId: input.WorkspaceId }), + }; +}; + const serializeAws_json1_1CreateWorkspacesRequest = (input: CreateWorkspacesRequest, context: __SerdeContext): any => { return { ...(input.Workspaces != null && { @@ -5811,6 +5904,26 @@ const deserializeAws_json1_1CreateWorkspaceBundleResult = ( } as any; }; +const deserializeAws_json1_1CreateWorkspaceImageResult = ( + output: any, + context: __SerdeContext +): CreateWorkspaceImageResult => { + return { + Created: + output.Created != null ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.Created))) : undefined, + Description: __expectString(output.Description), + ImageId: __expectString(output.ImageId), + Name: __expectString(output.Name), + OperatingSystem: + output.OperatingSystem != null + ? deserializeAws_json1_1OperatingSystem(output.OperatingSystem, context) + : undefined, + OwnerAccountId: __expectString(output.OwnerAccountId), + RequiredTenancy: __expectString(output.RequiredTenancy), + State: __expectString(output.State), + } as any; +}; + const deserializeAws_json1_1CreateWorkspacesResult = (output: any, context: __SerdeContext): CreateWorkspacesResult => { return { FailedRequests: diff --git a/codegen/sdk-codegen/aws-models/workspaces.json b/codegen/sdk-codegen/aws-models/workspaces.json index 8f53d72ead95..82172b765ee2 100644 --- a/codegen/sdk-codegen/aws-models/workspaces.json +++ b/codegen/sdk-codegen/aws-models/workspaces.json @@ -1328,6 +1328,126 @@ } } }, + "com.amazonaws.workspaces#CreateWorkspaceImage": { + "type": "operation", + "input": { + "target": "com.amazonaws.workspaces#CreateWorkspaceImageRequest" + }, + "output": { + "target": "com.amazonaws.workspaces#CreateWorkspaceImageResult" + }, + "errors": [ + { + "target": "com.amazonaws.workspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspaces#InvalidParameterValuesException" + }, + { + "target": "com.amazonaws.workspaces#InvalidResourceStateException" + }, + { + "target": "com.amazonaws.workspaces#OperationNotSupportedException" + }, + { + "target": "com.amazonaws.workspaces#ResourceAlreadyExistsException" + }, + { + "target": "com.amazonaws.workspaces#ResourceLimitExceededException" + }, + { + "target": "com.amazonaws.workspaces#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new WorkSpace image from an existing WorkSpace.

" + } + }, + "com.amazonaws.workspaces#CreateWorkspaceImageRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.workspaces#WorkspaceImageName", + "traits": { + "smithy.api#documentation": "

The name of the new WorkSpace image.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.workspaces#WorkspaceImageDescription", + "traits": { + "smithy.api#documentation": "

The description of the new WorkSpace image.

", + "smithy.api#required": {} + } + }, + "WorkspaceId": { + "target": "com.amazonaws.workspaces#WorkspaceId", + "traits": { + "smithy.api#documentation": "

The identifier of the source WorkSpace

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.workspaces#TagList", + "traits": { + "smithy.api#documentation": "

The tags that you want to add to the new WorkSpace image. \n To add tags when you're creating the image, you must create an IAM policy that grants \n your IAM user permission to use workspaces:CreateTags.

" + } + } + } + }, + "com.amazonaws.workspaces#CreateWorkspaceImageResult": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.workspaces#WorkspaceImageId", + "traits": { + "smithy.api#documentation": "

The identifier of the new WorkSpace image.

" + } + }, + "Name": { + "target": "com.amazonaws.workspaces#WorkspaceImageName", + "traits": { + "smithy.api#documentation": "

The name of the image.

" + } + }, + "Description": { + "target": "com.amazonaws.workspaces#WorkspaceImageDescription", + "traits": { + "smithy.api#documentation": "

The description of the image.

" + } + }, + "OperatingSystem": { + "target": "com.amazonaws.workspaces#OperatingSystem", + "traits": { + "smithy.api#documentation": "

The operating system that the image is running.

" + } + }, + "State": { + "target": "com.amazonaws.workspaces#WorkspaceImageState", + "traits": { + "smithy.api#documentation": "

The availability status of the image.

" + } + }, + "RequiredTenancy": { + "target": "com.amazonaws.workspaces#WorkspaceImageRequiredTenancy", + "traits": { + "smithy.api#documentation": "

Specifies whether the image is running on dedicated hardware. \n When Bring Your Own License (BYOL) is enabled, this value is set \n to DEDICATED. For more information, see \n \n Bring Your Own Windows Desktop Images.\n

" + } + }, + "Created": { + "target": "com.amazonaws.workspaces#Timestamp", + "traits": { + "smithy.api#documentation": "

The date when the image was created.

" + } + }, + "OwnerAccountId": { + "target": "com.amazonaws.workspaces#AwsAccount", + "traits": { + "smithy.api#documentation": "

The identifier of the AWS account that owns the image.

" + } + } + } + }, "com.amazonaws.workspaces#CreateWorkspaces": { "type": "operation", "input": { @@ -1440,7 +1560,7 @@ "LogoUrl": { "target": "com.amazonaws.workspaces#ClientUrl", "traits": { - "smithy.api#documentation": "

The logo URL. The only image \n format accepted is a binary data object that is converted from a .png file.

" + "smithy.api#documentation": "

The logo. The only image format accepted is a binary data object that is converted from a .png file.

" } }, "SupportEmail": { @@ -1464,7 +1584,7 @@ "LoginMessage": { "target": "com.amazonaws.workspaces#LoginMessage", "traits": { - "smithy.api#documentation": "

The login message. Specified as a key value pair, in which the key is a locale and the\n value is the localized message for that locale. The only key supported is\n en_US.

" + "smithy.api#documentation": "

The login message. Specified as a key value pair, in which the key is a locale and the\n value is the localized message for that locale. The only key supported is\n en_US. The HTML tags supported include the following: a, b, blockquote, br, cite, code, dd, dl, dt, div, em, \n i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul.

" } } }, @@ -1478,7 +1598,7 @@ "Logo": { "target": "com.amazonaws.workspaces#DefaultLogo", "traits": { - "smithy.api#documentation": "

The logo. The only image \n format accepted is a binary data object that is converted from a .png file.

" + "smithy.api#documentation": "

The logo. The only image format accepted is a binary data object that is converted from a .png file.

" } }, "SupportEmail": { @@ -1502,7 +1622,7 @@ "LoginMessage": { "target": "com.amazonaws.workspaces#LoginMessage", "traits": { - "smithy.api#documentation": "

The login message. Specified as a key value pair, in which the key is a locale and the\n value is the localized message for that locale. The only key supported is\n en_US.

" + "smithy.api#documentation": "

The login message. Specified as a key value pair, in which the key is a locale and the\n value is the localized message for that locale. The only key supported is\n en_US. The HTML tags supported include the following: a, b, blockquote, br, cite, code, dd, dl, dt, div, em, \n i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul.

" } } }, @@ -3397,7 +3517,7 @@ "LogoUrl": { "target": "com.amazonaws.workspaces#ClientUrl", "traits": { - "smithy.api#documentation": "

The logo. This is the\n standard-resolution display that has a 1:1 pixel density (or @1x), where one pixel is equal\n to one point. The only image format accepted is a binary data object that is converted from \n a .png file.

" + "smithy.api#documentation": "

The logo. This is the standard-resolution display that has a 1:1 pixel density \n (or @1x), where one pixel is equal\n to one point. The only image format accepted is a binary data object that is converted from \n a .png file.

" } }, "Logo2xUrl": { @@ -3433,7 +3553,7 @@ "LoginMessage": { "target": "com.amazonaws.workspaces#LoginMessage", "traits": { - "smithy.api#documentation": "

The login message. Specified as a key value pair, in which the key is a locale and the\n value is the localized message for that locale. The only key supported is\n en_US.

" + "smithy.api#documentation": "

The login message. Specified as a key value pair, in which the key is a locale and the\n value is the localized message for that locale. The only key supported is\n en_US. The HTML tags supported include the following: a, b, blockquote, br, cite, code, dd, dl, dt, div, em, \n i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul.

" } } }, @@ -3483,7 +3603,7 @@ "LoginMessage": { "target": "com.amazonaws.workspaces#LoginMessage", "traits": { - "smithy.api#documentation": "

The login message. Specified as a key value pair, in which the key is a locale and the\n value is the localized message for that locale. The only key supported is\n en_US.

" + "smithy.api#documentation": "

The login message. Specified as a key value pair, in which the key is a locale and the\n value is the localized message for that locale. The only key supported is\n en_US. The HTML tags supported include the following: a, b, blockquote, br, cite, code, dd, dl, dt, div, em, \n i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul.

" } } }, @@ -6360,6 +6480,9 @@ { "target": "com.amazonaws.workspaces#CreateWorkspaceBundle" }, + { + "target": "com.amazonaws.workspaces#CreateWorkspaceImage" + }, { "target": "com.amazonaws.workspaces#CreateWorkspaces" },