@aws-cdk/aws-medialive-alpha 2.268.0-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.
Files changed (70) hide show
  1. package/.jsii +60888 -0
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +524 -0
  4. package/LICENSE +201 -0
  5. package/NOTICE +2 -0
  6. package/README.md +1297 -0
  7. package/grants.json +27 -0
  8. package/lib/audio-codec-settings.d.ts +901 -0
  9. package/lib/audio-codec-settings.js +1098 -0
  10. package/lib/audio-selector.d.ts +170 -0
  11. package/lib/audio-selector.js +306 -0
  12. package/lib/avail-settings.d.ts +231 -0
  13. package/lib/avail-settings.js +226 -0
  14. package/lib/caption-selector.d.ts +234 -0
  15. package/lib/caption-selector.js +413 -0
  16. package/lib/caption-settings.d.ts +349 -0
  17. package/lib/caption-settings.js +482 -0
  18. package/lib/channel-features.d.ts +106 -0
  19. package/lib/channel-features.js +85 -0
  20. package/lib/channel-placement-group.d.ts +73 -0
  21. package/lib/channel-placement-group.js +132 -0
  22. package/lib/channel.d.ts +687 -0
  23. package/lib/channel.js +1096 -0
  24. package/lib/cluster.d.ts +129 -0
  25. package/lib/cluster.js +158 -0
  26. package/lib/color-correction.d.ts +39 -0
  27. package/lib/color-correction.js +29 -0
  28. package/lib/destinations.d.ts +242 -0
  29. package/lib/destinations.js +455 -0
  30. package/lib/encode-configuration.d.ts +615 -0
  31. package/lib/encode-configuration.js +629 -0
  32. package/lib/enums.d.ts +698 -0
  33. package/lib/enums.js +1045 -0
  34. package/lib/file-location.d.ts +65 -0
  35. package/lib/file-location.js +150 -0
  36. package/lib/framerate.d.ts +31 -0
  37. package/lib/framerate.js +71 -0
  38. package/lib/index.d.ts +26 -0
  39. package/lib/index.js +43 -0
  40. package/lib/input-attachment.d.ts +319 -0
  41. package/lib/input-attachment.js +228 -0
  42. package/lib/input-security-group.d.ts +51 -0
  43. package/lib/input-security-group.js +123 -0
  44. package/lib/input-specification.d.ts +111 -0
  45. package/lib/input-specification.js +181 -0
  46. package/lib/input.d.ts +505 -0
  47. package/lib/input.js +803 -0
  48. package/lib/m2ts-settings.d.ts +421 -0
  49. package/lib/m2ts-settings.js +469 -0
  50. package/lib/m3u8-settings.d.ts +272 -0
  51. package/lib/m3u8-settings.js +304 -0
  52. package/lib/medialive-grants.generated.d.ts +30 -0
  53. package/lib/medialive-grants.generated.js +92 -0
  54. package/lib/network.d.ts +83 -0
  55. package/lib/network.js +132 -0
  56. package/lib/output-group.d.ts +924 -0
  57. package/lib/output-group.js +941 -0
  58. package/lib/outputs.d.ts +304 -0
  59. package/lib/outputs.js +598 -0
  60. package/lib/sdi-source.d.ts +124 -0
  61. package/lib/sdi-source.js +180 -0
  62. package/lib/shared.d.ts +44 -0
  63. package/lib/shared.js +146 -0
  64. package/lib/video-codec-settings.d.ts +1500 -0
  65. package/lib/video-codec-settings.js +1722 -0
  66. package/lib/video-selection.d.ts +92 -0
  67. package/lib/video-selection.js +95 -0
  68. package/package.json +135 -0
  69. package/rosetta/_generated.ts-fixture +6 -0
  70. package/rosetta/default.ts-fixture +21 -0
@@ -0,0 +1,319 @@
1
+ import type { Bitrate, Duration } from 'aws-cdk-lib';
2
+ import type { AudioSelector } from './audio-selector';
3
+ import type { CaptionSelector } from './caption-selector';
4
+ import type { IInput } from './input';
5
+ import type { VideoSelectorSettings } from './video-selection';
6
+ /**
7
+ * The source end behavior for file-based inputs.
8
+ */
9
+ export declare class SourceEndBehavior {
10
+ /** Continue with the last frame */
11
+ static readonly CONTINUE: SourceEndBehavior;
12
+ /** Loop the input */
13
+ static readonly LOOP: SourceEndBehavior;
14
+ /** A value not yet modelled by AWS CDK. */
15
+ static of(value: string): SourceEndBehavior;
16
+ /** The underlying string value passed to CloudFormation. */
17
+ readonly value: string;
18
+ private constructor();
19
+ }
20
+ /**
21
+ * Input filter mode.
22
+ */
23
+ export declare class InputFilter {
24
+ /** Auto-detect filtering based on input type */
25
+ static readonly AUTO: InputFilter;
26
+ /** Disable filtering */
27
+ static readonly DISABLED: InputFilter;
28
+ /** Force filtering regardless of input type */
29
+ static readonly FORCED: InputFilter;
30
+ /** A value not yet modelled by AWS CDK. */
31
+ static of(value: string): InputFilter;
32
+ /** The underlying string value passed to CloudFormation. */
33
+ readonly value: string;
34
+ private constructor();
35
+ }
36
+ /**
37
+ * SMPTE-2038 data preference.
38
+ */
39
+ export declare class Smpte2038DataPreference {
40
+ /** Extract from SMPTE-2038 if present */
41
+ static readonly PREFER: Smpte2038DataPreference;
42
+ /** Never extract from SMPTE-2038 */
43
+ static readonly IGNORE: Smpte2038DataPreference;
44
+ /** A value not yet modelled by AWS CDK. */
45
+ static of(value: string): Smpte2038DataPreference;
46
+ /** The underlying string value passed to CloudFormation. */
47
+ readonly value: string;
48
+ private constructor();
49
+ }
50
+ /**
51
+ * Server validation mode for HTTPS inputs.
52
+ */
53
+ export declare class ServerValidation {
54
+ /** Check cryptography and server name */
55
+ static readonly CHECK_CRYPTOGRAPHY_AND_VALIDATE_NAME: ServerValidation;
56
+ /** Check cryptography only (useful for S3 bucket names with dots) */
57
+ static readonly CHECK_CRYPTOGRAPHY_ONLY: ServerValidation;
58
+ /** A value not yet modelled by AWS CDK. */
59
+ static of(value: string): ServerValidation;
60
+ /** The underlying string value passed to CloudFormation. */
61
+ readonly value: string;
62
+ private constructor();
63
+ }
64
+ /**
65
+ * Network input settings for URL pull inputs.
66
+ */
67
+ export interface NetworkInputSettings {
68
+ /**
69
+ * HTTPS server certificate validation mode.
70
+ * @default - service default
71
+ */
72
+ readonly serverValidation?: ServerValidation;
73
+ /**
74
+ * HLS input settings (bandwidth selection, buffer segments, retries).
75
+ * @default - no HLS input settings
76
+ */
77
+ readonly hlsInputSettings?: HlsInputSettings;
78
+ /**
79
+ * For a multicast input, filter to content from a specific source IP address
80
+ * (source-specific multicast).
81
+ * @default - no source IP filter
82
+ */
83
+ readonly multicastSourceIp?: string;
84
+ }
85
+ /** The source MediaLive ingests SCTE-35 messages from for an HLS input. */
86
+ export declare class HlsScte35Source {
87
+ /** Ingest SCTE-35 from the content segments (in the stream). */
88
+ static readonly SEGMENTS: HlsScte35Source;
89
+ /** Ingest SCTE-35 from tags in the playlist (the HLS manifest). */
90
+ static readonly MANIFEST: HlsScte35Source;
91
+ /** A value not yet modelled by AWS CDK. */
92
+ static of(value: string): HlsScte35Source;
93
+ /** The underlying string value passed to CloudFormation. */
94
+ readonly value: string;
95
+ private constructor();
96
+ }
97
+ /**
98
+ * HLS input settings for URL pull inputs.
99
+ */
100
+ export interface HlsInputSettings {
101
+ /**
102
+ * The bandwidth to select from the HLS manifest. MediaLive chooses the rendition
103
+ * whose manifest bandwidth most closely matches this value.
104
+ * @default - highest bandwidth
105
+ */
106
+ readonly bandwidth?: Bitrate;
107
+ /**
108
+ * When specified, reading of the HLS input begins this many buffer segments from the end
109
+ * (most recently written segment).
110
+ * @default - the HLS input begins with the first segment specified in the m3u8
111
+ */
112
+ readonly bufferSegments?: number;
113
+ /**
114
+ * Number of consecutive read failures before the input is considered unavailable.
115
+ * @default - service default
116
+ */
117
+ readonly retries?: number;
118
+ /**
119
+ * The interval between retry attempts.
120
+ * @default - service default
121
+ */
122
+ readonly retryInterval?: Duration;
123
+ /**
124
+ * The source MediaLive ingests SCTE-35 messages from — the content segments or the manifest.
125
+ * @default - service default
126
+ */
127
+ readonly scte35Source?: HlsScte35Source;
128
+ }
129
+ /**
130
+ * Input preference when deciding which input to make active after a previously failed input
131
+ * has recovered.
132
+ */
133
+ export declare class InputPreference {
134
+ /** No preference — stay on the currently active input even after the other recovers. */
135
+ static readonly EQUAL_INPUT_PREFERENCE: InputPreference;
136
+ /**
137
+ * Prefer the primary input — switch back to it once it has been free of failover
138
+ * conditions for the error-clear time.
139
+ */
140
+ static readonly PRIMARY_INPUT_PREFERRED: InputPreference;
141
+ /** A value not yet modelled by AWS CDK. */
142
+ static of(value: string): InputPreference;
143
+ /** The underlying string value passed to CloudFormation. */
144
+ readonly value: string;
145
+ private constructor();
146
+ }
147
+ /**
148
+ * Properties for an input-loss failover condition.
149
+ */
150
+ export interface InputLossFailoverProps {
151
+ /**
152
+ * The amount of time with no input detected before failover occurs.
153
+ * @default - MediaLive service default
154
+ */
155
+ readonly threshold?: Duration;
156
+ }
157
+ /**
158
+ * Properties for an audio-silence failover condition.
159
+ */
160
+ export interface AudioSilenceFailoverProps {
161
+ /**
162
+ * The audio selector (defined on the input attachment) that MediaLive monitors for
163
+ * silence. Pass the same `AudioSelector` instance you put in the attachment's
164
+ * `audioSelectors` — select your most important rendition.
165
+ */
166
+ readonly audioSelector: AudioSelector;
167
+ /**
168
+ * How long the audio must be silent (audio loss, or quieter than -50 dBFS) before
169
+ * failover occurs.
170
+ * @default - MediaLive service default
171
+ */
172
+ readonly threshold?: Duration;
173
+ }
174
+ /**
175
+ * Properties for a video-black failover condition.
176
+ */
177
+ export interface VideoBlackFailoverProps {
178
+ /**
179
+ * The fraction of white (0.0–1.0) below which a pixel is considered black. Every pixel in
180
+ * a frame must be below this threshold for the frame to count as black. For example, 0.1
181
+ * means 10% white (90% black).
182
+ * @default - MediaLive service default
183
+ */
184
+ readonly blackDetectThreshold?: number;
185
+ /**
186
+ * How long the content must be black before failover occurs.
187
+ * @default - MediaLive service default
188
+ */
189
+ readonly threshold?: Duration;
190
+ }
191
+ /**
192
+ * A condition that, when met on the active input, triggers automatic input failover to the
193
+ * secondary input. Create conditions with the static factory methods.
194
+ */
195
+ export declare abstract class FailoverCondition {
196
+ /** Fail over when no input is detected for the threshold period. */
197
+ static inputLoss(props?: InputLossFailoverProps): FailoverCondition;
198
+ /** Fail over when the monitored audio selector is silent for the threshold period. */
199
+ static audioSilence(props: AudioSilenceFailoverProps): FailoverCondition;
200
+ /** Fail over when the content is black for the threshold period. */
201
+ static videoBlack(props?: VideoBlackFailoverProps): FailoverCondition;
202
+ }
203
+ /**
204
+ * Automatic input failover configuration for an input attachment. When the active (primary)
205
+ * input meets any of the failover conditions, MediaLive switches to the secondary input
206
+ * without restarting the channel. This is input-source redundancy, distinct from the
207
+ * pipeline redundancy provided by `ChannelClass.STANDARD`.
208
+ *
209
+ * @see https://docs.aws.amazon.com/medialive/latest/ug/feature-automatic-input-failover.html
210
+ */
211
+ export interface AutomaticInputFailover {
212
+ /**
213
+ * The secondary input to fail over to. Must be the same input class as the primary input.
214
+ *
215
+ * [disable-awslint:prefer-ref-interface]
216
+ */
217
+ readonly secondaryInput: IInput;
218
+ /**
219
+ * The conditions that trigger failover to the secondary input.
220
+ * @default - a single input-loss condition with the MediaLive service default threshold
221
+ */
222
+ readonly failoverConditions?: FailoverCondition[];
223
+ /**
224
+ * Which input to prefer once a failed input has recovered.
225
+ * @default - EQUAL_INPUT_PREFERENCE, applied by MediaLive
226
+ */
227
+ readonly inputPreference?: InputPreference;
228
+ /**
229
+ * How long a recovered input must remain free of failover conditions before it is
230
+ * considered healthy. Particularly relevant with `InputPreference.PRIMARY_INPUT_PREFERRED`.
231
+ * @default - MediaLive service default
232
+ */
233
+ readonly errorClearTime?: Duration;
234
+ }
235
+ /**
236
+ * An input attachment definition for a channel.
237
+ */
238
+ export interface InputAttachment {
239
+ /**
240
+ * The input to attach.
241
+ *
242
+ * [disable-awslint:prefer-ref-interface]
243
+ */
244
+ readonly input: IInput;
245
+ /**
246
+ * A name for this input attachment, used to reference it in schedule actions.
247
+ * @default - auto-generated
248
+ */
249
+ readonly inputAttachmentName?: string;
250
+ /**
251
+ * The source end behavior for file-based inputs.
252
+ * @default SourceEndBehavior.LOOP for MP4 and TS file inputs, SourceEndBehavior.CONTINUE for all others
253
+ */
254
+ readonly sourceEndBehavior?: SourceEndBehavior;
255
+ /**
256
+ * The input filter mode.
257
+ * @default InputFilter.AUTO
258
+ */
259
+ readonly inputFilter?: InputFilter;
260
+ /**
261
+ * The filter strength (1-5). 1 is minimal, 5 is strongest.
262
+ * @default 1
263
+ */
264
+ readonly filterStrength?: number;
265
+ /**
266
+ * Whether to enable the deblock filter.
267
+ * @default false
268
+ */
269
+ readonly deblockFilter?: boolean;
270
+ /**
271
+ * Whether to enable the denoise filter.
272
+ * @default false
273
+ */
274
+ readonly denoiseFilter?: boolean;
275
+ /**
276
+ * SMPTE-2038 ancillary data preference.
277
+ * @default Smpte2038DataPreference.IGNORE
278
+ */
279
+ readonly smpte2038DataPreference?: Smpte2038DataPreference;
280
+ /**
281
+ * Audio selectors to extract specific audio tracks from the input.
282
+ * @default - no audio selectors (uses default audio)
283
+ */
284
+ readonly audioSelectors?: AudioSelector[];
285
+ /**
286
+ * Caption selectors to extract specific caption tracks from the input.
287
+ * @default - no caption selectors
288
+ */
289
+ readonly captionSelectors?: CaptionSelector[];
290
+ /**
291
+ * The SCTE-35 PID override for this input.
292
+ * @default - auto-detect
293
+ */
294
+ readonly scte35Pid?: number;
295
+ /**
296
+ * Video selector settings for the input (color space, PID selection).
297
+ * @default - no video selector (use default video)
298
+ */
299
+ readonly videoSelector?: VideoSelectorSettings;
300
+ /**
301
+ * Network input settings (for URL pull inputs — HLS buffer, server validation).
302
+ * @default - no network input settings
303
+ */
304
+ readonly networkInputSettings?: NetworkInputSettings;
305
+ /**
306
+ * The logical interface names (MediaLive Anywhere) this input is wired to. Each name maps the
307
+ * input to a network interface on the channel's nodes.
308
+ * @default - no logical interface names
309
+ */
310
+ readonly logicalInterfaceNames?: string[];
311
+ /**
312
+ * Automatic input failover to a secondary input. When the active input meets any of the
313
+ * failover conditions, MediaLive switches to the secondary input without restarting the
314
+ * channel. This is input-source redundancy, distinct from the pipeline redundancy of
315
+ * `ChannelClass.STANDARD`.
316
+ * @default - no automatic input failover
317
+ */
318
+ readonly automaticInputFailover?: AutomaticInputFailover;
319
+ }
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FailoverCondition = exports.InputPreference = exports.HlsScte35Source = exports.ServerValidation = exports.Smpte2038DataPreference = exports.InputFilter = exports.SourceEndBehavior = void 0;
4
+ const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ /**
7
+ * The source end behavior for file-based inputs.
8
+ */
9
+ class SourceEndBehavior {
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.SourceEndBehavior", version: "2.268.0-alpha.0" };
11
+ /** Continue with the last frame */
12
+ static CONTINUE = new SourceEndBehavior('CONTINUE');
13
+ /** Loop the input */
14
+ static LOOP = new SourceEndBehavior('LOOP');
15
+ /** A value not yet modelled by AWS CDK. */
16
+ static of(value) {
17
+ return new SourceEndBehavior(value);
18
+ }
19
+ /** The underlying string value passed to CloudFormation. */
20
+ value;
21
+ constructor(value) {
22
+ this.value = value;
23
+ }
24
+ }
25
+ exports.SourceEndBehavior = SourceEndBehavior;
26
+ /**
27
+ * Input filter mode.
28
+ */
29
+ class InputFilter {
30
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.InputFilter", version: "2.268.0-alpha.0" };
31
+ /** Auto-detect filtering based on input type */
32
+ static AUTO = new InputFilter('AUTO');
33
+ /** Disable filtering */
34
+ static DISABLED = new InputFilter('DISABLED');
35
+ /** Force filtering regardless of input type */
36
+ static FORCED = new InputFilter('FORCED');
37
+ /** A value not yet modelled by AWS CDK. */
38
+ static of(value) {
39
+ return new InputFilter(value);
40
+ }
41
+ /** The underlying string value passed to CloudFormation. */
42
+ value;
43
+ constructor(value) {
44
+ this.value = value;
45
+ }
46
+ }
47
+ exports.InputFilter = InputFilter;
48
+ /**
49
+ * SMPTE-2038 data preference.
50
+ */
51
+ class Smpte2038DataPreference {
52
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.Smpte2038DataPreference", version: "2.268.0-alpha.0" };
53
+ /** Extract from SMPTE-2038 if present */
54
+ static PREFER = new Smpte2038DataPreference('PREFER');
55
+ /** Never extract from SMPTE-2038 */
56
+ static IGNORE = new Smpte2038DataPreference('IGNORE');
57
+ /** A value not yet modelled by AWS CDK. */
58
+ static of(value) {
59
+ return new Smpte2038DataPreference(value);
60
+ }
61
+ /** The underlying string value passed to CloudFormation. */
62
+ value;
63
+ constructor(value) {
64
+ this.value = value;
65
+ }
66
+ }
67
+ exports.Smpte2038DataPreference = Smpte2038DataPreference;
68
+ /**
69
+ * Server validation mode for HTTPS inputs.
70
+ */
71
+ class ServerValidation {
72
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.ServerValidation", version: "2.268.0-alpha.0" };
73
+ /** Check cryptography and server name */
74
+ static CHECK_CRYPTOGRAPHY_AND_VALIDATE_NAME = new ServerValidation('CHECK_CRYPTOGRAPHY_AND_VALIDATE_NAME');
75
+ /** Check cryptography only (useful for S3 bucket names with dots) */
76
+ static CHECK_CRYPTOGRAPHY_ONLY = new ServerValidation('CHECK_CRYPTOGRAPHY_ONLY');
77
+ /** A value not yet modelled by AWS CDK. */
78
+ static of(value) {
79
+ return new ServerValidation(value);
80
+ }
81
+ /** The underlying string value passed to CloudFormation. */
82
+ value;
83
+ constructor(value) {
84
+ this.value = value;
85
+ }
86
+ }
87
+ exports.ServerValidation = ServerValidation;
88
+ /** The source MediaLive ingests SCTE-35 messages from for an HLS input. */
89
+ class HlsScte35Source {
90
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsScte35Source", version: "2.268.0-alpha.0" };
91
+ /** Ingest SCTE-35 from the content segments (in the stream). */
92
+ static SEGMENTS = new HlsScte35Source('SEGMENTS');
93
+ /** Ingest SCTE-35 from tags in the playlist (the HLS manifest). */
94
+ static MANIFEST = new HlsScte35Source('MANIFEST');
95
+ /** A value not yet modelled by AWS CDK. */
96
+ static of(value) {
97
+ return new HlsScte35Source(value);
98
+ }
99
+ /** The underlying string value passed to CloudFormation. */
100
+ value;
101
+ constructor(value) {
102
+ this.value = value;
103
+ }
104
+ }
105
+ exports.HlsScte35Source = HlsScte35Source;
106
+ /**
107
+ * Input preference when deciding which input to make active after a previously failed input
108
+ * has recovered.
109
+ */
110
+ class InputPreference {
111
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.InputPreference", version: "2.268.0-alpha.0" };
112
+ /** No preference — stay on the currently active input even after the other recovers. */
113
+ static EQUAL_INPUT_PREFERENCE = new InputPreference('EQUAL_INPUT_PREFERENCE');
114
+ /**
115
+ * Prefer the primary input — switch back to it once it has been free of failover
116
+ * conditions for the error-clear time.
117
+ */
118
+ static PRIMARY_INPUT_PREFERRED = new InputPreference('PRIMARY_INPUT_PREFERRED');
119
+ /** A value not yet modelled by AWS CDK. */
120
+ static of(value) {
121
+ return new InputPreference(value);
122
+ }
123
+ /** The underlying string value passed to CloudFormation. */
124
+ value;
125
+ constructor(value) {
126
+ this.value = value;
127
+ }
128
+ }
129
+ exports.InputPreference = InputPreference;
130
+ /**
131
+ * A condition that, when met on the active input, triggers automatic input failover to the
132
+ * secondary input. Create conditions with the static factory methods.
133
+ */
134
+ class FailoverCondition {
135
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.FailoverCondition", version: "2.268.0-alpha.0" };
136
+ /** Fail over when no input is detected for the threshold period. */
137
+ static inputLoss(props = {}) {
138
+ try {
139
+ jsiiDeprecationWarnings._aws_cdk_aws_medialive_alpha_InputLossFailoverProps(props);
140
+ }
141
+ catch (error) {
142
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
143
+ Error.captureStackTrace(error, this.inputLoss);
144
+ }
145
+ throw error;
146
+ }
147
+ return new InputLossFailoverCondition(props);
148
+ }
149
+ /** Fail over when the monitored audio selector is silent for the threshold period. */
150
+ static audioSilence(props) {
151
+ try {
152
+ jsiiDeprecationWarnings._aws_cdk_aws_medialive_alpha_AudioSilenceFailoverProps(props);
153
+ }
154
+ catch (error) {
155
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
156
+ Error.captureStackTrace(error, this.audioSilence);
157
+ }
158
+ throw error;
159
+ }
160
+ return new AudioSilenceFailoverCondition(props);
161
+ }
162
+ /** Fail over when the content is black for the threshold period. */
163
+ static videoBlack(props = {}) {
164
+ try {
165
+ jsiiDeprecationWarnings._aws_cdk_aws_medialive_alpha_VideoBlackFailoverProps(props);
166
+ }
167
+ catch (error) {
168
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
169
+ Error.captureStackTrace(error, this.videoBlack);
170
+ }
171
+ throw error;
172
+ }
173
+ return new VideoBlackFailoverCondition(props);
174
+ }
175
+ }
176
+ exports.FailoverCondition = FailoverCondition;
177
+ /** @internal */
178
+ class InputLossFailoverCondition extends FailoverCondition {
179
+ props;
180
+ constructor(props) {
181
+ super();
182
+ this.props = props;
183
+ }
184
+ _bind() {
185
+ return {
186
+ failoverConditionSettings: {
187
+ inputLossSettings: { inputLossThresholdMsec: this.props.threshold?.toMilliseconds() },
188
+ },
189
+ };
190
+ }
191
+ }
192
+ /** @internal */
193
+ class AudioSilenceFailoverCondition extends FailoverCondition {
194
+ props;
195
+ constructor(props) {
196
+ super();
197
+ this.props = props;
198
+ }
199
+ _bind() {
200
+ return {
201
+ failoverConditionSettings: {
202
+ audioSilenceSettings: {
203
+ audioSelectorName: this.props.audioSelector.name,
204
+ audioSilenceThresholdMsec: this.props.threshold?.toMilliseconds(),
205
+ },
206
+ },
207
+ };
208
+ }
209
+ }
210
+ /** @internal */
211
+ class VideoBlackFailoverCondition extends FailoverCondition {
212
+ props;
213
+ constructor(props) {
214
+ super();
215
+ this.props = props;
216
+ }
217
+ _bind() {
218
+ return {
219
+ failoverConditionSettings: {
220
+ videoBlackSettings: {
221
+ blackDetectThreshold: this.props.blackDetectThreshold,
222
+ videoBlackThresholdMsec: this.props.threshold?.toMilliseconds(),
223
+ },
224
+ },
225
+ };
226
+ }
227
+ }
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYXR0YWNobWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlucHV0LWF0dGFjaG1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFPQTs7R0FFRztBQUNILE1BQWEsaUJBQWlCOztJQUM1QixtQ0FBbUM7SUFDNUIsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BFLHFCQUFxQjtJQUNkLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU1RCwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNyQztJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsOENBaUJDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLFdBQVc7O0lBQ3RCLGdEQUFnRDtJQUN6QyxNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELHdCQUF3QjtJQUNqQixNQUFNLENBQVUsUUFBUSxHQUFHLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlELCtDQUErQztJQUN4QyxNQUFNLENBQVUsTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTFELDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMvQjtJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFs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QkFDaEU7YUFDRjtTQUNGLENBQUM7S0FDSDtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCaXRyYXRlLCBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB0eXBlIHsgQ2ZuQ2hhbm5lbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYWxpdmUnO1xuaW1wb3J0IHR5cGUgeyBBdWRpb1NlbGVjdG9yIH0gZnJvbSAnLi9hdWRpby1zZWxlY3Rvcic7XG5pbXBvcnQgdHlwZSB7IENhcHRpb25TZWxlY3RvciB9IGZyb20gJy4vY2FwdGlvbi1zZWxlY3Rvcic7XG5pbXBvcnQgdHlwZSB7IElJbnB1dCB9IGZyb20gJy4vaW5wdXQnO1xuaW1wb3J0IHR5cGUgeyBWaWRlb1NlbGVjdG9yU2V0dGluZ3MgfSBmcm9tICcuL3ZpZGVvLXNlbGVjdGlvbic7XG5cbi8qKlxuICogVGhlIHNvdXJjZSBlbmQgYmVoYXZpb3IgZm9yIGZpbGUtYmFzZWQgaW5wdXRzLlxuICovXG5leHBvcnQgY2xhc3MgU291cmNlRW5kQmVoYXZpb3Ige1xuICAvKiogQ29udGludWUgd2l0aCB0aGUgbGFzdCBmcmFtZSAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENPTlRJTlVFID0gbmV3IFNvdXJjZUVuZEJlaGF2aW9yKCdDT05USU5VRScpO1xuICAvKiogTG9vcCB0aGUgaW5wdXQgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMT09QID0gbmV3IFNvdXJjZUVuZEJlaGF2aW9yKCdMT09QJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBTb3VyY2VFbmRCZWhhdmlvciB7XG4gICAgcmV0dXJuIG5ldyBTb3VyY2VFbmRCZWhhdmlvcih2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogSW5wdXQgZmlsdGVyIG1vZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnB1dEZpbHRlciB7XG4gIC8qKiBBdXRvLWRldGVjdCBmaWx0ZXJpbmcgYmFzZWQgb24gaW5wdXQgdHlwZSAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVE8gPSBuZXcgSW5wdXRGaWx0ZXIoJ0FVVE8nKTtcbiAgLyoqIERpc2FibGUgZmlsdGVyaW5nICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRElTQUJMRUQgPSBuZXcgSW5wdXRGaWx0ZXIoJ0RJU0FCTEVEJyk7XG4gIC8qKiBGb3JjZSBmaWx0ZXJpbmcgcmVnYXJkbGVzcyBvZiBpbnB1dCB0eXBlICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRk9SQ0VEID0gbmV3IElucHV0RmlsdGVyKCdGT1JDRUQnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IElucHV0RmlsdGVyIHtcbiAgICByZXR1cm4gbmV3IElucHV0RmlsdGVyKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBTTVBURS0yMDM4IGRhdGEgcHJlZmVyZW5jZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNtcHRlMjAzOERhdGFQcmVmZXJlbmNlIHtcbiAgLyoqIEV4dHJhY3QgZnJvbSBTTVBURS0yMDM4IGlmIHByZXNlbnQgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUkVGRVIgPSBuZXcgU21wdGUyMDM4RGF0YVByZWZlcmVuY2UoJ1BSRUZFUicpO1xuICAvKiogTmV2ZXIgZXh0cmFjdCBmcm9tIFNNUFRFLTIwMzggKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJR05PUkUgPSBuZXcgU21wdGUyMDM4RGF0YVByZWZlcmVuY2UoJ0lHTk9SRScpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogU21wdGUyMDM4RGF0YVByZWZlcmVuY2Uge1xuICAgIHJldHVybiBuZXcgU21wdGUyMDM4RGF0YVByZWZlcmVuY2UodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIFNlcnZlciB2YWxpZGF0aW9uIG1vZGUgZm9yIEhUVFBTIGlucHV0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZlclZhbGlkYXRpb24ge1xuICAvKiogQ2hlY2sgY3J5cHRvZ3JhcGh5IGFuZCBzZXJ2ZXIgbmFtZSAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENIRUNLX0NSWVBUT0dSQVBIWV9BTkRfVkFMSURBVEVfTkFNRSA9IG5ldyBTZXJ2ZXJWYWxpZGF0aW9uKCdDSEVDS19DUllQVE9HUkFQSFlfQU5EX1ZBTElEQVRFX05BTUUnKTtcbiAgLyoqIENoZWNrIGNyeXB0b2dyYXBoeSBvbmx5ICh1c2VmdWwgZm9yIFMzIGJ1Y2tldCBuYW1lcyB3aXRoIGRvdHMpICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0hFQ0tfQ1JZUFRPR1JBUEhZX09OTFkgPSBuZXcgU2VydmVyVmFsaWRhdGlvbignQ0hFQ0tfQ1JZUFRPR1JBUEhZX09OTFknKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IFNlcnZlclZhbGlkYXRpb24ge1xuICAgIHJldHVybiBuZXcgU2VydmVyVmFsaWRhdGlvbih2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogTmV0d29yayBpbnB1dCBzZXR0aW5ncyBmb3IgVVJMIHB1bGwgaW5wdXRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJbnB1dFNldHRpbmdzIHtcbiAgLyoqXG4gICAqIEhUVFBTIHNlcnZlciBjZXJ0aWZpY2F0ZSB2YWxpZGF0aW9uIG1vZGUuXG4gICAqIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJWYWxpZGF0aW9uPzogU2VydmVyVmFsaWRhdGlvbjtcbiAgLyoqXG4gICAqIEhMUyBpbnB1dCBzZXR0aW5ncyAoYmFuZHdpZHRoIHNlbGVjdGlvbiwgYnVmZmVyIHNlZ21lbnRzLCByZXRyaWVzKS5cbiAgICogQGRlZmF1bHQgLSBubyBITFMgaW5wdXQgc2V0dGluZ3NcbiAgICovXG4gIHJlYWRvbmx5IGhsc0lucHV0U2V0dGluZ3M/OiBIbHNJbnB1dFNldHRpbmdzO1xuICAvKipcbiAgICogRm9yIGEgbXVsdGljYXN0IGlucHV0LCBmaWx0ZXIgdG8gY29udGVudCBmcm9tIGEgc3BlY2lmaWMgc291cmNlIElQIGFkZHJlc3NcbiAgICogKHNvdXJjZS1zcGVjaWZpYyBtdWx0aWNhc3QpLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNvdXJjZSBJUCBmaWx0ZXJcbiAgICovXG4gIHJlYWRvbmx5IG11bHRpY2FzdFNvdXJjZUlwPzogc3RyaW5nO1xufVxuXG4vKiogVGhlIHNvdXJjZSBNZWRpYUxpdmUgaW5nZXN0cyBTQ1RFLTM1IG1lc3NhZ2VzIGZyb20gZm9yIGFuIEhMUyBpbnB1dC4gKi9cbmV4cG9ydCBjbGFzcyBIbHNTY3RlMzVTb3VyY2Uge1xuICAvKiogSW5nZXN0IFNDVEUtMzUgZnJvbSB0aGUgY29udGVudCBzZWdtZW50cyAoaW4gdGhlIHN0cmVhbSkuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0VHTUVOVFMgPSBuZXcgSGxzU2N0ZTM1U291cmNlKCdTRUdNRU5UUycpO1xuICAvKiogSW5nZXN0IFNDVEUtMzUgZnJvbSB0YWdzIGluIHRoZSBwbGF5bGlzdCAodGhlIEhMUyBtYW5pZmVzdCkuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTUFOSUZFU1QgPSBuZXcgSGxzU2N0ZTM1U291cmNlKCdNQU5JRkVTVCcpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogSGxzU2N0ZTM1U291cmNlIHtcbiAgICByZXR1cm4gbmV3IEhsc1NjdGUzNVNvdXJjZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogSExTIGlucHV0IHNldHRpbmdzIGZvciBVUkwgcHVsbCBpbnB1dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGxzSW5wdXRTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBUaGUgYmFuZHdpZHRoIHRvIHNlbGVjdCBmcm9tIHRoZSBITFMgbWFuaWZlc3QuIE1lZGlhTGl2ZSBjaG9vc2VzIHRoZSByZW5kaXRpb25cbiAgICogd2hvc2UgbWFuaWZlc3QgYmFuZHdpZHRoIG1vc3QgY2xvc2VseSBtYXRjaGVzIHRoaXMgdmFsdWUuXG4gICAqIEBkZWZhdWx0IC0gaGlnaGVzdCBiYW5kd2lkdGhcbiAgICovXG4gIHJlYWRvbmx5IGJhbmR3aWR0aD86IEJpdHJhdGU7XG4gIC8qKlxuICAgKiBXaGVuIHNwZWNpZmllZCwgcmVhZGluZyBvZiB0aGUgSExTIGlucHV0IGJlZ2lucyB0aGlzIG1hbnkgYnVmZmVyIHNlZ21lbnRzIGZyb20gdGhlIGVuZFxuICAgKiAobW9zdCByZWNlbnRseSB3cml0dGVuIHNlZ21lbnQpLlxuICAgKiBAZGVmYXVsdCAtIHRoZSBITFMgaW5wdXQgYmVnaW5zIHdpdGggdGhlIGZpcnN0IHNlZ21lbnQgc3BlY2lmaWVkIGluIHRoZSBtM3U4XG4gICAqL1xuICByZWFkb25seSBidWZmZXJTZWdtZW50cz86IG51bWJlcjtcbiAgLyoqXG4gICAqIE51bWJlciBvZiBjb25zZWN1dGl2ZSByZWFkIGZhaWx1cmVzIGJlZm9yZSB0aGUgaW5wdXQgaXMgY29uc2lkZXJlZCB1bmF2YWlsYWJsZS5cbiAgICogQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IHJldHJpZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgaW50ZXJ2YWwgYmV0d2VlbiByZXRyeSBhdHRlbXB0cy5cbiAgICogQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IHJldHJ5SW50ZXJ2YWw/OiBEdXJhdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgTWVkaWFMaXZlIGluZ2VzdHMgU0NURS0zNSBtZXNzYWdlcyBmcm9tIOKAlCB0aGUgY29udGVudCBzZWdtZW50cyBvciB0aGUgbWFuaWZlc3QuXG4gICAqIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBzY3RlMzVTb3VyY2U/OiBIbHNTY3RlMzVTb3VyY2U7XG59XG5cbi8qKlxuICogSW5wdXQgcHJlZmVyZW5jZSB3aGVuIGRlY2lkaW5nIHdoaWNoIGlucHV0IHRvIG1ha2UgYWN0aXZlIGFmdGVyIGEgcHJldmlvdXNseSBmYWlsZWQgaW5wdXRcbiAqIGhhcyByZWNvdmVyZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnB1dFByZWZlcmVuY2Uge1xuICAvKiogTm8gcHJlZmVyZW5jZSDigJQgc3RheSBvbiB0aGUgY3VycmVudGx5IGFjdGl2ZSBpbnB1dCBldmVuIGFmdGVyIHRoZSBvdGhlciByZWNvdmVycy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFUVVBTF9JTlBVVF9QUkVGRVJFTkNFID0gbmV3IElucHV0UHJlZmVyZW5jZSgnRVFVQUxfSU5QVVRfUFJFRkVSRU5DRScpO1xuICAvKipcbiAgICogUHJlZmVyIHRoZSBwcmltYXJ5IGlucHV0IOKAlCBzd2l0Y2ggYmFjayB0byBpdCBvbmNlIGl0IGhhcyBiZWVuIGZyZWUgb2YgZmFpbG92ZXJcbiAgICogY29uZGl0aW9ucyBmb3IgdGhlIGVycm9yLWNsZWFyIHRpbWUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBSSU1BUllfSU5QVVRfUFJFRkVSUkVEID0gbmV3IElucHV0UHJlZmVyZW5jZSgnUFJJTUFSWV9JTlBVVF9QUkVGRVJSRUQnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IElucHV0UHJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIG5ldyBJbnB1dFByZWZlcmVuY2UodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFuIGlucHV0LWxvc3MgZmFpbG92ZXIgY29uZGl0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElucHV0TG9zc0ZhaWxvdmVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIHdpdGggbm8gaW5wdXQgZGV0ZWN0ZWQgYmVmb3JlIGZhaWxvdmVyIG9jY3Vycy5cbiAgICogQGRlZmF1bHQgLSBNZWRpYUxpdmUgc2VydmljZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSB0aHJlc2hvbGQ/OiBEdXJhdGlvbjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhbiBhdWRpby1zaWxlbmNlIGZhaWxvdmVyIGNvbmRpdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdWRpb1NpbGVuY2VGYWlsb3ZlclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBhdWRpbyBzZWxlY3RvciAoZGVmaW5lZCBvbiB0aGUgaW5wdXQgYXR0YWNobWVudCkgdGhhdCBNZWRpYUxpdmUgbW9uaXRvcnMgZm9yXG4gICAqIHNpbGVuY2UuIFBhc3MgdGhlIHNhbWUgYEF1ZGlvU2VsZWN0b3JgIGluc3RhbmNlIHlvdSBwdXQgaW4gdGhlIGF0dGFjaG1lbnQnc1xuICAgKiBgYXVkaW9TZWxlY3RvcnNgIOKAlCBzZWxlY3QgeW91ciBtb3N0IGltcG9ydGFudCByZW5kaXRpb24uXG4gICAqL1xuICByZWFkb25seSBhdWRpb1NlbGVjdG9yOiBBdWRpb1NlbGVjdG9yO1xuICAvKipcbiAgICogSG93IGxvbmcgdGhlIGF1ZGlvIG11c3QgYmUgc2lsZW50IChhdWRpbyBsb3NzLCBvciBxdWlldGVyIHRoYW4gLTUwIGRCRlMpIGJlZm9yZVxuICAgKiBmYWlsb3ZlciBvY2N1cnMuXG4gICAqIEBkZWZhdWx0IC0gTWVkaWFMaXZlIHNlcnZpY2UgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgdGhyZXNob2xkPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSB2aWRlby1ibGFjayBmYWlsb3ZlciBjb25kaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlkZW9CbGFja0ZhaWxvdmVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIGZyYWN0aW9uIG9mIHdoaXRlICgwLjDigJMxLjApIGJlbG93IHdoaWNoIGEgcGl4ZWwgaXMgY29uc2lkZXJlZCBibGFjay4gRXZlcnkgcGl4ZWwgaW5cbiAgICogYSBmcmFtZSBtdXN0IGJlIGJlbG93IHRoaXMgdGhyZXNob2xkIGZvciB0aGUgZnJhbWUgdG8gY291bnQgYXMgYmxhY2suIEZvciBleGFtcGxlLCAwLjFcbiAgICogbWVhbnMgMTAlIHdoaXRlICg5MCUgYmxhY2spLlxuICAgKiBAZGVmYXVsdCAtIE1lZGlhTGl2ZSBzZXJ2aWNlIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IGJsYWNrRGV0ZWN0VGhyZXNob2xkPzogbnVtYmVyO1xuICAvKipcbiAgICogSG93IGxvbmcgdGhlIGNvbnRlbnQgbXVzdCBiZSBibGFjayBiZWZvcmUgZmFpbG92ZXIgb2NjdXJzLlxuICAgKiBAZGVmYXVsdCAtIE1lZGlhTGl2ZSBzZXJ2aWNlIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IHRocmVzaG9sZD86IER1cmF0aW9uO1xufVxuXG4vKipcbiAqIEEgY29uZGl0aW9uIHRoYXQsIHdoZW4gbWV0IG9uIHRoZSBhY3RpdmUgaW5wdXQsIHRyaWdnZXJzIGF1dG9tYXRpYyBpbnB1dCBmYWlsb3ZlciB0byB0aGVcbiAqIHNlY29uZGFyeSBpbnB1dC4gQ3JlYXRlIGNvbmRpdGlvbnMgd2l0aCB0aGUgc3RhdGljIGZhY3RvcnkgbWV0aG9kcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZhaWxvdmVyQ29uZGl0aW9uIHtcbiAgLyoqIEZhaWwgb3ZlciB3aGVuIG5vIGlucHV0IGlzIGRldGVjdGVkIGZvciB0aGUgdGhyZXNob2xkIHBlcmlvZC4gKi9cbiAgcHVibGljIHN0YXRpYyBpbnB1dExvc3MocHJvcHM6IElucHV0TG9zc0ZhaWxvdmVyUHJvcHMgPSB7fSk6IEZhaWxvdmVyQ29uZGl0aW9uIHtcbiAgICByZXR1cm4gbmV3IElucHV0TG9zc0ZhaWxvdmVyQ29uZGl0aW9uKHByb3BzKTtcbiAgfVxuICAvKiogRmFpbCBvdmVyIHdoZW4gdGhlIG1vbml0b3JlZCBhdWRpbyBzZWxlY3RvciBpcyBzaWxlbnQgZm9yIHRoZSB0aHJlc2hvbGQgcGVyaW9kLiAqL1xuICBwdWJsaWMgc3RhdGljIGF1ZGlvU2lsZW5jZShwcm9wczogQXVkaW9TaWxlbmNlRmFpbG92ZXJQcm9wcyk6IEZhaWxvdmVyQ29uZGl0aW9uIHtcbiAgICByZXR1cm4gbmV3IEF1ZGlvU2lsZW5jZUZhaWxvdmVyQ29uZGl0aW9uKHByb3BzKTtcbiAgfVxuICAvKiogRmFpbCBvdmVyIHdoZW4gdGhlIGNvbnRlbnQgaXMgYmxhY2sgZm9yIHRoZSB0aHJlc2hvbGQgcGVyaW9kLiAqL1xuICBwdWJsaWMgc3RhdGljIHZpZGVvQmxhY2socHJvcHM6IFZpZGVvQmxhY2tGYWlsb3ZlclByb3BzID0ge30pOiBGYWlsb3ZlckNvbmRpdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBWaWRlb0JsYWNrRmFpbG92ZXJDb25kaXRpb24ocHJvcHMpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgYWJzdHJhY3QgX2JpbmQoKTogQ2ZuQ2hhbm5lbC5GYWlsb3ZlckNvbmRpdGlvblByb3BlcnR5O1xufVxuXG4vKiogQGludGVybmFsICovXG5jbGFzcyBJbnB1dExvc3NGYWlsb3ZlckNvbmRpdGlvbiBleHRlbmRzIEZhaWxvdmVyQ29uZGl0aW9uIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogSW5wdXRMb3NzRmFpbG92ZXJQcm9wcykgeyBzdXBlcigpOyB9XG4gIHB1YmxpYyBfYmluZCgpOiBDZm5DaGFubmVsLkZhaWxvdmVyQ29uZGl0aW9uUHJvcGVydHkge1xuICAgIHJldHVybiB7XG4gICAgICBmYWlsb3ZlckNvbmRpdGlvblNldHRpbmdzOiB7XG4gICAgICAgIGlucHV0TG9zc1NldHRpbmdzOiB7IGlucHV0TG9zc1RocmVzaG9sZE1zZWM6IHRoaXMucHJvcHMudGhyZXNob2xkPy50b01pbGxpc2Vjb25kcygpIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuLyoqIEBpbnRlcm5hbCAqL1xuY2xhc3MgQXVkaW9TaWxlbmNlRmFpbG92ZXJDb25kaXRpb24gZXh0ZW5kcyBGYWlsb3ZlckNvbmRpdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IEF1ZGlvU2lsZW5jZUZhaWxvdmVyUHJvcHMpIHsgc3VwZXIoKTsgfVxuICBwdWJsaWMgX2JpbmQoKTogQ2ZuQ2hhbm5lbC5GYWlsb3ZlckNvbmRpdGlvblByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgZmFpbG92ZXJDb25kaXRpb25TZXR0aW5nczoge1xuICAgICAgICBhdWRpb1NpbGVuY2VTZXR0aW5nczoge1xuICAgICAgICAgIGF1ZGlvU2VsZWN0b3JOYW1lOiB0aGlzLnByb3BzLmF1ZGlvU2VsZWN0b3IubmFtZSxcbiAgICAgICAgICBhdWRpb1NpbGVuY2VUaHJlc2hvbGRNc2VjOiB0aGlzLnByb3BzLnRocmVzaG9sZD8udG9NaWxsaXNlY29uZHMoKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKiogQGludGVybmFsICovXG5jbGFzcyBWaWRlb0JsYWNrRmFpbG92ZXJDb25kaXRpb24gZXh0ZW5kcyBGYWlsb3ZlckNvbmRpdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IFZpZGVvQmxhY2tGYWlsb3ZlclByb3BzKSB7IHN1cGVyKCk7IH1cbiAgcHVibGljIF9iaW5kKCk6IENmbkNoYW5uZWwuRmFpbG92ZXJDb25kaXRpb25Qcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZhaWxvdmVyQ29uZGl0aW9uU2V0dGluZ3M6IHtcbiAgICAgICAgdmlkZW9CbGFja1NldHRpbmdzOiB7XG4gICAgICAgICAgYmxhY2tEZXRlY3RUaHJlc2hvbGQ6IHRoaXMucHJvcHMuYmxhY2tEZXRlY3RUaHJlc2hvbGQsXG4gICAgICAgICAgdmlkZW9CbGFja1RocmVzaG9sZE1zZWM6IHRoaXMucHJvcHMudGhyZXNob2xkPy50b01pbGxpc2Vjb25kcygpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogQXV0b21hdGljIGlucHV0IGZhaWxvdmVyIGNvbmZpZ3VyYXRpb24gZm9yIGFuIGlucHV0IGF0dGFjaG1lbnQuIFdoZW4gdGhlIGFjdGl2ZSAocHJpbWFyeSlcbiAqIGlucHV0IG1lZXRzIGFueSBvZiB0aGUgZmFpbG92ZXIgY29uZGl0aW9ucywgTWVkaWFMaXZlIHN3aXRjaGVzIHRvIHRoZSBzZWNvbmRhcnkgaW5wdXRcbiAqIHdpdGhvdXQgcmVzdGFydGluZyB0aGUgY2hhbm5lbC4gVGhpcyBpcyBpbnB1dC1zb3VyY2UgcmVkdW5kYW5jeSwgZGlzdGluY3QgZnJvbSB0aGVcbiAqIHBpcGVsaW5lIHJlZHVuZGFuY3kgcHJvdmlkZWQgYnkgYENoYW5uZWxDbGFzcy5TVEFOREFSRGAuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbWVkaWFsaXZlL2xhdGVzdC91Zy9mZWF0dXJlLWF1dG9tYXRpYy1pbnB1dC1mYWlsb3Zlci5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b21hdGljSW5wdXRGYWlsb3ZlciB7XG4gIC8qKlxuICAgKiBUaGUgc2Vjb25kYXJ5IGlucHV0IHRvIGZhaWwgb3ZlciB0by4gTXVzdCBiZSB0aGUgc2FtZSBpbnB1dCBjbGFzcyBhcyB0aGUgcHJpbWFyeSBpbnB1dC5cbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpwcmVmZXItcmVmLWludGVyZmFjZV1cbiAgICovXG4gIHJlYWRvbmx5IHNlY29uZGFyeUlucHV0OiBJSW5wdXQ7XG4gIC8qKlxuICAgKiBUaGUgY29uZGl0aW9ucyB0aGF0IHRyaWdnZXIgZmFpbG92ZXIgdG8gdGhlIHNlY29uZGFyeSBpbnB1dC5cbiAgICogQGRlZmF1bHQgLSBhIHNpbmdsZSBpbnB1dC1sb3NzIGNvbmRpdGlvbiB3aXRoIHRoZSBNZWRpYUxpdmUgc2VydmljZSBkZWZhdWx0IHRocmVzaG9sZFxuICAgKi9cbiAgcmVhZG9ubHkgZmFpbG92ZXJDb25kaXRpb25zPzogRmFpbG92ZXJDb25kaXRpb25bXTtcbiAgLyoqXG4gICAqIFdoaWNoIGlucHV0IHRvIHByZWZlciBvbmNlIGEgZmFpbGVkIGlucHV0IGhhcyByZWNvdmVyZWQuXG4gICAqIEBkZWZhdWx0IC0gRVFVQUxfSU5QVVRfUFJFRkVSRU5DRSwgYXBwbGllZCBieSBNZWRpYUxpdmVcbiAgICovXG4gIHJlYWRvbmx5IGlucHV0UHJlZmVyZW5jZT86IElucHV0UHJlZmVyZW5jZTtcbiAgLyoqXG4gICAqIEhvdyBsb25nIGEgcmVjb3ZlcmVkIGlucHV0IG11c3QgcmVtYWluIGZyZWUgb2YgZmFpbG92ZXIgY29uZGl0aW9ucyBiZWZvcmUgaXQgaXNcbiAgICogY29uc2lkZXJlZCBoZWFsdGh5LiBQYXJ0aWN1bGFybHkgcmVsZXZhbnQgd2l0aCBgSW5wdXRQcmVmZXJlbmNlLlBSSU1BUllfSU5QVVRfUFJFRkVSUkVEYC5cbiAgICogQGRlZmF1bHQgLSBNZWRpYUxpdmUgc2VydmljZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBlcnJvckNsZWFyVGltZT86IER1cmF0aW9uO1xufVxuXG4vKipcbiAqIEFuIGlucHV0IGF0dGFjaG1lbnQgZGVmaW5pdGlvbiBmb3IgYSBjaGFubmVsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElucHV0QXR0YWNobWVudCB7XG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgdG8gYXR0YWNoLlxuICAgKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50OnByZWZlci1yZWYtaW50ZXJmYWNlXVxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXQ6IElJbnB1dDtcbiAgLyoqXG4gICAqIEEgbmFtZSBmb3IgdGhpcyBpbnB1dCBhdHRhY2htZW50LCB1c2VkIHRvIHJlZmVyZW5jZSBpdCBpbiBzY2hlZHVsZSBhY3Rpb25zLlxuICAgKiBAZGVmYXVsdCAtIGF1dG8tZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBpbnB1dEF0dGFjaG1lbnROYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBlbmQgYmVoYXZpb3IgZm9yIGZpbGUtYmFzZWQgaW5wdXRzLlxuICAgKiBAZGVmYXVsdCBTb3VyY2VFbmRCZWhhdmlvci5MT09QIGZvciBNUDQgYW5kIFRTIGZpbGUgaW5wdXRzLCBTb3VyY2VFbmRCZWhhdmlvci5DT05USU5VRSBmb3IgYWxsIG90aGVyc1xuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlRW5kQmVoYXZpb3I/OiBTb3VyY2VFbmRCZWhhdmlvcjtcbiAgLyoqXG4gICAqIFRoZSBpbnB1dCBmaWx0ZXIgbW9kZS5cbiAgICogQGRlZmF1bHQgSW5wdXRGaWx0ZXIuQVVUT1xuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXRGaWx0ZXI/OiBJbnB1dEZpbHRlcjtcbiAgLyoqXG4gICAqIFRoZSBmaWx0ZXIgc3RyZW5ndGggKDEtNSkuIDEgaXMgbWluaW1hbCwgNSBpcyBzdHJvbmdlc3QuXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGZpbHRlclN0cmVuZ3RoPzogbnVtYmVyO1xuICAvKipcbiAgICogV2hldGhlciB0byBlbmFibGUgdGhlIGRlYmxvY2sgZmlsdGVyLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVibG9ja0ZpbHRlcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSB0aGUgZGVub2lzZSBmaWx0ZXIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkZW5vaXNlRmlsdGVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNNUFRFLTIwMzggYW5jaWxsYXJ5IGRhdGEgcHJlZmVyZW5jZS5cbiAgICogQGRlZmF1bHQgU21wdGUyMDM4RGF0YVByZWZlcmVuY2UuSUdOT1JFXG4gICAqL1xuICByZWFkb25seSBzbXB0ZTIwMzhEYXRhUHJlZmVyZW5jZT86IFNtcHRlMjAzOERhdGFQcmVmZXJlbmNlO1xuICAvKipcbiAgICogQXVkaW8gc2VsZWN0b3JzIHRvIGV4dHJhY3Qgc3BlY2lmaWMgYXVkaW8gdHJhY2tzIGZyb20gdGhlIGlucHV0LlxuICAgKiBAZGVmYXVsdCAtIG5vIGF1ZGlvIHNlbGVjdG9ycyAodXNlcyBkZWZhdWx0IGF1ZGlvKVxuICAgKi9cbiAgcmVhZG9ubHkgYXVkaW9TZWxlY3RvcnM/OiBBdWRpb1NlbGVjdG9yW107XG4gIC8qKlxuICAgKiBDYXB0aW9uIHNlbGVjdG9ycyB0byBleHRyYWN0IHNwZWNpZmljIGNhcHRpb24gdHJhY2tzIGZyb20gdGhlIGlucHV0LlxuICAgKiBAZGVmYXVsdCAtIG5vIGNhcHRpb24gc2VsZWN0b3JzXG4gICAqL1xuICByZWFkb25seSBjYXB0aW9uU2VsZWN0b3JzPzogQ2FwdGlvblNlbGVjdG9yW107XG4gIC8qKlxuICAgKiBUaGUgU0NURS0zNSBQSUQgb3ZlcnJpZGUgZm9yIHRoaXMgaW5wdXQuXG4gICAqIEBkZWZhdWx0IC0gYXV0by1kZXRlY3RcbiAgICovXG4gIHJlYWRvbmx5IHNjdGUzNVBpZD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFZpZGVvIHNlbGVjdG9yIHNldHRpbmdzIGZvciB0aGUgaW5wdXQgKGNvbG9yIHNwYWNlLCBQSUQgc2VsZWN0aW9uKS5cbiAgICogQGRlZmF1bHQgLSBubyB2aWRlbyBzZWxlY3RvciAodXNlIGRlZmF1bHQgdmlkZW8pXG4gICAqL1xuICByZWFkb25seSB2aWRlb1NlbGVjdG9yPzogVmlkZW9TZWxlY3RvclNldHRpbmdzO1xuICAvKipcbiAgICogTmV0d29yayBpbnB1dCBzZXR0aW5ncyAoZm9yIFVSTCBwdWxsIGlucHV0cyDigJQgSExTIGJ1ZmZlciwgc2VydmVyIHZhbGlkYXRpb24pLlxuICAgKiBAZGVmYXVsdCAtIG5vIG5ldHdvcmsgaW5wdXQgc2V0dGluZ3NcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtJbnB1dFNldHRpbmdzPzogTmV0d29ya0lucHV0U2V0dGluZ3M7XG4gIC8qKlxuICAgKiBUaGUgbG9naWNhbCBpbnRlcmZhY2UgbmFtZXMgKE1lZGlhTGl2ZSBBbnl3aGVyZSkgdGhpcyBpbnB1dCBpcyB3aXJlZCB0by4gRWFjaCBuYW1lIG1hcHMgdGhlXG4gICAqIGlucHV0IHRvIGEgbmV0d29yayBpbnRlcmZhY2Ugb24gdGhlIGNoYW5uZWwncyBub2Rlcy5cbiAgICogQGRlZmF1bHQgLSBubyBsb2dpY2FsIGludGVyZmFjZSBuYW1lc1xuICAgKi9cbiAgcmVhZG9ubHkgbG9naWNhbEludGVyZmFjZU5hbWVzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBBdXRvbWF0aWMgaW5wdXQgZmFpbG92ZXIgdG8gYSBzZWNvbmRhcnkgaW5wdXQuIFdoZW4gdGhlIGFjdGl2ZSBpbnB1dCBtZWV0cyBhbnkgb2YgdGhlXG4gICAqIGZhaWxvdmVyIGNvbmRpdGlvbnMsIE1lZGlhTGl2ZSBzd2l0Y2hlcyB0byB0aGUgc2Vjb25kYXJ5IGlucHV0IHdpdGhvdXQgcmVzdGFydGluZyB0aGVcbiAgICogY2hhbm5lbC4gVGhpcyBpcyBpbnB1dC1zb3VyY2UgcmVkdW5kYW5jeSwgZGlzdGluY3QgZnJvbSB0aGUgcGlwZWxpbmUgcmVkdW5kYW5jeSBvZlxuICAgKiBgQ2hhbm5lbENsYXNzLlNUQU5EQVJEYC5cbiAgICogQGRlZmF1bHQgLSBubyBhdXRvbWF0aWMgaW5wdXQgZmFpbG92ZXJcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9tYXRpY0lucHV0RmFpbG92ZXI/OiBBdXRvbWF0aWNJbnB1dEZhaWxvdmVyO1xufVxuIl19
@@ -0,0 +1,51 @@
1
+ import type { IResource } from 'aws-cdk-lib';
2
+ import { Resource } from 'aws-cdk-lib';
3
+ import type { IInputSecurityGroupRef, InputSecurityGroupReference } from 'aws-cdk-lib/aws-medialive';
4
+ import type { Construct } from 'constructs';
5
+ /**
6
+ * Represents a MediaLive Input Security Group.
7
+ */
8
+ export interface IInputSecurityGroup extends IResource, IInputSecurityGroupRef {
9
+ /**
10
+ * The ARN of the input security group.
11
+ * @attribute
12
+ */
13
+ readonly inputSecurityGroupArn: string;
14
+ /**
15
+ * The ID of the input security group.
16
+ * @attribute
17
+ */
18
+ readonly inputSecurityGroupId: string;
19
+ }
20
+ /**
21
+ * Properties for creating a MediaLive Input Security Group.
22
+ */
23
+ export interface InputSecurityGroupProps {
24
+ /**
25
+ * The list of IPv4 CIDR addresses to allow.
26
+ */
27
+ readonly allowlistRules: string[];
28
+ /**
29
+ * Tags to add to the input security group.
30
+ * @default - no tags
31
+ */
32
+ readonly tags?: {
33
+ [key: string]: string;
34
+ };
35
+ }
36
+ /**
37
+ * Defines an AWS Elemental MediaLive Input Security Group.
38
+ *
39
+ * An input security group controls which IPv4 CIDR blocks can push content to a push-type input.
40
+ */
41
+ export declare class InputSecurityGroup extends Resource implements IInputSecurityGroup {
42
+ /** Uniquely identifies this class. */
43
+ static readonly PROPERTY_INJECTION_ID: string;
44
+ /** Import an existing input security group by its ARN. The id is parsed out of the ARN. */
45
+ static fromInputSecurityGroupArn(scope: Construct, id: string, inputSecurityGroupArn: string): IInputSecurityGroup;
46
+ readonly inputSecurityGroupArn: string;
47
+ readonly inputSecurityGroupId: string;
48
+ /** A reference to this Input Security Group resource. */
49
+ get inputSecurityGroupRef(): InputSecurityGroupReference;
50
+ constructor(scope: Construct, id: string, props: InputSecurityGroupProps);
51
+ }