@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.
- package/.jsii +60888 -0
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +524 -0
- package/LICENSE +201 -0
- package/NOTICE +2 -0
- package/README.md +1297 -0
- package/grants.json +27 -0
- package/lib/audio-codec-settings.d.ts +901 -0
- package/lib/audio-codec-settings.js +1098 -0
- package/lib/audio-selector.d.ts +170 -0
- package/lib/audio-selector.js +306 -0
- package/lib/avail-settings.d.ts +231 -0
- package/lib/avail-settings.js +226 -0
- package/lib/caption-selector.d.ts +234 -0
- package/lib/caption-selector.js +413 -0
- package/lib/caption-settings.d.ts +349 -0
- package/lib/caption-settings.js +482 -0
- package/lib/channel-features.d.ts +106 -0
- package/lib/channel-features.js +85 -0
- package/lib/channel-placement-group.d.ts +73 -0
- package/lib/channel-placement-group.js +132 -0
- package/lib/channel.d.ts +687 -0
- package/lib/channel.js +1096 -0
- package/lib/cluster.d.ts +129 -0
- package/lib/cluster.js +158 -0
- package/lib/color-correction.d.ts +39 -0
- package/lib/color-correction.js +29 -0
- package/lib/destinations.d.ts +242 -0
- package/lib/destinations.js +455 -0
- package/lib/encode-configuration.d.ts +615 -0
- package/lib/encode-configuration.js +629 -0
- package/lib/enums.d.ts +698 -0
- package/lib/enums.js +1045 -0
- package/lib/file-location.d.ts +65 -0
- package/lib/file-location.js +150 -0
- package/lib/framerate.d.ts +31 -0
- package/lib/framerate.js +71 -0
- package/lib/index.d.ts +26 -0
- package/lib/index.js +43 -0
- package/lib/input-attachment.d.ts +319 -0
- package/lib/input-attachment.js +228 -0
- package/lib/input-security-group.d.ts +51 -0
- package/lib/input-security-group.js +123 -0
- package/lib/input-specification.d.ts +111 -0
- package/lib/input-specification.js +181 -0
- package/lib/input.d.ts +505 -0
- package/lib/input.js +803 -0
- package/lib/m2ts-settings.d.ts +421 -0
- package/lib/m2ts-settings.js +469 -0
- package/lib/m3u8-settings.d.ts +272 -0
- package/lib/m3u8-settings.js +304 -0
- package/lib/medialive-grants.generated.d.ts +30 -0
- package/lib/medialive-grants.generated.js +92 -0
- package/lib/network.d.ts +83 -0
- package/lib/network.js +132 -0
- package/lib/output-group.d.ts +924 -0
- package/lib/output-group.js +941 -0
- package/lib/outputs.d.ts +304 -0
- package/lib/outputs.js +598 -0
- package/lib/sdi-source.d.ts +124 -0
- package/lib/sdi-source.js +180 -0
- package/lib/shared.d.ts +44 -0
- package/lib/shared.js +146 -0
- package/lib/video-codec-settings.d.ts +1500 -0
- package/lib/video-codec-settings.js +1722 -0
- package/lib/video-selection.d.ts +92 -0
- package/lib/video-selection.js +95 -0
- package/package.json +135 -0
- package/rosetta/_generated.ts-fixture +6 -0
- package/rosetta/default.ts-fixture +21 -0
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import type { Duration } from 'aws-cdk-lib';
|
|
2
|
+
import type { IStringParameter } from 'aws-cdk-lib/aws-ssm';
|
|
3
|
+
import type { FileLocation } from './file-location';
|
|
4
|
+
/**
|
|
5
|
+
* Avail blanking state.
|
|
6
|
+
*/
|
|
7
|
+
export declare class AvailBlankingState {
|
|
8
|
+
/** Enable blanking during ad avails */
|
|
9
|
+
static readonly ENABLED: AvailBlankingState;
|
|
10
|
+
/** Disable blanking during ad avails */
|
|
11
|
+
static readonly DISABLED: AvailBlankingState;
|
|
12
|
+
/** A value not yet modelled by AWS CDK. */
|
|
13
|
+
static of(value: string): AvailBlankingState;
|
|
14
|
+
/** The underlying string value passed to CloudFormation. */
|
|
15
|
+
readonly value: string;
|
|
16
|
+
private constructor();
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Settings for blanking video, audio, and captions during ad avails.
|
|
20
|
+
*/
|
|
21
|
+
export interface AvailBlanking {
|
|
22
|
+
/**
|
|
23
|
+
* Whether to blank the output during ad avails.
|
|
24
|
+
* @default - ENABLED if image is provided, DISABLED otherwise
|
|
25
|
+
*/
|
|
26
|
+
readonly state?: AvailBlankingState;
|
|
27
|
+
/**
|
|
28
|
+
* A blanking image to display during ad avails. Provide a `FileLocation` referencing an S3
|
|
29
|
+
* bucket (`FileLocation.fromBucket`, which auto-grants read access) or a URL (`FileLocation.url`).
|
|
30
|
+
* Only .bmp and .png images are supported. If not set, solid black is used.
|
|
31
|
+
* @default - solid black
|
|
32
|
+
*/
|
|
33
|
+
readonly image?: FileLocation;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* How to handle SCTE-35 regional blackout and web delivery flags.
|
|
37
|
+
*/
|
|
38
|
+
export declare class Scte35FlagBehavior {
|
|
39
|
+
/** Follow the flag — trigger blackouts/slates when the flag is set */
|
|
40
|
+
static readonly FOLLOW: Scte35FlagBehavior;
|
|
41
|
+
/** Ignore the flag */
|
|
42
|
+
static readonly IGNORE: Scte35FlagBehavior;
|
|
43
|
+
/** A value not yet modelled by AWS CDK. */
|
|
44
|
+
static of(value: string): Scte35FlagBehavior;
|
|
45
|
+
/** The underlying string value passed to CloudFormation. */
|
|
46
|
+
readonly value: string;
|
|
47
|
+
private constructor();
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* SCTE-35 splice insert avail settings.
|
|
51
|
+
*/
|
|
52
|
+
export interface Scte35SpliceInsertSettings {
|
|
53
|
+
/**
|
|
54
|
+
* Offset in milliseconds added to the input ad avail PTS time.
|
|
55
|
+
* Applies only to embedded SCTE 104/35 messages.
|
|
56
|
+
* @default - service default
|
|
57
|
+
*/
|
|
58
|
+
readonly adAvailOffset?: number;
|
|
59
|
+
/**
|
|
60
|
+
* When set to `IGNORE`, segment descriptors with `noRegionalBlackoutFlag` set to 0 no longer
|
|
61
|
+
* trigger blackouts or ad avail slates.
|
|
62
|
+
* @default - service default
|
|
63
|
+
*/
|
|
64
|
+
readonly noRegionalBlackoutFlag?: Scte35FlagBehavior;
|
|
65
|
+
/**
|
|
66
|
+
* When set to `IGNORE`, segment descriptors with `webDeliveryAllowedFlag` set to 0 no longer
|
|
67
|
+
* trigger blackouts or ad avail slates.
|
|
68
|
+
* @default - service default
|
|
69
|
+
*/
|
|
70
|
+
readonly webDeliveryAllowedFlag?: Scte35FlagBehavior;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* SCTE-35 time signal APOS avail settings.
|
|
74
|
+
*/
|
|
75
|
+
export interface Scte35TimeSignalAposSettings {
|
|
76
|
+
/**
|
|
77
|
+
* Offset in milliseconds added to the input ad avail PTS time.
|
|
78
|
+
* Applies only to embedded SCTE 104/35 messages.
|
|
79
|
+
* @default - service default
|
|
80
|
+
*/
|
|
81
|
+
readonly adAvailOffset?: number;
|
|
82
|
+
/**
|
|
83
|
+
* When set to `IGNORE`, segment descriptors with `noRegionalBlackoutFlag` set to 0 no longer
|
|
84
|
+
* trigger blackouts or ad avail slates.
|
|
85
|
+
* @default - service default
|
|
86
|
+
*/
|
|
87
|
+
readonly noRegionalBlackoutFlag?: Scte35FlagBehavior;
|
|
88
|
+
/**
|
|
89
|
+
* When set to `IGNORE`, segment descriptors with `webDeliveryAllowedFlag` set to 0 no longer
|
|
90
|
+
* trigger blackouts or ad avail slates.
|
|
91
|
+
* @default - service default
|
|
92
|
+
*/
|
|
93
|
+
readonly webDeliveryAllowedFlag?: Scte35FlagBehavior;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Controls which output groups receive SCTE-35 segmentation cues.
|
|
97
|
+
*/
|
|
98
|
+
export declare class Scte35SegmentationScope {
|
|
99
|
+
/** Insert segment breaks in all output groups. */
|
|
100
|
+
static readonly ALL_OUTPUT_GROUPS: Scte35SegmentationScope;
|
|
101
|
+
/** Insert segment breaks only in output groups with SCTE-35 passthrough enabled (recommended). */
|
|
102
|
+
static readonly SCTE35_ENABLED_OUTPUT_GROUPS: Scte35SegmentationScope;
|
|
103
|
+
/** A value not yet modelled by AWS CDK. */
|
|
104
|
+
static of(value: string): Scte35SegmentationScope;
|
|
105
|
+
/** The underlying string value passed to CloudFormation. */
|
|
106
|
+
readonly value: string;
|
|
107
|
+
private constructor();
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Connection details for an ESAM POIS (Placement Opportunity Information System) endpoint.
|
|
111
|
+
*/
|
|
112
|
+
export interface PoisEndpoint {
|
|
113
|
+
/**
|
|
114
|
+
* The POIS endpoint URL that MediaLive sends signal conditioning information to.
|
|
115
|
+
*/
|
|
116
|
+
readonly url: string;
|
|
117
|
+
/**
|
|
118
|
+
* The username used to connect to the POIS endpoint.
|
|
119
|
+
* @default - no credentials
|
|
120
|
+
*/
|
|
121
|
+
readonly username?: string;
|
|
122
|
+
/**
|
|
123
|
+
* An SSM parameter holding the password for the POIS endpoint. The channel role is granted
|
|
124
|
+
* read access to the parameter automatically.
|
|
125
|
+
* @default - no credentials
|
|
126
|
+
*/
|
|
127
|
+
readonly password?: IStringParameter;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Settings for ESAM (Event Signaling and Management) ad avail handling. MediaLive signals ad avail
|
|
131
|
+
* events to an external POIS (Placement Opportunity Information System) endpoint.
|
|
132
|
+
*/
|
|
133
|
+
export interface EsamSettings {
|
|
134
|
+
/**
|
|
135
|
+
* The POIS endpoint connection details — URL and optional credentials.
|
|
136
|
+
*/
|
|
137
|
+
readonly pois: PoisEndpoint;
|
|
138
|
+
/**
|
|
139
|
+
* The acquisition point identity sent to the POIS in MCC requests.
|
|
140
|
+
*/
|
|
141
|
+
readonly acquisitionPointId: string;
|
|
142
|
+
/**
|
|
143
|
+
* Offset added to the input ad avail PTS time.
|
|
144
|
+
* @default - service default
|
|
145
|
+
*/
|
|
146
|
+
readonly adAvailOffset?: Duration;
|
|
147
|
+
/**
|
|
148
|
+
* The ID of a zone the POIS uses to control the placement of ad avails.
|
|
149
|
+
* @default - service default
|
|
150
|
+
*/
|
|
151
|
+
readonly zoneIdentity?: string;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Avail settings — how SCTE-35 ad avail markers are handled.
|
|
155
|
+
* Use the static factory methods to create.
|
|
156
|
+
*/
|
|
157
|
+
export declare abstract class AvailSettings {
|
|
158
|
+
/**
|
|
159
|
+
* Use SCTE-35 splice insert mode for ad avail handling.
|
|
160
|
+
*/
|
|
161
|
+
static spliceInsert(props?: Scte35SpliceInsertSettings): AvailSettings;
|
|
162
|
+
/**
|
|
163
|
+
* Use SCTE-35 time signal APOS mode for ad avail handling.
|
|
164
|
+
*/
|
|
165
|
+
static timeSignalApos(props?: Scte35TimeSignalAposSettings): AvailSettings;
|
|
166
|
+
/**
|
|
167
|
+
* Use ESAM (Event Signaling and Management) mode, signaling ad avails to an external POIS.
|
|
168
|
+
*/
|
|
169
|
+
static esam(props: EsamSettings): AvailSettings;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Blackout slate state.
|
|
173
|
+
*/
|
|
174
|
+
export declare class BlackoutSlateState {
|
|
175
|
+
/** Enable blackout slate */
|
|
176
|
+
static readonly ENABLED: BlackoutSlateState;
|
|
177
|
+
/** Disable blackout slate */
|
|
178
|
+
static readonly DISABLED: BlackoutSlateState;
|
|
179
|
+
/** A value not yet modelled by AWS CDK. */
|
|
180
|
+
static of(value: string): BlackoutSlateState;
|
|
181
|
+
/** The underlying string value passed to CloudFormation. */
|
|
182
|
+
readonly value: string;
|
|
183
|
+
private constructor();
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Network end blackout state.
|
|
187
|
+
*/
|
|
188
|
+
export declare class NetworkEndBlackout {
|
|
189
|
+
/** Enable network end blackout */
|
|
190
|
+
static readonly ENABLED: NetworkEndBlackout;
|
|
191
|
+
/** Disable network end blackout */
|
|
192
|
+
static readonly DISABLED: NetworkEndBlackout;
|
|
193
|
+
/** A value not yet modelled by AWS CDK. */
|
|
194
|
+
static of(value: string): NetworkEndBlackout;
|
|
195
|
+
/** The underlying string value passed to CloudFormation. */
|
|
196
|
+
readonly value: string;
|
|
197
|
+
private constructor();
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Blackout slate configuration for the channel.
|
|
201
|
+
*/
|
|
202
|
+
export interface BlackoutSlate {
|
|
203
|
+
/**
|
|
204
|
+
* Whether to enable the blackout slate.
|
|
205
|
+
* @default - ENABLED if image is provided, DISABLED otherwise
|
|
206
|
+
*/
|
|
207
|
+
readonly state?: BlackoutSlateState;
|
|
208
|
+
/**
|
|
209
|
+
* The blackout slate image. Provide a `FileLocation` referencing an S3 bucket
|
|
210
|
+
* (`FileLocation.fromBucket`, which auto-grants read access) or a URL (`FileLocation.url`).
|
|
211
|
+
* Only .bmp and .png supported.
|
|
212
|
+
* @default - solid black
|
|
213
|
+
*/
|
|
214
|
+
readonly image?: FileLocation;
|
|
215
|
+
/**
|
|
216
|
+
* Whether to enable network end blackout (triggered by SCTE-35 Network End Segmentation Descriptor).
|
|
217
|
+
* @default - ENABLED if networkEndBlackoutImage is provided, DISABLED otherwise
|
|
218
|
+
*/
|
|
219
|
+
readonly networkEndBlackout?: NetworkEndBlackout;
|
|
220
|
+
/**
|
|
221
|
+
* The network end blackout image. Provide a `FileLocation` referencing an S3 bucket
|
|
222
|
+
* (`FileLocation.fromBucket`, which auto-grants read access) or a URL (`FileLocation.url`).
|
|
223
|
+
* @default - solid black
|
|
224
|
+
*/
|
|
225
|
+
readonly networkEndBlackoutImage?: FileLocation;
|
|
226
|
+
/**
|
|
227
|
+
* The EIDR network ID (e.g. '10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C').
|
|
228
|
+
* @default - no network ID
|
|
229
|
+
*/
|
|
230
|
+
readonly networkId?: string;
|
|
231
|
+
}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NetworkEndBlackout = exports.BlackoutSlateState = exports.AvailSettings = exports.Scte35SegmentationScope = exports.Scte35FlagBehavior = exports.AvailBlankingState = void 0;
|
|
4
|
+
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/**
|
|
7
|
+
* Avail blanking state.
|
|
8
|
+
*/
|
|
9
|
+
class AvailBlankingState {
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.AvailBlankingState", version: "2.268.0-alpha.0" };
|
|
11
|
+
/** Enable blanking during ad avails */
|
|
12
|
+
static ENABLED = new AvailBlankingState('ENABLED');
|
|
13
|
+
/** Disable blanking during ad avails */
|
|
14
|
+
static DISABLED = new AvailBlankingState('DISABLED');
|
|
15
|
+
/** A value not yet modelled by AWS CDK. */
|
|
16
|
+
static of(value) {
|
|
17
|
+
return new AvailBlankingState(value);
|
|
18
|
+
}
|
|
19
|
+
/** The underlying string value passed to CloudFormation. */
|
|
20
|
+
value;
|
|
21
|
+
constructor(value) {
|
|
22
|
+
this.value = value;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.AvailBlankingState = AvailBlankingState;
|
|
26
|
+
/**
|
|
27
|
+
* How to handle SCTE-35 regional blackout and web delivery flags.
|
|
28
|
+
*/
|
|
29
|
+
class Scte35FlagBehavior {
|
|
30
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.Scte35FlagBehavior", version: "2.268.0-alpha.0" };
|
|
31
|
+
/** Follow the flag — trigger blackouts/slates when the flag is set */
|
|
32
|
+
static FOLLOW = new Scte35FlagBehavior('FOLLOW');
|
|
33
|
+
/** Ignore the flag */
|
|
34
|
+
static IGNORE = new Scte35FlagBehavior('IGNORE');
|
|
35
|
+
/** A value not yet modelled by AWS CDK. */
|
|
36
|
+
static of(value) {
|
|
37
|
+
return new Scte35FlagBehavior(value);
|
|
38
|
+
}
|
|
39
|
+
/** The underlying string value passed to CloudFormation. */
|
|
40
|
+
value;
|
|
41
|
+
constructor(value) {
|
|
42
|
+
this.value = value;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.Scte35FlagBehavior = Scte35FlagBehavior;
|
|
46
|
+
/**
|
|
47
|
+
* Controls which output groups receive SCTE-35 segmentation cues.
|
|
48
|
+
*/
|
|
49
|
+
class Scte35SegmentationScope {
|
|
50
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.Scte35SegmentationScope", version: "2.268.0-alpha.0" };
|
|
51
|
+
/** Insert segment breaks in all output groups. */
|
|
52
|
+
static ALL_OUTPUT_GROUPS = new Scte35SegmentationScope('ALL_OUTPUT_GROUPS');
|
|
53
|
+
/** Insert segment breaks only in output groups with SCTE-35 passthrough enabled (recommended). */
|
|
54
|
+
static SCTE35_ENABLED_OUTPUT_GROUPS = new Scte35SegmentationScope('SCTE35_ENABLED_OUTPUT_GROUPS');
|
|
55
|
+
/** A value not yet modelled by AWS CDK. */
|
|
56
|
+
static of(value) {
|
|
57
|
+
return new Scte35SegmentationScope(value);
|
|
58
|
+
}
|
|
59
|
+
/** The underlying string value passed to CloudFormation. */
|
|
60
|
+
value;
|
|
61
|
+
constructor(value) {
|
|
62
|
+
this.value = value;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.Scte35SegmentationScope = Scte35SegmentationScope;
|
|
66
|
+
/**
|
|
67
|
+
* Avail settings — how SCTE-35 ad avail markers are handled.
|
|
68
|
+
* Use the static factory methods to create.
|
|
69
|
+
*/
|
|
70
|
+
class AvailSettings {
|
|
71
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.AvailSettings", version: "2.268.0-alpha.0" };
|
|
72
|
+
/**
|
|
73
|
+
* Use SCTE-35 splice insert mode for ad avail handling.
|
|
74
|
+
*/
|
|
75
|
+
static spliceInsert(props) {
|
|
76
|
+
try {
|
|
77
|
+
jsiiDeprecationWarnings._aws_cdk_aws_medialive_alpha_Scte35SpliceInsertSettings(props);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
81
|
+
Error.captureStackTrace(error, this.spliceInsert);
|
|
82
|
+
}
|
|
83
|
+
throw error;
|
|
84
|
+
}
|
|
85
|
+
return new Scte35SpliceInsertAvailSettings(props ?? {});
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Use SCTE-35 time signal APOS mode for ad avail handling.
|
|
89
|
+
*/
|
|
90
|
+
static timeSignalApos(props) {
|
|
91
|
+
try {
|
|
92
|
+
jsiiDeprecationWarnings._aws_cdk_aws_medialive_alpha_Scte35TimeSignalAposSettings(props);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
96
|
+
Error.captureStackTrace(error, this.timeSignalApos);
|
|
97
|
+
}
|
|
98
|
+
throw error;
|
|
99
|
+
}
|
|
100
|
+
return new Scte35TimeSignalAposAvailSettings(props ?? {});
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Use ESAM (Event Signaling and Management) mode, signaling ad avails to an external POIS.
|
|
104
|
+
*/
|
|
105
|
+
static esam(props) {
|
|
106
|
+
try {
|
|
107
|
+
jsiiDeprecationWarnings._aws_cdk_aws_medialive_alpha_EsamSettings(props);
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
111
|
+
Error.captureStackTrace(error, this.esam);
|
|
112
|
+
}
|
|
113
|
+
throw error;
|
|
114
|
+
}
|
|
115
|
+
return new EsamAvailSettings(props);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Grant the channel role any permissions these avail settings require (e.g. read access to
|
|
119
|
+
* an ESAM password parameter).
|
|
120
|
+
* @internal
|
|
121
|
+
*/
|
|
122
|
+
_grantPermissions(_role) { }
|
|
123
|
+
}
|
|
124
|
+
exports.AvailSettings = AvailSettings;
|
|
125
|
+
/** @internal */
|
|
126
|
+
class Scte35SpliceInsertAvailSettings extends AvailSettings {
|
|
127
|
+
props;
|
|
128
|
+
constructor(props) {
|
|
129
|
+
super();
|
|
130
|
+
this.props = props;
|
|
131
|
+
}
|
|
132
|
+
_bind() {
|
|
133
|
+
return {
|
|
134
|
+
scte35SpliceInsert: {
|
|
135
|
+
adAvailOffset: this.props.adAvailOffset,
|
|
136
|
+
noRegionalBlackoutFlag: this.props.noRegionalBlackoutFlag?.value,
|
|
137
|
+
webDeliveryAllowedFlag: this.props.webDeliveryAllowedFlag?.value,
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/** @internal */
|
|
143
|
+
class Scte35TimeSignalAposAvailSettings extends AvailSettings {
|
|
144
|
+
props;
|
|
145
|
+
constructor(props) {
|
|
146
|
+
super();
|
|
147
|
+
this.props = props;
|
|
148
|
+
}
|
|
149
|
+
_bind() {
|
|
150
|
+
return {
|
|
151
|
+
scte35TimeSignalApos: {
|
|
152
|
+
adAvailOffset: this.props.adAvailOffset,
|
|
153
|
+
noRegionalBlackoutFlag: this.props.noRegionalBlackoutFlag?.value,
|
|
154
|
+
webDeliveryAllowedFlag: this.props.webDeliveryAllowedFlag?.value,
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/** @internal */
|
|
160
|
+
class EsamAvailSettings extends AvailSettings {
|
|
161
|
+
props;
|
|
162
|
+
constructor(props) {
|
|
163
|
+
super();
|
|
164
|
+
this.props = props;
|
|
165
|
+
}
|
|
166
|
+
_bind() {
|
|
167
|
+
return {
|
|
168
|
+
esam: {
|
|
169
|
+
poisEndpoint: this.props.pois.url,
|
|
170
|
+
acquisitionPointId: this.props.acquisitionPointId,
|
|
171
|
+
adAvailOffset: this.props.adAvailOffset?.toMilliseconds(),
|
|
172
|
+
// MediaLive's ESAM passwordParam expects the SSM parameter reference in `ssm://<name>`
|
|
173
|
+
// form, not the bare parameter name.
|
|
174
|
+
passwordParam: this.props.pois.password ? `ssm://${this.props.pois.password.parameterName}` : undefined,
|
|
175
|
+
username: this.props.pois.username,
|
|
176
|
+
zoneIdentity: this.props.zoneIdentity,
|
|
177
|
+
},
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
_grantPermissions(role) {
|
|
181
|
+
// MediaLive reads the POIS password from SSM Parameter Store at channel runtime, so the
|
|
182
|
+
// channel role needs read access to the parameter (scoped to the parameter ARN).
|
|
183
|
+
this.props.pois.password?.grantRead(role);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Blackout slate state.
|
|
188
|
+
*/
|
|
189
|
+
class BlackoutSlateState {
|
|
190
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.BlackoutSlateState", version: "2.268.0-alpha.0" };
|
|
191
|
+
/** Enable blackout slate */
|
|
192
|
+
static ENABLED = new BlackoutSlateState('ENABLED');
|
|
193
|
+
/** Disable blackout slate */
|
|
194
|
+
static DISABLED = new BlackoutSlateState('DISABLED');
|
|
195
|
+
/** A value not yet modelled by AWS CDK. */
|
|
196
|
+
static of(value) {
|
|
197
|
+
return new BlackoutSlateState(value);
|
|
198
|
+
}
|
|
199
|
+
/** The underlying string value passed to CloudFormation. */
|
|
200
|
+
value;
|
|
201
|
+
constructor(value) {
|
|
202
|
+
this.value = value;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
exports.BlackoutSlateState = BlackoutSlateState;
|
|
206
|
+
/**
|
|
207
|
+
* Network end blackout state.
|
|
208
|
+
*/
|
|
209
|
+
class NetworkEndBlackout {
|
|
210
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.NetworkEndBlackout", version: "2.268.0-alpha.0" };
|
|
211
|
+
/** Enable network end blackout */
|
|
212
|
+
static ENABLED = new NetworkEndBlackout('ENABLED');
|
|
213
|
+
/** Disable network end blackout */
|
|
214
|
+
static DISABLED = new NetworkEndBlackout('DISABLED');
|
|
215
|
+
/** A value not yet modelled by AWS CDK. */
|
|
216
|
+
static of(value) {
|
|
217
|
+
return new NetworkEndBlackout(value);
|
|
218
|
+
}
|
|
219
|
+
/** The underlying string value passed to CloudFormation. */
|
|
220
|
+
value;
|
|
221
|
+
constructor(value) {
|
|
222
|
+
this.value = value;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
exports.NetworkEndBlackout = NetworkEndBlackout;
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhaWwtc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhdmFpbC1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQU1BOztHQUVHO0FBQ0gsTUFBYSxrQkFBa0I7O0lBQzdCLHVDQUF1QztJQUNoQyxNQUFNLENBQVUsT0FBTyxHQUFHLElBQUksa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkUsd0NBQXdDO0lBQ2pDLE1BQU0sQ0FBVSxRQUFRLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVyRSwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN0QztJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsZ0RBaUJDO0FBb0JEOztHQUVHO0FBQ0gsTUFBYSxrQkFBa0I7O0lBQzdCLHNFQUFzRTtJQUMvRCxNQUFNLENBQVUsTUFBTSxHQUFHLElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakUsc0JBQXNCO0lBQ2YsTUFBTSxDQUFVLE1BQU0sR0FBRyxJQUFJLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWpFLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3RDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWhCSCxnREFpQkM7QUFrREQ7O0dBRUc7QUFDSCxNQUFhLHVCQUF1Qjs7SUFDbEMsa0RBQWtEO0lBQzNDLE1BQU0s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QUFPLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdEM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILGdEQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IElSb2xlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgdHlwZSB7IENmbkNoYW5uZWwgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbWVkaWFsaXZlJztcbmltcG9ydCB0eXBlIHsgSVN0cmluZ1BhcmFtZXRlciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0IHR5cGUgeyBGaWxlTG9jYXRpb24gfSBmcm9tICcuL2ZpbGUtbG9jYXRpb24nO1xuXG4vKipcbiAqIEF2YWlsIGJsYW5raW5nIHN0YXRlLlxuICovXG5leHBvcnQgY2xhc3MgQXZhaWxCbGFua2luZ1N0YXRlIHtcbiAgLyoqIEVuYWJsZSBibGFua2luZyBkdXJpbmcgYWQgYXZhaWxzICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRU5BQkxFRCA9IG5ldyBBdmFpbEJsYW5raW5nU3RhdGUoJ0VOQUJMRUQnKTtcbiAgLyoqIERpc2FibGUgYmxhbmtpbmcgZHVyaW5nIGFkIGF2YWlscyAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERJU0FCTEVEID0gbmV3IEF2YWlsQmxhbmtpbmdTdGF0ZSgnRElTQUJMRUQnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IEF2YWlsQmxhbmtpbmdTdGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBBdmFpbEJsYW5raW5nU3RhdGUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIFNldHRpbmdzIGZvciBibGFua2luZyB2aWRlbywgYXVkaW8sIGFuZCBjYXB0aW9ucyBkdXJpbmcgYWQgYXZhaWxzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsQmxhbmtpbmcge1xuICAvKipcbiAgICogV2hldGhlciB0byBibGFuayB0aGUgb3V0cHV0IGR1cmluZyBhZCBhdmFpbHMuXG4gICAqIEBkZWZhdWx0IC0gRU5BQkxFRCBpZiBpbWFnZSBpcyBwcm92aWRlZCwgRElTQUJMRUQgb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBzdGF0ZT86IEF2YWlsQmxhbmtpbmdTdGF0ZTtcbiAgLyoqXG4gICAqIEEgYmxhbmtpbmcgaW1hZ2UgdG8gZGlzcGxheSBkdXJpbmcgYWQgYXZhaWxzLiBQcm92aWRlIGEgYEZpbGVMb2NhdGlvbmAgcmVmZXJlbmNpbmcgYW4gUzNcbiAgICogYnVja2V0IChgRmlsZUxvY2F0aW9uLmZyb21CdWNrZXRgLCB3aGljaCBhdXRvLWdyYW50cyByZWFkIGFjY2Vzcykgb3IgYSBVUkwgKGBGaWxlTG9jYXRpb24udXJsYCkuXG4gICAqIE9ubHkgLmJtcCBhbmQgLnBuZyBpbWFnZXMgYXJlIHN1cHBvcnRlZC4gSWYgbm90IHNldCwgc29saWQgYmxhY2sgaXMgdXNlZC5cbiAgICogQGRlZmF1bHQgLSBzb2xpZCBibGFja1xuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBGaWxlTG9jYXRpb247XG59XG5cbi8qKlxuICogSG93IHRvIGhhbmRsZSBTQ1RFLTM1IHJlZ2lvbmFsIGJsYWNrb3V0IGFuZCB3ZWIgZGVsaXZlcnkgZmxhZ3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBTY3RlMzVGbGFnQmVoYXZpb3Ige1xuICAvKiogRm9sbG93IHRoZSBmbGFnIOKAlCB0cmlnZ2VyIGJsYWNrb3V0cy9zbGF0ZXMgd2hlbiB0aGUgZmxhZyBpcyBzZXQgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBGT0xMT1cgPSBuZXcgU2N0ZTM1RmxhZ0JlaGF2aW9yKCdGT0xMT1cnKTtcbiAgLyoqIElnbm9yZSB0aGUgZmxhZyAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElHTk9SRSA9IG5ldyBTY3RlMzVGbGFnQmVoYXZpb3IoJ0lHTk9SRScpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogU2N0ZTM1RmxhZ0JlaGF2aW9yIHtcbiAgICByZXR1cm4gbmV3IFNjdGUzNUZsYWdCZWhhdmlvcih2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogU0NURS0zNSBzcGxpY2UgaW5zZXJ0IGF2YWlsIHNldHRpbmdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjdGUzNVNwbGljZUluc2VydFNldHRpbmdzIHtcbiAgLyoqXG4gICAqIE9mZnNldCBpbiBtaWxsaXNlY29uZHMgYWRkZWQgdG8gdGhlIGlucHV0IGFkIGF2YWlsIFBUUyB0aW1lLlxuICAgKiBBcHBsaWVzIG9ubHkgdG8gZW1iZWRkZWQgU0NURSAxMDQvMzUgbWVzc2FnZXMuXG4gICAqIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBhZEF2YWlsT2Zmc2V0PzogbnVtYmVyO1xuICAvKipcbiAgICogV2hlbiBzZXQgdG8gYElHTk9SRWAsIHNlZ21lbnQgZGVzY3JpcHRvcnMgd2l0aCBgbm9SZWdpb25hbEJsYWNrb3V0RmxhZ2Agc2V0IHRvIDAgbm8gbG9uZ2VyXG4gICAqIHRyaWdnZXIgYmxhY2tvdXRzIG9yIGFkIGF2YWlsIHNsYXRlcy5cbiAgICogQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IG5vUmVnaW9uYWxCbGFja291dEZsYWc/OiBTY3RlMzVGbGFnQmVoYXZpb3I7XG4gIC8qKlxuICAgKiBXaGVuIHNldCB0byBgSUdOT1JFYCwgc2VnbWVudCBkZXNjcmlwdG9ycyB3aXRoIGB3ZWJEZWxpdmVyeUFsbG93ZWRGbGFnYCBzZXQgdG8gMCBubyBsb25nZXJcbiAgICogdHJpZ2dlciBibGFja291dHMgb3IgYWQgYXZhaWwgc2xhdGVzLlxuICAgKiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgd2ViRGVsaXZlcnlBbGxvd2VkRmxhZz86IFNjdGUzNUZsYWdCZWhhdmlvcjtcbn1cblxuLyoqXG4gKiBTQ1RFLTM1IHRpbWUgc2lnbmFsIEFQT1MgYXZhaWwgc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2N0ZTM1VGltZVNpZ25hbEFwb3NTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBPZmZzZXQgaW4gbWlsbGlzZWNvbmRzIGFkZGVkIHRvIHRoZSBpbnB1dCBhZCBhdmFpbCBQVFMgdGltZS5cbiAgICogQXBwbGllcyBvbmx5IHRvIGVtYmVkZGVkIFNDVEUgMTA0LzM1IG1lc3NhZ2VzLlxuICAgKiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgYWRBdmFpbE9mZnNldD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFdoZW4gc2V0IHRvIGBJR05PUkVgLCBzZWdtZW50IGRlc2NyaXB0b3JzIHdpdGggYG5vUmVnaW9uYWxCbGFja291dEZsYWdgIHNldCB0byAwIG5vIGxvbmdlclxuICAgKiB0cmlnZ2VyIGJsYWNrb3V0cyBvciBhZCBhdmFpbCBzbGF0ZXMuXG4gICAqIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBub1JlZ2lvbmFsQmxhY2tvdXRGbGFnPzogU2N0ZTM1RmxhZ0JlaGF2aW9yO1xuICAvKipcbiAgICogV2hlbiBzZXQgdG8gYElHTk9SRWAsIHNlZ21lbnQgZGVzY3JpcHRvcnMgd2l0aCBgd2ViRGVsaXZlcnlBbGxvd2VkRmxhZ2Agc2V0IHRvIDAgbm8gbG9uZ2VyXG4gICAqIHRyaWdnZXIgYmxhY2tvdXRzIG9yIGFkIGF2YWlsIHNsYXRlcy5cbiAgICogQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IHdlYkRlbGl2ZXJ5QWxsb3dlZEZsYWc/OiBTY3RlMzVGbGFnQmVoYXZpb3I7XG59XG5cbi8qKlxuICogQ29udHJvbHMgd2hpY2ggb3V0cHV0IGdyb3VwcyByZWNlaXZlIFNDVEUtMzUgc2VnbWVudGF0aW9uIGN1ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTY3RlMzVTZWdtZW50YXRpb25TY29wZSB7XG4gIC8qKiBJbnNlcnQgc2VnbWVudCBicmVha3MgaW4gYWxsIG91dHB1dCBncm91cHMuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUxMX09VVFBVVF9HUk9VUFMgPSBuZXcgU2N0ZTM1U2VnbWVudGF0aW9uU2NvcGUoJ0FMTF9PVVRQVVRfR1JPVVBTJyk7XG4gIC8qKiBJbnNlcnQgc2VnbWVudCBicmVha3Mgb25seSBpbiBvdXRwdXQgZ3JvdXBzIHdpdGggU0NURS0zNSBwYXNzdGhyb3VnaCBlbmFibGVkIChyZWNvbW1lbmRlZCkuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0NURTM1X0VOQUJMRURfT1VUUFVUX0dST1VQUyA9IG5ldyBTY3RlMzVTZWdtZW50YXRpb25TY29wZSgnU0NURTM1X0VOQUJMRURfT1VUUFVUX0dST1VQUycpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogU2N0ZTM1U2VnbWVudGF0aW9uU2NvcGUge1xuICAgIHJldHVybiBuZXcgU2N0ZTM1U2VnbWVudGF0aW9uU2NvcGUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIENvbm5lY3Rpb24gZGV0YWlscyBmb3IgYW4gRVNBTSBQT0lTIChQbGFjZW1lbnQgT3Bwb3J0dW5pdHkgSW5mb3JtYXRpb24gU3lzdGVtKSBlbmRwb2ludC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2lzRW5kcG9pbnQge1xuICAvKipcbiAgICogVGhlIFBPSVMgZW5kcG9pbnQgVVJMIHRoYXQgTWVkaWFMaXZlIHNlbmRzIHNpZ25hbCBjb25kaXRpb25pbmcgaW5mb3JtYXRpb24gdG8uXG4gICAqL1xuICByZWFkb25seSB1cmw6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB1c2VybmFtZSB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBPSVMgZW5kcG9pbnQuXG4gICAqIEBkZWZhdWx0IC0gbm8gY3JlZGVudGlhbHNcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJuYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogQW4gU1NNIHBhcmFtZXRlciBob2xkaW5nIHRoZSBwYXNzd29yZCBmb3IgdGhlIFBPSVMgZW5kcG9pbnQuIFRoZSBjaGFubmVsIHJvbGUgaXMgZ3JhbnRlZFxuICAgKiByZWFkIGFjY2VzcyB0byB0aGUgcGFyYW1ldGVyIGF1dG9tYXRpY2FsbHkuXG4gICAqIEBkZWZhdWx0IC0gbm8gY3JlZGVudGlhbHNcbiAgICovXG4gIHJlYWRvbmx5IHBhc3N3b3JkPzogSVN0cmluZ1BhcmFtZXRlcjtcbn1cblxuLyoqXG4gKiBTZXR0aW5ncyBmb3IgRVNBTSAoRXZlbnQgU2lnbmFsaW5nIGFuZCBNYW5hZ2VtZW50KSBhZCBhdmFpbCBoYW5kbGluZy4gTWVkaWFMaXZlIHNpZ25hbHMgYWQgYXZhaWxcbiAqIGV2ZW50cyB0byBhbiBleHRlcm5hbCBQT0lTIChQbGFjZW1lbnQgT3Bwb3J0dW5pdHkgSW5mb3JtYXRpb24gU3lzdGVtKSBlbmRwb2ludC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFc2FtU2V0dGluZ3Mge1xuICAvKipcbiAgICogVGhlIFBPSVMgZW5kcG9pbnQgY29ubmVjdGlvbiBkZXRhaWxzIOKAlCBVUkwgYW5kIG9wdGlvbmFsIGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9pczogUG9pc0VuZHBvaW50O1xuICAvKipcbiAgICogVGhlIGFjcXVpc2l0aW9uIHBvaW50IGlkZW50aXR5IHNlbnQgdG8gdGhlIFBPSVMgaW4gTUNDIHJlcXVlc3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNxdWlzaXRpb25Qb2ludElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPZmZzZXQgYWRkZWQgdG8gdGhlIGlucHV0IGFkIGF2YWlsIFBUUyB0aW1lLlxuICAgKiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgYWRBdmFpbE9mZnNldD86IER1cmF0aW9uO1xuICAvKipcbiAgICogVGhlIElEIG9mIGEgem9uZSB0aGUgUE9JUyB1c2VzIHRvIGNvbnRyb2wgdGhlIHBsYWNlbWVudCBvZiBhZCBhdmFpbHMuXG4gICAqIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSB6b25lSWRlbnRpdHk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXZhaWwgc2V0dGluZ3Mg4oCUIGhvdyBTQ1RFLTM1IGFkIGF2YWlsIG1hcmtlcnMgYXJlIGhhbmRsZWQuXG4gKiBVc2UgdGhlIHN0YXRpYyBmYWN0b3J5IG1ldGhvZHMgdG8gY3JlYXRlLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXZhaWxTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBVc2UgU0NURS0zNSBzcGxpY2UgaW5zZXJ0IG1vZGUgZm9yIGFkIGF2YWlsIGhhbmRsaW5nLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzcGxpY2VJbnNlcnQocHJvcHM/OiBTY3RlMzVTcGxpY2VJbnNlcnRTZXR0aW5ncyk6IEF2YWlsU2V0dGluZ3Mge1xuICAgIHJldHVybiBuZXcgU2N0ZTM1U3BsaWNlSW5zZXJ0QXZhaWxTZXR0aW5ncyhwcm9wcyA/PyB7fSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIFNDVEUtMzUgdGltZSBzaWduYWwgQVBPUyBtb2RlIGZvciBhZCBhdmFpbCBoYW5kbGluZy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdGltZVNpZ25hbEFwb3MocHJvcHM/OiBTY3RlMzVUaW1lU2lnbmFsQXBvc1NldHRpbmdzKTogQXZhaWxTZXR0aW5ncyB7XG4gICAgcmV0dXJuIG5ldyBTY3RlMzVUaW1lU2lnbmFsQXBvc0F2YWlsU2V0dGluZ3MocHJvcHMgPz8ge30pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBFU0FNIChFdmVudCBTaWduYWxpbmcgYW5kIE1hbmFnZW1lbnQpIG1vZGUsIHNpZ25hbGluZyBhZCBhdmFpbHMgdG8gYW4gZXh0ZXJuYWwgUE9JUy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXNhbShwcm9wczogRXNhbVNldHRpbmdzKTogQXZhaWxTZXR0aW5ncyB7XG4gICAgcmV0dXJuIG5ldyBFc2FtQXZhaWxTZXR0aW5ncyhwcm9wcyk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBhYnN0cmFjdCBfYmluZCgpOiBDZm5DaGFubmVsLkF2YWlsU2V0dGluZ3NQcm9wZXJ0eTtcblxuICAvKipcbiAgICogR3JhbnQgdGhlIGNoYW5uZWwgcm9sZSBhbnkgcGVybWlzc2lvbnMgdGhlc2UgYXZhaWwgc2V0dGluZ3MgcmVxdWlyZSAoZS5nLiByZWFkIGFjY2VzcyB0b1xuICAgKiBhbiBFU0FNIHBhc3N3b3JkIHBhcmFtZXRlcikuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9ncmFudFBlcm1pc3Npb25zKF9yb2xlOiBJUm9sZSk6IHZvaWQge31cbn1cblxuLyoqIEBpbnRlcm5hbCAqL1xuY2xhc3MgU2N0ZTM1U3BsaWNlSW5zZXJ0QXZhaWxTZXR0aW5ncyBleHRlbmRzIEF2YWlsU2V0dGluZ3Mge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBTY3RlMzVTcGxpY2VJbnNlcnRTZXR0aW5ncykgeyBzdXBlcigpOyB9XG4gIHB1YmxpYyBfYmluZCgpOiBDZm5DaGFubmVsLkF2YWlsU2V0dGluZ3NQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjdGUzNVNwbGljZUluc2VydDoge1xuICAgICAgICBhZEF2YWlsT2Zmc2V0OiB0aGlzLnByb3BzLmFkQXZhaWxPZmZzZXQsXG4gICAgICAgIG5vUmVnaW9uYWxCbGFja291dEZsYWc6IHRoaXMucHJvcHMubm9SZWdpb25hbEJsYWNrb3V0RmxhZz8udmFsdWUsXG4gICAgICAgIHdlYkRlbGl2ZXJ5QWxsb3dlZEZsYWc6IHRoaXMucHJvcHMud2ViRGVsaXZlcnlBbGxvd2VkRmxhZz8udmFsdWUsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuLyoqIEBpbnRlcm5hbCAqL1xuY2xhc3MgU2N0ZTM1VGltZVNpZ25hbEFwb3NBdmFpbFNldHRpbmdzIGV4dGVuZHMgQXZhaWxTZXR0aW5ncyB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IFNjdGUzNVRpbWVTaWduYWxBcG9zU2V0dGluZ3MpIHsgc3VwZXIoKTsgfVxuICBwdWJsaWMgX2JpbmQoKTogQ2ZuQ2hhbm5lbC5BdmFpbFNldHRpbmdzUHJvcGVydHkge1xuICAgIHJldHVybiB7XG4gICAgICBzY3RlMzVUaW1lU2lnbmFsQXBvczoge1xuICAgICAgICBhZEF2YWlsT2Zmc2V0OiB0aGlzLnByb3BzLmFkQXZhaWxPZmZzZXQsXG4gICAgICAgIG5vUmVnaW9uYWxCbGFja291dEZsYWc6IHRoaXMucHJvcHMubm9SZWdpb25hbEJsYWNrb3V0RmxhZz8udmFsdWUsXG4gICAgICAgIHdlYkRlbGl2ZXJ5QWxsb3dlZEZsYWc6IHRoaXMucHJvcHMud2ViRGVsaXZlcnlBbGxvd2VkRmxhZz8udmFsdWUsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuLyoqIEBpbnRlcm5hbCAqL1xuY2xhc3MgRXNhbUF2YWlsU2V0dGluZ3MgZXh0ZW5kcyBBdmFpbFNldHRpbmdzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogRXNhbVNldHRpbmdzKSB7IHN1cGVyKCk7IH1cbiAgcHVibGljIF9iaW5kKCk6IENmbkNoYW5uZWwuQXZhaWxTZXR0aW5nc1Byb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgZXNhbToge1xuICAgICAgICBwb2lzRW5kcG9pbnQ6IHRoaXMucHJvcHMucG9pcy51cmwsXG4gICAgICAgIGFjcXVpc2l0aW9uUG9pbnRJZDogdGhpcy5wcm9wcy5hY3F1aXNpdGlvblBvaW50SWQsXG4gICAgICAgIGFkQXZhaWxPZmZzZXQ6IHRoaXMucHJvcHMuYWRBdmFpbE9mZnNldD8udG9NaWxsaXNlY29uZHMoKSxcbiAgICAgICAgLy8gTWVkaWFMaXZlJ3MgRVNBTSBwYXNzd29yZFBhcmFtIGV4cGVjdHMgdGhlIFNTTSBwYXJhbWV0ZXIgcmVmZXJlbmNlIGluIGBzc206Ly88bmFtZT5gXG4gICAgICAgIC8vIGZvcm0sIG5vdCB0aGUgYmFyZSBwYXJhbWV0ZXIgbmFtZS5cbiAgICAgICAgcGFzc3dvcmRQYXJhbTogdGhpcy5wcm9wcy5wb2lzLnBhc3N3b3JkID8gYHNzbTovLyR7dGhpcy5wcm9wcy5wb2lzLnBhc3N3b3JkLnBhcmFtZXRlck5hbWV9YCA6IHVuZGVmaW5lZCxcbiAgICAgICAgdXNlcm5hbWU6IHRoaXMucHJvcHMucG9pcy51c2VybmFtZSxcbiAgICAgICAgem9uZUlkZW50aXR5OiB0aGlzLnByb3BzLnpvbmVJZGVudGl0eSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgX2dyYW50UGVybWlzc2lvbnMocm9sZTogSVJvbGUpOiB2b2lkIHtcbiAgICAvLyBNZWRpYUxpdmUgcmVhZHMgdGhlIFBPSVMgcGFzc3dvcmQgZnJvbSBTU00gUGFyYW1ldGVyIFN0b3JlIGF0IGNoYW5uZWwgcnVudGltZSwgc28gdGhlXG4gICAgLy8gY2hhbm5lbCByb2xlIG5lZWRzIHJlYWQgYWNjZXNzIHRvIHRoZSBwYXJhbWV0ZXIgKHNjb3BlZCB0byB0aGUgcGFyYW1ldGVyIEFSTikuXG4gICAgdGhpcy5wcm9wcy5wb2lzLnBhc3N3b3JkPy5ncmFudFJlYWQocm9sZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBCbGFja291dCBzbGF0ZSBzdGF0ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEJsYWNrb3V0U2xhdGVTdGF0ZSB7XG4gIC8qKiBFbmFibGUgYmxhY2tvdXQgc2xhdGUgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFTkFCTEVEID0gbmV3IEJsYWNrb3V0U2xhdGVTdGF0ZSgnRU5BQkxFRCcpO1xuICAvKiogRGlzYWJsZSBibGFja291dCBzbGF0ZSAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERJU0FCTEVEID0gbmV3IEJsYWNrb3V0U2xhdGVTdGF0ZSgnRElTQUJMRUQnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IEJsYWNrb3V0U2xhdGVTdGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBCbGFja291dFNsYXRlU3RhdGUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIE5ldHdvcmsgZW5kIGJsYWNrb3V0IHN0YXRlLlxuICovXG5leHBvcnQgY2xhc3MgTmV0d29ya0VuZEJsYWNrb3V0IHtcbiAgLyoqIEVuYWJsZSBuZXR3b3JrIGVuZCBibGFja291dCAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVOQUJMRUQgPSBuZXcgTmV0d29ya0VuZEJsYWNrb3V0KCdFTkFCTEVEJyk7XG4gIC8qKiBEaXNhYmxlIG5ldHdvcmsgZW5kIGJsYWNrb3V0ICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRElTQUJMRUQgPSBuZXcgTmV0d29ya0VuZEJsYWNrb3V0KCdESVNBQkxFRCcpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogTmV0d29ya0VuZEJsYWNrb3V0IHtcbiAgICByZXR1cm4gbmV3IE5ldHdvcmtFbmRCbGFja291dCh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogQmxhY2tvdXQgc2xhdGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNoYW5uZWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmxhY2tvdXRTbGF0ZSB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSB0aGUgYmxhY2tvdXQgc2xhdGUuXG4gICAqIEBkZWZhdWx0IC0gRU5BQkxFRCBpZiBpbWFnZSBpcyBwcm92aWRlZCwgRElTQUJMRUQgb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBzdGF0ZT86IEJsYWNrb3V0U2xhdGVTdGF0ZTtcbiAgLyoqXG4gICAqIFRoZSBibGFja291dCBzbGF0ZSBpbWFnZS4gUHJvdmlkZSBhIGBGaWxlTG9jYXRpb25gIHJlZmVyZW5jaW5nIGFuIFMzIGJ1Y2tldFxuICAgKiAoYEZpbGVMb2NhdGlvbi5mcm9tQnVja2V0YCwgd2hpY2ggYXV0by1ncmFudHMgcmVhZCBhY2Nlc3MpIG9yIGEgVVJMIChgRmlsZUxvY2F0aW9uLnVybGApLlxuICAgKiBPbmx5IC5ibXAgYW5kIC5wbmcgc3VwcG9ydGVkLlxuICAgKiBAZGVmYXVsdCAtIHNvbGlkIGJsYWNrXG4gICAqL1xuICByZWFkb25seSBpbWFnZT86IEZpbGVMb2NhdGlvbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIG5ldHdvcmsgZW5kIGJsYWNrb3V0ICh0cmlnZ2VyZWQgYnkgU0NURS0zNSBOZXR3b3JrIEVuZCBTZWdtZW50YXRpb24gRGVzY3JpcHRvcikuXG4gICAqIEBkZWZhdWx0IC0gRU5BQkxFRCBpZiBuZXR3b3JrRW5kQmxhY2tvdXRJbWFnZSBpcyBwcm92aWRlZCwgRElTQUJMRUQgb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrRW5kQmxhY2tvdXQ/OiBOZXR3b3JrRW5kQmxhY2tvdXQ7XG4gIC8qKlxuICAgKiBUaGUgbmV0d29yayBlbmQgYmxhY2tvdXQgaW1hZ2UuIFByb3ZpZGUgYSBgRmlsZUxvY2F0aW9uYCByZWZlcmVuY2luZyBhbiBTMyBidWNrZXRcbiAgICogKGBGaWxlTG9jYXRpb24uZnJvbUJ1Y2tldGAsIHdoaWNoIGF1dG8tZ3JhbnRzIHJlYWQgYWNjZXNzKSBvciBhIFVSTCAoYEZpbGVMb2NhdGlvbi51cmxgKS5cbiAgICogQGRlZmF1bHQgLSBzb2xpZCBibGFja1xuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya0VuZEJsYWNrb3V0SW1hZ2U/OiBGaWxlTG9jYXRpb247XG4gIC8qKlxuICAgKiBUaGUgRUlEUiBuZXR3b3JrIElEIChlLmcuICcxMC5YWFhYL1hYWFgtWFhYWC1YWFhYLVhYWFgtWFhYWC1DJykuXG4gICAqIEBkZWZhdWx0IC0gbm8gbmV0d29yayBJRFxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya0lkPzogc3RyaW5nO1xufVxuIl19
|