Skip to content

Commit 48e379e

Browse files
IVS Real-Time now offers customers the ability to customize thumbnails recording mode and interval for both Individual Participant Recording (IPR) and Server-Side Compositions (SSC).
1 parent 427d75f commit 48e379e

17 files changed

+921
-6
lines changed

generator/ServiceModels/ivs-realtime/ivs-realtime-2020-07-14.api.json

Lines changed: 55 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
"version":"2.0",
33
"metadata":{
44
"apiVersion":"2020-07-14",
5+
"auth":["aws.auth#sigv4"],
56
"endpointPrefix":"ivsrealtime",
6-
"jsonVersion":"1.1",
77
"protocol":"rest-json",
8+
"protocols":["rest-json"],
89
"serviceAbbreviation":"ivsrealtime",
910
"serviceFullName":"Amazon Interactive Video Service RealTime",
1011
"serviceId":"IVS RealTime",
@@ -627,7 +628,8 @@
627628
"required":["storageConfigurationArn"],
628629
"members":{
629630
"storageConfigurationArn":{"shape":"AutoParticipantRecordingStorageConfigurationArn"},
630-
"mediaTypes":{"shape":"ParticipantRecordingMediaTypeList"}
631+
"mediaTypes":{"shape":"ParticipantRecordingMediaTypeList"},
632+
"thumbnailConfiguration":{"shape":"ParticipantThumbnailConfiguration"}
631633
}
632634
},
633635
"AutoParticipantRecordingStorageConfigurationArn":{
@@ -721,6 +723,19 @@
721723
"type":"list",
722724
"member":{"shape":"CompositionSummary"}
723725
},
726+
"CompositionThumbnailConfiguration":{
727+
"type":"structure",
728+
"members":{
729+
"targetIntervalSeconds":{"shape":"ThumbnailIntervalSeconds"},
730+
"storage":{"shape":"ThumbnailStorageTypeList"}
731+
}
732+
},
733+
"CompositionThumbnailConfigurationList":{
734+
"type":"list",
735+
"member":{"shape":"CompositionThumbnailConfiguration"},
736+
"max":1,
737+
"min":0
738+
},
724739
"ConflictException":{
725740
"type":"structure",
726741
"members":{
@@ -1615,7 +1630,8 @@
16151630
"type":"string",
16161631
"enum":[
16171632
"AUDIO_VIDEO",
1618-
"AUDIO_ONLY"
1633+
"AUDIO_ONLY",
1634+
"NONE"
16191635
]
16201636
},
16211637
"ParticipantRecordingMediaTypeList":{
@@ -1665,6 +1681,14 @@
16651681
"recordingState":{"shape":"ParticipantRecordingState"}
16661682
}
16671683
},
1684+
"ParticipantThumbnailConfiguration":{
1685+
"type":"structure",
1686+
"members":{
1687+
"targetIntervalSeconds":{"shape":"ThumbnailIntervalSeconds"},
1688+
"storage":{"shape":"ThumbnailStorageTypeList"},
1689+
"recordingMode":{"shape":"ThumbnailRecordingMode"}
1690+
}
1691+
},
16681692
"ParticipantToken":{
16691693
"type":"structure",
16701694
"members":{
@@ -1872,7 +1896,8 @@
18721896
"members":{
18731897
"storageConfigurationArn":{"shape":"StorageConfigurationArn"},
18741898
"encoderConfigurationArns":{"shape":"EncoderConfigurationArnList"},
1875-
"recordingConfiguration":{"shape":"RecordingConfiguration"}
1899+
"recordingConfiguration":{"shape":"RecordingConfiguration"},
1900+
"thumbnailConfigurations":{"shape":"CompositionThumbnailConfigurationList"}
18761901
}
18771902
},
18781903
"S3Detail":{
@@ -2098,6 +2123,32 @@
20982123
"max":50,
20992124
"min":0
21002125
},
2126+
"ThumbnailIntervalSeconds":{
2127+
"type":"integer",
2128+
"box":true,
2129+
"max":86400,
2130+
"min":1
2131+
},
2132+
"ThumbnailRecordingMode":{
2133+
"type":"string",
2134+
"enum":[
2135+
"INTERVAL",
2136+
"DISABLED"
2137+
]
2138+
},
2139+
"ThumbnailStorageType":{
2140+
"type":"string",
2141+
"enum":[
2142+
"SEQUENTIAL",
2143+
"LATEST"
2144+
]
2145+
},
2146+
"ThumbnailStorageTypeList":{
2147+
"type":"list",
2148+
"member":{"shape":"ThumbnailStorageType"},
2149+
"max":2,
2150+
"min":0
2151+
},
21012152
"Time":{
21022153
"type":"timestamp",
21032154
"timestampFormat":"iso8601"

generator/ServiceModels/ivs-realtime/ivs-realtime-2020-07-14.docs.json

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,18 @@
132132
"ListCompositionsResponse$compositions": "<p>List of the matching Compositions (summary information only).</p>"
133133
}
134134
},
135+
"CompositionThumbnailConfiguration": {
136+
"base": "<p>An object representing a configuration of thumbnails for recorded video for a <a>Composition</a>.</p>",
137+
"refs": {
138+
"CompositionThumbnailConfigurationList$member": null
139+
}
140+
},
141+
"CompositionThumbnailConfigurationList": {
142+
"base": null,
143+
"refs": {
144+
"S3DestinationConfiguration$thumbnailConfigurations": "<p>A complex type that allows you to enable/disable the recording of thumbnails for a <a>Composition</a> and modify the interval at which thumbnails are generated for the live session.</p>"
145+
}
146+
},
135147
"ConflictException": {
136148
"base": "<p/>",
137149
"refs": {
@@ -859,6 +871,12 @@
859871
"ParticipantList$member": null
860872
}
861873
},
874+
"ParticipantThumbnailConfiguration": {
875+
"base": "<p>An object representing a configuration of thumbnails for recorded video from an individual participant.</p>",
876+
"refs": {
877+
"AutoParticipantRecordingConfiguration$thumbnailConfiguration": "<p>A complex type that allows you to enable/disable the recording of thumbnails for individual participant recording and modify the interval at which thumbnails are generated for the live session.</p>"
878+
}
879+
},
862880
"ParticipantToken": {
863881
"base": "<p>Object specifying a participant token in a stage.</p> <p> <b>Important</b>: Treat tokens as opaque; i.e., do not build functionality based on token contents. The format of tokens could change in the future.</p>",
864882
"refs": {
@@ -1320,6 +1338,32 @@
13201338
"TagResourceRequest$tags": "<p>Array of tags to be added or updated. Array of maps, each of the form <code>string:string (key:value)</code>. See <a href=\"https://docs.aws.amazon.com/tag-editor/latest/userguide/best-practices-and-strats.html\">Best practices and strategies</a> in <i>Tagging AWS Resources and Tag Editor</i> for details, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no constraints on tags beyond what is documented there.</p>"
13211339
}
13221340
},
1341+
"ThumbnailIntervalSeconds": {
1342+
"base": null,
1343+
"refs": {
1344+
"CompositionThumbnailConfiguration$targetIntervalSeconds": "<p>The targeted thumbnail-generation interval in seconds. Default: 60.</p>",
1345+
"ParticipantThumbnailConfiguration$targetIntervalSeconds": "<p>The targeted thumbnail-generation interval in seconds. This is configurable only if <code>recordingMode</code> is <code>INTERVAL</code>. Default: 60.</p>"
1346+
}
1347+
},
1348+
"ThumbnailRecordingMode": {
1349+
"base": null,
1350+
"refs": {
1351+
"ParticipantThumbnailConfiguration$recordingMode": "<p>Thumbnail recording mode. Default: <code>DISABLED</code>.</p>"
1352+
}
1353+
},
1354+
"ThumbnailStorageType": {
1355+
"base": null,
1356+
"refs": {
1357+
"ThumbnailStorageTypeList$member": null
1358+
}
1359+
},
1360+
"ThumbnailStorageTypeList": {
1361+
"base": null,
1362+
"refs": {
1363+
"CompositionThumbnailConfiguration$storage": "<p>Indicates the format in which thumbnails are recorded. <code>SEQUENTIAL</code> records all generated thumbnails in a serial manner, to the media/thumbnails/(width)x(height) directory, where (width) and (height) are the width and height of the thumbnail. <code>LATEST</code> saves the latest thumbnail in media/latest_thumbnail/(width)x(height)/thumb.jpg and overwrites it at the interval specified by <code>targetIntervalSeconds</code>. You can enable both <code>SEQUENTIAL</code> and <code>LATEST</code>. Default: <code>SEQUENTIAL</code>.</p>",
1364+
"ParticipantThumbnailConfiguration$storage": "<p>Indicates the format in which thumbnails are recorded. <code>SEQUENTIAL</code> records all generated thumbnails in a serial manner, to the media/thumbnails/high directory. <code>LATEST</code> saves the latest thumbnail in media/latest_thumbnail/high/thumb.jpg and overwrites it at the interval specified by <code>targetIntervalSeconds</code>. You can enable both <code>SEQUENTIAL</code> and <code>LATEST</code>. Default: <code>SEQUENTIAL</code>.</p>"
1365+
}
1366+
},
13231367
"Time": {
13241368
"base": null,
13251369
"refs": {

generator/ServiceModels/ivs-realtime/ivs-realtime-2020-07-14.normal.json

Lines changed: 76 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
"version":"2.0",
33
"metadata":{
44
"apiVersion":"2020-07-14",
5+
"auth":["aws.auth#sigv4"],
56
"endpointPrefix":"ivsrealtime",
6-
"jsonVersion":"1.1",
77
"protocol":"rest-json",
8+
"protocols":["rest-json"],
89
"serviceAbbreviation":"ivsrealtime",
910
"serviceFullName":"Amazon Interactive Video Service RealTime",
1011
"serviceId":"IVS RealTime",
@@ -673,6 +674,10 @@
673674
"mediaTypes":{
674675
"shape":"ParticipantRecordingMediaTypeList",
675676
"documentation":"<p>Types of media to be recorded. Default: <code>AUDIO_VIDEO</code>.</p>"
677+
},
678+
"thumbnailConfiguration":{
679+
"shape":"ParticipantThumbnailConfiguration",
680+
"documentation":"<p>A complex type that allows you to enable/disable the recording of thumbnails for individual participant recording and modify the interval at which thumbnails are generated for the live session.</p>"
676681
}
677682
},
678683
"documentation":"<p>Object specifying a configuration for individual participant recording.</p>"
@@ -822,6 +827,26 @@
822827
"type":"list",
823828
"member":{"shape":"CompositionSummary"}
824829
},
830+
"CompositionThumbnailConfiguration":{
831+
"type":"structure",
832+
"members":{
833+
"targetIntervalSeconds":{
834+
"shape":"ThumbnailIntervalSeconds",
835+
"documentation":"<p>The targeted thumbnail-generation interval in seconds. Default: 60.</p>"
836+
},
837+
"storage":{
838+
"shape":"ThumbnailStorageTypeList",
839+
"documentation":"<p>Indicates the format in which thumbnails are recorded. <code>SEQUENTIAL</code> records all generated thumbnails in a serial manner, to the media/thumbnails/(width)x(height) directory, where (width) and (height) are the width and height of the thumbnail. <code>LATEST</code> saves the latest thumbnail in media/latest_thumbnail/(width)x(height)/thumb.jpg and overwrites it at the interval specified by <code>targetIntervalSeconds</code>. You can enable both <code>SEQUENTIAL</code> and <code>LATEST</code>. Default: <code>SEQUENTIAL</code>.</p>"
840+
}
841+
},
842+
"documentation":"<p>An object representing a configuration of thumbnails for recorded video for a <a>Composition</a>.</p>"
843+
},
844+
"CompositionThumbnailConfigurationList":{
845+
"type":"list",
846+
"member":{"shape":"CompositionThumbnailConfiguration"},
847+
"max":1,
848+
"min":0
849+
},
825850
"ConflictException":{
826851
"type":"structure",
827852
"members":{
@@ -2268,7 +2293,8 @@
22682293
"type":"string",
22692294
"enum":[
22702295
"AUDIO_VIDEO",
2271-
"AUDIO_ONLY"
2296+
"AUDIO_ONLY",
2297+
"NONE"
22722298
]
22732299
},
22742300
"ParticipantRecordingMediaTypeList":{
@@ -2337,6 +2363,24 @@
23372363
},
23382364
"documentation":"<p>Summary object describing a participant that has joined a stage.</p>"
23392365
},
2366+
"ParticipantThumbnailConfiguration":{
2367+
"type":"structure",
2368+
"members":{
2369+
"targetIntervalSeconds":{
2370+
"shape":"ThumbnailIntervalSeconds",
2371+
"documentation":"<p>The targeted thumbnail-generation interval in seconds. This is configurable only if <code>recordingMode</code> is <code>INTERVAL</code>. Default: 60.</p>"
2372+
},
2373+
"storage":{
2374+
"shape":"ThumbnailStorageTypeList",
2375+
"documentation":"<p>Indicates the format in which thumbnails are recorded. <code>SEQUENTIAL</code> records all generated thumbnails in a serial manner, to the media/thumbnails/high directory. <code>LATEST</code> saves the latest thumbnail in media/latest_thumbnail/high/thumb.jpg and overwrites it at the interval specified by <code>targetIntervalSeconds</code>. You can enable both <code>SEQUENTIAL</code> and <code>LATEST</code>. Default: <code>SEQUENTIAL</code>.</p>"
2376+
},
2377+
"recordingMode":{
2378+
"shape":"ThumbnailRecordingMode",
2379+
"documentation":"<p>Thumbnail recording mode. Default: <code>DISABLED</code>.</p>"
2380+
}
2381+
},
2382+
"documentation":"<p>An object representing a configuration of thumbnails for recorded video from an individual participant.</p>"
2383+
},
23402384
"ParticipantToken":{
23412385
"type":"structure",
23422386
"members":{
@@ -2657,6 +2701,10 @@
26572701
"recordingConfiguration":{
26582702
"shape":"RecordingConfiguration",
26592703
"documentation":"<p>Array of maps, each of the form <code>string:string (key:value)</code>. This is an optional customer specification, currently used only to specify the recording format for storing a recording in Amazon S3.</p>"
2704+
},
2705+
"thumbnailConfigurations":{
2706+
"shape":"CompositionThumbnailConfigurationList",
2707+
"documentation":"<p>A complex type that allows you to enable/disable the recording of thumbnails for a <a>Composition</a> and modify the interval at which thumbnails are generated for the live session.</p>"
26602708
}
26612709
},
26622710
"documentation":"<p>A complex type that describes an S3 location where recorded videos will be stored.</p>"
@@ -3010,6 +3058,32 @@
30103058
"max":50,
30113059
"min":0
30123060
},
3061+
"ThumbnailIntervalSeconds":{
3062+
"type":"integer",
3063+
"box":true,
3064+
"max":86400,
3065+
"min":1
3066+
},
3067+
"ThumbnailRecordingMode":{
3068+
"type":"string",
3069+
"enum":[
3070+
"INTERVAL",
3071+
"DISABLED"
3072+
]
3073+
},
3074+
"ThumbnailStorageType":{
3075+
"type":"string",
3076+
"enum":[
3077+
"SEQUENTIAL",
3078+
"LATEST"
3079+
]
3080+
},
3081+
"ThumbnailStorageTypeList":{
3082+
"type":"list",
3083+
"member":{"shape":"ThumbnailStorageType"},
3084+
"max":2,
3085+
"min":0
3086+
},
30133087
"Time":{
30143088
"type":"timestamp",
30153089
"timestampFormat":"iso8601"

sdk/code-analysis/ServiceAnalysis/IVSRealTime/Generated/PropertyValueRules.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,11 @@
482482
<max>128</max>
483483
<pattern>arn:aws:ivs:[a-z0-9-]+:[0-9]+:stage/[a-zA-Z0-9-]+</pattern>
484484
</property-value-rule>
485+
<property-value-rule>
486+
<property>Amazon.IVSRealTime.Model.CompositionThumbnailConfiguration.TargetIntervalSeconds</property>
487+
<min>1</min>
488+
<max>86400</max>
489+
</property-value-rule>
485490
<property-value-rule>
486491
<property>Amazon.IVSRealTime.Model.DestinationConfiguration.Name</property>
487492
<min>0</min>
@@ -666,6 +671,11 @@
666671
<min>0</min>
667672
<max>128</max>
668673
</property-value-rule>
674+
<property-value-rule>
675+
<property>Amazon.IVSRealTime.Model.ParticipantThumbnailConfiguration.TargetIntervalSeconds</property>
676+
<min>1</min>
677+
<max>86400</max>
678+
</property-value-rule>
669679
<property-value-rule>
670680
<property>Amazon.IVSRealTime.Model.ParticipantToken.Duration</property>
671681
<min>1</min>

sdk/src/Services/IVSRealTime/Generated/Model/AutoParticipantRecordingConfiguration.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public partial class AutoParticipantRecordingConfiguration
3636
{
3737
private List<string> _mediaTypes = AWSConfigs.InitializeCollections ? new List<string>() : null;
3838
private string _storageConfigurationArn;
39+
private ParticipantThumbnailConfiguration _thumbnailConfiguration;
3940

4041
/// <summary>
4142
/// Gets and sets the property MediaTypes.
@@ -78,5 +79,25 @@ internal bool IsSetStorageConfigurationArn()
7879
return this._storageConfigurationArn != null;
7980
}
8081

82+
/// <summary>
83+
/// Gets and sets the property ThumbnailConfiguration.
84+
/// <para>
85+
/// A complex type that allows you to enable/disable the recording of thumbnails for individual
86+
/// participant recording and modify the interval at which thumbnails are generated for
87+
/// the live session.
88+
/// </para>
89+
/// </summary>
90+
public ParticipantThumbnailConfiguration ThumbnailConfiguration
91+
{
92+
get { return this._thumbnailConfiguration; }
93+
set { this._thumbnailConfiguration = value; }
94+
}
95+
96+
// Check to see if ThumbnailConfiguration property is set
97+
internal bool IsSetThumbnailConfiguration()
98+
{
99+
return this._thumbnailConfiguration != null;
100+
}
101+
81102
}
82103
}

0 commit comments

Comments
 (0)