diff --git a/clients/client-appstream/src/commands/CreateFleetCommand.ts b/clients/client-appstream/src/commands/CreateFleetCommand.ts index 3535e4cacdf8..5df29c28494f 100644 --- a/clients/client-appstream/src/commands/CreateFleetCommand.ts +++ b/clients/client-appstream/src/commands/CreateFleetCommand.ts @@ -50,7 +50,8 @@ export interface CreateFleetCommandOutput extends CreateFleetResult, __MetadataB * InstanceType: "STRING_VALUE", // required * FleetType: "ALWAYS_ON" || "ON_DEMAND" || "ELASTIC", * ComputeCapacity: { // ComputeCapacity - * DesiredInstances: Number("int"), // required + * DesiredInstances: Number("int"), + * DesiredSessions: Number("int"), * }, * VpcConfig: { // VpcConfig * SubnetIds: [ // SubnetIdList @@ -84,6 +85,7 @@ export interface CreateFleetCommandOutput extends CreateFleetResult, __MetadataB * S3Bucket: "STRING_VALUE", // required * S3Key: "STRING_VALUE", * }, + * MaxSessionsPerInstance: Number("int"), * }; * const command = new CreateFleetCommand(input); * const response = await client.send(command); @@ -102,6 +104,10 @@ export interface CreateFleetCommandOutput extends CreateFleetResult, __MetadataB * // Running: Number("int"), * // InUse: Number("int"), * // Available: Number("int"), + * // DesiredUserSessions: Number("int"), + * // AvailableUserSessions: Number("int"), + * // ActiveUserSessions: Number("int"), + * // ActualUserSessions: Number("int"), * // }, * // MaxUserDurationInSeconds: Number("int"), * // DisconnectTimeoutInSeconds: Number("int"), @@ -138,6 +144,7 @@ export interface CreateFleetCommandOutput extends CreateFleetResult, __MetadataB * // S3Bucket: "STRING_VALUE", // required * // S3Key: "STRING_VALUE", * // }, + * // MaxSessionsPerInstance: Number("int"), * // }, * // }; * diff --git a/clients/client-appstream/src/commands/DescribeFleetsCommand.ts b/clients/client-appstream/src/commands/DescribeFleetsCommand.ts index 1eb94c4b78f0..450d3882d574 100644 --- a/clients/client-appstream/src/commands/DescribeFleetsCommand.ts +++ b/clients/client-appstream/src/commands/DescribeFleetsCommand.ts @@ -67,6 +67,10 @@ export interface DescribeFleetsCommandOutput extends DescribeFleetsResult, __Met * // Running: Number("int"), * // InUse: Number("int"), * // Available: Number("int"), + * // DesiredUserSessions: Number("int"), + * // AvailableUserSessions: Number("int"), + * // ActiveUserSessions: Number("int"), + * // ActualUserSessions: Number("int"), * // }, * // MaxUserDurationInSeconds: Number("int"), * // DisconnectTimeoutInSeconds: Number("int"), @@ -103,6 +107,7 @@ export interface DescribeFleetsCommandOutput extends DescribeFleetsResult, __Met * // S3Bucket: "STRING_VALUE", // required * // S3Key: "STRING_VALUE", * // }, + * // MaxSessionsPerInstance: Number("int"), * // }, * // ], * // NextToken: "STRING_VALUE", diff --git a/clients/client-appstream/src/commands/DescribeSessionsCommand.ts b/clients/client-appstream/src/commands/DescribeSessionsCommand.ts index fb1eeba66a7e..9fe3c132676f 100644 --- a/clients/client-appstream/src/commands/DescribeSessionsCommand.ts +++ b/clients/client-appstream/src/commands/DescribeSessionsCommand.ts @@ -52,6 +52,7 @@ export interface DescribeSessionsCommandOutput extends DescribeSessionsResult, _ * NextToken: "STRING_VALUE", * Limit: Number("int"), * AuthenticationType: "API" || "SAML" || "USERPOOL" || "AWS_AD", + * InstanceId: "STRING_VALUE", * }; * const command = new DescribeSessionsCommand(input); * const response = await client.send(command); @@ -71,6 +72,7 @@ export interface DescribeSessionsCommandOutput extends DescribeSessionsResult, _ * // EniPrivateIpAddress: "STRING_VALUE", * // EniId: "STRING_VALUE", * // }, + * // InstanceId: "STRING_VALUE", * // }, * // ], * // NextToken: "STRING_VALUE", diff --git a/clients/client-appstream/src/commands/UpdateFleetCommand.ts b/clients/client-appstream/src/commands/UpdateFleetCommand.ts index 05dae8287d5a..03e3434efe62 100644 --- a/clients/client-appstream/src/commands/UpdateFleetCommand.ts +++ b/clients/client-appstream/src/commands/UpdateFleetCommand.ts @@ -70,7 +70,8 @@ export interface UpdateFleetCommandOutput extends UpdateFleetResult, __MetadataB * Name: "STRING_VALUE", * InstanceType: "STRING_VALUE", * ComputeCapacity: { // ComputeCapacity - * DesiredInstances: Number("int"), // required + * DesiredInstances: Number("int"), + * DesiredSessions: Number("int"), * }, * VpcConfig: { // VpcConfig * SubnetIds: [ // SubnetIdList @@ -92,7 +93,7 @@ export interface UpdateFleetCommandOutput extends UpdateFleetResult, __MetadataB * }, * IdleDisconnectTimeoutInSeconds: Number("int"), * AttributesToDelete: [ // FleetAttributes - * "VPC_CONFIGURATION" || "VPC_CONFIGURATION_SECURITY_GROUP_IDS" || "DOMAIN_JOIN_INFO" || "IAM_ROLE_ARN" || "USB_DEVICE_FILTER_STRINGS" || "SESSION_SCRIPT_S3_LOCATION", + * "VPC_CONFIGURATION" || "VPC_CONFIGURATION_SECURITY_GROUP_IDS" || "DOMAIN_JOIN_INFO" || "IAM_ROLE_ARN" || "USB_DEVICE_FILTER_STRINGS" || "SESSION_SCRIPT_S3_LOCATION" || "MAX_SESSIONS_PER_INSTANCE", * ], * IamRoleArn: "STRING_VALUE", * StreamView: "APP" || "DESKTOP", @@ -105,6 +106,7 @@ export interface UpdateFleetCommandOutput extends UpdateFleetResult, __MetadataB * S3Bucket: "STRING_VALUE", // required * S3Key: "STRING_VALUE", * }, + * MaxSessionsPerInstance: Number("int"), * }; * const command = new UpdateFleetCommand(input); * const response = await client.send(command); @@ -123,6 +125,10 @@ export interface UpdateFleetCommandOutput extends UpdateFleetResult, __MetadataB * // Running: Number("int"), * // InUse: Number("int"), * // Available: Number("int"), + * // DesiredUserSessions: Number("int"), + * // AvailableUserSessions: Number("int"), + * // ActiveUserSessions: Number("int"), + * // ActualUserSessions: Number("int"), * // }, * // MaxUserDurationInSeconds: Number("int"), * // DisconnectTimeoutInSeconds: Number("int"), @@ -159,6 +165,7 @@ export interface UpdateFleetCommandOutput extends UpdateFleetResult, __MetadataB * // S3Bucket: "STRING_VALUE", // required * // S3Key: "STRING_VALUE", * // }, + * // MaxSessionsPerInstance: Number("int"), * // }, * // }; * diff --git a/clients/client-appstream/src/models/models_0.ts b/clients/client-appstream/src/models/models_0.ts index f69380724aa6..17da1b129451 100644 --- a/clients/client-appstream/src/models/models_0.ts +++ b/clients/client-appstream/src/models/models_0.ts @@ -1224,7 +1224,14 @@ export interface ComputeCapacity { * @public *
The desired number of streaming instances.
*/ - DesiredInstances: number | undefined; + DesiredInstances?: number; + + /** + * @public + *The desired number of user sessions for a multi-session fleet. This is not allowed for single-session fleets.
+ *When you create a fleet, you must set either the DesiredSessions or DesiredInstances attribute, based on the type of fleet you create. You can’t define both attributes or leave both attributes blank.
+ */ + DesiredSessions?: number; } /** @@ -1256,6 +1263,36 @@ export interface ComputeCapacityStatus { * sessions. */ Available?: number; + + /** + * @public + *The total number of sessions slots that are either running or pending. This represents the total number of concurrent streaming sessions your fleet can support in a steady state.
+ *DesiredUserSessionCapacity = ActualUserSessionCapacity + PendingUserSessionCapacity
+ *This only applies to multi-session fleets.
+ */ + DesiredUserSessions?: number; + + /** + * @public + *The number of idle session slots currently available for user sessions.
+ *AvailableUserSessionCapacity = ActualUserSessionCapacity - ActiveUserSessions
+ *This only applies to multi-session fleets.
+ */ + AvailableUserSessions?: number; + + /** + * @public + *The number of user sessions currently being used for streaming sessions. This only applies to multi-session fleets.
+ */ + ActiveUserSessions?: number; + + /** + * @public + *The total number of session slots that are available for streaming or are currently streaming.
+ *ActualUserSessionCapacity = AvailableUserSessionCapacity + ActiveUserSessions
+ *This only applies to multi-session fleets.
+ */ + ActualUserSessions?: number; } /** @@ -2209,7 +2246,7 @@ export interface CreateFleetRequest { /** * @public *The maximum amount of time that a streaming session can remain active, in seconds. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance.
- *Specify a value between 600 and 360000.
+ *Specify a value between 600 and 432000.
*/ MaxUserDurationInSeconds?: number; @@ -2312,6 +2349,12 @@ export interface CreateFleetRequest { *The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.
*/ SessionScriptS3Location?: S3Location; + + /** + * @public + *The maximum number of user sessions on an instance. This only applies to multi-session fleets.
+ */ + MaxSessionsPerInstance?: number; } /** @@ -2627,6 +2670,12 @@ export interface Fleet { *The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.
*/ SessionScriptS3Location?: S3Location; + + /** + * @public + *The maximum number of user sessions on an instance. This only applies to multi-session fleets.
+ */ + MaxSessionsPerInstance?: number; } /** @@ -4684,6 +4733,12 @@ export interface DescribeSessionsRequest { * The default is to authenticate users using a streaming URL. */ AuthenticationType?: AuthenticationType | string; + + /** + * @public + *The identifier for the instance hosting the session.
+ */ + InstanceId?: string; } /** @@ -4780,6 +4835,12 @@ export interface Session { *The network details for the streaming session.
*/ NetworkAccessConfiguration?: NetworkAccessConfiguration; + + /** + * @public + *The identifier for the instance hosting the session.
+ */ + InstanceId?: string; } /** @@ -5284,6 +5345,7 @@ export interface ExpireSessionResult {} export const FleetAttribute = { DOMAIN_JOIN_INFO: "DOMAIN_JOIN_INFO", IAM_ROLE_ARN: "IAM_ROLE_ARN", + MAX_SESSIONS_PER_INSTANCE: "MAX_SESSIONS_PER_INSTANCE", SESSION_SCRIPT_S3_LOCATION: "SESSION_SCRIPT_S3_LOCATION", USB_DEVICE_FILTER_STRINGS: "USB_DEVICE_FILTER_STRINGS", VPC_CONFIGURATION: "VPC_CONFIGURATION", @@ -6142,6 +6204,12 @@ export interface UpdateFleetRequest { *The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.
*/ SessionScriptS3Location?: S3Location; + + /** + * @public + *The maximum number of user sessions on an instance. This only applies to multi-session fleets.
+ */ + MaxSessionsPerInstance?: number; } /** diff --git a/clients/client-appstream/src/protocols/Aws_json1_1.ts b/clients/client-appstream/src/protocols/Aws_json1_1.ts index 7819577fad9e..4d4830215282 100644 --- a/clients/client-appstream/src/protocols/Aws_json1_1.ts +++ b/clients/client-appstream/src/protocols/Aws_json1_1.ts @@ -6359,6 +6359,7 @@ const de_Fleet = (output: any, context: __SerdeContext): Fleet => { ImageName: __expectString, InstanceType: __expectString, MaxConcurrentSessions: __expectInt32, + MaxSessionsPerInstance: __expectInt32, MaxUserDurationInSeconds: __expectInt32, Name: __expectString, Platform: __expectString, @@ -6549,6 +6550,7 @@ const de_Session = (output: any, context: __SerdeContext): Session => { ConnectionState: __expectString, FleetName: __expectString, Id: __expectString, + InstanceId: __expectString, MaxExpirationTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), NetworkAccessConfiguration: _json, StackName: __expectString, diff --git a/clients/client-appstream/src/waiters/waitForFleetStarted.ts b/clients/client-appstream/src/waiters/waitForFleetStarted.ts index 6ca3854bebd7..6bf7c8b2d116 100644 --- a/clients/client-appstream/src/waiters/waitForFleetStarted.ts +++ b/clients/client-appstream/src/waiters/waitForFleetStarted.ts @@ -19,7 +19,7 @@ const checkState = async (client: AppStreamClient, input: DescribeFleetsCommandI }; let allStringEq_5 = returnComparator().length > 0; for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "RUNNING"; + allStringEq_5 = allStringEq_5 && element_4 == "ACTIVE"; } if (allStringEq_5) { return { state: WaiterState.SUCCESS, reason }; @@ -34,7 +34,7 @@ const checkState = async (client: AppStreamClient, input: DescribeFleetsCommandI return projection_3; }; for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "STOPPING") { + if (anyStringEq_4 == "PENDING_DEACTIVATE") { return { state: WaiterState.FAILURE, reason }; } } @@ -48,7 +48,7 @@ const checkState = async (client: AppStreamClient, input: DescribeFleetsCommandI return projection_3; }; for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "STOPPED") { + if (anyStringEq_4 == "INACTIVE") { return { state: WaiterState.FAILURE, reason }; } } diff --git a/clients/client-appstream/src/waiters/waitForFleetStopped.ts b/clients/client-appstream/src/waiters/waitForFleetStopped.ts index 8c261fd35e21..c8a5d30f4e93 100644 --- a/clients/client-appstream/src/waiters/waitForFleetStopped.ts +++ b/clients/client-appstream/src/waiters/waitForFleetStopped.ts @@ -19,7 +19,7 @@ const checkState = async (client: AppStreamClient, input: DescribeFleetsCommandI }; let allStringEq_5 = returnComparator().length > 0; for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "STOPPED"; + allStringEq_5 = allStringEq_5 && element_4 == "INACTIVE"; } if (allStringEq_5) { return { state: WaiterState.SUCCESS, reason }; @@ -34,7 +34,7 @@ const checkState = async (client: AppStreamClient, input: DescribeFleetsCommandI return projection_3; }; for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "STARTING") { + if (anyStringEq_4 == "PENDING_ACTIVATE") { return { state: WaiterState.FAILURE, reason }; } } @@ -48,7 +48,7 @@ const checkState = async (client: AppStreamClient, input: DescribeFleetsCommandI return projection_3; }; for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "RUNNING") { + if (anyStringEq_4 == "ACTIVE") { return { state: WaiterState.FAILURE, reason }; } }