Skip to content

Commit b4cba53

Browse files
Add stream group expiration date and expired status
1 parent 2087ca8 commit b4cba53

23 files changed

+531
-260
lines changed

generator/ServiceModels/gameliftstreams/gameliftstreams-2018-05-10.api.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -665,6 +665,7 @@
665665
"StatusReason":{"shape":"StreamGroupStatusReason"},
666666
"LastUpdatedAt":{"shape":"Timestamp"},
667667
"CreatedAt":{"shape":"Timestamp"},
668+
"ExpiresAt":{"shape":"Timestamp"},
668669
"AssociatedApplications":{"shape":"ArnList"}
669670
}
670671
},
@@ -899,6 +900,7 @@
899900
"StatusReason":{"shape":"StreamGroupStatusReason"},
900901
"LastUpdatedAt":{"shape":"Timestamp"},
901902
"CreatedAt":{"shape":"Timestamp"},
903+
"ExpiresAt":{"shape":"Timestamp"},
902904
"AssociatedApplications":{"shape":"ArnList"}
903905
}
904906
},
@@ -1359,7 +1361,8 @@
13591361
"ACTIVE",
13601362
"ACTIVE_WITH_ERRORS",
13611363
"ERROR",
1362-
"DELETING"
1364+
"DELETING",
1365+
"EXPIRED"
13631366
]
13641367
},
13651368
"StreamGroupStatusReason":{
@@ -1380,7 +1383,8 @@
13801383
"StreamClass":{"shape":"StreamClass"},
13811384
"Status":{"shape":"StreamGroupStatus"},
13821385
"CreatedAt":{"shape":"Timestamp"},
1383-
"LastUpdatedAt":{"shape":"Timestamp"}
1386+
"LastUpdatedAt":{"shape":"Timestamp"},
1387+
"ExpiresAt":{"shape":"Timestamp"}
13841388
}
13851389
},
13861390
"StreamGroupSummaryList":{
@@ -1594,6 +1598,7 @@
15941598
"StatusReason":{"shape":"StreamGroupStatusReason"},
15951599
"LastUpdatedAt":{"shape":"Timestamp"},
15961600
"CreatedAt":{"shape":"Timestamp"},
1601+
"ExpiresAt":{"shape":"Timestamp"},
15971602
"AssociatedApplications":{"shape":"ArnList"}
15981603
}
15991604
},

generator/ServiceModels/gameliftstreams/gameliftstreams-2018-05-10.docs.json

Lines changed: 15 additions & 11 deletions
Large diffs are not rendered by default.

generator/ServiceModels/gameliftstreams/gameliftstreams-2018-05-10.normal.json

Lines changed: 28 additions & 11 deletions
Large diffs are not rendered by default.

generator/ServiceModels/gameliftstreams/gameliftstreams-2018-05-10.smoke2.json

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,15 @@
11
{
22
"version" : 2,
33
"testCases" : [ {
4-
"id" : "ListStreamSessionsByAccount",
5-
"operationName" : "ListStreamSessionsByAccount",
6-
"input" : { },
7-
"expectation" : {
8-
"success" : { }
4+
"id" : "ListTagsForResource",
5+
"operationName" : "ListTagsForResource",
6+
"input" : {
7+
"ResourceArn" : "arn:aws:gameliftstreams:us-west-2:012345678901:abcdefghi"
98
},
10-
"config" : {
11-
"region" : "us-west-2",
12-
"useFips" : false,
13-
"useDualstack" : false,
14-
"useAccountIdRouting" : true
15-
}
16-
}, {
17-
"id" : "ListApplications",
18-
"operationName" : "ListApplications",
19-
"input" : { },
209
"expectation" : {
21-
"success" : { }
10+
"failure" : {
11+
"errorId" : "ValidationException"
12+
}
2213
},
2314
"config" : {
2415
"region" : "us-west-2",
@@ -62,10 +53,23 @@
6253
"useAccountIdRouting" : true
6354
}
6455
}, {
65-
"id" : "ListStreamSessions",
66-
"operationName" : "ListStreamSessions",
56+
"id" : "ListStreamSessionsByAccount",
57+
"operationName" : "ListStreamSessionsByAccount",
58+
"input" : { },
59+
"expectation" : {
60+
"success" : { }
61+
},
62+
"config" : {
63+
"region" : "us-west-2",
64+
"useFips" : false,
65+
"useDualstack" : false,
66+
"useAccountIdRouting" : true
67+
}
68+
}, {
69+
"id" : "GetStreamGroup",
70+
"operationName" : "GetStreamGroup",
6771
"input" : {
68-
"Identifier" : "abcdefghi"
72+
"Identifier" : "12ab34cd5"
6973
},
7074
"expectation" : {
7175
"failure" : {
@@ -79,15 +83,11 @@
7983
"useAccountIdRouting" : true
8084
}
8185
}, {
82-
"id" : "ListTagsForResource",
83-
"operationName" : "ListTagsForResource",
84-
"input" : {
85-
"ResourceArn" : "arn:aws:gameliftstreams:us-west-2:012345678901:abcdefghi"
86-
},
86+
"id" : "ListStreamGroups",
87+
"operationName" : "ListStreamGroups",
88+
"input" : { },
8789
"expectation" : {
88-
"failure" : {
89-
"errorId" : "ValidationException"
90-
}
90+
"success" : { }
9191
},
9292
"config" : {
9393
"region" : "us-west-2",
@@ -96,10 +96,10 @@
9696
"useAccountIdRouting" : true
9797
}
9898
}, {
99-
"id" : "GetStreamGroup",
100-
"operationName" : "GetStreamGroup",
99+
"id" : "ListStreamSessions",
100+
"operationName" : "ListStreamSessions",
101101
"input" : {
102-
"Identifier" : "12ab34cd5"
102+
"Identifier" : "abcdefghi"
103103
},
104104
"expectation" : {
105105
"failure" : {
@@ -113,8 +113,8 @@
113113
"useAccountIdRouting" : true
114114
}
115115
}, {
116-
"id" : "ListStreamGroups",
117-
"operationName" : "ListStreamGroups",
116+
"id" : "ListApplications",
117+
"operationName" : "ListApplications",
118118
"input" : { },
119119
"expectation" : {
120120
"success" : { }

sdk/src/Services/GameLiftStreams/Generated/Model/AddStreamGroupLocationsRequest.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,10 @@ namespace Amazon.GameLiftStreams.Model
3131
{
3232
/// <summary>
3333
/// Container for the parameters to the AddStreamGroupLocations operation.
34-
/// Add locations that can host stream sessions. You configure locations and their corresponding
35-
/// capacity for each stream group. Creating a stream group in a location that's nearest
36-
/// to your end users can help minimize latency and improve quality.
34+
/// Add locations that can host stream sessions. To add a location, the stream group
35+
/// must be in <c>ACTIVE</c> status. You configure locations and their corresponding capacity
36+
/// for each stream group. Creating a stream group in a location that's nearest to your
37+
/// end users can help minimize latency and improve quality.
3738
///
3839
///
3940
/// <para>

sdk/src/Services/GameLiftStreams/Generated/Model/CreateStreamGroupRequest.cs

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,13 @@ namespace Amazon.GameLiftStreams.Model
3131
{
3232
/// <summary>
3333
/// Container for the parameters to the CreateStreamGroup operation.
34-
/// Manage how Amazon GameLift Streams streams your applications by using a stream group.
35-
/// A stream group is a collection of resources that Amazon GameLift Streams uses to stream
36-
/// your application to end-users. When you create a stream group, you specify an application
37-
/// to stream by default and the type of hardware to use, such as the graphical processing
38-
/// unit (GPU). You can also link additional applications, which allows you to stream
39-
/// those applications using this stream group. Depending on your expected users, you
40-
/// also scale the number of concurrent streams you want to support at one time, and in
41-
/// what locations.
34+
/// Stream groups manage how Amazon GameLift Streams allocates resources and handles
35+
/// concurrent streams, allowing you to effectively manage capacity and costs. Within
36+
/// a stream group, you specify an application to stream, streaming locations and their
37+
/// capacity, and the stream class you want to use when streaming applications to your
38+
/// end-users. A stream class defines the hardware configuration of the compute resources
39+
/// that Amazon GameLift Streams will use when streaming, such as the CPU, GPU, and memory.
40+
///
4241
///
4342
///
4443
/// <para>
@@ -73,13 +72,23 @@ namespace Amazon.GameLiftStreams.Model
7372
/// </para>
7473
///
7574
/// <para>
76-
/// If the request is successful, Amazon GameLift Streams begins creating the stream
77-
/// group. Amazon GameLift Streams assigns a unique ID to the stream group resource and
78-
/// sets the status to <c>ACTIVATING</c>. When the stream group reaches <c>ACTIVE</c>
79-
/// status, you can start stream sessions by using <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_StartStreamSession.html">StartStreamSession</a>.
75+
/// If the <c>CreateStreamGroup</c> request is successful, Amazon GameLift Streams assigns
76+
/// a unique ID to the stream group resource and sets the status to <c>ACTIVATING</c>.
77+
/// It can take a few minutes for Amazon GameLift Streams to finish creating the stream
78+
/// group while it searches for unallocated compute resources and provisions them. When
79+
/// complete, the stream group status will be <c>ACTIVE</c> and you can start stream sessions
80+
/// by using <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_StartStreamSession.html">StartStreamSession</a>.
8081
/// To check the stream group's status, call <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamGroup.html">GetStreamGroup</a>.
8182
///
8283
/// </para>
84+
///
85+
/// <para>
86+
/// Stream groups should be recreated every 3-4 weeks to pick up important service updates
87+
/// and fixes. Stream groups that are older than 180 days can no longer be updated with
88+
/// new application associations. Stream groups expire when they are 365 days old, at
89+
/// which point they can no longer stream sessions. The exact expiration date is indicated
90+
/// by the date value in the <c>ExpiresAt</c> field.
91+
/// </para>
8392
/// </summary>
8493
public partial class CreateStreamGroupRequest : AmazonGameLiftStreamsRequest
8594
{

sdk/src/Services/GameLiftStreams/Generated/Model/CreateStreamGroupResponse.cs

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public partial class CreateStreamGroupResponse : AmazonWebServiceResponse
3939
private DateTime? _createdAt;
4040
private DefaultApplication _defaultApplication;
4141
private string _description;
42+
private DateTime? _expiresAt;
4243
private string _id;
4344
private DateTime? _lastUpdatedAt;
4445
private List<LocationState> _locationStates = AWSConfigs.InitializeCollections ? new List<LocationState>() : null;
@@ -155,6 +156,27 @@ internal bool IsSetDescription()
155156
return this._description != null;
156157
}
157158

159+
/// <summary>
160+
/// Gets and sets the property ExpiresAt.
161+
/// <para>
162+
/// The time at which this stream group expires. Timestamps are expressed using in ISO8601
163+
/// format, such as: <c>2022-12-27T22:29:40+00:00</c> (UTC). After this time, you will
164+
/// no longer be able to update this stream group or use it to start stream sessions.
165+
/// Only Get and Delete operations will work on an expired stream group.
166+
/// </para>
167+
/// </summary>
168+
public DateTime? ExpiresAt
169+
{
170+
get { return this._expiresAt; }
171+
set { this._expiresAt = value; }
172+
}
173+
174+
// Check to see if ExpiresAt property is set
175+
internal bool IsSetExpiresAt()
176+
{
177+
return this._expiresAt.HasValue;
178+
}
179+
158180
/// <summary>
159181
/// Gets and sets the property Id.
160182
/// <para>
@@ -265,14 +287,20 @@ internal bool IsSetLocationStates()
265287
/// </para>
266288
/// </li> <li>
267289
/// <para>
290+
/// <c>DELETING</c>: Amazon GameLift Streams is in the process of deleting the stream
291+
/// group.
292+
/// </para>
293+
/// </li> <li>
294+
/// <para>
268295
/// <c>ERROR</c>: An error occurred when the stream group deployed. See <c>StatusReason</c>
269296
/// (returned by <c>CreateStreamGroup</c>, <c>GetStreamGroup</c>, and <c>UpdateStreamGroup</c>)
270297
/// for more information.
271298
/// </para>
272299
/// </li> <li>
273300
/// <para>
274-
/// <c>DELETING</c>: Amazon GameLift Streams is in the process of deleting the stream
275-
/// group.
301+
/// <c>EXPIRED</c>: The stream group is expired and can no longer host streams. This
302+
/// typically occurs when a stream group is 365 days old, as indicated by the value of
303+
/// <c>ExpiresAt</c>. Create a new stream group to resume streaming capabilities.
276304
/// </para>
277305
/// </li> <li>
278306
/// <para>

sdk/src/Services/GameLiftStreams/Generated/Model/DisassociateApplicationsRequest.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ namespace Amazon.GameLiftStreams.Model
3636
/// Any streams in process will continue until they terminate, which helps avoid interrupting
3737
/// an end-user's stream. Amazon GameLift Streams will not initiate new streams in the
3838
/// stream group using the disassociated application. The disassociate action does not
39-
/// affect the stream capacity of a stream group.
39+
/// affect the stream capacity of a stream group. To disassociate an application, the
40+
/// stream group must be in <c>ACTIVE</c> status.
4041
///
4142
///
4243
/// <para>

sdk/src/Services/GameLiftStreams/Generated/Model/GetStreamGroupResponse.cs

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public partial class GetStreamGroupResponse : AmazonWebServiceResponse
3939
private DateTime? _createdAt;
4040
private DefaultApplication _defaultApplication;
4141
private string _description;
42+
private DateTime? _expiresAt;
4243
private string _id;
4344
private DateTime? _lastUpdatedAt;
4445
private List<LocationState> _locationStates = AWSConfigs.InitializeCollections ? new List<LocationState>() : null;
@@ -155,6 +156,27 @@ internal bool IsSetDescription()
155156
return this._description != null;
156157
}
157158

159+
/// <summary>
160+
/// Gets and sets the property ExpiresAt.
161+
/// <para>
162+
/// The time at which this stream group expires. Timestamps are expressed using in ISO8601
163+
/// format, such as: <c>2022-12-27T22:29:40+00:00</c> (UTC). After this time, you will
164+
/// no longer be able to update this stream group or use it to start stream sessions.
165+
/// Only Get and Delete operations will work on an expired stream group.
166+
/// </para>
167+
/// </summary>
168+
public DateTime? ExpiresAt
169+
{
170+
get { return this._expiresAt; }
171+
set { this._expiresAt = value; }
172+
}
173+
174+
// Check to see if ExpiresAt property is set
175+
internal bool IsSetExpiresAt()
176+
{
177+
return this._expiresAt.HasValue;
178+
}
179+
158180
/// <summary>
159181
/// Gets and sets the property Id.
160182
/// <para>
@@ -265,14 +287,20 @@ internal bool IsSetLocationStates()
265287
/// </para>
266288
/// </li> <li>
267289
/// <para>
290+
/// <c>DELETING</c>: Amazon GameLift Streams is in the process of deleting the stream
291+
/// group.
292+
/// </para>
293+
/// </li> <li>
294+
/// <para>
268295
/// <c>ERROR</c>: An error occurred when the stream group deployed. See <c>StatusReason</c>
269296
/// (returned by <c>CreateStreamGroup</c>, <c>GetStreamGroup</c>, and <c>UpdateStreamGroup</c>)
270297
/// for more information.
271298
/// </para>
272299
/// </li> <li>
273300
/// <para>
274-
/// <c>DELETING</c>: Amazon GameLift Streams is in the process of deleting the stream
275-
/// group.
301+
/// <c>EXPIRED</c>: The stream group is expired and can no longer host streams. This
302+
/// typically occurs when a stream group is 365 days old, as indicated by the value of
303+
/// <c>ExpiresAt</c>. Create a new stream group to resume streaming capabilities.
276304
/// </para>
277305
/// </li> <li>
278306
/// <para>

sdk/src/Services/GameLiftStreams/Generated/Model/Internal/MarshallTransformations/CreateStreamGroupResponseUnmarshaller.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,12 @@ public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext cont
8282
response.Description = unmarshaller.Unmarshall(context, ref reader);
8383
continue;
8484
}
85+
if (context.TestExpression("ExpiresAt", targetDepth))
86+
{
87+
var unmarshaller = NullableDateTimeUnmarshaller.Instance;
88+
response.ExpiresAt = unmarshaller.Unmarshall(context, ref reader);
89+
continue;
90+
}
8591
if (context.TestExpression("Id", targetDepth))
8692
{
8793
var unmarshaller = StringUnmarshaller.Instance;

0 commit comments

Comments
 (0)