Skip to content

Commit 8e3c248

Browse files
author
awstools
committed
feat(client-appstream): This release introduces multi-session fleets, allowing customers to provision more than one user session on a single fleet instance.
1 parent a9637b1 commit 8e3c248

File tree

7 files changed

+167
-12
lines changed

7 files changed

+167
-12
lines changed

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ export interface CreateFleetCommandOutput extends CreateFleetResult, __MetadataB
5151
* InstanceType: "STRING_VALUE", // required
5252
* FleetType: "ALWAYS_ON" || "ON_DEMAND" || "ELASTIC",
5353
* ComputeCapacity: { // ComputeCapacity
54-
* DesiredInstances: Number("int"), // required
54+
* DesiredInstances: Number("int"),
55+
* DesiredSessions: Number("int"),
5556
* },
5657
* VpcConfig: { // VpcConfig
5758
* SubnetIds: [ // SubnetIdList
@@ -85,6 +86,7 @@ export interface CreateFleetCommandOutput extends CreateFleetResult, __MetadataB
8586
* S3Bucket: "STRING_VALUE", // required
8687
* S3Key: "STRING_VALUE",
8788
* },
89+
* MaxSessionsPerInstance: Number("int"),
8890
* };
8991
* const command = new CreateFleetCommand(input);
9092
* const response = await client.send(command);
@@ -103,6 +105,10 @@ export interface CreateFleetCommandOutput extends CreateFleetResult, __MetadataB
103105
* // Running: Number("int"),
104106
* // InUse: Number("int"),
105107
* // Available: Number("int"),
108+
* // DesiredUserSessions: Number("int"),
109+
* // AvailableUserSessions: Number("int"),
110+
* // ActiveUserSessions: Number("int"),
111+
* // ActualUserSessions: Number("int"),
106112
* // },
107113
* // MaxUserDurationInSeconds: Number("int"),
108114
* // DisconnectTimeoutInSeconds: Number("int"),
@@ -139,6 +145,7 @@ export interface CreateFleetCommandOutput extends CreateFleetResult, __MetadataB
139145
* // S3Bucket: "STRING_VALUE", // required
140146
* // S3Key: "STRING_VALUE",
141147
* // },
148+
* // MaxSessionsPerInstance: Number("int"),
142149
* // },
143150
* // };
144151
*

clients/client-appstream/src/commands/DescribeFleetsCommand.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ export interface DescribeFleetsCommandOutput extends DescribeFleetsResult, __Met
6868
* // Running: Number("int"),
6969
* // InUse: Number("int"),
7070
* // Available: Number("int"),
71+
* // DesiredUserSessions: Number("int"),
72+
* // AvailableUserSessions: Number("int"),
73+
* // ActiveUserSessions: Number("int"),
74+
* // ActualUserSessions: Number("int"),
7175
* // },
7276
* // MaxUserDurationInSeconds: Number("int"),
7377
* // DisconnectTimeoutInSeconds: Number("int"),
@@ -104,6 +108,7 @@ export interface DescribeFleetsCommandOutput extends DescribeFleetsResult, __Met
104108
* // S3Bucket: "STRING_VALUE", // required
105109
* // S3Key: "STRING_VALUE",
106110
* // },
111+
* // MaxSessionsPerInstance: Number("int"),
107112
* // },
108113
* // ],
109114
* // NextToken: "STRING_VALUE",

clients/client-appstream/src/commands/DescribeSessionsCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export interface DescribeSessionsCommandOutput extends DescribeSessionsResult, _
5353
* NextToken: "STRING_VALUE",
5454
* Limit: Number("int"),
5555
* AuthenticationType: "API" || "SAML" || "USERPOOL" || "AWS_AD",
56+
* InstanceId: "STRING_VALUE",
5657
* };
5758
* const command = new DescribeSessionsCommand(input);
5859
* const response = await client.send(command);
@@ -72,6 +73,7 @@ export interface DescribeSessionsCommandOutput extends DescribeSessionsResult, _
7273
* // EniPrivateIpAddress: "STRING_VALUE",
7374
* // EniId: "STRING_VALUE",
7475
* // },
76+
* // InstanceId: "STRING_VALUE",
7577
* // },
7678
* // ],
7779
* // NextToken: "STRING_VALUE",

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

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ export interface UpdateFleetCommandOutput extends UpdateFleetResult, __MetadataB
7171
* Name: "STRING_VALUE",
7272
* InstanceType: "STRING_VALUE",
7373
* ComputeCapacity: { // ComputeCapacity
74-
* DesiredInstances: Number("int"), // required
74+
* DesiredInstances: Number("int"),
75+
* DesiredSessions: Number("int"),
7576
* },
7677
* VpcConfig: { // VpcConfig
7778
* SubnetIds: [ // SubnetIdList
@@ -93,7 +94,7 @@ export interface UpdateFleetCommandOutput extends UpdateFleetResult, __MetadataB
9394
* },
9495
* IdleDisconnectTimeoutInSeconds: Number("int"),
9596
* AttributesToDelete: [ // FleetAttributes
96-
* "VPC_CONFIGURATION" || "VPC_CONFIGURATION_SECURITY_GROUP_IDS" || "DOMAIN_JOIN_INFO" || "IAM_ROLE_ARN" || "USB_DEVICE_FILTER_STRINGS" || "SESSION_SCRIPT_S3_LOCATION",
97+
* "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",
9798
* ],
9899
* IamRoleArn: "STRING_VALUE",
99100
* StreamView: "APP" || "DESKTOP",
@@ -106,6 +107,7 @@ export interface UpdateFleetCommandOutput extends UpdateFleetResult, __MetadataB
106107
* S3Bucket: "STRING_VALUE", // required
107108
* S3Key: "STRING_VALUE",
108109
* },
110+
* MaxSessionsPerInstance: Number("int"),
109111
* };
110112
* const command = new UpdateFleetCommand(input);
111113
* const response = await client.send(command);
@@ -124,6 +126,10 @@ export interface UpdateFleetCommandOutput extends UpdateFleetResult, __MetadataB
124126
* // Running: Number("int"),
125127
* // InUse: Number("int"),
126128
* // Available: Number("int"),
129+
* // DesiredUserSessions: Number("int"),
130+
* // AvailableUserSessions: Number("int"),
131+
* // ActiveUserSessions: Number("int"),
132+
* // ActualUserSessions: Number("int"),
127133
* // },
128134
* // MaxUserDurationInSeconds: Number("int"),
129135
* // DisconnectTimeoutInSeconds: Number("int"),
@@ -160,6 +166,7 @@ export interface UpdateFleetCommandOutput extends UpdateFleetResult, __MetadataB
160166
* // S3Bucket: "STRING_VALUE", // required
161167
* // S3Key: "STRING_VALUE",
162168
* // },
169+
* // MaxSessionsPerInstance: Number("int"),
163170
* // },
164171
* // };
165172
*

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

Lines changed: 70 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1224,7 +1224,14 @@ export interface ComputeCapacity {
12241224
* @public
12251225
* <p>The desired number of streaming instances.</p>
12261226
*/
1227-
DesiredInstances: number | undefined;
1227+
DesiredInstances?: number;
1228+
1229+
/**
1230+
* @public
1231+
* <p>The desired number of user sessions for a multi-session fleet. This is not allowed for single-session fleets.</p>
1232+
* <p>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.</p>
1233+
*/
1234+
DesiredSessions?: number;
12281235
}
12291236

12301237
/**
@@ -1256,6 +1263,36 @@ export interface ComputeCapacityStatus {
12561263
* sessions.</p>
12571264
*/
12581265
Available?: number;
1266+
1267+
/**
1268+
* @public
1269+
* <p>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.</p>
1270+
* <p>DesiredUserSessionCapacity = ActualUserSessionCapacity + PendingUserSessionCapacity</p>
1271+
* <p>This only applies to multi-session fleets.</p>
1272+
*/
1273+
DesiredUserSessions?: number;
1274+
1275+
/**
1276+
* @public
1277+
* <p>The number of idle session slots currently available for user sessions.</p>
1278+
* <p>AvailableUserSessionCapacity = ActualUserSessionCapacity - ActiveUserSessions</p>
1279+
* <p>This only applies to multi-session fleets.</p>
1280+
*/
1281+
AvailableUserSessions?: number;
1282+
1283+
/**
1284+
* @public
1285+
* <p>The number of user sessions currently being used for streaming sessions. This only applies to multi-session fleets.</p>
1286+
*/
1287+
ActiveUserSessions?: number;
1288+
1289+
/**
1290+
* @public
1291+
* <p>The total number of session slots that are available for streaming or are currently streaming.</p>
1292+
* <p>ActualUserSessionCapacity = AvailableUserSessionCapacity + ActiveUserSessions</p>
1293+
* <p>This only applies to multi-session fleets.</p>
1294+
*/
1295+
ActualUserSessions?: number;
12591296
}
12601297

12611298
/**
@@ -2209,7 +2246,7 @@ export interface CreateFleetRequest {
22092246
/**
22102247
* @public
22112248
* <p>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.</p>
2212-
* <p>Specify a value between 600 and 360000.</p>
2249+
* <p>Specify a value between 600 and 432000.</p>
22132250
*/
22142251
MaxUserDurationInSeconds?: number;
22152252

@@ -2312,6 +2349,12 @@ export interface CreateFleetRequest {
23122349
* <p>The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.</p>
23132350
*/
23142351
SessionScriptS3Location?: S3Location;
2352+
2353+
/**
2354+
* @public
2355+
* <p>The maximum number of user sessions on an instance. This only applies to multi-session fleets.</p>
2356+
*/
2357+
MaxSessionsPerInstance?: number;
23152358
}
23162359

23172360
/**
@@ -2627,6 +2670,12 @@ export interface Fleet {
26272670
* <p>The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.</p>
26282671
*/
26292672
SessionScriptS3Location?: S3Location;
2673+
2674+
/**
2675+
* @public
2676+
* <p>The maximum number of user sessions on an instance. This only applies to multi-session fleets.</p>
2677+
*/
2678+
MaxSessionsPerInstance?: number;
26302679
}
26312680

26322681
/**
@@ -4684,6 +4733,12 @@ export interface DescribeSessionsRequest {
46844733
* The default is to authenticate users using a streaming URL.</p>
46854734
*/
46864735
AuthenticationType?: AuthenticationType;
4736+
4737+
/**
4738+
* @public
4739+
* <p>The identifier for the instance hosting the session.</p>
4740+
*/
4741+
InstanceId?: string;
46874742
}
46884743

46894744
/**
@@ -4780,6 +4835,12 @@ export interface Session {
47804835
* <p>The network details for the streaming session.</p>
47814836
*/
47824837
NetworkAccessConfiguration?: NetworkAccessConfiguration;
4838+
4839+
/**
4840+
* @public
4841+
* <p>The identifier for the instance hosting the session.</p>
4842+
*/
4843+
InstanceId?: string;
47834844
}
47844845

47854846
/**
@@ -5284,6 +5345,7 @@ export interface ExpireSessionResult {}
52845345
export const FleetAttribute = {
52855346
DOMAIN_JOIN_INFO: "DOMAIN_JOIN_INFO",
52865347
IAM_ROLE_ARN: "IAM_ROLE_ARN",
5348+
MAX_SESSIONS_PER_INSTANCE: "MAX_SESSIONS_PER_INSTANCE",
52875349
SESSION_SCRIPT_S3_LOCATION: "SESSION_SCRIPT_S3_LOCATION",
52885350
USB_DEVICE_FILTER_STRINGS: "USB_DEVICE_FILTER_STRINGS",
52895351
VPC_CONFIGURATION: "VPC_CONFIGURATION",
@@ -6142,6 +6204,12 @@ export interface UpdateFleetRequest {
61426204
* <p>The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets. </p>
61436205
*/
61446206
SessionScriptS3Location?: S3Location;
6207+
6208+
/**
6209+
* @public
6210+
* <p>The maximum number of user sessions on an instance. This only applies to multi-session fleets.</p>
6211+
*/
6212+
MaxSessionsPerInstance?: number;
61456213
}
61466214

61476215
/**

clients/client-appstream/src/protocols/Aws_json1_1.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6359,6 +6359,7 @@ const de_Fleet = (output: any, context: __SerdeContext): Fleet => {
63596359
ImageName: __expectString,
63606360
InstanceType: __expectString,
63616361
MaxConcurrentSessions: __expectInt32,
6362+
MaxSessionsPerInstance: __expectInt32,
63626363
MaxUserDurationInSeconds: __expectInt32,
63636364
Name: __expectString,
63646365
Platform: __expectString,
@@ -6549,6 +6550,7 @@ const de_Session = (output: any, context: __SerdeContext): Session => {
65496550
ConnectionState: __expectString,
65506551
FleetName: __expectString,
65516552
Id: __expectString,
6553+
InstanceId: __expectString,
65526554
MaxExpirationTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),
65536555
NetworkAccessConfiguration: _json,
65546556
StackName: __expectString,

0 commit comments

Comments
 (0)