@aws-cdk/aws-ivs-alpha 2.166.0-alpha.0 → 2.167.1-alpha.0

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.
Binary file
package/.warnings.jsii.js CHANGED
@@ -15,6 +15,8 @@ function _aws_cdk_aws_ivs_alpha_ChannelProps(p) {
15
15
  _aws_cdk_aws_ivs_alpha_LatencyMode(p.latencyMode);
16
16
  if (!visitedObjects.has(p.preset))
17
17
  _aws_cdk_aws_ivs_alpha_Preset(p.preset);
18
+ if (!visitedObjects.has(p.recordingConfiguration))
19
+ _aws_cdk_aws_ivs_alpha_IRecordingConfiguration(p.recordingConfiguration);
18
20
  if (!visitedObjects.has(p.type))
19
21
  _aws_cdk_aws_ivs_alpha_ChannelType(p.type);
20
22
  }
@@ -30,6 +32,28 @@ function _aws_cdk_aws_ivs_alpha_PlaybackKeyPairProps(p) {
30
32
  }
31
33
  function _aws_cdk_aws_ivs_alpha_PlaybackKeyPair(p) {
32
34
  }
35
+ function _aws_cdk_aws_ivs_alpha_RecordingConfigurationProps(p) {
36
+ if (p == null)
37
+ return;
38
+ visitedObjects.add(p);
39
+ try {
40
+ if (!visitedObjects.has(p.renditionConfiguration))
41
+ _aws_cdk_aws_ivs_alpha_RenditionConfiguration(p.renditionConfiguration);
42
+ if (!visitedObjects.has(p.thumbnailConfiguration))
43
+ _aws_cdk_aws_ivs_alpha_ThumbnailConfiguration(p.thumbnailConfiguration);
44
+ }
45
+ finally {
46
+ visitedObjects.delete(p);
47
+ }
48
+ }
49
+ function _aws_cdk_aws_ivs_alpha_IRecordingConfiguration(p) {
50
+ }
51
+ function _aws_cdk_aws_ivs_alpha_RecordingConfiguration(p) {
52
+ }
53
+ function _aws_cdk_aws_ivs_alpha_RenditionSelection(p) {
54
+ }
55
+ function _aws_cdk_aws_ivs_alpha_RenditionConfiguration(p) {
56
+ }
33
57
  function _aws_cdk_aws_ivs_alpha_IStreamKey(p) {
34
58
  }
35
59
  function _aws_cdk_aws_ivs_alpha_StreamKeyProps(p) {
@@ -46,6 +70,14 @@ function _aws_cdk_aws_ivs_alpha_StreamKeyProps(p) {
46
70
  }
47
71
  function _aws_cdk_aws_ivs_alpha_StreamKey(p) {
48
72
  }
73
+ function _aws_cdk_aws_ivs_alpha_RecordingMode(p) {
74
+ }
75
+ function _aws_cdk_aws_ivs_alpha_Storage(p) {
76
+ }
77
+ function _aws_cdk_aws_ivs_alpha_ThumbnailConfiguration(p) {
78
+ }
79
+ function _aws_cdk_aws_ivs_alpha_Resolution(p) {
80
+ }
49
81
  function print(name, deprecationMessage) {
50
82
  const deprecated = process.env.JSII_DEPRECATED;
51
83
  const deprecationMode = ["warn", "fail", "quiet"].includes(deprecated) ? deprecated : "warn";
@@ -82,4 +114,4 @@ class DeprecationError extends Error {
82
114
  });
83
115
  }
84
116
  }
85
- module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_aws_ivs_alpha_IChannel, _aws_cdk_aws_ivs_alpha_LatencyMode, _aws_cdk_aws_ivs_alpha_ChannelType, _aws_cdk_aws_ivs_alpha_Preset, _aws_cdk_aws_ivs_alpha_ChannelProps, _aws_cdk_aws_ivs_alpha_Channel, _aws_cdk_aws_ivs_alpha_IPlaybackKeyPair, _aws_cdk_aws_ivs_alpha_PlaybackKeyPairProps, _aws_cdk_aws_ivs_alpha_PlaybackKeyPair, _aws_cdk_aws_ivs_alpha_IStreamKey, _aws_cdk_aws_ivs_alpha_StreamKeyProps, _aws_cdk_aws_ivs_alpha_StreamKey };
117
+ module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_aws_ivs_alpha_IChannel, _aws_cdk_aws_ivs_alpha_LatencyMode, _aws_cdk_aws_ivs_alpha_ChannelType, _aws_cdk_aws_ivs_alpha_Preset, _aws_cdk_aws_ivs_alpha_ChannelProps, _aws_cdk_aws_ivs_alpha_Channel, _aws_cdk_aws_ivs_alpha_IPlaybackKeyPair, _aws_cdk_aws_ivs_alpha_PlaybackKeyPairProps, _aws_cdk_aws_ivs_alpha_PlaybackKeyPair, _aws_cdk_aws_ivs_alpha_RecordingConfigurationProps, _aws_cdk_aws_ivs_alpha_IRecordingConfiguration, _aws_cdk_aws_ivs_alpha_RecordingConfiguration, _aws_cdk_aws_ivs_alpha_RenditionSelection, _aws_cdk_aws_ivs_alpha_RenditionConfiguration, _aws_cdk_aws_ivs_alpha_IStreamKey, _aws_cdk_aws_ivs_alpha_StreamKeyProps, _aws_cdk_aws_ivs_alpha_StreamKey, _aws_cdk_aws_ivs_alpha_RecordingMode, _aws_cdk_aws_ivs_alpha_Storage, _aws_cdk_aws_ivs_alpha_ThumbnailConfiguration, _aws_cdk_aws_ivs_alpha_Resolution };
package/README.md CHANGED
@@ -115,3 +115,90 @@ const myChannel = new ivs.Channel(this, 'Channel', {
115
115
  authorized: true, // default value is false
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
+ ```ts
129
+ // create an S3 bucket for storing recordings
130
+ const recordingBucket = new s3.Bucket(this, 'RecordingBucket');
131
+
132
+ // create a basic recording configuration
133
+ const recordingConfiguration = new ivs.RecordingConfiguration(this, 'RecordingConfiguration', {
134
+ bucket: recordingBucket,
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
+ ```ts
145
+ declare const recordingBucket: s3.Bucket;
146
+
147
+ const recordingConfiguration= new ivs.RecordingConfiguration(this, 'RecordingConfiguration', {
148
+ bucket: recordingBucket,
149
+
150
+ // set rendition configuration
151
+ renditionConfiguration: 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
+ ```ts
164
+ declare const recordingBucket: s3.Bucket;
165
+
166
+ const recordingConfiguration = new ivs.RecordingConfiguration(this, 'RecordingConfiguration', {
167
+ bucket: recordingBucket,
168
+
169
+ // set thumbnail settings
170
+ thumbnailConfiguration: ivs.ThumbnailConfiguration.interval(ivs.Resolution.HD, [ivs.Storage.LATEST, ivs.Storage.SEQUENTIAL], Duration.seconds(30)),
171
+ });
172
+ ```
173
+
174
+ ### Merge Fragmented Streams
175
+
176
+ 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.
177
+
178
+ 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.
179
+
180
+ For more information, see [Merge Fragmented Streams](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html#r2s3-merge-fragmented-streams).
181
+
182
+ ```ts
183
+ declare const recordingBucket: s3.Bucket;
184
+
185
+ const recordingConfiguration= new ivs.RecordingConfiguration(this, 'RecordingConfiguration', {
186
+ bucket: recordingBucket,
187
+
188
+ // set recording reconnect window
189
+ recordingReconnectWindow: Duration.seconds(60),
190
+ });
191
+ ```
192
+
193
+ ### Attaching Recording Configuration to a Channel
194
+
195
+ To enable recording for a channel, specify the recording configuration when creating the channel:
196
+
197
+ ```ts
198
+ declare const recordingConfiguration: ivs.RecordingConfiguration;
199
+
200
+ const channel = new ivs.Channel(this, 'Channel', {
201
+ // set recording configuration
202
+ recordingConfiguration: recordingConfiguration,
203
+ });
204
+ ```
package/lib/channel.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as core from 'aws-cdk-lib/core';
2
2
  import { Construct } from 'constructs';
3
3
  import { StreamKey } from './stream-key';
4
+ import { IRecordingConfiguration } from './recording-configuration';
4
5
  /**
5
6
  * Represents an IVS Channel
6
7
  */
@@ -128,6 +129,12 @@ export interface ChannelProps {
128
129
  * @default - Preset.HIGHER_BANDWIDTH_DELIVERY if channelType is ADVANCED_SD or ADVANCED_HD, none otherwise
129
130
  */
130
131
  readonly preset?: Preset;
132
+ /**
133
+ * A recording configuration for the channel.
134
+ *
135
+ * @default - recording is disabled
136
+ */
137
+ readonly recordingConfiguration?: IRecordingConfiguration;
131
138
  }
132
139
  /**
133
140
  A new IVS channel
package/lib/channel.js CHANGED
@@ -135,6 +135,7 @@ class Channel extends ChannelBase {
135
135
  name: this.physicalName,
136
136
  type: props.type,
137
137
  preset,
138
+ recordingConfigurationArn: props.recordingConfiguration?.recordingConfigurationArn,
138
139
  });
139
140
  this.channelArn = resource.attrArn;
140
141
  this.channelIngestEndpoint = resource.attrIngestEndpoint;
@@ -143,5 +144,5 @@ class Channel extends ChannelBase {
143
144
  }
144
145
  exports.Channel = Channel;
145
146
  _a = JSII_RTTI_SYMBOL_1;
146
- Channel[_a] = { fqn: "@aws-cdk/aws-ivs-alpha.Channel", version: "2.166.0-alpha.0" };
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNoYW5uZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseUNBQXlDO0FBQ3pDLDJDQUErQztBQUUvQyxpREFBaUQ7QUFDakQsNkNBQXlDO0FBb0J6Qzs7R0FFRztBQUNILE1BQWUsV0FBWSxTQUFRLElBQUksQ0FBQyxRQUFRO0lBR3ZDLFlBQVksQ0FBQyxFQUFVO1FBQzVCLE9BQU8sSUFBSSxzQkFBUyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDN0IsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7S0FDSjtDQUNGO0FBRUQ7O0VBRUU7QUFDRixJQUFZLFdBVVg7QUFWRCxXQUFZLFdBQVc7SUFDckI7O09BRUc7SUFDSCwwQkFBVyxDQUFBO0lBRVg7O09BRUc7SUFDSCxnQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBVlcsV0FBVywyQkFBWCxXQUFXLFFBVXRCO0FBRUQ7Ozs7O0VBS0U7QUFDRixJQUFZLFdBMEJYO0FBMUJELFdBQVksV0FBVztJQUNyQjs7OztPQUlHO0lBQ0gsb0NBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCw4QkFBZSxDQUFBO0lBRWY7Ozs7T0FJRztJQUNILDBDQUEyQixDQUFBO0lBRTNCOzs7O09BSUc7SUFDSCwwQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBMUJXLFdBQVcsMkJBQVgsV0FBVyxRQTBCdEI7QUFFRDs7OztFQUlFO0FBQ0YsSUFBWSxNQVdYO0FBWEQsV0FBWSxNQUFNO0lBQ2hCOztPQUVHO0lBQ0gsMkVBQWlFLENBQUE7SUFFakU7O09BRUc7SUFDSCxpRUFBdUQsQ0FBQTtBQUV6RCxDQUFDLEVBWFcsTUFBTSxzQkFBTixNQUFNLFFBV2pCO0FBdUREOztFQUVFO0FBQ0YsTUFBYSxPQUFRLFNBQVEsV0FBVztJQUN0Qzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsVUFBa0I7UUFD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IGNvcmUgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBMYXp5LCBOYW1lcyB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDZm5DaGFubmVsIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWl2cyc7XG5pbXBvcnQgeyBTdHJlYW1LZXkgfSBmcm9tICcuL3N0cmVhbS1rZXknO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gSVZTIENoYW5uZWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2hhbm5lbCBleHRlbmRzIGNvcmUuSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBjaGFubmVsIEFSTi4gRm9yIGV4YW1wbGU6IGFybjphd3M6aXZzOnVzLXdlc3QtMjoxMjM0NTY3ODkwMTI6Y2hhbm5lbC9hYmNkQUJDRGVmZ2hcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbm5lbEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RyZWFtIGtleSBmb3IgdGhpcyBJVlMgQ2hhbm5lbC5cbiAgICogQHBhcmFtIGlkIGNvbnN0cnVjdCBJRFxuICAgKi9cbiAgYWRkU3RyZWFtS2V5KGlkOiBzdHJpbmcpOiBTdHJlYW1LZXk7XG59XG5cbi8qKlxuICogUmVmZXJlbmNlIHRvIGEgbmV3IG9yIGV4aXN0aW5nIElWUyBDaGFubmVsXG4gKi9cbmFic3RyYWN0IGNsYXNzIENoYW5uZWxCYXNlIGV4dGVuZHMgY29yZS5SZXNvdXJjZSBpbXBsZW1lbnRzIElDaGFubmVsIHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNoYW5uZWxBcm46IHN0cmluZztcblxuICBwdWJsaWMgYWRkU3RyZWFtS2V5KGlkOiBzdHJpbmcpOiBTdHJlYW1LZXkge1xuICAgIHJldHVybiBuZXcgU3RyZWFtS2V5KHRoaXMsIGlkLCB7XG4gICAgICBjaGFubmVsOiB0aGlzLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICBDaGFubmVsIGxhdGVuY3kgbW9kZVxuKi9cbmV4cG9ydCBlbnVtIExhdGVuY3lNb2RlIHtcbiAgLyoqXG4gICAqIFVzZSBMT1cgdG8gbWluaW1pemUgYnJvYWRjYXN0ZXItdG8tdmlld2VyIGxhdGVuY3kgZm9yIGludGVyYWN0aXZlIGJyb2FkY2FzdHMuXG4gICAqL1xuICBMT1cgPSAnTE9XJyxcblxuICAvKipcbiAgICogVXNlIE5PUk1BTCBmb3IgYnJvYWRjYXN0cyB0aGF0IGRvIG5vdCByZXF1aXJlIHZpZXdlciBpbnRlcmFjdGlvbi5cbiAgICovXG4gIE5PUk1BTCA9ICdOT1JNQUwnLFxufVxuXG4vKipcbiAgKiBUaGUgY2hhbm5lbCB0eXBlLCB3aGljaCBkZXRlcm1pbmVzIHRoZSBhbGxvd2FibGUgcmVzb2x1dGlvbiBhbmQgYml0cmF0ZS5cbiAgKiBJZiB5b3UgZXhjZWVkIHRoZSBhbGxvd2FibGUgcmVzb2x1dGlvbiBvciBiaXRyYXRlLCB0aGUgc3RyZWFtIHByb2JhYmx5IHdpbGwgZGlzY29ubmVjdCBpbW1lZGlhdGVseS5cbiAgKlxuICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWl2cy1jaGFubmVsLmh0bWxcbiovXG5leHBvcnQgZW51bSBDaGFubmVsVHlwZSB7XG4gIC8qKlxuICAgKiBNdWx0aXBsZSBxdWFsaXRpZXMgYXJlIGdlbmVyYXRlZCBmcm9tIHRoZSBvcmlnaW5hbCBpbnB1dCwgdG8gYXV0b21hdGljYWxseSBnaXZlIHZpZXdlcnMgdGhlIGJlc3QgZXhwZXJpZW5jZSBmb3IgdGhlaXIgZGV2aWNlcyBhbmQgbmV0d29yayBjb25kaXRpb25zLlxuICAgKiBUcmFuc2NvZGluZyBhbGxvd3MgaGlnaGVyIHBsYXliYWNrIHF1YWxpdHkgYWNyb3NzIGEgcmFuZ2Ugb2YgZG93bmxvYWQgc3BlZWRzLiBSZXNvbHV0aW9uIGNhbiBiZSB1cCB0byAxMDgwcCBhbmQgYml0cmF0ZSBjYW4gYmUgdXAgdG8gOC41IE1icHMuXG4gICAqIEF1ZGlvIGlzIHRyYW5zY29kZWQgb25seSBmb3IgcmVuZGl0aW9ucyAzNjBwIGFuZCBiZWxvdzsgYWJvdmUgdGhhdCwgYXVkaW8gaXMgcGFzc2VkIHRocm91Z2guXG4gICAqL1xuICBTVEFOREFSRCA9ICdTVEFOREFSRCcsXG5cbiAgLyoqXG4gICAqIERlbGl2ZXJzIHRoZSBvcmlnaW5hbCBpbnB1dCB0byB2aWV3ZXJzLiBUaGUgdmlld2Vy4oCZcyB2aWRlby1xdWFsaXR5IGNob2ljZSBpcyBsaW1pdGVkIHRvIHRoZSBvcmlnaW5hbCBpbnB1dC5cbiAgICovXG4gIEJBU0lDID0gJ0JBU0lDJyxcblxuICAvKipcbiAgICogTXVsdGlwbGUgcXVhbGl0aWVzIGFyZSBnZW5lcmF0ZWQgZnJvbSB0aGUgb3JpZ2luYWwgaW5wdXQsIHRvIGF1dG9tYXRpY2FsbHkgZ2l2ZSB2aWV3ZXJzIHRoZSBiZXN0IGV4cGVyaWVuY2UgZm9yIHRoZWlyIGRldmljZXMgYW5kIG5ldHdvcmsgY29uZGl0aW9ucy5cbiAgICogSW5wdXQgcmVzb2x1dGlvbiBjYW4gYmUgdXAgdG8gMTA4MHAgYW5kIGJpdHJhdGUgY2FuIGJlIHVwIHRvIDguNSBNYnBzOyBvdXRwdXQgaXMgY2FwcGVkIGF0IFNEIHF1YWxpdHkgKDQ4MHApLlxuICAgKiBBdWRpbyBmb3IgYWxsIHJlbmRpdGlvbnMgaXMgdHJhbnNjb2RlZCwgYW5kIGFuIGF1ZGlvLW9ubHkgcmVuZGl0aW9uIGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIEFEVkFOQ0VEX1NEID0gJ0FEVkFOQ0VEX1NEJyxcblxuICAvKipcbiAgICogTXVsdGlwbGUgcXVhbGl0aWVzIGFyZSBnZW5lcmF0ZWQgZnJvbSB0aGUgb3JpZ2luYWwgaW5wdXQsIHRvIGF1dG9tYXRpY2FsbHkgZ2l2ZSB2aWV3ZXJzIHRoZSBiZXN0IGV4cGVyaWVuY2UgZm9yIHRoZWlyIGRldmljZXMgYW5kIG5ldHdvcmsgY29uZGl0aW9ucy5cbiAgICogSW5wdXQgcmVzb2x1dGlvbiBjYW4gYmUgdXAgdG8gMTA4MHAgYW5kIGJpdHJhdGUgY2FuIGJlIHVwIHRvIDguNSBNYnBzOyBvdXRwdXQgaXMgY2FwcGVkIGF0IEhEIHF1YWxpdHkgKDcyMHApLlxuICAgKiBBdWRpbyBmb3IgYWxsIHJlbmRpdGlvbnMgaXMgdHJhbnNjb2RlZCwgYW5kIGFuIGF1ZGlvLW9ubHkgcmVuZGl0aW9uIGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIEFEVkFOQ0VEX0hEID0gJ0FEVkFOQ0VEX0hEJyxcbn1cblxuLyoqXG4gICogQW4gb3B0aW9uYWwgdHJhbnNjb2RlIHByZXNldCBmb3IgdGhlIGNoYW5uZWwuIFRoaXMgaXMgc2VsZWN0YWJsZSBvbmx5IGZvciBBRFZBTkNFRF9IRCBhbmQgQURWQU5DRURfU0QgY2hhbm5lbCB0eXBlcy5cbiAgKlxuICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWl2cy1jaGFubmVsLmh0bWxcbiovXG5leHBvcnQgZW51bSBQcmVzZXQge1xuICAvKipcbiAgICogVXNlIGEgbG93ZXIgYml0cmF0ZSB0aGFuIFNUQU5EQVJEIGZvciBlYWNoIHF1YWxpdHkgbGV2ZWwuIFVzZSBpdCBpZiB5b3UgaGF2ZSBsb3cgZG93bmxvYWQgYmFuZHdpZHRoIGFuZC9vciBzaW1wbGUgdmlkZW8gY29udGVudCAoZS5nLiwgdGFsa2luZyBoZWFkcykuXG4gICAqL1xuICBDT05TVFJBSU5FRF9CQU5EV0lEVEhfREVMSVZFUlkgPSAnQ09OU1RSQUlORURfQkFORFdJRFRIX0RFTElWRVJZJyxcblxuICAvKipcbiAgICogVXNlIGEgaGlnaGVyIGJpdHJhdGUgZm9yIGVhY2ggcXVhbGl0eSBsZXZlbC4gVXNlIGl0IGlmIHlvdSBoYXZlIGhpZ2ggZG93bmxvYWQgYmFuZHdpZHRoIGFuZC9vciBjb21wbGV4IHZpZGVvIGNvbnRlbnQgKGUuZy4sIGZsYXNoZXMgYW5kIHF1aWNrIHNjZW5lIGNoYW5nZXMpLlxuICAgKi9cbiAgSElHSEVSX0JBTkRXSURUSF9ERUxJVkVSWSA9ICdISUdIRVJfQkFORFdJRFRIX0RFTElWRVJZJyxcblxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgbmV3IENoYW5uZWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGFubmVsUHJvcHMge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hhbm5lbCBpcyBhdXRob3JpemVkLlxuICAgKlxuICAgKiBJZiB5b3Ugd2lzaCB0byBtYWtlIGFuIGF1dGhvcml6ZWQgY2hhbm5lbCwgeW91IHdpbGwgbmVlZCB0byBlbnN1cmUgdGhhdFxuICAgKiBhIFBsYXliYWNrS2V5UGFpciBoYXMgYmVlbiB1cGxvYWRlZCB0byB5b3VyIGFjY291bnQgYXMgdGhpcyBpcyB1c2VkIHRvXG4gICAqIHZhbGlkYXRlIHRoZSBzaWduZWQgSldUIHRoYXQgaXMgcmVxdWlyZWQgZm9yIGF1dGhvcml6YXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6ZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGFubmVsIGFsbG93cyBpbnNlY3VyZSBSVE1QIGluZ2VzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGluc2VjdXJlSW5nZXN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hhbm5lbCBsYXRlbmN5IG1vZGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IExhdGVuY3lNb2RlLkxPV1xuICAgKi9cbiAgcmVhZG9ubHkgbGF0ZW5jeU1vZGU/OiBMYXRlbmN5TW9kZTtcblxuICAvKipcbiAgICogQSBuYW1lIGZvciB0aGUgY2hhbm5lbC5cbiAgICpcbiAgICogQGRlZmF1bHQgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbm5lbE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjaGFubmVsIHR5cGUsIHdoaWNoIGRldGVybWluZXMgdGhlIGFsbG93YWJsZSByZXNvbHV0aW9uIGFuZCBiaXRyYXRlLlxuICAgKiBJZiB5b3UgZXhjZWVkIHRoZSBhbGxvd2FibGUgcmVzb2x1dGlvbiBvciBiaXRyYXRlLCB0aGUgc3RyZWFtIHdpbGwgZGlzY29ubmVjdCBpbW1lZGlhdGVseVxuICAgKlxuICAgKiBAZGVmYXVsdCBDaGFubmVsVHlwZS5TVEFOREFSRFxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZT86IENoYW5uZWxUeXBlO1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCB0cmFuc2NvZGUgcHJlc2V0IGZvciB0aGUgY2hhbm5lbC4gQ2FuIGJlIHVzZWQgZm9yIEFEVkFOQ0VEX0hEIGFuZCBBRFZBTkNFRF9TRCBjaGFubmVsIHR5cGVzLlxuICAgKiBXaGVuIExPVyBvciBTVEFOREFSRCBpcyB1c2VkLCB0aGUgcHJlc2V0IHdpbGwgYmUgb3ZlcnJpZGRlbiBhbmQgc2V0IHRvIG5vbmUgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUHJlc2V0LkhJR0hFUl9CQU5EV0lEVEhfREVMSVZFUlkgaWYgY2hhbm5lbFR5cGUgaXMgQURWQU5DRURfU0Qgb3IgQURWQU5DRURfSEQsIG5vbmUgb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBwcmVzZXQ/OiBQcmVzZXQ7XG59XG5cbi8qKlxuICBBIG5ldyBJVlMgY2hhbm5lbFxuKi9cbmV4cG9ydCBjbGFzcyBDaGFubmVsIGV4dGVuZHMgQ2hhbm5lbEJhc2Uge1xuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGNoYW5uZWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNoYW5uZWxBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY2hhbm5lbEFybjogc3RyaW5nKTogSUNoYW5uZWwge1xuICAgIC8vIFRoaXMgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgYXJuIGNhbm5vdCBiZSBwYXJzZWRcbiAgICBsZXQgYXJuQ29tcG9uZW50cyA9IGNvcmUuQXJuLnNwbGl0KGNoYW5uZWxBcm4sIGNvcmUuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpO1xuXG4gICAgaWYgKCFjb3JlLlRva2VuLmlzVW5yZXNvbHZlZChhcm5Db21wb25lbnRzLnNlcnZpY2UpICYmIGFybkNvbXBvbmVudHMuc2VydmljZSAhPT0gJ2l2cycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzZXJ2aWNlLCBleHBlY3RlZCAnaXZzJywgZ290ICcke2FybkNvbXBvbmVudHMuc2VydmljZX0nYCk7XG4gICAgfVxuXG4gICAgaWYgKCFjb3JlLlRva2VuLmlzVW5yZXNvbHZlZChhcm5Db21wb25lbnRzLnJlc291cmNlKSAmJiBhcm5Db21wb25lbnRzLnJlc291cmNlICE9PSAnY2hhbm5lbCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZXNvdXJjZSwgZXhwZWN0ZWQgJ2NoYW5uZWwnLCBnb3QgJyR7YXJuQ29tcG9uZW50cy5yZXNvdXJjZX0nYCk7XG4gICAgfVxuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgQ2hhbm5lbEJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNoYW5uZWxBcm4gPSBjaGFubmVsQXJuO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgY2hhbm5lbEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAqIENoYW5uZWwgaW5nZXN0IGVuZHBvaW50LCBwYXJ0IG9mIHRoZSBkZWZpbml0aW9uIG9mIGFuIGluZ2VzdCBzZXJ2ZXIsIHVzZWQgd2hlbiB5b3Ugc2V0IHVwIHN0cmVhbWluZyBzb2Z0d2FyZS5cbiAgKiBGb3IgZXhhbXBsZTogYTFiMmMzZDRlNWY2Lmdsb2JhbC1jb250cmlidXRlLmxpdmUtdmlkZW8ubmV0XG4gICogQGF0dHJpYnV0ZVxuICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2hhbm5lbEluZ2VzdEVuZHBvaW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICogQ2hhbm5lbCBwbGF5YmFjayBVUkwuIEZvciBleGFtcGxlOlxuICAqIGh0dHBzOi8vYTFiMmMzZDRlNWY2LnVzLXdlc3QtMi5wbGF5YmFjay5saXZlLXZpZGVvLm5ldC9hcGkvdmlkZW8vdjEvdXMtd2VzdC0yLjEyMzQ1Njc4OTAxMi5jaGFubmVsLmFiY2RFRkdILm0zdThcbiAgKiBAYXR0cmlidXRlXG4gICovXG4gIHB1YmxpYyByZWFkb25seSBjaGFubmVsUGxheWJhY2tVcmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2hhbm5lbFByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuY2hhbm5lbE5hbWUgPz8gTGF6eS5zdHJpbmcoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiBOYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywgeyBtYXhMZW5ndGg6IDEyOCwgYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzOiAnLV8nIH0pLFxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5waHlzaWNhbE5hbWUgJiYgIWNvcmUuVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMucGh5c2ljYWxOYW1lKSAmJiAhL15bYS16QS1aMC05LV9dKiQvLnRlc3QodGhpcy5waHlzaWNhbE5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNoYW5uZWxOYW1lIG11c3QgY29udGFpbiBvbmx5IG51bWJlcnMsIGxldHRlcnMsIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzLCBnb3Q6ICcke3RoaXMucGh5c2ljYWxOYW1lfSdgKTtcbiAgICB9XG5cbiAgICBsZXQgcHJlc2V0O1xuXG4gICAgaWYgKHByb3BzLnR5cGUgJiYgW0NoYW5uZWxUeXBlLlNUQU5EQVJELCBDaGFubmVsVHlwZS5CQVNJQ10uaW5jbHVkZXMocHJvcHMudHlwZSkgJiYgcHJvcHMucHJlc2V0KSB7XG4gICAgICBwcmVzZXQgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgcHJlc2V0ID0gcHJvcHMucHJlc2V0O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmbkNoYW5uZWwodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgYXV0aG9yaXplZDogcHJvcHMuYXV0aG9yaXplZCxcbiAgICAgIGluc2VjdXJlSW5nZXN0OiBwcm9wcy5pbnNlY3VyZUluZ2VzdCxcbiAgICAgIGxhdGVuY3lNb2RlOiBwcm9wcy5sYXRlbmN5TW9kZSxcbiAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgdHlwZTogcHJvcHMudHlwZSxcbiAgICAgIHByZXNldCxcbiAgICB9KTtcblxuICAgIHRoaXMuY2hhbm5lbEFybiA9IHJlc291cmNlLmF0dHJBcm47XG4gICAgdGhpcy5jaGFubmVsSW5nZXN0RW5kcG9pbnQgPSByZXNvdXJjZS5hdHRySW5nZXN0RW5kcG9pbnQ7XG4gICAgdGhpcy5jaGFubmVsUGxheWJhY2tVcmwgPSByZXNvdXJjZS5hdHRyUGxheWJhY2tVcmw7XG4gIH1cbn1cbiJdfQ==
147
+ Channel[_a] = { fqn: "@aws-cdk/aws-ivs-alpha.Channel", version: "2.167.1-alpha.0" };
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNoYW5uZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseUNBQXlDO0FBQ3pDLDJDQUErQztBQUUvQyxpREFBaUQ7QUFDakQsNkNBQXlDO0FBcUJ6Qzs7R0FFRztBQUNILE1BQWUsV0FBWSxTQUFRLElBQUksQ0FBQyxRQUFRO0lBR3ZDLFlBQVksQ0FBQyxFQUFVO1FBQzVCLE9BQU8sSUFBSSxzQkFBUyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDN0IsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7S0FDSjtDQUNGO0FBRUQ7O0VBRUU7QUFDRixJQUFZLFdBVVg7QUFWRCxXQUFZLFdBQVc7SUFDckI7O09BRUc7SUFDSCwwQkFBVyxDQUFBO0lBRVg7O09BRUc7SUFDSCxnQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBVlcsV0FBVywyQkFBWCxXQUFXLFFBVXRCO0FBRUQ7Ozs7O0VBS0U7QUFDRixJQUFZLFdBMEJYO0FBMUJELFdBQVksV0FBVztJQUNyQjs7OztPQUlHO0lBQ0gsb0NBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCw4QkFBZSxDQUFBO0lBRWY7Ozs7T0FJRztJQUNILDBDQUEyQixDQUFBO0lBRTNCOzs7O09BSUc7SUFDSCwwQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBMUJXLFdBQVcsMkJBQVgsV0FBVyxRQTBCdEI7QUFFRDs7OztFQUlFO0FBQ0YsSUFBWSxNQVdYO0FBWEQsV0FBWSxNQUFNO0lBQ2hCOztPQUVHO0lBQ0gsMkVBQWlFLENBQUE7SUFFakU7O09BRUc7SUFDSCxpRUFBdUQsQ0FBQTtBQUV6RCxDQUFDLEVBWFcsTUFBTSxzQkFBTixNQUFNLFFBV2pCO0FBOEREOztFQUVFO0FBQ0YsTUFBYSxPQUFRLFNBQVEsV0FBVztJQUN0Qzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsVUFBa0I7UUFD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RDs7QUF2RUgsMEJBd0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29yZSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IExhenksIE5hbWVzIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENmbkNoYW5uZWwgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaXZzJztcbmltcG9ydCB7IFN0cmVhbUtleSB9IGZyb20gJy4vc3RyZWFtLWtleSc7XG5pbXBvcnQgeyBJUmVjb3JkaW5nQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vcmVjb3JkaW5nLWNvbmZpZ3VyYXRpb24nO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gSVZTIENoYW5uZWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2hhbm5lbCBleHRlbmRzIGNvcmUuSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBjaGFubmVsIEFSTi4gRm9yIGV4YW1wbGU6IGFybjphd3M6aXZzOnVzLXdlc3QtMjoxMjM0NTY3ODkwMTI6Y2hhbm5lbC9hYmNkQUJDRGVmZ2hcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbm5lbEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RyZWFtIGtleSBmb3IgdGhpcyBJVlMgQ2hhbm5lbC5cbiAgICogQHBhcmFtIGlkIGNvbnN0cnVjdCBJRFxuICAgKi9cbiAgYWRkU3RyZWFtS2V5KGlkOiBzdHJpbmcpOiBTdHJlYW1LZXk7XG59XG5cbi8qKlxuICogUmVmZXJlbmNlIHRvIGEgbmV3IG9yIGV4aXN0aW5nIElWUyBDaGFubmVsXG4gKi9cbmFic3RyYWN0IGNsYXNzIENoYW5uZWxCYXNlIGV4dGVuZHMgY29yZS5SZXNvdXJjZSBpbXBsZW1lbnRzIElDaGFubmVsIHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNoYW5uZWxBcm46IHN0cmluZztcblxuICBwdWJsaWMgYWRkU3RyZWFtS2V5KGlkOiBzdHJpbmcpOiBTdHJlYW1LZXkge1xuICAgIHJldHVybiBuZXcgU3RyZWFtS2V5KHRoaXMsIGlkLCB7XG4gICAgICBjaGFubmVsOiB0aGlzLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICBDaGFubmVsIGxhdGVuY3kgbW9kZVxuKi9cbmV4cG9ydCBlbnVtIExhdGVuY3lNb2RlIHtcbiAgLyoqXG4gICAqIFVzZSBMT1cgdG8gbWluaW1pemUgYnJvYWRjYXN0ZXItdG8tdmlld2VyIGxhdGVuY3kgZm9yIGludGVyYWN0aXZlIGJyb2FkY2FzdHMuXG4gICAqL1xuICBMT1cgPSAnTE9XJyxcblxuICAvKipcbiAgICogVXNlIE5PUk1BTCBmb3IgYnJvYWRjYXN0cyB0aGF0IGRvIG5vdCByZXF1aXJlIHZpZXdlciBpbnRlcmFjdGlvbi5cbiAgICovXG4gIE5PUk1BTCA9ICdOT1JNQUwnLFxufVxuXG4vKipcbiAgKiBUaGUgY2hhbm5lbCB0eXBlLCB3aGljaCBkZXRlcm1pbmVzIHRoZSBhbGxvd2FibGUgcmVzb2x1dGlvbiBhbmQgYml0cmF0ZS5cbiAgKiBJZiB5b3UgZXhjZWVkIHRoZSBhbGxvd2FibGUgcmVzb2x1dGlvbiBvciBiaXRyYXRlLCB0aGUgc3RyZWFtIHByb2JhYmx5IHdpbGwgZGlzY29ubmVjdCBpbW1lZGlhdGVseS5cbiAgKlxuICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWl2cy1jaGFubmVsLmh0bWxcbiovXG5leHBvcnQgZW51bSBDaGFubmVsVHlwZSB7XG4gIC8qKlxuICAgKiBNdWx0aXBsZSBxdWFsaXRpZXMgYXJlIGdlbmVyYXRlZCBmcm9tIHRoZSBvcmlnaW5hbCBpbnB1dCwgdG8gYXV0b21hdGljYWxseSBnaXZlIHZpZXdlcnMgdGhlIGJlc3QgZXhwZXJpZW5jZSBmb3IgdGhlaXIgZGV2aWNlcyBhbmQgbmV0d29yayBjb25kaXRpb25zLlxuICAgKiBUcmFuc2NvZGluZyBhbGxvd3MgaGlnaGVyIHBsYXliYWNrIHF1YWxpdHkgYWNyb3NzIGEgcmFuZ2Ugb2YgZG93bmxvYWQgc3BlZWRzLiBSZXNvbHV0aW9uIGNhbiBiZSB1cCB0byAxMDgwcCBhbmQgYml0cmF0ZSBjYW4gYmUgdXAgdG8gOC41IE1icHMuXG4gICAqIEF1ZGlvIGlzIHRyYW5zY29kZWQgb25seSBmb3IgcmVuZGl0aW9ucyAzNjBwIGFuZCBiZWxvdzsgYWJvdmUgdGhhdCwgYXVkaW8gaXMgcGFzc2VkIHRocm91Z2guXG4gICAqL1xuICBTVEFOREFSRCA9ICdTVEFOREFSRCcsXG5cbiAgLyoqXG4gICAqIERlbGl2ZXJzIHRoZSBvcmlnaW5hbCBpbnB1dCB0byB2aWV3ZXJzLiBUaGUgdmlld2Vy4oCZcyB2aWRlby1xdWFsaXR5IGNob2ljZSBpcyBsaW1pdGVkIHRvIHRoZSBvcmlnaW5hbCBpbnB1dC5cbiAgICovXG4gIEJBU0lDID0gJ0JBU0lDJyxcblxuICAvKipcbiAgICogTXVsdGlwbGUgcXVhbGl0aWVzIGFyZSBnZW5lcmF0ZWQgZnJvbSB0aGUgb3JpZ2luYWwgaW5wdXQsIHRvIGF1dG9tYXRpY2FsbHkgZ2l2ZSB2aWV3ZXJzIHRoZSBiZXN0IGV4cGVyaWVuY2UgZm9yIHRoZWlyIGRldmljZXMgYW5kIG5ldHdvcmsgY29uZGl0aW9ucy5cbiAgICogSW5wdXQgcmVzb2x1dGlvbiBjYW4gYmUgdXAgdG8gMTA4MHAgYW5kIGJpdHJhdGUgY2FuIGJlIHVwIHRvIDguNSBNYnBzOyBvdXRwdXQgaXMgY2FwcGVkIGF0IFNEIHF1YWxpdHkgKDQ4MHApLlxuICAgKiBBdWRpbyBmb3IgYWxsIHJlbmRpdGlvbnMgaXMgdHJhbnNjb2RlZCwgYW5kIGFuIGF1ZGlvLW9ubHkgcmVuZGl0aW9uIGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIEFEVkFOQ0VEX1NEID0gJ0FEVkFOQ0VEX1NEJyxcblxuICAvKipcbiAgICogTXVsdGlwbGUgcXVhbGl0aWVzIGFyZSBnZW5lcmF0ZWQgZnJvbSB0aGUgb3JpZ2luYWwgaW5wdXQsIHRvIGF1dG9tYXRpY2FsbHkgZ2l2ZSB2aWV3ZXJzIHRoZSBiZXN0IGV4cGVyaWVuY2UgZm9yIHRoZWlyIGRldmljZXMgYW5kIG5ldHdvcmsgY29uZGl0aW9ucy5cbiAgICogSW5wdXQgcmVzb2x1dGlvbiBjYW4gYmUgdXAgdG8gMTA4MHAgYW5kIGJpdHJhdGUgY2FuIGJlIHVwIHRvIDguNSBNYnBzOyBvdXRwdXQgaXMgY2FwcGVkIGF0IEhEIHF1YWxpdHkgKDcyMHApLlxuICAgKiBBdWRpbyBmb3IgYWxsIHJlbmRpdGlvbnMgaXMgdHJhbnNjb2RlZCwgYW5kIGFuIGF1ZGlvLW9ubHkgcmVuZGl0aW9uIGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIEFEVkFOQ0VEX0hEID0gJ0FEVkFOQ0VEX0hEJyxcbn1cblxuLyoqXG4gICogQW4gb3B0aW9uYWwgdHJhbnNjb2RlIHByZXNldCBmb3IgdGhlIGNoYW5uZWwuIFRoaXMgaXMgc2VsZWN0YWJsZSBvbmx5IGZvciBBRFZBTkNFRF9IRCBhbmQgQURWQU5DRURfU0QgY2hhbm5lbCB0eXBlcy5cbiAgKlxuICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWl2cy1jaGFubmVsLmh0bWxcbiovXG5leHBvcnQgZW51bSBQcmVzZXQge1xuICAvKipcbiAgICogVXNlIGEgbG93ZXIgYml0cmF0ZSB0aGFuIFNUQU5EQVJEIGZvciBlYWNoIHF1YWxpdHkgbGV2ZWwuIFVzZSBpdCBpZiB5b3UgaGF2ZSBsb3cgZG93bmxvYWQgYmFuZHdpZHRoIGFuZC9vciBzaW1wbGUgdmlkZW8gY29udGVudCAoZS5nLiwgdGFsa2luZyBoZWFkcykuXG4gICAqL1xuICBDT05TVFJBSU5FRF9CQU5EV0lEVEhfREVMSVZFUlkgPSAnQ09OU1RSQUlORURfQkFORFdJRFRIX0RFTElWRVJZJyxcblxuICAvKipcbiAgICogVXNlIGEgaGlnaGVyIGJpdHJhdGUgZm9yIGVhY2ggcXVhbGl0eSBsZXZlbC4gVXNlIGl0IGlmIHlvdSBoYXZlIGhpZ2ggZG93bmxvYWQgYmFuZHdpZHRoIGFuZC9vciBjb21wbGV4IHZpZGVvIGNvbnRlbnQgKGUuZy4sIGZsYXNoZXMgYW5kIHF1aWNrIHNjZW5lIGNoYW5nZXMpLlxuICAgKi9cbiAgSElHSEVSX0JBTkRXSURUSF9ERUxJVkVSWSA9ICdISUdIRVJfQkFORFdJRFRIX0RFTElWRVJZJyxcblxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgbmV3IENoYW5uZWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGFubmVsUHJvcHMge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hhbm5lbCBpcyBhdXRob3JpemVkLlxuICAgKlxuICAgKiBJZiB5b3Ugd2lzaCB0byBtYWtlIGFuIGF1dGhvcml6ZWQgY2hhbm5lbCwgeW91IHdpbGwgbmVlZCB0byBlbnN1cmUgdGhhdFxuICAgKiBhIFBsYXliYWNrS2V5UGFpciBoYXMgYmVlbiB1cGxvYWRlZCB0byB5b3VyIGFjY291bnQgYXMgdGhpcyBpcyB1c2VkIHRvXG4gICAqIHZhbGlkYXRlIHRoZSBzaWduZWQgSldUIHRoYXQgaXMgcmVxdWlyZWQgZm9yIGF1dGhvcml6YXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6ZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGFubmVsIGFsbG93cyBpbnNlY3VyZSBSVE1QIGluZ2VzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGluc2VjdXJlSW5nZXN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hhbm5lbCBsYXRlbmN5IG1vZGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IExhdGVuY3lNb2RlLkxPV1xuICAgKi9cbiAgcmVhZG9ubHkgbGF0ZW5jeU1vZGU/OiBMYXRlbmN5TW9kZTtcblxuICAvKipcbiAgICogQSBuYW1lIGZvciB0aGUgY2hhbm5lbC5cbiAgICpcbiAgICogQGRlZmF1bHQgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbm5lbE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjaGFubmVsIHR5cGUsIHdoaWNoIGRldGVybWluZXMgdGhlIGFsbG93YWJsZSByZXNvbHV0aW9uIGFuZCBiaXRyYXRlLlxuICAgKiBJZiB5b3UgZXhjZWVkIHRoZSBhbGxvd2FibGUgcmVzb2x1dGlvbiBvciBiaXRyYXRlLCB0aGUgc3RyZWFtIHdpbGwgZGlzY29ubmVjdCBpbW1lZGlhdGVseVxuICAgKlxuICAgKiBAZGVmYXVsdCBDaGFubmVsVHlwZS5TVEFOREFSRFxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZT86IENoYW5uZWxUeXBlO1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCB0cmFuc2NvZGUgcHJlc2V0IGZvciB0aGUgY2hhbm5lbC4gQ2FuIGJlIHVzZWQgZm9yIEFEVkFOQ0VEX0hEIGFuZCBBRFZBTkNFRF9TRCBjaGFubmVsIHR5cGVzLlxuICAgKiBXaGVuIExPVyBvciBTVEFOREFSRCBpcyB1c2VkLCB0aGUgcHJlc2V0IHdpbGwgYmUgb3ZlcnJpZGRlbiBhbmQgc2V0IHRvIG5vbmUgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUHJlc2V0LkhJR0hFUl9CQU5EV0lEVEhfREVMSVZFUlkgaWYgY2hhbm5lbFR5cGUgaXMgQURWQU5DRURfU0Qgb3IgQURWQU5DRURfSEQsIG5vbmUgb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBwcmVzZXQ/OiBQcmVzZXQ7XG5cbiAgLyoqXG4gICAqIEEgcmVjb3JkaW5nIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjaGFubmVsLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHJlY29yZGluZyBpcyBkaXNhYmxlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVjb3JkaW5nQ29uZmlndXJhdGlvbj86IElSZWNvcmRpbmdDb25maWd1cmF0aW9uO1xufVxuXG4vKipcbiAgQSBuZXcgSVZTIGNoYW5uZWxcbiovXG5leHBvcnQgY2xhc3MgQ2hhbm5lbCBleHRlbmRzIENoYW5uZWxCYXNlIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBjaGFubmVsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21DaGFubmVsQXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNoYW5uZWxBcm46IHN0cmluZyk6IElDaGFubmVsIHtcbiAgICAvLyBUaGlzIHdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIGFybiBjYW5ub3QgYmUgcGFyc2VkXG4gICAgbGV0IGFybkNvbXBvbmVudHMgPSBjb3JlLkFybi5zcGxpdChjaGFubmVsQXJuLCBjb3JlLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKTtcblxuICAgIGlmICghY29yZS5Ub2tlbi5pc1VucmVzb2x2ZWQoYXJuQ29tcG9uZW50cy5zZXJ2aWNlKSAmJiBhcm5Db21wb25lbnRzLnNlcnZpY2UgIT09ICdpdnMnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc2VydmljZSwgZXhwZWN0ZWQgJ2l2cycsIGdvdCAnJHthcm5Db21wb25lbnRzLnNlcnZpY2V9J2ApO1xuICAgIH1cblxuICAgIGlmICghY29yZS5Ub2tlbi5pc1VucmVzb2x2ZWQoYXJuQ29tcG9uZW50cy5yZXNvdXJjZSkgJiYgYXJuQ29tcG9uZW50cy5yZXNvdXJjZSAhPT0gJ2NoYW5uZWwnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVzb3VyY2UsIGV4cGVjdGVkICdjaGFubmVsJywgZ290ICcke2FybkNvbXBvbmVudHMucmVzb3VyY2V9J2ApO1xuICAgIH1cblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIENoYW5uZWxCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjaGFubmVsQXJuID0gY2hhbm5lbEFybjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGNoYW5uZWxBcm46IHN0cmluZztcblxuICAvKipcbiAgKiBDaGFubmVsIGluZ2VzdCBlbmRwb2ludCwgcGFydCBvZiB0aGUgZGVmaW5pdGlvbiBvZiBhbiBpbmdlc3Qgc2VydmVyLCB1c2VkIHdoZW4geW91IHNldCB1cCBzdHJlYW1pbmcgc29mdHdhcmUuXG4gICogRm9yIGV4YW1wbGU6IGExYjJjM2Q0ZTVmNi5nbG9iYWwtY29udHJpYnV0ZS5saXZlLXZpZGVvLm5ldFxuICAqIEBhdHRyaWJ1dGVcbiAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNoYW5uZWxJbmdlc3RFbmRwb2ludDogc3RyaW5nO1xuXG4gIC8qKlxuICAqIENoYW5uZWwgcGxheWJhY2sgVVJMLiBGb3IgZXhhbXBsZTpcbiAgKiBodHRwczovL2ExYjJjM2Q0ZTVmNi51cy13ZXN0LTIucGxheWJhY2subGl2ZS12aWRlby5uZXQvYXBpL3ZpZGVvL3YxL3VzLXdlc3QtMi4xMjM0NTY3ODkwMTIuY2hhbm5lbC5hYmNkRUZHSC5tM3U4XG4gICogQGF0dHJpYnV0ZVxuICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2hhbm5lbFBsYXliYWNrVXJsOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENoYW5uZWxQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLmNoYW5uZWxOYW1lID8/IExhenkuc3RyaW5nKHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gTmFtZXMudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHsgbWF4TGVuZ3RoOiAxMjgsIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogJy1fJyB9KSxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMucGh5c2ljYWxOYW1lICYmICFjb3JlLlRva2VuLmlzVW5yZXNvbHZlZCh0aGlzLnBoeXNpY2FsTmFtZSkgJiYgIS9eW2EtekEtWjAtOS1fXSokLy50ZXN0KHRoaXMucGh5c2ljYWxOYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjaGFubmVsTmFtZSBtdXN0IGNvbnRhaW4gb25seSBudW1iZXJzLCBsZXR0ZXJzLCBoeXBoZW5zIGFuZCB1bmRlcnNjb3JlcywgZ290OiAnJHt0aGlzLnBoeXNpY2FsTmFtZX0nYCk7XG4gICAgfVxuXG4gICAgbGV0IHByZXNldDtcblxuICAgIGlmIChwcm9wcy50eXBlICYmIFtDaGFubmVsVHlwZS5TVEFOREFSRCwgQ2hhbm5lbFR5cGUuQkFTSUNdLmluY2x1ZGVzKHByb3BzLnR5cGUpICYmIHByb3BzLnByZXNldCkge1xuICAgICAgcHJlc2V0ID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByZXNldCA9IHByb3BzLnByZXNldDtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5DaGFubmVsKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGF1dGhvcml6ZWQ6IHByb3BzLmF1dGhvcml6ZWQsXG4gICAgICBpbnNlY3VyZUluZ2VzdDogcHJvcHMuaW5zZWN1cmVJbmdlc3QsXG4gICAgICBsYXRlbmN5TW9kZTogcHJvcHMubGF0ZW5jeU1vZGUsXG4gICAgICBuYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIHR5cGU6IHByb3BzLnR5cGUsXG4gICAgICBwcmVzZXQsXG4gICAgICByZWNvcmRpbmdDb25maWd1cmF0aW9uQXJuOiBwcm9wcy5yZWNvcmRpbmdDb25maWd1cmF0aW9uPy5yZWNvcmRpbmdDb25maWd1cmF0aW9uQXJuLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jaGFubmVsQXJuID0gcmVzb3VyY2UuYXR0ckFybjtcbiAgICB0aGlzLmNoYW5uZWxJbmdlc3RFbmRwb2ludCA9IHJlc291cmNlLmF0dHJJbmdlc3RFbmRwb2ludDtcbiAgICB0aGlzLmNoYW5uZWxQbGF5YmFja1VybCA9IHJlc291cmNlLmF0dHJQbGF5YmFja1VybDtcbiAgfVxufVxuIl19
package/lib/index.d.ts CHANGED
@@ -1,3 +1,7 @@
1
1
  export * from './channel';
2
2
  export * from './playback-key-pair';
3
+ export * from './recording-configuration';
4
+ export * from './rendition-configuration';
3
5
  export * from './stream-key';
6
+ export * from './thumbnail-configuration';
7
+ export * from './util';
package/lib/index.js CHANGED
@@ -16,6 +16,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./channel"), exports);
18
18
  __exportStar(require("./playback-key-pair"), exports);
19
+ __exportStar(require("./recording-configuration"), exports);
20
+ __exportStar(require("./rendition-configuration"), exports);
19
21
  __exportStar(require("./stream-key"), exports);
22
+ __exportStar(require("./thumbnail-configuration"), exports);
23
+ __exportStar(require("./util"), exports);
20
24
  // AWS::IVS CloudFormation Resources:
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCO0FBQzFCLHNEQUFvQztBQUNwQywrQ0FBNkI7QUFFN0IscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jaGFubmVsJztcbmV4cG9ydCAqIGZyb20gJy4vcGxheWJhY2sta2V5LXBhaXInO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJlYW0ta2V5JztcblxuLy8gQVdTOjpJVlMgQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2VzOlxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCO0FBQzFCLHNEQUFvQztBQUNwQyw0REFBMEM7QUFDMUMsNERBQTBDO0FBQzFDLCtDQUE2QjtBQUM3Qiw0REFBMEM7QUFDMUMseUNBQXVCO0FBRXZCLHFDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2hhbm5lbCc7XG5leHBvcnQgKiBmcm9tICcuL3BsYXliYWNrLWtleS1wYWlyJztcbmV4cG9ydCAqIGZyb20gJy4vcmVjb3JkaW5nLWNvbmZpZ3VyYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9yZW5kaXRpb24tY29uZmlndXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3N0cmVhbS1rZXknO1xuZXhwb3J0ICogZnJvbSAnLi90aHVtYm5haWwtY29uZmlndXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwnO1xuXG4vLyBBV1M6OklWUyBDbG91ZEZvcm1hdGlvbiBSZXNvdXJjZXM6XG4iXX0=
@@ -44,5 +44,5 @@ class PlaybackKeyPair extends PlaybackKeyPairBase {
44
44
  }
45
45
  exports.PlaybackKeyPair = PlaybackKeyPair;
46
46
  _a = JSII_RTTI_SYMBOL_1;
47
- PlaybackKeyPair[_a] = { fqn: "@aws-cdk/aws-ivs-alpha.PlaybackKeyPair", version: "2.166.0-alpha.0" };
47
+ PlaybackKeyPair[_a] = { fqn: "@aws-cdk/aws-ivs-alpha.PlaybackKeyPair", version: "2.167.1-alpha.0" };
48
48
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWJhY2sta2V5LXBhaXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwbGF5YmFjay1rZXktcGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5Q0FBeUM7QUFDekMsMkNBQStDO0FBRS9DLGlEQUF5RDtBQWN6RDs7R0FFRztBQUNILE1BQWUsbUJBQW9CLFNBQVEsSUFBSSxDQUFDLFFBQVE7Q0FHdkQ7QUFvQkQ7O0VBRUU7QUFDRixNQUFhLGVBQWdCLFNBQVEsbUJBQW1CO0lBVXRELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixJQUFJLFdBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxZQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUNsRyxDQUFDO1NBQ0gsQ0FBQyxDQUFDOzs7Ozs7K0NBZk0sZUFBZTs7OztRQWlCeEIsSUFBSSxLQUFLLENBQUMsbUJBQW1CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQzVJLE1BQU0sSUFBSSxLQUFLLENBQUMsMEZBQTBGLEtBQUssQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDMUksQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksNEJBQWtCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUN4RCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzFDLElBQUksRUFBRSxLQUFLLENBQUMsbUJBQW1CO1NBQ2hDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzNDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO0tBQzVEOztBQTVCSCwwQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb3JlIGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgTGF6eSwgTmFtZXMgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2ZuUGxheWJhY2tLZXlQYWlyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWl2cyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBJVlMgUGxheWJhY2sgS2V5IFBhaXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGxheWJhY2tLZXlQYWlyIGV4dGVuZHMgY29yZS5JUmVzb3VyY2Uge1xuICAvKipcbiAgICogS2V5LXBhaXIgQVJOLiBGb3IgZXhhbXBsZTogYXJuOmF3czppdnM6dXMtd2VzdC0yOjY5Mzk5MTMwMDU2OTpwbGF5YmFjay1rZXkvZjk5Y2RlNjEtYzJiMC00ZGYzLTg5NDEtY2E3ZDM4YWNjYTFhXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHBsYXliYWNrS2V5UGFpckFybjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlZmVyZW5jZSB0byBhIG5ldyBvciBleGlzdGluZyBJVlMgUGxheWJhY2sgS2V5IFBhaXJcbiAqL1xuYWJzdHJhY3QgY2xhc3MgUGxheWJhY2tLZXlQYWlyQmFzZSBleHRlbmRzIGNvcmUuUmVzb3VyY2UgaW1wbGVtZW50cyBJUGxheWJhY2tLZXlQYWlyIHtcbiAgLy8gdGhlc2Ugc3RheSBhYnN0cmFjdCBhdCB0aGlzIGxldmVsXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBwbGF5YmFja0tleVBhaXJBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIG5ldyBQbGF5YmFjayBLZXkgUGFpclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsYXliYWNrS2V5UGFpclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBwdWJsaWMgcG9ydGlvbiBvZiBhIGN1c3RvbWVyLWdlbmVyYXRlZCBrZXkgcGFpci5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0tleU1hdGVyaWFsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGFyYml0cmFyeSBzdHJpbmcgKGEgbmlja25hbWUpIGFzc2lnbmVkIHRvIGEgcGxheWJhY2sga2V5IHBhaXIgdGhhdCBoZWxwcyB0aGUgY3VzdG9tZXIgaWRlbnRpZnkgdGhhdCByZXNvdXJjZS5cbiAgICogVGhlIHZhbHVlIGRvZXMgbm90IG5lZWQgdG8gYmUgdW5pcXVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSBwbGF5YmFja0tleVBhaXJOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAgQSBuZXcgSVZTIFBsYXliYWNrIEtleSBQYWlyXG4qL1xuZXhwb3J0IGNsYXNzIFBsYXliYWNrS2V5UGFpciBleHRlbmRzIFBsYXliYWNrS2V5UGFpckJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgcGxheWJhY2tLZXlQYWlyQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICogS2V5LXBhaXIgaWRlbnRpZmllci4gRm9yIGV4YW1wbGU6IDk4OjBkOjFhOmEwOjE5Ojk2OjFlOmVhOjBhOjBhOjJjOjlhOjQyOjE5OjJiOmU3XG4gICpcbiAgKiBAYXR0cmlidXRlXG4gICovXG4gIHB1YmxpYyByZWFkb25seSBwbGF5YmFja0tleVBhaXJGaW5nZXJwcmludDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQbGF5YmFja0tleVBhaXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5wbGF5YmFja0tleVBhaXJOYW1lID8/IExhenkuc3RyaW5nKHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gTmFtZXMudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHsgbWF4TGVuZ3RoOiAxMjgsIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogJy1fJyB9KSxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLnBsYXliYWNrS2V5UGFpck5hbWUgJiYgIWNvcmUuVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLnBsYXliYWNrS2V5UGFpck5hbWUpICYmICEvXlthLXpBLVowLTktX10qJC8udGVzdChwcm9wcy5wbGF5YmFja0tleVBhaXJOYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBwbGF5YmFja0tleVBhaXJOYW1lIG11c3QgY29udGFpbiBvbmx5IG51bWJlcnMsIGxldHRlcnMsIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzLCBnb3Q6ICcke3Byb3BzLnBsYXliYWNrS2V5UGFpck5hbWV9J2ApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmblBsYXliYWNrS2V5UGFpcih0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBwdWJsaWNLZXlNYXRlcmlhbDogcHJvcHMucHVibGljS2V5TWF0ZXJpYWwsXG4gICAgICBuYW1lOiBwcm9wcy5wbGF5YmFja0tleVBhaXJOYW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wbGF5YmFja0tleVBhaXJBcm4gPSByZXNvdXJjZS5hdHRyQXJuO1xuICAgIHRoaXMucGxheWJhY2tLZXlQYWlyRmluZ2VycHJpbnQgPSByZXNvdXJjZS5hdHRyRmluZ2VycHJpbnQ7XG4gIH1cbn0iXX0=
@@ -0,0 +1,92 @@
1
+ import { IBucket } from 'aws-cdk-lib/aws-s3';
2
+ import { Duration, IResource, Resource } from 'aws-cdk-lib/core';
3
+ import { Construct } from 'constructs';
4
+ import { RenditionConfiguration } from './rendition-configuration';
5
+ import { ThumbnailConfiguration } from './thumbnail-configuration';
6
+ /**
7
+ * Properties of the IVS Recording configuration
8
+ */
9
+ export interface RecordingConfigurationProps {
10
+ /**
11
+ * S3 bucket where recorded videos will be stored.
12
+ */
13
+ readonly bucket: IBucket;
14
+ /**
15
+ * The name of the Recording configuration.
16
+ * The value does not need to be unique.
17
+ *
18
+ * @default - auto generate
19
+ */
20
+ readonly recordingConfigurationName?: string;
21
+ /**
22
+ * If a broadcast disconnects and then reconnects within the specified interval,
23
+ * the multiple streams will be considered a single broadcast and merged together.
24
+ *
25
+ * `recordingReconnectWindow` must be between 0 and 300 seconds
26
+ *
27
+ * @default - 0 seconds (means disabled)
28
+ */
29
+ readonly recordingReconnectWindow?: Duration;
30
+ /**
31
+ * A rendition configuration describes which renditions should be recorded for a stream.
32
+ *
33
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-renditionconfiguration.html
34
+ *
35
+ * @default - no rendition configuration
36
+ */
37
+ readonly renditionConfiguration?: RenditionConfiguration;
38
+ /**
39
+ * 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.
40
+ *
41
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.html
42
+ *
43
+ * @default - no thumbnail configuration
44
+ */
45
+ readonly thumbnailConfiguration?: ThumbnailConfiguration;
46
+ }
47
+ /**
48
+ * Represents the IVS Recording configuration.
49
+ */
50
+ export interface IRecordingConfiguration extends IResource {
51
+ /**
52
+ * The ID of the Recording configuration.
53
+ * @attribute
54
+ */
55
+ readonly recordingConfigurationId: string;
56
+ /**
57
+ * The ARN of the Recording configuration.
58
+ * @attribute
59
+ */
60
+ readonly recordingConfigurationArn: string;
61
+ }
62
+ /**
63
+ * The IVS Recording configuration
64
+ *
65
+ * @resource AWS::IVS::RecordingConfiguration
66
+ */
67
+ export declare class RecordingConfiguration extends Resource implements IRecordingConfiguration {
68
+ /**
69
+ * Imports an IVS Recording Configuration from attributes.
70
+ */
71
+ static fromRecordingConfigurationId(scope: Construct, id: string, recordingConfigurationId: string): IRecordingConfiguration;
72
+ /**
73
+ * Imports an IVS Recording Configuration from its ARN
74
+ */
75
+ static fromArn(scope: Construct, id: string, recordingConfigurationArn: string): IRecordingConfiguration;
76
+ /**
77
+ * The ID of the Recording configuration.
78
+ * @attribute
79
+ */
80
+ readonly recordingConfigurationId: string;
81
+ /**
82
+ * The ARN of the Recording configuration.
83
+ * @attribute
84
+ */
85
+ readonly recordingConfigurationArn: string;
86
+ private readonly props;
87
+ constructor(scope: Construct, id: string, props: RecordingConfigurationProps);
88
+ private _renderRenditionConfiguration;
89
+ private _renderThumbnailConfiguration;
90
+ private validateRecordingConfigurationName;
91
+ private validateRecordingReconnectWindowSeconds;
92
+ }
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.RecordingConfiguration = void 0;
5
+ const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
6
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7
+ const aws_ivs_1 = require("aws-cdk-lib/aws-ivs");
8
+ const core_1 = require("aws-cdk-lib/core");
9
+ /**
10
+ * The IVS Recording configuration
11
+ *
12
+ * @resource AWS::IVS::RecordingConfiguration
13
+ */
14
+ class RecordingConfiguration extends core_1.Resource {
15
+ /**
16
+ * Imports an IVS Recording Configuration from attributes.
17
+ */
18
+ static fromRecordingConfigurationId(scope, id, recordingConfigurationId) {
19
+ class Import extends core_1.Resource {
20
+ constructor() {
21
+ super(...arguments);
22
+ this.recordingConfigurationId = recordingConfigurationId;
23
+ this.recordingConfigurationArn = core_1.Stack.of(this).formatArn({
24
+ resource: 'recording-configuration',
25
+ service: 'ivs',
26
+ resourceName: recordingConfigurationId,
27
+ });
28
+ }
29
+ }
30
+ return new Import(scope, id);
31
+ }
32
+ /**
33
+ * Imports an IVS Recording Configuration from its ARN
34
+ */
35
+ static fromArn(scope, id, recordingConfigurationArn) {
36
+ const resourceParts = core_1.Fn.split('/', recordingConfigurationArn);
37
+ if (!resourceParts || resourceParts.length < 2) {
38
+ throw new Error(`Unexpected ARN format: ${recordingConfigurationArn}`);
39
+ }
40
+ const recordingConfigurationId = core_1.Fn.select(1, resourceParts);
41
+ class Import extends core_1.Resource {
42
+ constructor() {
43
+ super(...arguments);
44
+ this.recordingConfigurationId = recordingConfigurationId;
45
+ this.recordingConfigurationArn = recordingConfigurationArn;
46
+ }
47
+ }
48
+ return new Import(scope, id);
49
+ }
50
+ constructor(scope, id, props) {
51
+ super(scope, id, {
52
+ physicalName: props.recordingConfigurationName,
53
+ });
54
+ try {
55
+ jsiiDeprecationWarnings._aws_cdk_aws_ivs_alpha_RecordingConfigurationProps(props);
56
+ }
57
+ catch (error) {
58
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
59
+ Error.captureStackTrace(error, RecordingConfiguration);
60
+ }
61
+ throw error;
62
+ }
63
+ this.props = props;
64
+ this.validateRecordingConfigurationName();
65
+ this.validateRecordingReconnectWindowSeconds();
66
+ const resource = new aws_ivs_1.CfnRecordingConfiguration(this, 'Resource', {
67
+ destinationConfiguration: {
68
+ s3: {
69
+ bucketName: this.props.bucket.bucketName,
70
+ },
71
+ },
72
+ name: this.props.recordingConfigurationName,
73
+ recordingReconnectWindowSeconds: this.props.recordingReconnectWindow?.toSeconds(),
74
+ renditionConfiguration: this._renderRenditionConfiguration(),
75
+ thumbnailConfiguration: this._renderThumbnailConfiguration(),
76
+ });
77
+ this.recordingConfigurationId = resource.ref;
78
+ this.recordingConfigurationArn = resource.attrArn;
79
+ }
80
+ _renderRenditionConfiguration() {
81
+ if (!this.props.renditionConfiguration) {
82
+ return;
83
+ }
84
+ return {
85
+ renditions: this.props.renditionConfiguration.renditions,
86
+ renditionSelection: this.props.renditionConfiguration.renditionSelection,
87
+ };
88
+ }
89
+ ;
90
+ _renderThumbnailConfiguration() {
91
+ if (!this.props.thumbnailConfiguration) {
92
+ return;
93
+ }
94
+ return {
95
+ recordingMode: this.props.thumbnailConfiguration.recordingMode,
96
+ resolution: this.props.thumbnailConfiguration.resolution,
97
+ storage: this.props.thumbnailConfiguration.storage,
98
+ targetIntervalSeconds: this.props.thumbnailConfiguration.targetInterval?.toSeconds(),
99
+ };
100
+ }
101
+ ;
102
+ validateRecordingConfigurationName() {
103
+ const recordingConfigurationName = this.props.recordingConfigurationName;
104
+ if (recordingConfigurationName == undefined || core_1.Token.isUnresolved(recordingConfigurationName)) {
105
+ return;
106
+ }
107
+ if (!/^[a-zA-Z0-9-_]*$/.test(recordingConfigurationName)) {
108
+ throw new Error(`\`recordingConfigurationName\` must consist only of alphanumeric characters, hyphens or underbars, got: ${recordingConfigurationName}.`);
109
+ }
110
+ if (recordingConfigurationName.length > 128) {
111
+ throw new Error(`\`recordingConfigurationName\` must be less than or equal to 128 characters, got: ${recordingConfigurationName.length} characters.`);
112
+ }
113
+ }
114
+ ;
115
+ validateRecordingReconnectWindowSeconds() {
116
+ const recordingReconnectWindow = this.props.recordingReconnectWindow;
117
+ if (recordingReconnectWindow === undefined || core_1.Token.isUnresolved(recordingReconnectWindow)) {
118
+ return;
119
+ }
120
+ if (0 < recordingReconnectWindow.toMilliseconds() && recordingReconnectWindow.toMilliseconds() < core_1.Duration.seconds(1).toMilliseconds()) {
121
+ throw new Error(`\`recordingReconnectWindow\` must be between 0 and 300 seconds, got ${recordingReconnectWindow.toMilliseconds()} milliseconds.`);
122
+ }
123
+ if (recordingReconnectWindow.toSeconds() > 300) {
124
+ throw new Error(`\`recordingReconnectWindow\` must be between 0 and 300 seconds, got ${recordingReconnectWindow.toSeconds()} seconds.`);
125
+ }
126
+ }
127
+ ;
128
+ }
129
+ exports.RecordingConfiguration = RecordingConfiguration;
130
+ _a = JSII_RTTI_SYMBOL_1;
131
+ RecordingConfiguration[_a] = { fqn: "@aws-cdk/aws-ivs-alpha.RecordingConfiguration", version: "2.167.1-alpha.0" };
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZWNvcmRpbmctY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxpREFBZ0U7QUFFaEUsMkNBQW1GO0FBb0VuRjs7OztHQUlHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxlQUFRO0lBQ2xEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLDRCQUE0QixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUNyRSx3QkFBZ0M7UUFFaEMsTUFBTSxNQUFPLFNBQVEsZUFBUTtZQUE3Qjs7Z0JBQ2tCLDZCQUF3QixHQUFHLHdCQUF3QixDQUFDO2dCQUNwRCw4QkFBeUIsR0FBRyxZQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDbkUsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsWUFBWSxFQUFFLHdCQUF3QjtpQkFDdkMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztTQUFBO1FBRUQsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDOUI7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUseUJBQWlDO1FBQ25GLE1BQU0sYUFBYSxHQUFHLFNBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFFL0QsSUFBSSxDQUFDLGFBQWEsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLHlCQUF5QixFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsTUFBTSx3QkFBd0IsR0FBRyxTQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUU3RCxNQUFNLE1BQU8sU0FB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MEJBQTBCLENBQUMsTUFBTSxjQUFjLENBQUMsQ0FBQztRQUN4SixDQUFDO0tBQ0Y7SUFBQSxDQUFDO0lBRU0sdUNBQXVDO1FBQzdDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQztRQUVyRSxJQUFJLHdCQUF3QixLQUFLLFNBQVMsSUFBSSxZQUFLLENBQUMsWUFBWSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQztZQUMzRixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxHQUFHLHdCQUF3QixDQUFDLGNBQWMsRUFBRSxJQUFJLHdCQUF3QixDQUFDLGNBQWMsRUFBRSxHQUFHLGVBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUN0SSxNQUFNLElBQUksS0FBSyxDQUFDLHVFQUF1RSx3QkFBd0IsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNwSixDQUFDO1FBRUQsSUFBSSx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLHVFQUF1RSx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDMUksQ0FBQztLQUNGO0lBQUEsQ0FBQzs7QUFySUosd0RBc0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuUmVjb3JkaW5nQ29uZmlndXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pdnMnO1xuaW1wb3J0IHsgSUJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBEdXJhdGlvbiwgRm4sIElSZXNvdXJjZSwgUmVzb3VyY2UsIFN0YWNrLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBSZW5kaXRpb25Db25maWd1cmF0aW9uIH0gZnJvbSAnLi9yZW5kaXRpb24tY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBUaHVtYm5haWxDb25maWd1cmF0aW9uIH0gZnJvbSAnLi90aHVtYm5haWwtY29uZmlndXJhdGlvbic7XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiB0aGUgSVZTIFJlY29yZGluZyBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3JkaW5nQ29uZmlndXJhdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFMzIGJ1Y2tldCB3aGVyZSByZWNvcmRlZCB2aWRlb3Mgd2lsbCBiZSBzdG9yZWQuXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ6IElCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBSZWNvcmRpbmcgY29uZmlndXJhdGlvbi5cbiAgICogVGhlIHZhbHVlIGRvZXMgbm90IG5lZWQgdG8gYmUgdW5pcXVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF1dG8gZ2VuZXJhdGVcbiAgICovXG4gIHJlYWRvbmx5IHJlY29yZGluZ0NvbmZpZ3VyYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBhIGJyb2FkY2FzdCBkaXNjb25uZWN0cyBhbmQgdGhlbiByZWNvbm5lY3RzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIGludGVydmFsLFxuICAgKiB0aGUgbXVsdGlwbGUgc3RyZWFtcyB3aWxsIGJlIGNvbnNpZGVyZWQgYSBzaW5nbGUgYnJvYWRjYXN0IGFuZCBtZXJnZWQgdG9nZXRoZXIuXG4gICAqXG4gICAqIGByZWNvcmRpbmdSZWNvbm5lY3RXaW5kb3dgIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAzMDAgc2Vjb25kc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIDAgc2Vjb25kcyAobWVhbnMgZGlzYWJsZWQpXG4gICAqL1xuICByZWFkb25seSByZWNvcmRpbmdSZWNvbm5lY3RXaW5kb3c/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogQSByZW5kaXRpb24gY29uZmlndXJhdGlvbiBkZXNjcmliZXMgd2hpY2ggcmVuZGl0aW9ucyBzaG91bGQgYmUgcmVjb3JkZWQgZm9yIGEgc3RyZWFtLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWl2cy1yZWNvcmRpbmdjb25maWd1cmF0aW9uLXJlbmRpdGlvbmNvbmZpZ3VyYXRpb24uaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHJlbmRpdGlvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSByZW5kaXRpb25Db25maWd1cmF0aW9uPzogUmVuZGl0aW9uQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogQSB0aHVtYm5haWwgY29uZmlndXJhdGlvbiBlbmFibGVzL2Rpc2FibGVzIHRoZSByZWNvcmRpbmcgb2YgdGh1bWJuYWlscyBmb3IgYSBsaXZlIHNlc3Npb24gYW5kIGNvbnRyb2xzIHRoZSBpbnRlcnZhbCBhdCB3aGljaCB0aHVtYm5haWxzIGFyZSBnZW5lcmF0ZWQgZm9yIHRoZSBsaXZlIHNlc3Npb24uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtaXZzLXJlY29yZGluZ2NvbmZpZ3VyYXRpb24tdGh1bWJuYWlsY29uZmlndXJhdGlvbi5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gdGh1bWJuYWlsIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHRodW1ibmFpbENvbmZpZ3VyYXRpb24/OlRodW1ibmFpbENvbmZpZ3VyYXRpb247XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgSVZTIFJlY29yZGluZyBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElSZWNvcmRpbmdDb25maWd1cmF0aW9uIGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgUmVjb3JkaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHJlY29yZGluZ0NvbmZpZ3VyYXRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBSZWNvcmRpbmcgY29uZmlndXJhdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVjb3JkaW5nQ29uZmlndXJhdGlvbkFybjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBJVlMgUmVjb3JkaW5nIGNvbmZpZ3VyYXRpb25cbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpJVlM6OlJlY29yZGluZ0NvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFJlY29yZGluZ0NvbmZpZ3VyYXRpb24gZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElSZWNvcmRpbmdDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIEltcG9ydHMgYW4gSVZTIFJlY29yZGluZyBDb25maWd1cmF0aW9uIGZyb20gYXR0cmlidXRlcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVJlY29yZGluZ0NvbmZpZ3VyYXRpb25JZChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLFxuICAgIHJlY29yZGluZ0NvbmZpZ3VyYXRpb25JZDogc3RyaW5nKTogSVJlY29yZGluZ0NvbmZpZ3VyYXRpb24ge1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJUmVjb3JkaW5nQ29uZmlndXJhdGlvbiB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcmVjb3JkaW5nQ29uZmlndXJhdGlvbklkID0gcmVjb3JkaW5nQ29uZmlndXJhdGlvbklkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHJlY29yZGluZ0NvbmZpZ3VyYXRpb25Bcm4gPSBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICByZXNvdXJjZTogJ3JlY29yZGluZy1jb25maWd1cmF0aW9uJyxcbiAgICAgICAgc2VydmljZTogJ2l2cycsXG4gICAgICAgIHJlc291cmNlTmFtZTogcmVjb3JkaW5nQ29uZmlndXJhdGlvbklkLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIElWUyBSZWNvcmRpbmcgQ29uZmlndXJhdGlvbiBmcm9tIGl0cyBBUk5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCByZWNvcmRpbmdDb25maWd1cmF0aW9uQXJuOiBzdHJpbmcpOiBJUmVjb3JkaW5nQ29uZmlndXJhdGlvbiB7XG4gICAgY29uc3QgcmVzb3VyY2VQYXJ0cyA9IEZuLnNwbGl0KCcvJywgcmVjb3JkaW5nQ29uZmlndXJhdGlvbkFybik7XG5cbiAgICBpZiAoIXJlc291cmNlUGFydHMgfHwgcmVzb3VyY2VQYXJ0cy5sZW5ndGggPCAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgQVJOIGZvcm1hdDogJHtyZWNvcmRpbmdDb25maWd1cmF0aW9uQXJufWApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlY29yZGluZ0NvbmZpZ3VyYXRpb25JZCA9IEZuLnNlbGVjdCgxLCByZXNvdXJjZVBhcnRzKTtcblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVJlY29yZGluZ0NvbmZpZ3VyYXRpb24ge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHJlY29yZGluZ0NvbmZpZ3VyYXRpb25JZCA9IHJlY29yZGluZ0NvbmZpZ3VyYXRpb25JZDtcbiAgICAgIHB1YmxpYyByZWFkb25seSByZWNvcmRpbmdDb25maWd1cmF0aW9uQXJuID0gcmVjb3JkaW5nQ29uZmlndXJhdGlvbkFybjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgUmVjb3JkaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHJlY29yZGluZ0NvbmZpZ3VyYXRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBSZWNvcmRpbmcgY29uZmlndXJhdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVjb3JkaW5nQ29uZmlndXJhdGlvbkFybjogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IFJlY29yZGluZ0NvbmZpZ3VyYXRpb25Qcm9wcztcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJlY29yZGluZ0NvbmZpZ3VyYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5yZWNvcmRpbmdDb25maWd1cmF0aW9uTmFtZSxcbiAgICB9KTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIHRoaXMudmFsaWRhdGVSZWNvcmRpbmdDb25maWd1cmF0aW9uTmFtZSgpO1xuICAgIHRoaXMudmFsaWRhdGVSZWNvcmRpbmdSZWNvbm5lY3RXaW5kb3dTZWNvbmRzKCk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5SZWNvcmRpbmdDb25maWd1cmF0aW9uKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGRlc3RpbmF0aW9uQ29uZmlndXJhdGlvbjoge1xuICAgICAgICBzMzoge1xuICAgICAgICAgIGJ1Y2tldE5hbWU6IHRoaXMucHJvcHMuYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbmFtZTogdGhpcy5wcm9wcy5yZWNvcmRpbmdDb25maWd1cmF0aW9uTmFtZSxcbiAgICAgIHJlY29yZGluZ1JlY29ubmVjdFdpbmRvd1NlY29uZHM6IHRoaXMucHJvcHMucmVjb3JkaW5nUmVjb25uZWN0V2luZG93Py50b1NlY29uZHMoKSxcbiAgICAgIHJlbmRpdGlvbkNvbmZpZ3VyYXRpb246IHRoaXMuX3JlbmRlclJlbmRpdGlvbkNvbmZpZ3VyYXRpb24oKSxcbiAgICAgIHRodW1ibmFpbENvbmZpZ3VyYXRpb246IHRoaXMuX3JlbmRlclRodW1ibmFpbENvbmZpZ3VyYXRpb24oKSxcbiAgICB9KTtcblxuICAgIHRoaXMucmVjb3JkaW5nQ29uZmlndXJhdGlvbklkID0gcmVzb3VyY2UucmVmO1xuICAgIHRoaXMucmVjb3JkaW5nQ29uZmlndXJhdGlvbkFybiA9IHJlc291cmNlLmF0dHJBcm47XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJSZW5kaXRpb25Db25maWd1cmF0aW9uKCk6IENmblJlY29yZGluZ0NvbmZpZ3VyYXRpb24uUmVuZGl0aW9uQ29uZmlndXJhdGlvblByb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucmVuZGl0aW9uQ29uZmlndXJhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICByZW5kaXRpb25zOiB0aGlzLnByb3BzLnJlbmRpdGlvbkNvbmZpZ3VyYXRpb24ucmVuZGl0aW9ucyxcbiAgICAgIHJlbmRpdGlvblNlbGVjdGlvbjogdGhpcy5wcm9wcy5yZW5kaXRpb25Db25maWd1cmF0aW9uLnJlbmRpdGlvblNlbGVjdGlvbixcbiAgICB9O1xuICB9O1xuXG4gIHByaXZhdGUgX3JlbmRlclRodW1ibmFpbENvbmZpZ3VyYXRpb24oKTogQ2ZuUmVjb3JkaW5nQ29uZmlndXJhdGlvbi5UaHVtYm5haWxDb25maWd1cmF0aW9uUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5wcm9wcy50aHVtYm5haWxDb25maWd1cmF0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJlY29yZGluZ01vZGU6IHRoaXMucHJvcHMudGh1bWJuYWlsQ29uZmlndXJhdGlvbi5yZWNvcmRpbmdNb2RlLFxuICAgICAgcmVzb2x1dGlvbjogdGhpcy5wcm9wcy50aHVtYm5haWxDb25maWd1cmF0aW9uLnJlc29sdXRpb24sXG4gICAgICBzdG9yYWdlOiB0aGlzLnByb3BzLnRodW1ibmFpbENvbmZpZ3VyYXRpb24uc3RvcmFnZSxcbiAgICAgIHRhcmdldEludGVydmFsU2Vjb25kczogdGhpcy5wcm9wcy50aHVtYm5haWxDb25maWd1cmF0aW9uLnRhcmdldEludGVydmFsPy50b1NlY29uZHMoKSxcbiAgICB9O1xuICB9O1xuXG4gIHByaXZhdGUgdmFsaWRhdGVSZWNvcmRpbmdDb25maWd1cmF0aW9uTmFtZSgpOiB1bmRlZmluZWQge1xuICAgIGNvbnN0IHJlY29yZGluZ0NvbmZpZ3VyYXRpb25OYW1lID0gdGhpcy5wcm9wcy5yZWNvcmRpbmdDb25maWd1cmF0aW9uTmFtZTtcblxuICAgIGlmIChyZWNvcmRpbmdDb25maWd1cmF0aW9uTmFtZSA9PSB1bmRlZmluZWQgfHwgVG9rZW4uaXNVbnJlc29sdmVkKHJlY29yZGluZ0NvbmZpZ3VyYXRpb25OYW1lKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghL15bYS16QS1aMC05LV9dKiQvLnRlc3QocmVjb3JkaW5nQ29uZmlndXJhdGlvbk5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFxcYHJlY29yZGluZ0NvbmZpZ3VyYXRpb25OYW1lXFxgIG11c3QgY29uc2lzdCBvbmx5IG9mIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBoeXBoZW5zIG9yIHVuZGVyYmFycywgZ290OiAke3JlY29yZGluZ0NvbmZpZ3VyYXRpb25OYW1lfS5gKTtcbiAgICB9XG5cbiAgICBpZiAocmVjb3JkaW5nQ29uZmlndXJhdGlvbk5hbWUubGVuZ3RoID4gMTI4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFxcYHJlY29yZGluZ0NvbmZpZ3VyYXRpb25OYW1lXFxgIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEyOCBjaGFyYWN0ZXJzLCBnb3Q6ICR7cmVjb3JkaW5nQ29uZmlndXJhdGlvbk5hbWUubGVuZ3RofSBjaGFyYWN0ZXJzLmApO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHZhbGlkYXRlUmVjb3JkaW5nUmVjb25uZWN0V2luZG93U2Vjb25kcygpOiB1bmRlZmluZWQge1xuICAgIGNvbnN0IHJlY29yZGluZ1JlY29ubmVjdFdpbmRvdyA9IHRoaXMucHJvcHMucmVjb3JkaW5nUmVjb25uZWN0V2luZG93O1xuXG4gICAgaWYgKHJlY29yZGluZ1JlY29ubmVjdFdpbmRvdyA9PT0gdW5kZWZpbmVkIHx8IFRva2VuLmlzVW5yZXNvbHZlZChyZWNvcmRpbmdSZWNvbm5lY3RXaW5kb3cpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKDAgPCByZWNvcmRpbmdSZWNvbm5lY3RXaW5kb3cudG9NaWxsaXNlY29uZHMoKSAmJiByZWNvcmRpbmdSZWNvbm5lY3RXaW5kb3cudG9NaWxsaXNlY29uZHMoKSA8IER1cmF0aW9uLnNlY29uZHMoMSkudG9NaWxsaXNlY29uZHMoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBcXGByZWNvcmRpbmdSZWNvbm5lY3RXaW5kb3dcXGAgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDMwMCBzZWNvbmRzLCBnb3QgJHtyZWNvcmRpbmdSZWNvbm5lY3RXaW5kb3cudG9NaWxsaXNlY29uZHMoKX0gbWlsbGlzZWNvbmRzLmApO1xuICAgIH1cblxuICAgIGlmIChyZWNvcmRpbmdSZWNvbm5lY3RXaW5kb3cudG9TZWNvbmRzKCkgPiAzMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgXFxgcmVjb3JkaW5nUmVjb25uZWN0V2luZG93XFxgIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAzMDAgc2Vjb25kcywgZ290ICR7cmVjb3JkaW5nUmVjb25uZWN0V2luZG93LnRvU2Vjb25kcygpfSBzZWNvbmRzLmApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,44 @@
1
+ import { Resolution } from './util';
2
+ /**
3
+ * Rendition selection mode.
4
+ */
5
+ export declare enum RenditionSelection {
6
+ /**
7
+ * Record all available renditions.
8
+ */
9
+ ALL = "ALL",
10
+ /**
11
+ * Does not record any video. This option is useful if you just want to record thumbnails.
12
+ */
13
+ NONE = "NONE",
14
+ /**
15
+ * Select a subset of video renditions to record.
16
+ */
17
+ CUSTOM = "CUSTOM"
18
+ }
19
+ /**
20
+ * Rendition configuration for IVS Recording configuration
21
+ */
22
+ export declare class RenditionConfiguration {
23
+ readonly renditionSelection: RenditionSelection;
24
+ readonly renditions?: Resolution[] | undefined;
25
+ /**
26
+ * Record all available renditions.
27
+ */
28
+ static all(): RenditionConfiguration;
29
+ /**
30
+ * Does not record any video.
31
+ */
32
+ static none(): RenditionConfiguration;
33
+ /**
34
+ * Record a subset of video renditions.
35
+ *
36
+ * @param renditions A list of which renditions are recorded for a stream.
37
+ */
38
+ static custom(renditions: Resolution[]): RenditionConfiguration;
39
+ /**
40
+ * @param renditionSelection The set of renditions are recorded for a stream.
41
+ * @param renditions A list of which renditions are recorded for a stream. If you do not specify this property, no resolution is selected.
42
+ */
43
+ private constructor();
44
+ }