aws-cdk.aws-ivs-alpha 2.166.0a0__tar.gz → 2.167.1a0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of aws-cdk.aws-ivs-alpha might be problematic. Click here for more details.
- {aws_cdk_aws_ivs_alpha-2.166.0a0/src/aws_cdk.aws_ivs_alpha.egg-info → aws_cdk_aws_ivs_alpha-2.167.1a0}/PKG-INFO +93 -2
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0}/README.md +91 -0
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0}/setup.py +3 -3
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0}/src/aws_cdk/aws_ivs_alpha/__init__.py +798 -0
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0}/src/aws_cdk/aws_ivs_alpha/_jsii/__init__.py +2 -2
- aws_cdk_aws_ivs_alpha-2.167.1a0/src/aws_cdk/aws_ivs_alpha/_jsii/aws-ivs-alpha@2.167.1-alpha.0.jsii.tgz +0 -0
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0/src/aws_cdk.aws_ivs_alpha.egg-info}/PKG-INFO +93 -2
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0}/src/aws_cdk.aws_ivs_alpha.egg-info/SOURCES.txt +1 -1
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0}/src/aws_cdk.aws_ivs_alpha.egg-info/requires.txt +1 -1
- aws_cdk_aws_ivs_alpha-2.166.0a0/src/aws_cdk/aws_ivs_alpha/_jsii/aws-ivs-alpha@2.166.0-alpha.0.jsii.tgz +0 -0
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0}/LICENSE +0 -0
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0}/MANIFEST.in +0 -0
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0}/NOTICE +0 -0
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0}/pyproject.toml +0 -0
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0}/setup.cfg +0 -0
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0}/src/aws_cdk/aws_ivs_alpha/py.typed +0 -0
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0}/src/aws_cdk.aws_ivs_alpha.egg-info/dependency_links.txt +0 -0
- {aws_cdk_aws_ivs_alpha-2.166.0a0 → aws_cdk_aws_ivs_alpha-2.167.1a0}/src/aws_cdk.aws_ivs_alpha.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: aws-cdk.aws-ivs-alpha
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.167.1a0
|
|
4
4
|
Summary: The CDK Construct Library for AWS::IVS
|
|
5
5
|
Home-page: https://github.com/aws/aws-cdk
|
|
6
6
|
Author: Amazon Web Services
|
|
@@ -23,7 +23,7 @@ Requires-Python: ~=3.8
|
|
|
23
23
|
Description-Content-Type: text/markdown
|
|
24
24
|
License-File: LICENSE
|
|
25
25
|
License-File: NOTICE
|
|
26
|
-
Requires-Dist: aws-cdk-lib<3.0.0,>=2.
|
|
26
|
+
Requires-Dist: aws-cdk-lib<3.0.0,>=2.167.1
|
|
27
27
|
Requires-Dist: constructs<11.0.0,>=10.0.0
|
|
28
28
|
Requires-Dist: jsii<2.0.0,>=1.104.0
|
|
29
29
|
Requires-Dist: publication>=0.0.3
|
|
@@ -145,3 +145,94 @@ my_channel = ivs.Channel(self, "Channel",
|
|
|
145
145
|
authorized=True
|
|
146
146
|
)
|
|
147
147
|
```
|
|
148
|
+
|
|
149
|
+
## Recording Configurations
|
|
150
|
+
|
|
151
|
+
An Amazon IVS Recording Configuration stores settings that specify how a channel's live streams should be recorded.
|
|
152
|
+
You can configure video quality, thumbnail generation, and where recordings are stored in Amazon S3.
|
|
153
|
+
|
|
154
|
+
For more information about IVS recording, see [IVS Auto-Record to Amazon S3 | Low-Latency Streaming](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html).
|
|
155
|
+
|
|
156
|
+
You can create a recording configuration:
|
|
157
|
+
|
|
158
|
+
```python
|
|
159
|
+
# create an S3 bucket for storing recordings
|
|
160
|
+
recording_bucket = s3.Bucket(self, "RecordingBucket")
|
|
161
|
+
|
|
162
|
+
# create a basic recording configuration
|
|
163
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
164
|
+
bucket=recording_bucket
|
|
165
|
+
)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Renditions of a Recording
|
|
169
|
+
|
|
170
|
+
When you stream content to an Amazon IVS channel, auto-record-to-s3 uses the source video to generate multiple renditions.
|
|
171
|
+
|
|
172
|
+
For more information, see [Discovering the Renditions of a Recording](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html#r2s3-recording-renditions).
|
|
173
|
+
|
|
174
|
+
```python
|
|
175
|
+
# recording_bucket: s3.Bucket
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
179
|
+
bucket=recording_bucket,
|
|
180
|
+
|
|
181
|
+
# set rendition configuration
|
|
182
|
+
rendition_configuration=ivs.RenditionConfiguration.custom([ivs.Resolution.HD, ivs.Resolution.SD])
|
|
183
|
+
)
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Thumbnail Generation
|
|
187
|
+
|
|
188
|
+
You can enable or disable the recording of thumbnails for a live session and modify the interval at which thumbnails are generated for the live session.
|
|
189
|
+
|
|
190
|
+
Thumbnail intervals may range from 1 second to 60 seconds; by default, thumbnail recording is enabled, at an interval of 60 seconds.
|
|
191
|
+
|
|
192
|
+
For more information, see [Thumbnails](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html#r2s3-thumbnails).
|
|
193
|
+
|
|
194
|
+
```python
|
|
195
|
+
# recording_bucket: s3.Bucket
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
199
|
+
bucket=recording_bucket,
|
|
200
|
+
|
|
201
|
+
# set thumbnail settings
|
|
202
|
+
thumbnail_configuration=ivs.ThumbnailConfiguration.interval(ivs.Resolution.HD, [ivs.Storage.LATEST, ivs.Storage.SEQUENTIAL], Duration.seconds(30))
|
|
203
|
+
)
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Merge Fragmented Streams
|
|
207
|
+
|
|
208
|
+
The `recordingReconnectWindow` property allows you to specify a window of time (in seconds) during which, if your stream is interrupted and a new stream is started, Amazon IVS tries to record to the same S3 prefix as the previous stream.
|
|
209
|
+
|
|
210
|
+
In other words, if a broadcast disconnects and then reconnects within the specified interval, the multiple streams are considered a single broadcast and merged together.
|
|
211
|
+
|
|
212
|
+
For more information, see [Merge Fragmented Streams](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html#r2s3-merge-fragmented-streams).
|
|
213
|
+
|
|
214
|
+
```python
|
|
215
|
+
# recording_bucket: s3.Bucket
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
219
|
+
bucket=recording_bucket,
|
|
220
|
+
|
|
221
|
+
# set recording reconnect window
|
|
222
|
+
recording_reconnect_window=Duration.seconds(60)
|
|
223
|
+
)
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Attaching Recording Configuration to a Channel
|
|
227
|
+
|
|
228
|
+
To enable recording for a channel, specify the recording configuration when creating the channel:
|
|
229
|
+
|
|
230
|
+
```python
|
|
231
|
+
# recording_configuration: ivs.RecordingConfiguration
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
channel = ivs.Channel(self, "Channel",
|
|
235
|
+
# set recording configuration
|
|
236
|
+
recording_configuration=recording_configuration
|
|
237
|
+
)
|
|
238
|
+
```
|
|
@@ -114,3 +114,94 @@ my_channel = ivs.Channel(self, "Channel",
|
|
|
114
114
|
authorized=True
|
|
115
115
|
)
|
|
116
116
|
```
|
|
117
|
+
|
|
118
|
+
## Recording Configurations
|
|
119
|
+
|
|
120
|
+
An Amazon IVS Recording Configuration stores settings that specify how a channel's live streams should be recorded.
|
|
121
|
+
You can configure video quality, thumbnail generation, and where recordings are stored in Amazon S3.
|
|
122
|
+
|
|
123
|
+
For more information about IVS recording, see [IVS Auto-Record to Amazon S3 | Low-Latency Streaming](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html).
|
|
124
|
+
|
|
125
|
+
You can create a recording configuration:
|
|
126
|
+
|
|
127
|
+
```python
|
|
128
|
+
# create an S3 bucket for storing recordings
|
|
129
|
+
recording_bucket = s3.Bucket(self, "RecordingBucket")
|
|
130
|
+
|
|
131
|
+
# create a basic recording configuration
|
|
132
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
133
|
+
bucket=recording_bucket
|
|
134
|
+
)
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Renditions of a Recording
|
|
138
|
+
|
|
139
|
+
When you stream content to an Amazon IVS channel, auto-record-to-s3 uses the source video to generate multiple renditions.
|
|
140
|
+
|
|
141
|
+
For more information, see [Discovering the Renditions of a Recording](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html#r2s3-recording-renditions).
|
|
142
|
+
|
|
143
|
+
```python
|
|
144
|
+
# recording_bucket: s3.Bucket
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
148
|
+
bucket=recording_bucket,
|
|
149
|
+
|
|
150
|
+
# set rendition configuration
|
|
151
|
+
rendition_configuration=ivs.RenditionConfiguration.custom([ivs.Resolution.HD, ivs.Resolution.SD])
|
|
152
|
+
)
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Thumbnail Generation
|
|
156
|
+
|
|
157
|
+
You can enable or disable the recording of thumbnails for a live session and modify the interval at which thumbnails are generated for the live session.
|
|
158
|
+
|
|
159
|
+
Thumbnail intervals may range from 1 second to 60 seconds; by default, thumbnail recording is enabled, at an interval of 60 seconds.
|
|
160
|
+
|
|
161
|
+
For more information, see [Thumbnails](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html#r2s3-thumbnails).
|
|
162
|
+
|
|
163
|
+
```python
|
|
164
|
+
# recording_bucket: s3.Bucket
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
168
|
+
bucket=recording_bucket,
|
|
169
|
+
|
|
170
|
+
# set thumbnail settings
|
|
171
|
+
thumbnail_configuration=ivs.ThumbnailConfiguration.interval(ivs.Resolution.HD, [ivs.Storage.LATEST, ivs.Storage.SEQUENTIAL], Duration.seconds(30))
|
|
172
|
+
)
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Merge Fragmented Streams
|
|
176
|
+
|
|
177
|
+
The `recordingReconnectWindow` property allows you to specify a window of time (in seconds) during which, if your stream is interrupted and a new stream is started, Amazon IVS tries to record to the same S3 prefix as the previous stream.
|
|
178
|
+
|
|
179
|
+
In other words, if a broadcast disconnects and then reconnects within the specified interval, the multiple streams are considered a single broadcast and merged together.
|
|
180
|
+
|
|
181
|
+
For more information, see [Merge Fragmented Streams](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html#r2s3-merge-fragmented-streams).
|
|
182
|
+
|
|
183
|
+
```python
|
|
184
|
+
# recording_bucket: s3.Bucket
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
188
|
+
bucket=recording_bucket,
|
|
189
|
+
|
|
190
|
+
# set recording reconnect window
|
|
191
|
+
recording_reconnect_window=Duration.seconds(60)
|
|
192
|
+
)
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Attaching Recording Configuration to a Channel
|
|
196
|
+
|
|
197
|
+
To enable recording for a channel, specify the recording configuration when creating the channel:
|
|
198
|
+
|
|
199
|
+
```python
|
|
200
|
+
# recording_configuration: ivs.RecordingConfiguration
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
channel = ivs.Channel(self, "Channel",
|
|
204
|
+
# set recording configuration
|
|
205
|
+
recording_configuration=recording_configuration
|
|
206
|
+
)
|
|
207
|
+
```
|
|
@@ -5,7 +5,7 @@ kwargs = json.loads(
|
|
|
5
5
|
"""
|
|
6
6
|
{
|
|
7
7
|
"name": "aws-cdk.aws-ivs-alpha",
|
|
8
|
-
"version": "2.
|
|
8
|
+
"version": "2.167.1.a0",
|
|
9
9
|
"description": "The CDK Construct Library for AWS::IVS",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"url": "https://github.com/aws/aws-cdk",
|
|
@@ -26,7 +26,7 @@ kwargs = json.loads(
|
|
|
26
26
|
],
|
|
27
27
|
"package_data": {
|
|
28
28
|
"aws_cdk.aws_ivs_alpha._jsii": [
|
|
29
|
-
"aws-ivs-alpha@2.
|
|
29
|
+
"aws-ivs-alpha@2.167.1-alpha.0.jsii.tgz"
|
|
30
30
|
],
|
|
31
31
|
"aws_cdk.aws_ivs_alpha": [
|
|
32
32
|
"py.typed"
|
|
@@ -34,7 +34,7 @@ kwargs = json.loads(
|
|
|
34
34
|
},
|
|
35
35
|
"python_requires": "~=3.8",
|
|
36
36
|
"install_requires": [
|
|
37
|
-
"aws-cdk-lib>=2.
|
|
37
|
+
"aws-cdk-lib>=2.167.1, <3.0.0",
|
|
38
38
|
"constructs>=10.0.0, <11.0.0",
|
|
39
39
|
"jsii>=1.104.0, <2.0.0",
|
|
40
40
|
"publication>=0.0.3",
|
|
@@ -115,6 +115,97 @@ my_channel = ivs.Channel(self, "Channel",
|
|
|
115
115
|
authorized=True
|
|
116
116
|
)
|
|
117
117
|
```
|
|
118
|
+
|
|
119
|
+
## Recording Configurations
|
|
120
|
+
|
|
121
|
+
An Amazon IVS Recording Configuration stores settings that specify how a channel's live streams should be recorded.
|
|
122
|
+
You can configure video quality, thumbnail generation, and where recordings are stored in Amazon S3.
|
|
123
|
+
|
|
124
|
+
For more information about IVS recording, see [IVS Auto-Record to Amazon S3 | Low-Latency Streaming](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html).
|
|
125
|
+
|
|
126
|
+
You can create a recording configuration:
|
|
127
|
+
|
|
128
|
+
```python
|
|
129
|
+
# create an S3 bucket for storing recordings
|
|
130
|
+
recording_bucket = s3.Bucket(self, "RecordingBucket")
|
|
131
|
+
|
|
132
|
+
# create a basic recording configuration
|
|
133
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
134
|
+
bucket=recording_bucket
|
|
135
|
+
)
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Renditions of a Recording
|
|
139
|
+
|
|
140
|
+
When you stream content to an Amazon IVS channel, auto-record-to-s3 uses the source video to generate multiple renditions.
|
|
141
|
+
|
|
142
|
+
For more information, see [Discovering the Renditions of a Recording](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html#r2s3-recording-renditions).
|
|
143
|
+
|
|
144
|
+
```python
|
|
145
|
+
# recording_bucket: s3.Bucket
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
149
|
+
bucket=recording_bucket,
|
|
150
|
+
|
|
151
|
+
# set rendition configuration
|
|
152
|
+
rendition_configuration=ivs.RenditionConfiguration.custom([ivs.Resolution.HD, ivs.Resolution.SD])
|
|
153
|
+
)
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Thumbnail Generation
|
|
157
|
+
|
|
158
|
+
You can enable or disable the recording of thumbnails for a live session and modify the interval at which thumbnails are generated for the live session.
|
|
159
|
+
|
|
160
|
+
Thumbnail intervals may range from 1 second to 60 seconds; by default, thumbnail recording is enabled, at an interval of 60 seconds.
|
|
161
|
+
|
|
162
|
+
For more information, see [Thumbnails](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html#r2s3-thumbnails).
|
|
163
|
+
|
|
164
|
+
```python
|
|
165
|
+
# recording_bucket: s3.Bucket
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
169
|
+
bucket=recording_bucket,
|
|
170
|
+
|
|
171
|
+
# set thumbnail settings
|
|
172
|
+
thumbnail_configuration=ivs.ThumbnailConfiguration.interval(ivs.Resolution.HD, [ivs.Storage.LATEST, ivs.Storage.SEQUENTIAL], Duration.seconds(30))
|
|
173
|
+
)
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Merge Fragmented Streams
|
|
177
|
+
|
|
178
|
+
The `recordingReconnectWindow` property allows you to specify a window of time (in seconds) during which, if your stream is interrupted and a new stream is started, Amazon IVS tries to record to the same S3 prefix as the previous stream.
|
|
179
|
+
|
|
180
|
+
In other words, if a broadcast disconnects and then reconnects within the specified interval, the multiple streams are considered a single broadcast and merged together.
|
|
181
|
+
|
|
182
|
+
For more information, see [Merge Fragmented Streams](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html#r2s3-merge-fragmented-streams).
|
|
183
|
+
|
|
184
|
+
```python
|
|
185
|
+
# recording_bucket: s3.Bucket
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
189
|
+
bucket=recording_bucket,
|
|
190
|
+
|
|
191
|
+
# set recording reconnect window
|
|
192
|
+
recording_reconnect_window=Duration.seconds(60)
|
|
193
|
+
)
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Attaching Recording Configuration to a Channel
|
|
197
|
+
|
|
198
|
+
To enable recording for a channel, specify the recording configuration when creating the channel:
|
|
199
|
+
|
|
200
|
+
```python
|
|
201
|
+
# recording_configuration: ivs.RecordingConfiguration
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
channel = ivs.Channel(self, "Channel",
|
|
205
|
+
# set recording configuration
|
|
206
|
+
recording_configuration=recording_configuration
|
|
207
|
+
)
|
|
208
|
+
```
|
|
118
209
|
'''
|
|
119
210
|
from pkgutil import extend_path
|
|
120
211
|
__path__ = extend_path(__path__, __name__)
|
|
@@ -149,6 +240,7 @@ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing
|
|
|
149
240
|
from ._jsii import *
|
|
150
241
|
|
|
151
242
|
import aws_cdk as _aws_cdk_ceddda9d
|
|
243
|
+
import aws_cdk.aws_s3 as _aws_cdk_aws_s3_ceddda9d
|
|
152
244
|
import constructs as _constructs_77d1e7e8
|
|
153
245
|
|
|
154
246
|
|
|
@@ -161,6 +253,7 @@ import constructs as _constructs_77d1e7e8
|
|
|
161
253
|
"insecure_ingest": "insecureIngest",
|
|
162
254
|
"latency_mode": "latencyMode",
|
|
163
255
|
"preset": "preset",
|
|
256
|
+
"recording_configuration": "recordingConfiguration",
|
|
164
257
|
"type": "type",
|
|
165
258
|
},
|
|
166
259
|
)
|
|
@@ -173,6 +266,7 @@ class ChannelProps:
|
|
|
173
266
|
insecure_ingest: typing.Optional[builtins.bool] = None,
|
|
174
267
|
latency_mode: typing.Optional["LatencyMode"] = None,
|
|
175
268
|
preset: typing.Optional["Preset"] = None,
|
|
269
|
+
recording_configuration: typing.Optional["IRecordingConfiguration"] = None,
|
|
176
270
|
type: typing.Optional["ChannelType"] = None,
|
|
177
271
|
) -> None:
|
|
178
272
|
'''(experimental) Properties for creating a new Channel.
|
|
@@ -182,6 +276,7 @@ class ChannelProps:
|
|
|
182
276
|
:param insecure_ingest: (experimental) Whether the channel allows insecure RTMP ingest. Default: false
|
|
183
277
|
:param latency_mode: (experimental) Channel latency mode. Default: LatencyMode.LOW
|
|
184
278
|
:param preset: (experimental) An optional transcode preset for the channel. Can be used for ADVANCED_HD and ADVANCED_SD channel types. When LOW or STANDARD is used, the preset will be overridden and set to none regardless of the value provided. Default: - Preset.HIGHER_BANDWIDTH_DELIVERY if channelType is ADVANCED_SD or ADVANCED_HD, none otherwise
|
|
279
|
+
:param recording_configuration: (experimental) A recording configuration for the channel. Default: - recording is disabled
|
|
185
280
|
:param type: (experimental) The channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream will disconnect immediately Default: ChannelType.STANDARD
|
|
186
281
|
|
|
187
282
|
:stability: experimental
|
|
@@ -201,6 +296,7 @@ class ChannelProps:
|
|
|
201
296
|
check_type(argname="argument insecure_ingest", value=insecure_ingest, expected_type=type_hints["insecure_ingest"])
|
|
202
297
|
check_type(argname="argument latency_mode", value=latency_mode, expected_type=type_hints["latency_mode"])
|
|
203
298
|
check_type(argname="argument preset", value=preset, expected_type=type_hints["preset"])
|
|
299
|
+
check_type(argname="argument recording_configuration", value=recording_configuration, expected_type=type_hints["recording_configuration"])
|
|
204
300
|
check_type(argname="argument type", value=type, expected_type=type_hints["type"])
|
|
205
301
|
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
206
302
|
if authorized is not None:
|
|
@@ -213,6 +309,8 @@ class ChannelProps:
|
|
|
213
309
|
self._values["latency_mode"] = latency_mode
|
|
214
310
|
if preset is not None:
|
|
215
311
|
self._values["preset"] = preset
|
|
312
|
+
if recording_configuration is not None:
|
|
313
|
+
self._values["recording_configuration"] = recording_configuration
|
|
216
314
|
if type is not None:
|
|
217
315
|
self._values["type"] = type
|
|
218
316
|
|
|
@@ -278,6 +376,17 @@ class ChannelProps:
|
|
|
278
376
|
result = self._values.get("preset")
|
|
279
377
|
return typing.cast(typing.Optional["Preset"], result)
|
|
280
378
|
|
|
379
|
+
@builtins.property
|
|
380
|
+
def recording_configuration(self) -> typing.Optional["IRecordingConfiguration"]:
|
|
381
|
+
'''(experimental) A recording configuration for the channel.
|
|
382
|
+
|
|
383
|
+
:default: - recording is disabled
|
|
384
|
+
|
|
385
|
+
:stability: experimental
|
|
386
|
+
'''
|
|
387
|
+
result = self._values.get("recording_configuration")
|
|
388
|
+
return typing.cast(typing.Optional["IRecordingConfiguration"], result)
|
|
389
|
+
|
|
281
390
|
@builtins.property
|
|
282
391
|
def type(self) -> typing.Optional["ChannelType"]:
|
|
283
392
|
'''(experimental) The channel type, which determines the allowable resolution and bitrate.
|
|
@@ -469,6 +578,68 @@ class _IPlaybackKeyPairProxy(
|
|
|
469
578
|
typing.cast(typing.Any, IPlaybackKeyPair).__jsii_proxy_class__ = lambda : _IPlaybackKeyPairProxy
|
|
470
579
|
|
|
471
580
|
|
|
581
|
+
@jsii.interface(jsii_type="@aws-cdk/aws-ivs-alpha.IRecordingConfiguration")
|
|
582
|
+
class IRecordingConfiguration(_aws_cdk_ceddda9d.IResource, typing_extensions.Protocol):
|
|
583
|
+
'''(experimental) Represents the IVS Recording configuration.
|
|
584
|
+
|
|
585
|
+
:stability: experimental
|
|
586
|
+
'''
|
|
587
|
+
|
|
588
|
+
@builtins.property
|
|
589
|
+
@jsii.member(jsii_name="recordingConfigurationArn")
|
|
590
|
+
def recording_configuration_arn(self) -> builtins.str:
|
|
591
|
+
'''(experimental) The ARN of the Recording configuration.
|
|
592
|
+
|
|
593
|
+
:stability: experimental
|
|
594
|
+
:attribute: true
|
|
595
|
+
'''
|
|
596
|
+
...
|
|
597
|
+
|
|
598
|
+
@builtins.property
|
|
599
|
+
@jsii.member(jsii_name="recordingConfigurationId")
|
|
600
|
+
def recording_configuration_id(self) -> builtins.str:
|
|
601
|
+
'''(experimental) The ID of the Recording configuration.
|
|
602
|
+
|
|
603
|
+
:stability: experimental
|
|
604
|
+
:attribute: true
|
|
605
|
+
'''
|
|
606
|
+
...
|
|
607
|
+
|
|
608
|
+
|
|
609
|
+
class _IRecordingConfigurationProxy(
|
|
610
|
+
jsii.proxy_for(_aws_cdk_ceddda9d.IResource), # type: ignore[misc]
|
|
611
|
+
):
|
|
612
|
+
'''(experimental) Represents the IVS Recording configuration.
|
|
613
|
+
|
|
614
|
+
:stability: experimental
|
|
615
|
+
'''
|
|
616
|
+
|
|
617
|
+
__jsii_type__: typing.ClassVar[str] = "@aws-cdk/aws-ivs-alpha.IRecordingConfiguration"
|
|
618
|
+
|
|
619
|
+
@builtins.property
|
|
620
|
+
@jsii.member(jsii_name="recordingConfigurationArn")
|
|
621
|
+
def recording_configuration_arn(self) -> builtins.str:
|
|
622
|
+
'''(experimental) The ARN of the Recording configuration.
|
|
623
|
+
|
|
624
|
+
:stability: experimental
|
|
625
|
+
:attribute: true
|
|
626
|
+
'''
|
|
627
|
+
return typing.cast(builtins.str, jsii.get(self, "recordingConfigurationArn"))
|
|
628
|
+
|
|
629
|
+
@builtins.property
|
|
630
|
+
@jsii.member(jsii_name="recordingConfigurationId")
|
|
631
|
+
def recording_configuration_id(self) -> builtins.str:
|
|
632
|
+
'''(experimental) The ID of the Recording configuration.
|
|
633
|
+
|
|
634
|
+
:stability: experimental
|
|
635
|
+
:attribute: true
|
|
636
|
+
'''
|
|
637
|
+
return typing.cast(builtins.str, jsii.get(self, "recordingConfigurationId"))
|
|
638
|
+
|
|
639
|
+
# Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
|
|
640
|
+
typing.cast(typing.Any, IRecordingConfiguration).__jsii_proxy_class__ = lambda : _IRecordingConfigurationProxy
|
|
641
|
+
|
|
642
|
+
|
|
472
643
|
@jsii.interface(jsii_type="@aws-cdk/aws-ivs-alpha.IStreamKey")
|
|
473
644
|
class IStreamKey(_aws_cdk_ceddda9d.IResource, typing_extensions.Protocol):
|
|
474
645
|
'''(experimental) Represents an IVS Stream Key.
|
|
@@ -711,6 +882,466 @@ class Preset(enum.Enum):
|
|
|
711
882
|
'''
|
|
712
883
|
|
|
713
884
|
|
|
885
|
+
@jsii.implements(IRecordingConfiguration)
|
|
886
|
+
class RecordingConfiguration(
|
|
887
|
+
_aws_cdk_ceddda9d.Resource,
|
|
888
|
+
metaclass=jsii.JSIIMeta,
|
|
889
|
+
jsii_type="@aws-cdk/aws-ivs-alpha.RecordingConfiguration",
|
|
890
|
+
):
|
|
891
|
+
'''(experimental) The IVS Recording configuration.
|
|
892
|
+
|
|
893
|
+
:stability: experimental
|
|
894
|
+
:resource: AWS::IVS::RecordingConfiguration
|
|
895
|
+
:exampleMetadata: infused
|
|
896
|
+
|
|
897
|
+
Example::
|
|
898
|
+
|
|
899
|
+
# recording_bucket: s3.Bucket
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
903
|
+
bucket=recording_bucket,
|
|
904
|
+
|
|
905
|
+
# set rendition configuration
|
|
906
|
+
rendition_configuration=ivs.RenditionConfiguration.custom([ivs.Resolution.HD, ivs.Resolution.SD])
|
|
907
|
+
)
|
|
908
|
+
'''
|
|
909
|
+
|
|
910
|
+
def __init__(
|
|
911
|
+
self,
|
|
912
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
913
|
+
id: builtins.str,
|
|
914
|
+
*,
|
|
915
|
+
bucket: _aws_cdk_aws_s3_ceddda9d.IBucket,
|
|
916
|
+
recording_configuration_name: typing.Optional[builtins.str] = None,
|
|
917
|
+
recording_reconnect_window: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
918
|
+
rendition_configuration: typing.Optional["RenditionConfiguration"] = None,
|
|
919
|
+
thumbnail_configuration: typing.Optional["ThumbnailConfiguration"] = None,
|
|
920
|
+
) -> None:
|
|
921
|
+
'''
|
|
922
|
+
:param scope: -
|
|
923
|
+
:param id: -
|
|
924
|
+
:param bucket: (experimental) S3 bucket where recorded videos will be stored.
|
|
925
|
+
:param recording_configuration_name: (experimental) The name of the Recording configuration. The value does not need to be unique. Default: - auto generate
|
|
926
|
+
:param recording_reconnect_window: (experimental) If a broadcast disconnects and then reconnects within the specified interval, the multiple streams will be considered a single broadcast and merged together. ``recordingReconnectWindow`` must be between 0 and 300 seconds Default: - 0 seconds (means disabled)
|
|
927
|
+
:param rendition_configuration: (experimental) A rendition configuration describes which renditions should be recorded for a stream. Default: - no rendition configuration
|
|
928
|
+
:param thumbnail_configuration: (experimental) A thumbnail configuration enables/disables the recording of thumbnails for a live session and controls the interval at which thumbnails are generated for the live session. Default: - no thumbnail configuration
|
|
929
|
+
|
|
930
|
+
:stability: experimental
|
|
931
|
+
'''
|
|
932
|
+
if __debug__:
|
|
933
|
+
type_hints = typing.get_type_hints(_typecheckingstub__84f7bfe030fdaeee83dd169a4320aa71fb0e576e76fac8a6fb5e799d638df503)
|
|
934
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
935
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
936
|
+
props = RecordingConfigurationProps(
|
|
937
|
+
bucket=bucket,
|
|
938
|
+
recording_configuration_name=recording_configuration_name,
|
|
939
|
+
recording_reconnect_window=recording_reconnect_window,
|
|
940
|
+
rendition_configuration=rendition_configuration,
|
|
941
|
+
thumbnail_configuration=thumbnail_configuration,
|
|
942
|
+
)
|
|
943
|
+
|
|
944
|
+
jsii.create(self.__class__, self, [scope, id, props])
|
|
945
|
+
|
|
946
|
+
@jsii.member(jsii_name="fromArn")
|
|
947
|
+
@builtins.classmethod
|
|
948
|
+
def from_arn(
|
|
949
|
+
cls,
|
|
950
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
951
|
+
id: builtins.str,
|
|
952
|
+
recording_configuration_arn: builtins.str,
|
|
953
|
+
) -> IRecordingConfiguration:
|
|
954
|
+
'''(experimental) Imports an IVS Recording Configuration from its ARN.
|
|
955
|
+
|
|
956
|
+
:param scope: -
|
|
957
|
+
:param id: -
|
|
958
|
+
:param recording_configuration_arn: -
|
|
959
|
+
|
|
960
|
+
:stability: experimental
|
|
961
|
+
'''
|
|
962
|
+
if __debug__:
|
|
963
|
+
type_hints = typing.get_type_hints(_typecheckingstub__5f6cbd063c6e695eed56d0c9c16dea95fe5f4b2a11e461c72cb33aa8d324e82d)
|
|
964
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
965
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
966
|
+
check_type(argname="argument recording_configuration_arn", value=recording_configuration_arn, expected_type=type_hints["recording_configuration_arn"])
|
|
967
|
+
return typing.cast(IRecordingConfiguration, jsii.sinvoke(cls, "fromArn", [scope, id, recording_configuration_arn]))
|
|
968
|
+
|
|
969
|
+
@jsii.member(jsii_name="fromRecordingConfigurationId")
|
|
970
|
+
@builtins.classmethod
|
|
971
|
+
def from_recording_configuration_id(
|
|
972
|
+
cls,
|
|
973
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
974
|
+
id: builtins.str,
|
|
975
|
+
recording_configuration_id: builtins.str,
|
|
976
|
+
) -> IRecordingConfiguration:
|
|
977
|
+
'''(experimental) Imports an IVS Recording Configuration from attributes.
|
|
978
|
+
|
|
979
|
+
:param scope: -
|
|
980
|
+
:param id: -
|
|
981
|
+
:param recording_configuration_id: -
|
|
982
|
+
|
|
983
|
+
:stability: experimental
|
|
984
|
+
'''
|
|
985
|
+
if __debug__:
|
|
986
|
+
type_hints = typing.get_type_hints(_typecheckingstub__9c05eebd5485c91c16b38e6bf9c1d896abb2eee019bb8f0da1ec7fa25b69b0d8)
|
|
987
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
988
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
989
|
+
check_type(argname="argument recording_configuration_id", value=recording_configuration_id, expected_type=type_hints["recording_configuration_id"])
|
|
990
|
+
return typing.cast(IRecordingConfiguration, jsii.sinvoke(cls, "fromRecordingConfigurationId", [scope, id, recording_configuration_id]))
|
|
991
|
+
|
|
992
|
+
@builtins.property
|
|
993
|
+
@jsii.member(jsii_name="recordingConfigurationArn")
|
|
994
|
+
def recording_configuration_arn(self) -> builtins.str:
|
|
995
|
+
'''(experimental) The ARN of the Recording configuration.
|
|
996
|
+
|
|
997
|
+
:stability: experimental
|
|
998
|
+
:attribute: true
|
|
999
|
+
'''
|
|
1000
|
+
return typing.cast(builtins.str, jsii.get(self, "recordingConfigurationArn"))
|
|
1001
|
+
|
|
1002
|
+
@builtins.property
|
|
1003
|
+
@jsii.member(jsii_name="recordingConfigurationId")
|
|
1004
|
+
def recording_configuration_id(self) -> builtins.str:
|
|
1005
|
+
'''(experimental) The ID of the Recording configuration.
|
|
1006
|
+
|
|
1007
|
+
:stability: experimental
|
|
1008
|
+
:attribute: true
|
|
1009
|
+
'''
|
|
1010
|
+
return typing.cast(builtins.str, jsii.get(self, "recordingConfigurationId"))
|
|
1011
|
+
|
|
1012
|
+
|
|
1013
|
+
@jsii.data_type(
|
|
1014
|
+
jsii_type="@aws-cdk/aws-ivs-alpha.RecordingConfigurationProps",
|
|
1015
|
+
jsii_struct_bases=[],
|
|
1016
|
+
name_mapping={
|
|
1017
|
+
"bucket": "bucket",
|
|
1018
|
+
"recording_configuration_name": "recordingConfigurationName",
|
|
1019
|
+
"recording_reconnect_window": "recordingReconnectWindow",
|
|
1020
|
+
"rendition_configuration": "renditionConfiguration",
|
|
1021
|
+
"thumbnail_configuration": "thumbnailConfiguration",
|
|
1022
|
+
},
|
|
1023
|
+
)
|
|
1024
|
+
class RecordingConfigurationProps:
|
|
1025
|
+
def __init__(
|
|
1026
|
+
self,
|
|
1027
|
+
*,
|
|
1028
|
+
bucket: _aws_cdk_aws_s3_ceddda9d.IBucket,
|
|
1029
|
+
recording_configuration_name: typing.Optional[builtins.str] = None,
|
|
1030
|
+
recording_reconnect_window: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
1031
|
+
rendition_configuration: typing.Optional["RenditionConfiguration"] = None,
|
|
1032
|
+
thumbnail_configuration: typing.Optional["ThumbnailConfiguration"] = None,
|
|
1033
|
+
) -> None:
|
|
1034
|
+
'''(experimental) Properties of the IVS Recording configuration.
|
|
1035
|
+
|
|
1036
|
+
:param bucket: (experimental) S3 bucket where recorded videos will be stored.
|
|
1037
|
+
:param recording_configuration_name: (experimental) The name of the Recording configuration. The value does not need to be unique. Default: - auto generate
|
|
1038
|
+
:param recording_reconnect_window: (experimental) If a broadcast disconnects and then reconnects within the specified interval, the multiple streams will be considered a single broadcast and merged together. ``recordingReconnectWindow`` must be between 0 and 300 seconds Default: - 0 seconds (means disabled)
|
|
1039
|
+
:param rendition_configuration: (experimental) A rendition configuration describes which renditions should be recorded for a stream. Default: - no rendition configuration
|
|
1040
|
+
:param thumbnail_configuration: (experimental) A thumbnail configuration enables/disables the recording of thumbnails for a live session and controls the interval at which thumbnails are generated for the live session. Default: - no thumbnail configuration
|
|
1041
|
+
|
|
1042
|
+
:stability: experimental
|
|
1043
|
+
:exampleMetadata: infused
|
|
1044
|
+
|
|
1045
|
+
Example::
|
|
1046
|
+
|
|
1047
|
+
# recording_bucket: s3.Bucket
|
|
1048
|
+
|
|
1049
|
+
|
|
1050
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
1051
|
+
bucket=recording_bucket,
|
|
1052
|
+
|
|
1053
|
+
# set rendition configuration
|
|
1054
|
+
rendition_configuration=ivs.RenditionConfiguration.custom([ivs.Resolution.HD, ivs.Resolution.SD])
|
|
1055
|
+
)
|
|
1056
|
+
'''
|
|
1057
|
+
if __debug__:
|
|
1058
|
+
type_hints = typing.get_type_hints(_typecheckingstub__21d80b5a61c717610ae7eec3eb729c41345980329354b0189415aab6624a4259)
|
|
1059
|
+
check_type(argname="argument bucket", value=bucket, expected_type=type_hints["bucket"])
|
|
1060
|
+
check_type(argname="argument recording_configuration_name", value=recording_configuration_name, expected_type=type_hints["recording_configuration_name"])
|
|
1061
|
+
check_type(argname="argument recording_reconnect_window", value=recording_reconnect_window, expected_type=type_hints["recording_reconnect_window"])
|
|
1062
|
+
check_type(argname="argument rendition_configuration", value=rendition_configuration, expected_type=type_hints["rendition_configuration"])
|
|
1063
|
+
check_type(argname="argument thumbnail_configuration", value=thumbnail_configuration, expected_type=type_hints["thumbnail_configuration"])
|
|
1064
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
1065
|
+
"bucket": bucket,
|
|
1066
|
+
}
|
|
1067
|
+
if recording_configuration_name is not None:
|
|
1068
|
+
self._values["recording_configuration_name"] = recording_configuration_name
|
|
1069
|
+
if recording_reconnect_window is not None:
|
|
1070
|
+
self._values["recording_reconnect_window"] = recording_reconnect_window
|
|
1071
|
+
if rendition_configuration is not None:
|
|
1072
|
+
self._values["rendition_configuration"] = rendition_configuration
|
|
1073
|
+
if thumbnail_configuration is not None:
|
|
1074
|
+
self._values["thumbnail_configuration"] = thumbnail_configuration
|
|
1075
|
+
|
|
1076
|
+
@builtins.property
|
|
1077
|
+
def bucket(self) -> _aws_cdk_aws_s3_ceddda9d.IBucket:
|
|
1078
|
+
'''(experimental) S3 bucket where recorded videos will be stored.
|
|
1079
|
+
|
|
1080
|
+
:stability: experimental
|
|
1081
|
+
'''
|
|
1082
|
+
result = self._values.get("bucket")
|
|
1083
|
+
assert result is not None, "Required property 'bucket' is missing"
|
|
1084
|
+
return typing.cast(_aws_cdk_aws_s3_ceddda9d.IBucket, result)
|
|
1085
|
+
|
|
1086
|
+
@builtins.property
|
|
1087
|
+
def recording_configuration_name(self) -> typing.Optional[builtins.str]:
|
|
1088
|
+
'''(experimental) The name of the Recording configuration.
|
|
1089
|
+
|
|
1090
|
+
The value does not need to be unique.
|
|
1091
|
+
|
|
1092
|
+
:default: - auto generate
|
|
1093
|
+
|
|
1094
|
+
:stability: experimental
|
|
1095
|
+
'''
|
|
1096
|
+
result = self._values.get("recording_configuration_name")
|
|
1097
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
1098
|
+
|
|
1099
|
+
@builtins.property
|
|
1100
|
+
def recording_reconnect_window(self) -> typing.Optional[_aws_cdk_ceddda9d.Duration]:
|
|
1101
|
+
'''(experimental) If a broadcast disconnects and then reconnects within the specified interval, the multiple streams will be considered a single broadcast and merged together.
|
|
1102
|
+
|
|
1103
|
+
``recordingReconnectWindow`` must be between 0 and 300 seconds
|
|
1104
|
+
|
|
1105
|
+
:default: - 0 seconds (means disabled)
|
|
1106
|
+
|
|
1107
|
+
:stability: experimental
|
|
1108
|
+
'''
|
|
1109
|
+
result = self._values.get("recording_reconnect_window")
|
|
1110
|
+
return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], result)
|
|
1111
|
+
|
|
1112
|
+
@builtins.property
|
|
1113
|
+
def rendition_configuration(self) -> typing.Optional["RenditionConfiguration"]:
|
|
1114
|
+
'''(experimental) A rendition configuration describes which renditions should be recorded for a stream.
|
|
1115
|
+
|
|
1116
|
+
:default: - no rendition configuration
|
|
1117
|
+
|
|
1118
|
+
:see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-renditionconfiguration.html
|
|
1119
|
+
:stability: experimental
|
|
1120
|
+
'''
|
|
1121
|
+
result = self._values.get("rendition_configuration")
|
|
1122
|
+
return typing.cast(typing.Optional["RenditionConfiguration"], result)
|
|
1123
|
+
|
|
1124
|
+
@builtins.property
|
|
1125
|
+
def thumbnail_configuration(self) -> typing.Optional["ThumbnailConfiguration"]:
|
|
1126
|
+
'''(experimental) A thumbnail configuration enables/disables the recording of thumbnails for a live session and controls the interval at which thumbnails are generated for the live session.
|
|
1127
|
+
|
|
1128
|
+
:default: - no thumbnail configuration
|
|
1129
|
+
|
|
1130
|
+
:see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.html
|
|
1131
|
+
:stability: experimental
|
|
1132
|
+
'''
|
|
1133
|
+
result = self._values.get("thumbnail_configuration")
|
|
1134
|
+
return typing.cast(typing.Optional["ThumbnailConfiguration"], result)
|
|
1135
|
+
|
|
1136
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
1137
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
1138
|
+
|
|
1139
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
1140
|
+
return not (rhs == self)
|
|
1141
|
+
|
|
1142
|
+
def __repr__(self) -> str:
|
|
1143
|
+
return "RecordingConfigurationProps(%s)" % ", ".join(
|
|
1144
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
1145
|
+
)
|
|
1146
|
+
|
|
1147
|
+
|
|
1148
|
+
@jsii.enum(jsii_type="@aws-cdk/aws-ivs-alpha.RecordingMode")
|
|
1149
|
+
class RecordingMode(enum.Enum):
|
|
1150
|
+
'''(experimental) Thumbnail recording mode.
|
|
1151
|
+
|
|
1152
|
+
:stability: experimental
|
|
1153
|
+
'''
|
|
1154
|
+
|
|
1155
|
+
INTERVAL = "INTERVAL"
|
|
1156
|
+
'''(experimental) Use INTERVAL to enable the generation of thumbnails for recorded video at a time interval controlled by the TargetIntervalSeconds property.
|
|
1157
|
+
|
|
1158
|
+
:stability: experimental
|
|
1159
|
+
'''
|
|
1160
|
+
DISABLED = "DISABLED"
|
|
1161
|
+
'''(experimental) Use DISABLED to disable the generation of thumbnails for recorded video.
|
|
1162
|
+
|
|
1163
|
+
:stability: experimental
|
|
1164
|
+
'''
|
|
1165
|
+
|
|
1166
|
+
|
|
1167
|
+
class RenditionConfiguration(
|
|
1168
|
+
metaclass=jsii.JSIIMeta,
|
|
1169
|
+
jsii_type="@aws-cdk/aws-ivs-alpha.RenditionConfiguration",
|
|
1170
|
+
):
|
|
1171
|
+
'''(experimental) Rendition configuration for IVS Recording configuration.
|
|
1172
|
+
|
|
1173
|
+
:stability: experimental
|
|
1174
|
+
:exampleMetadata: infused
|
|
1175
|
+
|
|
1176
|
+
Example::
|
|
1177
|
+
|
|
1178
|
+
# recording_bucket: s3.Bucket
|
|
1179
|
+
|
|
1180
|
+
|
|
1181
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
1182
|
+
bucket=recording_bucket,
|
|
1183
|
+
|
|
1184
|
+
# set rendition configuration
|
|
1185
|
+
rendition_configuration=ivs.RenditionConfiguration.custom([ivs.Resolution.HD, ivs.Resolution.SD])
|
|
1186
|
+
)
|
|
1187
|
+
'''
|
|
1188
|
+
|
|
1189
|
+
@jsii.member(jsii_name="all")
|
|
1190
|
+
@builtins.classmethod
|
|
1191
|
+
def all(cls) -> "RenditionConfiguration":
|
|
1192
|
+
'''(experimental) Record all available renditions.
|
|
1193
|
+
|
|
1194
|
+
:stability: experimental
|
|
1195
|
+
'''
|
|
1196
|
+
return typing.cast("RenditionConfiguration", jsii.sinvoke(cls, "all", []))
|
|
1197
|
+
|
|
1198
|
+
@jsii.member(jsii_name="custom")
|
|
1199
|
+
@builtins.classmethod
|
|
1200
|
+
def custom(
|
|
1201
|
+
cls,
|
|
1202
|
+
renditions: typing.Sequence["Resolution"],
|
|
1203
|
+
) -> "RenditionConfiguration":
|
|
1204
|
+
'''(experimental) Record a subset of video renditions.
|
|
1205
|
+
|
|
1206
|
+
:param renditions: A list of which renditions are recorded for a stream.
|
|
1207
|
+
|
|
1208
|
+
:stability: experimental
|
|
1209
|
+
'''
|
|
1210
|
+
if __debug__:
|
|
1211
|
+
type_hints = typing.get_type_hints(_typecheckingstub__72cbe17572adb3a1344760dd6061eca45611a877ad41668210371524b85d90da)
|
|
1212
|
+
check_type(argname="argument renditions", value=renditions, expected_type=type_hints["renditions"])
|
|
1213
|
+
return typing.cast("RenditionConfiguration", jsii.sinvoke(cls, "custom", [renditions]))
|
|
1214
|
+
|
|
1215
|
+
@jsii.member(jsii_name="none")
|
|
1216
|
+
@builtins.classmethod
|
|
1217
|
+
def none(cls) -> "RenditionConfiguration":
|
|
1218
|
+
'''(experimental) Does not record any video.
|
|
1219
|
+
|
|
1220
|
+
:stability: experimental
|
|
1221
|
+
'''
|
|
1222
|
+
return typing.cast("RenditionConfiguration", jsii.sinvoke(cls, "none", []))
|
|
1223
|
+
|
|
1224
|
+
@builtins.property
|
|
1225
|
+
@jsii.member(jsii_name="renditionSelection")
|
|
1226
|
+
def rendition_selection(self) -> "RenditionSelection":
|
|
1227
|
+
'''(experimental) The set of renditions are recorded for a stream.
|
|
1228
|
+
|
|
1229
|
+
:stability: experimental
|
|
1230
|
+
'''
|
|
1231
|
+
return typing.cast("RenditionSelection", jsii.get(self, "renditionSelection"))
|
|
1232
|
+
|
|
1233
|
+
@builtins.property
|
|
1234
|
+
@jsii.member(jsii_name="renditions")
|
|
1235
|
+
def renditions(self) -> typing.Optional[typing.List["Resolution"]]:
|
|
1236
|
+
'''(experimental) A list of which renditions are recorded for a stream.
|
|
1237
|
+
|
|
1238
|
+
If you do not specify this property, no resolution is selected.
|
|
1239
|
+
|
|
1240
|
+
:stability: experimental
|
|
1241
|
+
'''
|
|
1242
|
+
return typing.cast(typing.Optional[typing.List["Resolution"]], jsii.get(self, "renditions"))
|
|
1243
|
+
|
|
1244
|
+
|
|
1245
|
+
@jsii.enum(jsii_type="@aws-cdk/aws-ivs-alpha.RenditionSelection")
|
|
1246
|
+
class RenditionSelection(enum.Enum):
|
|
1247
|
+
'''(experimental) Rendition selection mode.
|
|
1248
|
+
|
|
1249
|
+
:stability: experimental
|
|
1250
|
+
'''
|
|
1251
|
+
|
|
1252
|
+
ALL = "ALL"
|
|
1253
|
+
'''(experimental) Record all available renditions.
|
|
1254
|
+
|
|
1255
|
+
:stability: experimental
|
|
1256
|
+
'''
|
|
1257
|
+
NONE = "NONE"
|
|
1258
|
+
'''(experimental) Does not record any video.
|
|
1259
|
+
|
|
1260
|
+
This option is useful if you just want to record thumbnails.
|
|
1261
|
+
|
|
1262
|
+
:stability: experimental
|
|
1263
|
+
'''
|
|
1264
|
+
CUSTOM = "CUSTOM"
|
|
1265
|
+
'''(experimental) Select a subset of video renditions to record.
|
|
1266
|
+
|
|
1267
|
+
:stability: experimental
|
|
1268
|
+
'''
|
|
1269
|
+
|
|
1270
|
+
|
|
1271
|
+
@jsii.enum(jsii_type="@aws-cdk/aws-ivs-alpha.Resolution")
|
|
1272
|
+
class Resolution(enum.Enum):
|
|
1273
|
+
'''(experimental) Resolution for rendition.
|
|
1274
|
+
|
|
1275
|
+
:stability: experimental
|
|
1276
|
+
:exampleMetadata: infused
|
|
1277
|
+
|
|
1278
|
+
Example::
|
|
1279
|
+
|
|
1280
|
+
# recording_bucket: s3.Bucket
|
|
1281
|
+
|
|
1282
|
+
|
|
1283
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
1284
|
+
bucket=recording_bucket,
|
|
1285
|
+
|
|
1286
|
+
# set rendition configuration
|
|
1287
|
+
rendition_configuration=ivs.RenditionConfiguration.custom([ivs.Resolution.HD, ivs.Resolution.SD])
|
|
1288
|
+
)
|
|
1289
|
+
'''
|
|
1290
|
+
|
|
1291
|
+
FULL_HD = "FULL_HD"
|
|
1292
|
+
'''(experimental) Full HD (1080p).
|
|
1293
|
+
|
|
1294
|
+
:stability: experimental
|
|
1295
|
+
'''
|
|
1296
|
+
HD = "HD"
|
|
1297
|
+
'''(experimental) HD (720p).
|
|
1298
|
+
|
|
1299
|
+
:stability: experimental
|
|
1300
|
+
'''
|
|
1301
|
+
SD = "SD"
|
|
1302
|
+
'''(experimental) SD (480p).
|
|
1303
|
+
|
|
1304
|
+
:stability: experimental
|
|
1305
|
+
'''
|
|
1306
|
+
LOWEST_RESOLUTION = "LOWEST_RESOLUTION"
|
|
1307
|
+
'''(experimental) Lowest resolution.
|
|
1308
|
+
|
|
1309
|
+
:stability: experimental
|
|
1310
|
+
'''
|
|
1311
|
+
|
|
1312
|
+
|
|
1313
|
+
@jsii.enum(jsii_type="@aws-cdk/aws-ivs-alpha.Storage")
|
|
1314
|
+
class Storage(enum.Enum):
|
|
1315
|
+
'''(experimental) The format in which thumbnails are recorded for a stream.
|
|
1316
|
+
|
|
1317
|
+
:stability: experimental
|
|
1318
|
+
:exampleMetadata: infused
|
|
1319
|
+
|
|
1320
|
+
Example::
|
|
1321
|
+
|
|
1322
|
+
# recording_bucket: s3.Bucket
|
|
1323
|
+
|
|
1324
|
+
|
|
1325
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
1326
|
+
bucket=recording_bucket,
|
|
1327
|
+
|
|
1328
|
+
# set thumbnail settings
|
|
1329
|
+
thumbnail_configuration=ivs.ThumbnailConfiguration.interval(ivs.Resolution.HD, [ivs.Storage.LATEST, ivs.Storage.SEQUENTIAL], Duration.seconds(30))
|
|
1330
|
+
)
|
|
1331
|
+
'''
|
|
1332
|
+
|
|
1333
|
+
SEQUENTIAL = "SEQUENTIAL"
|
|
1334
|
+
'''(experimental) SEQUENTIAL records all generated thumbnails in a serial manner, to the media/thumbnails directory.
|
|
1335
|
+
|
|
1336
|
+
:stability: experimental
|
|
1337
|
+
'''
|
|
1338
|
+
LATEST = "LATEST"
|
|
1339
|
+
'''(experimental) LATEST saves the latest thumbnail in media/thumbnails/latest/thumb.jpg and overwrites it at the interval specified by thumbnailTargetInterval.
|
|
1340
|
+
|
|
1341
|
+
:stability: experimental
|
|
1342
|
+
'''
|
|
1343
|
+
|
|
1344
|
+
|
|
714
1345
|
@jsii.implements(IStreamKey)
|
|
715
1346
|
class StreamKey(
|
|
716
1347
|
_aws_cdk_ceddda9d.Resource,
|
|
@@ -828,6 +1459,105 @@ class StreamKeyProps:
|
|
|
828
1459
|
)
|
|
829
1460
|
|
|
830
1461
|
|
|
1462
|
+
class ThumbnailConfiguration(
|
|
1463
|
+
metaclass=jsii.JSIIMeta,
|
|
1464
|
+
jsii_type="@aws-cdk/aws-ivs-alpha.ThumbnailConfiguration",
|
|
1465
|
+
):
|
|
1466
|
+
'''(experimental) Thumbnail configuration for IVS Recording configuration.
|
|
1467
|
+
|
|
1468
|
+
:stability: experimental
|
|
1469
|
+
:exampleMetadata: infused
|
|
1470
|
+
|
|
1471
|
+
Example::
|
|
1472
|
+
|
|
1473
|
+
# recording_bucket: s3.Bucket
|
|
1474
|
+
|
|
1475
|
+
|
|
1476
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
1477
|
+
bucket=recording_bucket,
|
|
1478
|
+
|
|
1479
|
+
# set thumbnail settings
|
|
1480
|
+
thumbnail_configuration=ivs.ThumbnailConfiguration.interval(ivs.Resolution.HD, [ivs.Storage.LATEST, ivs.Storage.SEQUENTIAL], Duration.seconds(30))
|
|
1481
|
+
)
|
|
1482
|
+
'''
|
|
1483
|
+
|
|
1484
|
+
@jsii.member(jsii_name="disable")
|
|
1485
|
+
@builtins.classmethod
|
|
1486
|
+
def disable(cls) -> "ThumbnailConfiguration":
|
|
1487
|
+
'''(experimental) Disable the generation of thumbnails for recorded video.
|
|
1488
|
+
|
|
1489
|
+
:stability: experimental
|
|
1490
|
+
'''
|
|
1491
|
+
return typing.cast("ThumbnailConfiguration", jsii.sinvoke(cls, "disable", []))
|
|
1492
|
+
|
|
1493
|
+
@jsii.member(jsii_name="interval")
|
|
1494
|
+
@builtins.classmethod
|
|
1495
|
+
def interval(
|
|
1496
|
+
cls,
|
|
1497
|
+
resolution: typing.Optional[Resolution] = None,
|
|
1498
|
+
storage: typing.Optional[typing.Sequence[Storage]] = None,
|
|
1499
|
+
target_interval: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
1500
|
+
) -> "ThumbnailConfiguration":
|
|
1501
|
+
'''(experimental) Enable the generation of thumbnails for recorded video at a time interval.
|
|
1502
|
+
|
|
1503
|
+
:param resolution: The desired resolution of recorded thumbnails for a stream. If you do not specify this property, same resolution as Input stream is used.
|
|
1504
|
+
:param storage: The format in which thumbnails are recorded for a stream. If you do not specify this property, ``ThumbnailStorage.SEQUENTIAL`` is set.
|
|
1505
|
+
:param target_interval: The targeted thumbnail-generation interval. If you do not specify this property, ``Duration.seconds(60)`` is set.
|
|
1506
|
+
|
|
1507
|
+
:stability: experimental
|
|
1508
|
+
'''
|
|
1509
|
+
if __debug__:
|
|
1510
|
+
type_hints = typing.get_type_hints(_typecheckingstub__7613b92b71ccf7e94fae8fd523b44fd066922450801fcef8848b59ff75f9eeb2)
|
|
1511
|
+
check_type(argname="argument resolution", value=resolution, expected_type=type_hints["resolution"])
|
|
1512
|
+
check_type(argname="argument storage", value=storage, expected_type=type_hints["storage"])
|
|
1513
|
+
check_type(argname="argument target_interval", value=target_interval, expected_type=type_hints["target_interval"])
|
|
1514
|
+
return typing.cast("ThumbnailConfiguration", jsii.sinvoke(cls, "interval", [resolution, storage, target_interval]))
|
|
1515
|
+
|
|
1516
|
+
@builtins.property
|
|
1517
|
+
@jsii.member(jsii_name="recordingMode")
|
|
1518
|
+
def recording_mode(self) -> typing.Optional[RecordingMode]:
|
|
1519
|
+
'''(experimental) Thumbnail recording mode.
|
|
1520
|
+
|
|
1521
|
+
If you do not specify this property, ``ThumbnailRecordingMode.INTERVAL`` is set.
|
|
1522
|
+
|
|
1523
|
+
:stability: experimental
|
|
1524
|
+
'''
|
|
1525
|
+
return typing.cast(typing.Optional[RecordingMode], jsii.get(self, "recordingMode"))
|
|
1526
|
+
|
|
1527
|
+
@builtins.property
|
|
1528
|
+
@jsii.member(jsii_name="resolution")
|
|
1529
|
+
def resolution(self) -> typing.Optional[Resolution]:
|
|
1530
|
+
'''(experimental) The desired resolution of recorded thumbnails for a stream.
|
|
1531
|
+
|
|
1532
|
+
If you do not specify this property, same resolution as Input stream is used.
|
|
1533
|
+
|
|
1534
|
+
:stability: experimental
|
|
1535
|
+
'''
|
|
1536
|
+
return typing.cast(typing.Optional[Resolution], jsii.get(self, "resolution"))
|
|
1537
|
+
|
|
1538
|
+
@builtins.property
|
|
1539
|
+
@jsii.member(jsii_name="storage")
|
|
1540
|
+
def storage(self) -> typing.Optional[typing.List[Storage]]:
|
|
1541
|
+
'''(experimental) The format in which thumbnails are recorded for a stream.
|
|
1542
|
+
|
|
1543
|
+
If you do not specify this property, ``ThumbnailStorage.SEQUENTIAL`` is set.
|
|
1544
|
+
|
|
1545
|
+
:stability: experimental
|
|
1546
|
+
'''
|
|
1547
|
+
return typing.cast(typing.Optional[typing.List[Storage]], jsii.get(self, "storage"))
|
|
1548
|
+
|
|
1549
|
+
@builtins.property
|
|
1550
|
+
@jsii.member(jsii_name="targetInterval")
|
|
1551
|
+
def target_interval(self) -> typing.Optional[_aws_cdk_ceddda9d.Duration]:
|
|
1552
|
+
'''(experimental) The targeted thumbnail-generation interval.
|
|
1553
|
+
|
|
1554
|
+
Must be between 1 and 60 seconds. If you do not specify this property, ``Duration.seconds(60)`` is set.
|
|
1555
|
+
|
|
1556
|
+
:stability: experimental
|
|
1557
|
+
'''
|
|
1558
|
+
return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], jsii.get(self, "targetInterval"))
|
|
1559
|
+
|
|
1560
|
+
|
|
831
1561
|
@jsii.implements(IChannel)
|
|
832
1562
|
class Channel(
|
|
833
1563
|
_aws_cdk_ceddda9d.Resource,
|
|
@@ -857,6 +1587,7 @@ class Channel(
|
|
|
857
1587
|
insecure_ingest: typing.Optional[builtins.bool] = None,
|
|
858
1588
|
latency_mode: typing.Optional[LatencyMode] = None,
|
|
859
1589
|
preset: typing.Optional[Preset] = None,
|
|
1590
|
+
recording_configuration: typing.Optional[IRecordingConfiguration] = None,
|
|
860
1591
|
type: typing.Optional[ChannelType] = None,
|
|
861
1592
|
) -> None:
|
|
862
1593
|
'''
|
|
@@ -867,6 +1598,7 @@ class Channel(
|
|
|
867
1598
|
:param insecure_ingest: (experimental) Whether the channel allows insecure RTMP ingest. Default: false
|
|
868
1599
|
:param latency_mode: (experimental) Channel latency mode. Default: LatencyMode.LOW
|
|
869
1600
|
:param preset: (experimental) An optional transcode preset for the channel. Can be used for ADVANCED_HD and ADVANCED_SD channel types. When LOW or STANDARD is used, the preset will be overridden and set to none regardless of the value provided. Default: - Preset.HIGHER_BANDWIDTH_DELIVERY if channelType is ADVANCED_SD or ADVANCED_HD, none otherwise
|
|
1601
|
+
:param recording_configuration: (experimental) A recording configuration for the channel. Default: - recording is disabled
|
|
870
1602
|
:param type: (experimental) The channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream will disconnect immediately Default: ChannelType.STANDARD
|
|
871
1603
|
|
|
872
1604
|
:stability: experimental
|
|
@@ -881,6 +1613,7 @@ class Channel(
|
|
|
881
1613
|
insecure_ingest=insecure_ingest,
|
|
882
1614
|
latency_mode=latency_mode,
|
|
883
1615
|
preset=preset,
|
|
1616
|
+
recording_configuration=recording_configuration,
|
|
884
1617
|
type=type,
|
|
885
1618
|
)
|
|
886
1619
|
|
|
@@ -965,13 +1698,22 @@ __all__ = [
|
|
|
965
1698
|
"ChannelType",
|
|
966
1699
|
"IChannel",
|
|
967
1700
|
"IPlaybackKeyPair",
|
|
1701
|
+
"IRecordingConfiguration",
|
|
968
1702
|
"IStreamKey",
|
|
969
1703
|
"LatencyMode",
|
|
970
1704
|
"PlaybackKeyPair",
|
|
971
1705
|
"PlaybackKeyPairProps",
|
|
972
1706
|
"Preset",
|
|
1707
|
+
"RecordingConfiguration",
|
|
1708
|
+
"RecordingConfigurationProps",
|
|
1709
|
+
"RecordingMode",
|
|
1710
|
+
"RenditionConfiguration",
|
|
1711
|
+
"RenditionSelection",
|
|
1712
|
+
"Resolution",
|
|
1713
|
+
"Storage",
|
|
973
1714
|
"StreamKey",
|
|
974
1715
|
"StreamKeyProps",
|
|
1716
|
+
"ThumbnailConfiguration",
|
|
975
1717
|
]
|
|
976
1718
|
|
|
977
1719
|
publication.publish()
|
|
@@ -983,6 +1725,7 @@ def _typecheckingstub__0ebf6a0e98bbd5b88d9676fbe616666a44f837cba80675eade5df1fea
|
|
|
983
1725
|
insecure_ingest: typing.Optional[builtins.bool] = None,
|
|
984
1726
|
latency_mode: typing.Optional[LatencyMode] = None,
|
|
985
1727
|
preset: typing.Optional[Preset] = None,
|
|
1728
|
+
recording_configuration: typing.Optional[IRecordingConfiguration] = None,
|
|
986
1729
|
type: typing.Optional[ChannelType] = None,
|
|
987
1730
|
) -> None:
|
|
988
1731
|
"""Type checking stubs"""
|
|
@@ -1012,6 +1755,52 @@ def _typecheckingstub__5f26b3314acb516329ef76511a5408ac87ae783446cab3f1be9ed1d0b
|
|
|
1012
1755
|
"""Type checking stubs"""
|
|
1013
1756
|
pass
|
|
1014
1757
|
|
|
1758
|
+
def _typecheckingstub__84f7bfe030fdaeee83dd169a4320aa71fb0e576e76fac8a6fb5e799d638df503(
|
|
1759
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
1760
|
+
id: builtins.str,
|
|
1761
|
+
*,
|
|
1762
|
+
bucket: _aws_cdk_aws_s3_ceddda9d.IBucket,
|
|
1763
|
+
recording_configuration_name: typing.Optional[builtins.str] = None,
|
|
1764
|
+
recording_reconnect_window: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
1765
|
+
rendition_configuration: typing.Optional[RenditionConfiguration] = None,
|
|
1766
|
+
thumbnail_configuration: typing.Optional[ThumbnailConfiguration] = None,
|
|
1767
|
+
) -> None:
|
|
1768
|
+
"""Type checking stubs"""
|
|
1769
|
+
pass
|
|
1770
|
+
|
|
1771
|
+
def _typecheckingstub__5f6cbd063c6e695eed56d0c9c16dea95fe5f4b2a11e461c72cb33aa8d324e82d(
|
|
1772
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
1773
|
+
id: builtins.str,
|
|
1774
|
+
recording_configuration_arn: builtins.str,
|
|
1775
|
+
) -> None:
|
|
1776
|
+
"""Type checking stubs"""
|
|
1777
|
+
pass
|
|
1778
|
+
|
|
1779
|
+
def _typecheckingstub__9c05eebd5485c91c16b38e6bf9c1d896abb2eee019bb8f0da1ec7fa25b69b0d8(
|
|
1780
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
1781
|
+
id: builtins.str,
|
|
1782
|
+
recording_configuration_id: builtins.str,
|
|
1783
|
+
) -> None:
|
|
1784
|
+
"""Type checking stubs"""
|
|
1785
|
+
pass
|
|
1786
|
+
|
|
1787
|
+
def _typecheckingstub__21d80b5a61c717610ae7eec3eb729c41345980329354b0189415aab6624a4259(
|
|
1788
|
+
*,
|
|
1789
|
+
bucket: _aws_cdk_aws_s3_ceddda9d.IBucket,
|
|
1790
|
+
recording_configuration_name: typing.Optional[builtins.str] = None,
|
|
1791
|
+
recording_reconnect_window: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
1792
|
+
rendition_configuration: typing.Optional[RenditionConfiguration] = None,
|
|
1793
|
+
thumbnail_configuration: typing.Optional[ThumbnailConfiguration] = None,
|
|
1794
|
+
) -> None:
|
|
1795
|
+
"""Type checking stubs"""
|
|
1796
|
+
pass
|
|
1797
|
+
|
|
1798
|
+
def _typecheckingstub__72cbe17572adb3a1344760dd6061eca45611a877ad41668210371524b85d90da(
|
|
1799
|
+
renditions: typing.Sequence[Resolution],
|
|
1800
|
+
) -> None:
|
|
1801
|
+
"""Type checking stubs"""
|
|
1802
|
+
pass
|
|
1803
|
+
|
|
1015
1804
|
def _typecheckingstub__67fad0f56ffbc15680b0f651250d8bb5cf4dacb899e5c5bbf4abdcfc3ae39632(
|
|
1016
1805
|
scope: _constructs_77d1e7e8.Construct,
|
|
1017
1806
|
id: builtins.str,
|
|
@@ -1028,6 +1817,14 @@ def _typecheckingstub__10474702d05a8d909166c4d0ef1de9632d82c17ae609436e3980c1bd4
|
|
|
1028
1817
|
"""Type checking stubs"""
|
|
1029
1818
|
pass
|
|
1030
1819
|
|
|
1820
|
+
def _typecheckingstub__7613b92b71ccf7e94fae8fd523b44fd066922450801fcef8848b59ff75f9eeb2(
|
|
1821
|
+
resolution: typing.Optional[Resolution] = None,
|
|
1822
|
+
storage: typing.Optional[typing.Sequence[Storage]] = None,
|
|
1823
|
+
target_interval: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
1824
|
+
) -> None:
|
|
1825
|
+
"""Type checking stubs"""
|
|
1826
|
+
pass
|
|
1827
|
+
|
|
1031
1828
|
def _typecheckingstub__07139327925dc97a551bbf17c849a0f698e0c9c60d3da3f65f2b3d2bea0e0c50(
|
|
1032
1829
|
scope: _constructs_77d1e7e8.Construct,
|
|
1033
1830
|
id: builtins.str,
|
|
@@ -1037,6 +1834,7 @@ def _typecheckingstub__07139327925dc97a551bbf17c849a0f698e0c9c60d3da3f65f2b3d2be
|
|
|
1037
1834
|
insecure_ingest: typing.Optional[builtins.bool] = None,
|
|
1038
1835
|
latency_mode: typing.Optional[LatencyMode] = None,
|
|
1039
1836
|
preset: typing.Optional[Preset] = None,
|
|
1837
|
+
recording_configuration: typing.Optional[IRecordingConfiguration] = None,
|
|
1040
1838
|
type: typing.Optional[ChannelType] = None,
|
|
1041
1839
|
) -> None:
|
|
1042
1840
|
"""Type checking stubs"""
|
|
@@ -33,9 +33,9 @@ import constructs._jsii
|
|
|
33
33
|
|
|
34
34
|
__jsii_assembly__ = jsii.JSIIAssembly.load(
|
|
35
35
|
"@aws-cdk/aws-ivs-alpha",
|
|
36
|
-
"2.
|
|
36
|
+
"2.167.1-alpha.0",
|
|
37
37
|
__name__[0:-6],
|
|
38
|
-
"aws-ivs-alpha@2.
|
|
38
|
+
"aws-ivs-alpha@2.167.1-alpha.0.jsii.tgz",
|
|
39
39
|
)
|
|
40
40
|
|
|
41
41
|
__all__ = [
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: aws-cdk.aws-ivs-alpha
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.167.1a0
|
|
4
4
|
Summary: The CDK Construct Library for AWS::IVS
|
|
5
5
|
Home-page: https://github.com/aws/aws-cdk
|
|
6
6
|
Author: Amazon Web Services
|
|
@@ -23,7 +23,7 @@ Requires-Python: ~=3.8
|
|
|
23
23
|
Description-Content-Type: text/markdown
|
|
24
24
|
License-File: LICENSE
|
|
25
25
|
License-File: NOTICE
|
|
26
|
-
Requires-Dist: aws-cdk-lib<3.0.0,>=2.
|
|
26
|
+
Requires-Dist: aws-cdk-lib<3.0.0,>=2.167.1
|
|
27
27
|
Requires-Dist: constructs<11.0.0,>=10.0.0
|
|
28
28
|
Requires-Dist: jsii<2.0.0,>=1.104.0
|
|
29
29
|
Requires-Dist: publication>=0.0.3
|
|
@@ -145,3 +145,94 @@ my_channel = ivs.Channel(self, "Channel",
|
|
|
145
145
|
authorized=True
|
|
146
146
|
)
|
|
147
147
|
```
|
|
148
|
+
|
|
149
|
+
## Recording Configurations
|
|
150
|
+
|
|
151
|
+
An Amazon IVS Recording Configuration stores settings that specify how a channel's live streams should be recorded.
|
|
152
|
+
You can configure video quality, thumbnail generation, and where recordings are stored in Amazon S3.
|
|
153
|
+
|
|
154
|
+
For more information about IVS recording, see [IVS Auto-Record to Amazon S3 | Low-Latency Streaming](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html).
|
|
155
|
+
|
|
156
|
+
You can create a recording configuration:
|
|
157
|
+
|
|
158
|
+
```python
|
|
159
|
+
# create an S3 bucket for storing recordings
|
|
160
|
+
recording_bucket = s3.Bucket(self, "RecordingBucket")
|
|
161
|
+
|
|
162
|
+
# create a basic recording configuration
|
|
163
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
164
|
+
bucket=recording_bucket
|
|
165
|
+
)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Renditions of a Recording
|
|
169
|
+
|
|
170
|
+
When you stream content to an Amazon IVS channel, auto-record-to-s3 uses the source video to generate multiple renditions.
|
|
171
|
+
|
|
172
|
+
For more information, see [Discovering the Renditions of a Recording](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html#r2s3-recording-renditions).
|
|
173
|
+
|
|
174
|
+
```python
|
|
175
|
+
# recording_bucket: s3.Bucket
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
179
|
+
bucket=recording_bucket,
|
|
180
|
+
|
|
181
|
+
# set rendition configuration
|
|
182
|
+
rendition_configuration=ivs.RenditionConfiguration.custom([ivs.Resolution.HD, ivs.Resolution.SD])
|
|
183
|
+
)
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Thumbnail Generation
|
|
187
|
+
|
|
188
|
+
You can enable or disable the recording of thumbnails for a live session and modify the interval at which thumbnails are generated for the live session.
|
|
189
|
+
|
|
190
|
+
Thumbnail intervals may range from 1 second to 60 seconds; by default, thumbnail recording is enabled, at an interval of 60 seconds.
|
|
191
|
+
|
|
192
|
+
For more information, see [Thumbnails](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html#r2s3-thumbnails).
|
|
193
|
+
|
|
194
|
+
```python
|
|
195
|
+
# recording_bucket: s3.Bucket
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
199
|
+
bucket=recording_bucket,
|
|
200
|
+
|
|
201
|
+
# set thumbnail settings
|
|
202
|
+
thumbnail_configuration=ivs.ThumbnailConfiguration.interval(ivs.Resolution.HD, [ivs.Storage.LATEST, ivs.Storage.SEQUENTIAL], Duration.seconds(30))
|
|
203
|
+
)
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Merge Fragmented Streams
|
|
207
|
+
|
|
208
|
+
The `recordingReconnectWindow` property allows you to specify a window of time (in seconds) during which, if your stream is interrupted and a new stream is started, Amazon IVS tries to record to the same S3 prefix as the previous stream.
|
|
209
|
+
|
|
210
|
+
In other words, if a broadcast disconnects and then reconnects within the specified interval, the multiple streams are considered a single broadcast and merged together.
|
|
211
|
+
|
|
212
|
+
For more information, see [Merge Fragmented Streams](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html#r2s3-merge-fragmented-streams).
|
|
213
|
+
|
|
214
|
+
```python
|
|
215
|
+
# recording_bucket: s3.Bucket
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
recording_configuration = ivs.RecordingConfiguration(self, "RecordingConfiguration",
|
|
219
|
+
bucket=recording_bucket,
|
|
220
|
+
|
|
221
|
+
# set recording reconnect window
|
|
222
|
+
recording_reconnect_window=Duration.seconds(60)
|
|
223
|
+
)
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Attaching Recording Configuration to a Channel
|
|
227
|
+
|
|
228
|
+
To enable recording for a channel, specify the recording configuration when creating the channel:
|
|
229
|
+
|
|
230
|
+
```python
|
|
231
|
+
# recording_configuration: ivs.RecordingConfiguration
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
channel = ivs.Channel(self, "Channel",
|
|
235
|
+
# set recording configuration
|
|
236
|
+
recording_configuration=recording_configuration
|
|
237
|
+
)
|
|
238
|
+
```
|
|
@@ -12,4 +12,4 @@ src/aws_cdk.aws_ivs_alpha.egg-info/top_level.txt
|
|
|
12
12
|
src/aws_cdk/aws_ivs_alpha/__init__.py
|
|
13
13
|
src/aws_cdk/aws_ivs_alpha/py.typed
|
|
14
14
|
src/aws_cdk/aws_ivs_alpha/_jsii/__init__.py
|
|
15
|
-
src/aws_cdk/aws_ivs_alpha/_jsii/aws-ivs-alpha@2.
|
|
15
|
+
src/aws_cdk/aws_ivs_alpha/_jsii/aws-ivs-alpha@2.167.1-alpha.0.jsii.tgz
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|