@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
package/lib/channel.d.ts
ADDED
|
@@ -0,0 +1,687 @@
|
|
|
1
|
+
import type { Duration, IResource } from 'aws-cdk-lib';
|
|
2
|
+
import { Resource } from 'aws-cdk-lib';
|
|
3
|
+
import type { MetricOptions } from 'aws-cdk-lib/aws-cloudwatch';
|
|
4
|
+
import { Metric } from 'aws-cdk-lib/aws-cloudwatch';
|
|
5
|
+
import type { ISubnetRef } from 'aws-cdk-lib/aws-ec2';
|
|
6
|
+
import type { ISecurityGroupRef } from 'aws-cdk-lib/aws-elasticache';
|
|
7
|
+
import type { IRole } from 'aws-cdk-lib/aws-iam';
|
|
8
|
+
import type { IChannelRef, ChannelReference, IInputSecurityGroupRef, IClusterRef, IChannelPlacementGroupRef } from 'aws-cdk-lib/aws-medialive';
|
|
9
|
+
import type { Construct } from 'constructs';
|
|
10
|
+
import { type AvailBlanking, type AvailSettings, type Scte35SegmentationScope, type BlackoutSlate } from './avail-settings';
|
|
11
|
+
import { type FeatureActivations, type MotionGraphicsConfiguration, type NielsenConfiguration, type ThumbnailConfiguration } from './channel-features';
|
|
12
|
+
import type { ColorCorrection } from './color-correction';
|
|
13
|
+
import type { FileLocation } from './file-location';
|
|
14
|
+
import { type InputAttachment } from './input-attachment';
|
|
15
|
+
import { InputSpecification } from './input-specification';
|
|
16
|
+
import { ChannelGrants } from './medialive-grants.generated';
|
|
17
|
+
import type { OutputGroupConfiguration } from './output-group';
|
|
18
|
+
export { VideoCodecSettings, H264Profile, H264RateControl, H264AdaptiveQuantization, GopSize, H265Profile, H265Tier, H265RateControl, Av1RateControl, AfdSignaling, ColorMetadata, ScanType, FlickerAq, GopBReference, LookAheadRateControl, TimecodeInsertion, SubgopLength, H264EntropyEncoding, H264ForceFieldPictures, H264Syntax, H264QualityLevel, H265AdaptiveQuantization, H265AlternativeTransferFunction, H265Deblocking, H265MvOverPictureBoundaries, H265MvTemporalPredictor, H265TilePadding, H265TreeblockSize, Av1BitDepth, Av1SceneChangeDetect, Av1SpatialAq, Av1TemporalAq, Av1TimecodeInsertion, H264SceneChangeDetect, H264SpatialAq, H264TemporalAq, H265SceneChangeDetect, TimecodeBurninFontSize, TimecodeBurninPosition, } from './video-codec-settings';
|
|
19
|
+
export type { H264SettingsProps, H265SettingsProps, Av1SettingsProps, FrameCaptureSettingsProps, TimecodeBurninSettings, } from './video-codec-settings';
|
|
20
|
+
export { AudioCodecSettings, AacProfile, AacCodingMode, AacRateControlMode, AacRawFormat, AacSpec, AacInputType, AacVbrQuality, Ac3AttenuationControl, Ac3BitstreamMode, Ac3CodingMode, Ac3DrcProfile, Ac3LfeFilter, Ac3MetadataControl, Eac3AttenuationControl, Eac3BitstreamMode, Eac3CodingMode, Eac3DcFilter, Eac3DrcLine, Eac3DrcRf, Eac3LfeControl, Eac3LfeFilter, Eac3MetadataControl, Eac3PassthroughControl, Eac3PhaseControl, Eac3StereoDownmix, Eac3SurroundExMode, Eac3SurroundMode, Eac3AtmosCodingMode, Eac3AtmosDrcLine, Eac3AtmosDrcRf, Mp2CodingMode, WavCodingMode, } from './audio-codec-settings';
|
|
21
|
+
export type { AacSettingsProps, Ac3SettingsProps, Eac3SettingsProps, Eac3AtmosSettingsProps, Mp2SettingsProps, WavSettingsProps, } from './audio-codec-settings';
|
|
22
|
+
/**
|
|
23
|
+
* Represents a MediaLive Channel.
|
|
24
|
+
*/
|
|
25
|
+
export interface IChannel extends IResource, IChannelRef {
|
|
26
|
+
/**
|
|
27
|
+
* The ARN of the channel.
|
|
28
|
+
* @attribute
|
|
29
|
+
*/
|
|
30
|
+
readonly channelArn: string;
|
|
31
|
+
/**
|
|
32
|
+
* The ID of the channel.
|
|
33
|
+
* @attribute
|
|
34
|
+
*/
|
|
35
|
+
readonly channelId: string;
|
|
36
|
+
/**
|
|
37
|
+
* The IDs of the inputs attached to this channel.
|
|
38
|
+
* @attribute
|
|
39
|
+
*/
|
|
40
|
+
readonly channelInputs?: string[];
|
|
41
|
+
/**
|
|
42
|
+
* Collection of grant methods for this channel — start, stop, and update its schedule.
|
|
43
|
+
*/
|
|
44
|
+
readonly grants: ChannelGrants;
|
|
45
|
+
/**
|
|
46
|
+
* Create a CloudWatch metric for this channel scoped to a specific pipeline.
|
|
47
|
+
*
|
|
48
|
+
* Channel metrics are published per-pipeline. `STANDARD` channels run two
|
|
49
|
+
* redundant pipelines (`PIPELINE_0` and `PIPELINE_1`); to cover both, build
|
|
50
|
+
* a metric for each. `SINGLE_PIPELINE` channels only publish on `PIPELINE_0`.
|
|
51
|
+
* See the
|
|
52
|
+
* {@link https://docs.aws.amazon.com/medialive/latest/ug/monitoring-eml-metrics.html | MediaLive metrics docs}
|
|
53
|
+
* for the full set of metric names and recommended statistics.
|
|
54
|
+
*/
|
|
55
|
+
metric(metricName: string, pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
56
|
+
/**
|
|
57
|
+
* Metric for the total number of active alerts on this channel.
|
|
58
|
+
*
|
|
59
|
+
* @default - max over 5 minutes
|
|
60
|
+
*/
|
|
61
|
+
metricActiveAlerts(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
62
|
+
/**
|
|
63
|
+
* Metric for the rate of inbound network traffic to MediaLive in Mbps.
|
|
64
|
+
*
|
|
65
|
+
* @default - average over 5 minutes
|
|
66
|
+
*/
|
|
67
|
+
metricNetworkIn(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
68
|
+
/**
|
|
69
|
+
* Metric for the rate of outbound network traffic from MediaLive in Mbps.
|
|
70
|
+
*
|
|
71
|
+
* @default - average over 5 minutes
|
|
72
|
+
*/
|
|
73
|
+
metricNetworkOut(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
74
|
+
/**
|
|
75
|
+
* Metric for the input video frame rate (frames per second).
|
|
76
|
+
*
|
|
77
|
+
* @default - max over 5 minutes
|
|
78
|
+
*/
|
|
79
|
+
metricInputVideoFrameRate(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
80
|
+
/**
|
|
81
|
+
* Metric for fill milliseconds — the time MediaLive has filled the video output
|
|
82
|
+
* with fill frames because the input did not deliver content within the
|
|
83
|
+
* expected window. A non-zero value indicates an unhealthy input.
|
|
84
|
+
*
|
|
85
|
+
* @default - max over 5 minutes
|
|
86
|
+
*/
|
|
87
|
+
metricFillMsec(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
88
|
+
/**
|
|
89
|
+
* Metric for input loss seconds (RTP and MediaConnect inputs only).
|
|
90
|
+
*
|
|
91
|
+
* @default - sum over 5 minutes
|
|
92
|
+
*/
|
|
93
|
+
metricInputLossSeconds(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
94
|
+
/**
|
|
95
|
+
* Metric for dropped frames. A non-zero value indicates the encoder cannot
|
|
96
|
+
* keep up with the incoming video in real time.
|
|
97
|
+
*
|
|
98
|
+
* @default - sum over 5 minutes
|
|
99
|
+
*/
|
|
100
|
+
metricDroppedFrames(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
101
|
+
/**
|
|
102
|
+
* Metric for SVQ time (speed-vs-quality), expressed as a percent. Indicates
|
|
103
|
+
* the share of time MediaLive reduced quality optimisations to keep up with
|
|
104
|
+
* real-time output.
|
|
105
|
+
*
|
|
106
|
+
* @default - max over 5 minutes
|
|
107
|
+
*/
|
|
108
|
+
metricSvqTime(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* MediaLive pipeline (channel pipeline 0 or 1).
|
|
112
|
+
*
|
|
113
|
+
* `STANDARD` channels run two redundant pipelines (`PIPELINE_0`, `PIPELINE_1`).
|
|
114
|
+
* `SINGLE_PIPELINE` channels run only `PIPELINE_0`.
|
|
115
|
+
*/
|
|
116
|
+
export declare class Pipeline {
|
|
117
|
+
private readonly value;
|
|
118
|
+
/** Pipeline 0. Always available on every channel. */
|
|
119
|
+
static readonly PIPELINE_0: Pipeline;
|
|
120
|
+
/** Pipeline 1. Available only on `STANDARD` channels. */
|
|
121
|
+
static readonly PIPELINE_1: Pipeline;
|
|
122
|
+
private constructor();
|
|
123
|
+
/** Returns the CloudWatch dimension value for this pipeline (`'0'` or `'1'`). */
|
|
124
|
+
toString(): string;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* The class of the channel. Determines the pipeline redundancy.
|
|
128
|
+
*/
|
|
129
|
+
export declare class ChannelClass {
|
|
130
|
+
/** Single pipeline — no redundancy */
|
|
131
|
+
static readonly SINGLE_PIPELINE: ChannelClass;
|
|
132
|
+
/** Standard — two pipelines for redundancy */
|
|
133
|
+
static readonly STANDARD: ChannelClass;
|
|
134
|
+
/** A value not yet modelled by AWS CDK. */
|
|
135
|
+
static of(value: string): ChannelClass;
|
|
136
|
+
/** The underlying string value passed to CloudFormation. */
|
|
137
|
+
readonly value: string;
|
|
138
|
+
private constructor();
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* The log level for the channel.
|
|
142
|
+
*/
|
|
143
|
+
export declare class LogLevel {
|
|
144
|
+
/** Log errors only */
|
|
145
|
+
static readonly ERROR: LogLevel;
|
|
146
|
+
/** Log warnings and errors */
|
|
147
|
+
static readonly WARNING: LogLevel;
|
|
148
|
+
/** Log info, warnings, and errors */
|
|
149
|
+
static readonly INFO: LogLevel;
|
|
150
|
+
/** Log everything */
|
|
151
|
+
static readonly DEBUG: LogLevel;
|
|
152
|
+
/** Disable logging */
|
|
153
|
+
static readonly DISABLED: LogLevel;
|
|
154
|
+
/** A value not yet modelled by AWS CDK. */
|
|
155
|
+
static of(value: string): LogLevel;
|
|
156
|
+
/** The underlying string value passed to CloudFormation. */
|
|
157
|
+
readonly value: string;
|
|
158
|
+
private constructor();
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* The source of timecode for the channel outputs.
|
|
162
|
+
*/
|
|
163
|
+
export declare class TimecodeSource {
|
|
164
|
+
/** Use embedded timecode from the source. Falls back to zero-based if not detected. */
|
|
165
|
+
static readonly EMBEDDED: TimecodeSource;
|
|
166
|
+
/** Use the system clock (UTC). */
|
|
167
|
+
static readonly SYSTEMCLOCK: TimecodeSource;
|
|
168
|
+
/** Start at 00:00:00:00. */
|
|
169
|
+
static readonly ZEROBASED: TimecodeSource;
|
|
170
|
+
/** A value not yet modelled by AWS CDK. */
|
|
171
|
+
static of(value: string): TimecodeSource;
|
|
172
|
+
/** The underlying string value passed to CloudFormation. */
|
|
173
|
+
readonly value: string;
|
|
174
|
+
private constructor();
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Timecode configuration for the channel.
|
|
178
|
+
*/
|
|
179
|
+
export interface TimecodeConfig {
|
|
180
|
+
/**
|
|
181
|
+
* The source of timecode.
|
|
182
|
+
* @default TimecodeSource.EMBEDDED
|
|
183
|
+
*/
|
|
184
|
+
readonly source?: TimecodeSource;
|
|
185
|
+
/**
|
|
186
|
+
* The threshold in frames beyond which output timecode is resynchronized to the input timecode.
|
|
187
|
+
* @default - no sync threshold
|
|
188
|
+
*/
|
|
189
|
+
readonly syncThreshold?: number;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Properties for creating a MediaLive Channel.
|
|
193
|
+
*/
|
|
194
|
+
export interface ChannelProps {
|
|
195
|
+
/**
|
|
196
|
+
* The name of the channel.
|
|
197
|
+
* @default - auto-generated
|
|
198
|
+
*/
|
|
199
|
+
readonly channelName?: string;
|
|
200
|
+
/**
|
|
201
|
+
* The class of the channel (STANDARD for redundancy, SINGLE_PIPELINE for cost savings).
|
|
202
|
+
* @default ChannelClass.SINGLE_PIPELINE
|
|
203
|
+
*/
|
|
204
|
+
readonly channelClass?: ChannelClass;
|
|
205
|
+
/**
|
|
206
|
+
* The IAM role for MediaLive to assume when running this channel.
|
|
207
|
+
*
|
|
208
|
+
* [disable-awslint:prefer-ref-interface]
|
|
209
|
+
*
|
|
210
|
+
* @default - a role is auto-created with confused-deputy prevention
|
|
211
|
+
*/
|
|
212
|
+
readonly role?: IRole;
|
|
213
|
+
/**
|
|
214
|
+
* The input attachments for this channel. At least one is required.
|
|
215
|
+
* Additional inputs can be added with `addInput()`.
|
|
216
|
+
*/
|
|
217
|
+
readonly inputs: InputAttachment[];
|
|
218
|
+
/**
|
|
219
|
+
* The initial output groups for this channel. At least one is required.
|
|
220
|
+
* Additional output groups can be added with `addOutputGroup()`.
|
|
221
|
+
*
|
|
222
|
+
* A single channel can contain multiple output groups with different codecs
|
|
223
|
+
* (e.g. H.264 and H.265 ladders) sharing the same input.
|
|
224
|
+
*/
|
|
225
|
+
readonly outputGroups: OutputGroupConfiguration[];
|
|
226
|
+
/**
|
|
227
|
+
* The log level for the channel.
|
|
228
|
+
* @default LogLevel.DISABLED
|
|
229
|
+
*/
|
|
230
|
+
readonly logLevel?: LogLevel;
|
|
231
|
+
/**
|
|
232
|
+
* The input specification for this channel. Defines the expected codec, bitrate, and
|
|
233
|
+
* resolution of the inputs, and whether they are standard, CDI, or Elemental Link inputs.
|
|
234
|
+
* @default - InputSpecification.standard() (AVC codec, 20 Mbps max, HD resolution)
|
|
235
|
+
*/
|
|
236
|
+
readonly inputSpecification?: InputSpecification;
|
|
237
|
+
/**
|
|
238
|
+
* Global configuration settings for the channel.
|
|
239
|
+
* @default - default global configuration
|
|
240
|
+
*/
|
|
241
|
+
readonly globalConfiguration?: GlobalConfiguration;
|
|
242
|
+
/**
|
|
243
|
+
* Tags to add to the channel.
|
|
244
|
+
* @default - no tags
|
|
245
|
+
*/
|
|
246
|
+
readonly tags?: {
|
|
247
|
+
[key: string]: string;
|
|
248
|
+
};
|
|
249
|
+
/**
|
|
250
|
+
* Maintenance window configuration for the channel.
|
|
251
|
+
* @default - default maintenance window
|
|
252
|
+
*/
|
|
253
|
+
readonly maintenance?: MaintenanceSettings;
|
|
254
|
+
/**
|
|
255
|
+
* Timecode configuration for the channel.
|
|
256
|
+
* @default - EMBEDDED source, no sync threshold
|
|
257
|
+
*/
|
|
258
|
+
readonly timecodeConfig?: TimecodeConfig;
|
|
259
|
+
/**
|
|
260
|
+
* VPC output settings. When set, all output endpoints are created in the specified VPC.
|
|
261
|
+
* @default - no VPC (outputs use public endpoints)
|
|
262
|
+
*/
|
|
263
|
+
readonly vpc?: VpcOutputSettings;
|
|
264
|
+
/**
|
|
265
|
+
* Settings for blanking video, audio, and captions during ad avails.
|
|
266
|
+
* @default - avail blanking disabled
|
|
267
|
+
*/
|
|
268
|
+
readonly availBlanking?: AvailBlanking;
|
|
269
|
+
/**
|
|
270
|
+
* Ad avail handling configuration. Defines how SCTE-35 markers are processed.
|
|
271
|
+
* @default - no avail configuration
|
|
272
|
+
*/
|
|
273
|
+
readonly availSettings?: AvailSettings;
|
|
274
|
+
/**
|
|
275
|
+
* Which output groups receive SCTE-35 segmentation cues.
|
|
276
|
+
* @default - service default
|
|
277
|
+
*/
|
|
278
|
+
readonly scte35SegmentationScope?: Scte35SegmentationScope;
|
|
279
|
+
/**
|
|
280
|
+
* Feature activations for the channel (e.g. Input Prepare schedule actions).
|
|
281
|
+
* @default - all features disabled
|
|
282
|
+
*/
|
|
283
|
+
readonly featureActivations?: FeatureActivations;
|
|
284
|
+
/**
|
|
285
|
+
* Motion graphics overlay configuration.
|
|
286
|
+
* @default - motion graphics disabled
|
|
287
|
+
*/
|
|
288
|
+
readonly motionGraphicsConfiguration?: MotionGraphicsConfiguration;
|
|
289
|
+
/**
|
|
290
|
+
* Nielsen watermark configuration.
|
|
291
|
+
* @default - no Nielsen configuration
|
|
292
|
+
*/
|
|
293
|
+
readonly nielsenConfiguration?: NielsenConfiguration;
|
|
294
|
+
/**
|
|
295
|
+
* Thumbnail generation configuration.
|
|
296
|
+
* @default - thumbnails disabled
|
|
297
|
+
*/
|
|
298
|
+
readonly thumbnailConfiguration?: ThumbnailConfiguration;
|
|
299
|
+
/**
|
|
300
|
+
* Blackout slate configuration. Controls what is displayed during blackout events.
|
|
301
|
+
* @default - blackout slate disabled
|
|
302
|
+
*/
|
|
303
|
+
readonly blackoutSlate?: BlackoutSlate;
|
|
304
|
+
/**
|
|
305
|
+
* Global color correction rules applied to all outputs.
|
|
306
|
+
* @default - no color corrections
|
|
307
|
+
*/
|
|
308
|
+
readonly colorCorrections?: ColorCorrection[];
|
|
309
|
+
/**
|
|
310
|
+
* Anywhere settings for running the channel on AWS Elemental Anywhere.
|
|
311
|
+
* @default - not an Anywhere channel
|
|
312
|
+
*/
|
|
313
|
+
readonly anywhereSettings?: AnywhereSettings;
|
|
314
|
+
/**
|
|
315
|
+
* The engine version for the channel.
|
|
316
|
+
* @default - service default
|
|
317
|
+
*/
|
|
318
|
+
readonly channelEngineVersion?: string;
|
|
319
|
+
/**
|
|
320
|
+
* Linked channel settings for primary/follower channel configurations.
|
|
321
|
+
* @default - not a linked channel
|
|
322
|
+
*/
|
|
323
|
+
readonly linkedChannelSettings?: LinkedChannelSettings;
|
|
324
|
+
/**
|
|
325
|
+
* Input security groups to associate with the channel. Controls which IP addresses can connect
|
|
326
|
+
* to the channel's outputs (pull-style outputs where downstream systems initiate connections).
|
|
327
|
+
*
|
|
328
|
+
* @default - no channel security groups
|
|
329
|
+
*/
|
|
330
|
+
readonly channelSecurityGroups?: IInputSecurityGroupRef[];
|
|
331
|
+
/**
|
|
332
|
+
* An AWS Elemental Inference feed to send this channel's media to for inference
|
|
333
|
+
* processing.
|
|
334
|
+
*
|
|
335
|
+
* Future breaking change: this will change when Elemental Inference is released as an L2 construct.
|
|
336
|
+
*
|
|
337
|
+
* @default - the channel is not associated to an inference feed
|
|
338
|
+
*/
|
|
339
|
+
readonly inferenceFeedArn?: string;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Action to take when the current input completes.
|
|
343
|
+
*/
|
|
344
|
+
export declare class InputEndAction {
|
|
345
|
+
/** Restart at the beginning of the first input */
|
|
346
|
+
static readonly SWITCH_AND_LOOP_INPUTS: InputEndAction;
|
|
347
|
+
/** Do nothing — show slate or black until next input switch */
|
|
348
|
+
static readonly NONE: InputEndAction;
|
|
349
|
+
/** A value not yet modelled by AWS CDK. */
|
|
350
|
+
static of(value: string): InputEndAction;
|
|
351
|
+
/** The underlying string value passed to CloudFormation. */
|
|
352
|
+
readonly value: string;
|
|
353
|
+
private constructor();
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Source of output timing.
|
|
357
|
+
*/
|
|
358
|
+
export declare class OutputTimingSource {
|
|
359
|
+
/** Use the input clock */
|
|
360
|
+
static readonly INPUT_CLOCK: OutputTimingSource;
|
|
361
|
+
/** Use the system clock */
|
|
362
|
+
static readonly SYSTEM_CLOCK: OutputTimingSource;
|
|
363
|
+
/** A value not yet modelled by AWS CDK. */
|
|
364
|
+
static of(value: string): OutputTimingSource;
|
|
365
|
+
/** The underlying string value passed to CloudFormation. */
|
|
366
|
+
readonly value: string;
|
|
367
|
+
private constructor();
|
|
368
|
+
}
|
|
369
|
+
/** The image MediaLive substitutes into the output on input loss. */
|
|
370
|
+
export declare class InputLossImageType {
|
|
371
|
+
/** Substitute a solid color. */
|
|
372
|
+
static readonly COLOR: InputLossImageType;
|
|
373
|
+
/** Substitute a slate image. */
|
|
374
|
+
static readonly SLATE: InputLossImageType;
|
|
375
|
+
/** A value not yet modelled by AWS CDK. */
|
|
376
|
+
static of(value: string): InputLossImageType;
|
|
377
|
+
/** The underlying string value passed to CloudFormation. */
|
|
378
|
+
readonly value: string;
|
|
379
|
+
private constructor();
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Behavior on input loss: substitute black, optionally repeat the last frame, then show a solid
|
|
383
|
+
* color or a slate image.
|
|
384
|
+
*/
|
|
385
|
+
export interface InputLossBehavior {
|
|
386
|
+
/**
|
|
387
|
+
* How long to substitute black before showing the input-loss image (up to Duration.seconds(1000);
|
|
388
|
+
* Duration.seconds(1000) is interpreted as infinite).
|
|
389
|
+
* @default - service default
|
|
390
|
+
*/
|
|
391
|
+
readonly blackFrame?: Duration;
|
|
392
|
+
/**
|
|
393
|
+
* How long to repeat the previous picture before substituting black (up to Duration.seconds(1000);
|
|
394
|
+
* Duration.seconds(1000) is interpreted as infinite).
|
|
395
|
+
* @default - service default
|
|
396
|
+
*/
|
|
397
|
+
readonly repeatFrame?: Duration;
|
|
398
|
+
/**
|
|
399
|
+
* Whether to substitute a solid color or a slate image after the black period.
|
|
400
|
+
* @default - service default
|
|
401
|
+
*/
|
|
402
|
+
readonly imageType?: InputLossImageType;
|
|
403
|
+
/**
|
|
404
|
+
* The image color as 6 hex characters (RGB). Used when InputLossImageType.COLOR.
|
|
405
|
+
* @default - service default
|
|
406
|
+
*/
|
|
407
|
+
readonly imageColor?: string;
|
|
408
|
+
/**
|
|
409
|
+
* The slate image to display. Used when `imageType` is SLATE. Provide a `FileLocation`
|
|
410
|
+
* referencing an S3 bucket (`FileLocation.fromBucket`, which auto-grants read access) or
|
|
411
|
+
* a URL (`FileLocation.url`).
|
|
412
|
+
* @default - service default
|
|
413
|
+
*/
|
|
414
|
+
readonly imageSlate?: FileLocation;
|
|
415
|
+
}
|
|
416
|
+
/** Properties for epoch output locking. */
|
|
417
|
+
export interface EpochOutputLockingProps {
|
|
418
|
+
/**
|
|
419
|
+
* A custom epoch (ISO-8601 timestamp) to lock outputs to.
|
|
420
|
+
* @default - service default
|
|
421
|
+
*/
|
|
422
|
+
readonly customEpoch?: string;
|
|
423
|
+
/**
|
|
424
|
+
* A jam-sync time (ISO-8601 timestamp).
|
|
425
|
+
* @default - service default
|
|
426
|
+
*/
|
|
427
|
+
readonly jamSyncTime?: string;
|
|
428
|
+
}
|
|
429
|
+
/** The method MediaLive uses to synchronise pipelines for pipeline output locking. */
|
|
430
|
+
export declare class PipelineLockingMethod {
|
|
431
|
+
/** Use the timecode in the source (the default). Requires reliable embedded timecodes. */
|
|
432
|
+
static readonly SOURCE_TIMECODE: PipelineLockingMethod;
|
|
433
|
+
/**
|
|
434
|
+
* Lock frames the encoder identifies as having matching content (visual signature comparison).
|
|
435
|
+
* Does not require embedded timecodes; existing timecodes are ignored for locking decisions.
|
|
436
|
+
*/
|
|
437
|
+
static readonly VIDEO_ALIGNMENT: PipelineLockingMethod;
|
|
438
|
+
/** A value not yet modelled by AWS CDK. */
|
|
439
|
+
static of(value: string): PipelineLockingMethod;
|
|
440
|
+
/** The underlying string value passed to CloudFormation. */
|
|
441
|
+
readonly value: string;
|
|
442
|
+
private constructor();
|
|
443
|
+
}
|
|
444
|
+
/** Properties for pipeline output locking. */
|
|
445
|
+
export interface PipelineOutputLockingProps {
|
|
446
|
+
/**
|
|
447
|
+
* A custom epoch (ISO-8601 timestamp) to lock outputs to.
|
|
448
|
+
* @default - service default
|
|
449
|
+
*/
|
|
450
|
+
readonly customEpoch?: string;
|
|
451
|
+
/**
|
|
452
|
+
* The method MediaLive uses to synchronise the pipelines.
|
|
453
|
+
* @default - SOURCE_TIMECODE, applied by MediaLive
|
|
454
|
+
*/
|
|
455
|
+
readonly method?: PipelineLockingMethod;
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Output locking synchronises the frames emitted by a channel's two pipelines. Use the static
|
|
459
|
+
* factory methods to select a strategy:
|
|
460
|
+
*
|
|
461
|
+
* - `OutputLocking.pipeline()` — synchronise each pipeline's output to the other.
|
|
462
|
+
* - `OutputLocking.epoch()` — synchronise each pipeline's output to the Unix epoch.
|
|
463
|
+
* - `OutputLocking.disabled()` — do not synchronise pipelines.
|
|
464
|
+
*
|
|
465
|
+
* @see https://docs.aws.amazon.com/medialive/latest/ug/plan-redundancy-mode.html
|
|
466
|
+
* @see https://docs.aws.amazon.com/medialive/latest/ug/pipeline-lock.html
|
|
467
|
+
*/
|
|
468
|
+
export declare abstract class OutputLocking {
|
|
469
|
+
/** Disable output locking (optionally with a custom epoch). */
|
|
470
|
+
static disabled(customEpoch?: string): OutputLocking;
|
|
471
|
+
/** Lock outputs to an epoch. */
|
|
472
|
+
static epoch(props?: EpochOutputLockingProps): OutputLocking;
|
|
473
|
+
/** Lock pipelines to each other. */
|
|
474
|
+
static pipeline(props?: PipelineOutputLockingProps): OutputLocking;
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Global configuration settings that apply to the entire channel.
|
|
478
|
+
*/
|
|
479
|
+
export interface GlobalConfiguration {
|
|
480
|
+
/**
|
|
481
|
+
* The initial audio gain for the channel (-60 to 60 dB).
|
|
482
|
+
* @default - service default
|
|
483
|
+
*/
|
|
484
|
+
readonly initialAudioGain?: number;
|
|
485
|
+
/**
|
|
486
|
+
* Action to take when the current input completes.
|
|
487
|
+
* @default - service default
|
|
488
|
+
*/
|
|
489
|
+
readonly inputEndAction?: InputEndAction;
|
|
490
|
+
/**
|
|
491
|
+
* Source of output timing.
|
|
492
|
+
* @default - service default
|
|
493
|
+
*/
|
|
494
|
+
readonly outputTimingSource?: OutputTimingSource;
|
|
495
|
+
/**
|
|
496
|
+
* Enable support for low framerate inputs (e.g. music channels with less than 1 fps).
|
|
497
|
+
* @default false
|
|
498
|
+
*/
|
|
499
|
+
readonly supportLowFramerateInputs?: boolean;
|
|
500
|
+
/**
|
|
501
|
+
* Behavior on input loss (substitute black / repeat frame, then a color or slate image).
|
|
502
|
+
* @default - service default
|
|
503
|
+
*/
|
|
504
|
+
readonly inputLossBehavior?: InputLossBehavior;
|
|
505
|
+
/**
|
|
506
|
+
* How MediaLive pipelines are synchronised — `OutputLocking.pipeline()`,
|
|
507
|
+
* `OutputLocking.epoch()`, or `OutputLocking.disabled()`.
|
|
508
|
+
*
|
|
509
|
+
* @see https://docs.aws.amazon.com/medialive/latest/ug/plan-redundancy-mode.html
|
|
510
|
+
* @see https://docs.aws.amazon.com/medialive/latest/ug/pipeline-lock.html
|
|
511
|
+
* @default - service default
|
|
512
|
+
*/
|
|
513
|
+
readonly outputLocking?: OutputLocking;
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* Day of the week for maintenance.
|
|
517
|
+
*/
|
|
518
|
+
export declare class MaintenanceDay {
|
|
519
|
+
/** Monday */
|
|
520
|
+
static readonly MONDAY: MaintenanceDay;
|
|
521
|
+
/** Tuesday */
|
|
522
|
+
static readonly TUESDAY: MaintenanceDay;
|
|
523
|
+
/** Wednesday */
|
|
524
|
+
static readonly WEDNESDAY: MaintenanceDay;
|
|
525
|
+
/** Thursday */
|
|
526
|
+
static readonly THURSDAY: MaintenanceDay;
|
|
527
|
+
/** Friday */
|
|
528
|
+
static readonly FRIDAY: MaintenanceDay;
|
|
529
|
+
/** Saturday */
|
|
530
|
+
static readonly SATURDAY: MaintenanceDay;
|
|
531
|
+
/** Sunday */
|
|
532
|
+
static readonly SUNDAY: MaintenanceDay;
|
|
533
|
+
/** A value not yet modelled by AWS CDK. */
|
|
534
|
+
static of(value: string): MaintenanceDay;
|
|
535
|
+
/** The underlying string value passed to CloudFormation. */
|
|
536
|
+
readonly value: string;
|
|
537
|
+
private constructor();
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Maintenance window settings for the channel.
|
|
541
|
+
*/
|
|
542
|
+
export interface MaintenanceSettings {
|
|
543
|
+
/**
|
|
544
|
+
* The day of the week for maintenance.
|
|
545
|
+
*/
|
|
546
|
+
readonly day: MaintenanceDay;
|
|
547
|
+
/**
|
|
548
|
+
* The start time for maintenance in UTC (HH:MM format, e.g. '02:00').
|
|
549
|
+
* @default '02:00'
|
|
550
|
+
*/
|
|
551
|
+
readonly time?: string;
|
|
552
|
+
}
|
|
553
|
+
/**
|
|
554
|
+
* Anywhere settings for running the channel on AWS Elemental Anywhere.
|
|
555
|
+
*/
|
|
556
|
+
export interface AnywhereSettings {
|
|
557
|
+
/**
|
|
558
|
+
* The cluster for this channel.
|
|
559
|
+
*/
|
|
560
|
+
readonly cluster: IClusterRef;
|
|
561
|
+
/**
|
|
562
|
+
* The channel placement group for this channel.
|
|
563
|
+
*
|
|
564
|
+
* @default - no placement group
|
|
565
|
+
*/
|
|
566
|
+
readonly channelPlacementGroup?: IChannelPlacementGroupRef;
|
|
567
|
+
}
|
|
568
|
+
/**
|
|
569
|
+
* Linked channel settings for primary/follower channel configurations.
|
|
570
|
+
* Use the static factory methods to create.
|
|
571
|
+
*/
|
|
572
|
+
export declare abstract class LinkedChannelSettings {
|
|
573
|
+
/**
|
|
574
|
+
* Configure this channel as a primary in a linked channel pair.
|
|
575
|
+
*/
|
|
576
|
+
static primary(): LinkedChannelSettings;
|
|
577
|
+
/**
|
|
578
|
+
* Configure this channel as a follower of a primary channel.
|
|
579
|
+
*
|
|
580
|
+
* @param primaryChannel The primary channel this channel follows. Use a `Channel`
|
|
581
|
+
* instance or import one with `Channel.fromChannelArn()`.
|
|
582
|
+
*/
|
|
583
|
+
static follower(primaryChannel: IChannel): LinkedChannelSettings;
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* VPC output settings for the channel.
|
|
587
|
+
* When configured, all output endpoints are created within the specified VPC.
|
|
588
|
+
*/
|
|
589
|
+
export interface VpcOutputSettings {
|
|
590
|
+
/**
|
|
591
|
+
* The subnets to use for the channel's output endpoints.
|
|
592
|
+
* For STANDARD channels, provide subnets in two different availability zones.
|
|
593
|
+
* For SINGLE_PIPELINE channels, provide at least one subnet.
|
|
594
|
+
*/
|
|
595
|
+
readonly subnets: ISubnetRef[];
|
|
596
|
+
/**
|
|
597
|
+
* The security groups to attach to the output VPC network interfaces.
|
|
598
|
+
*
|
|
599
|
+
* @default - VPC default security group
|
|
600
|
+
*/
|
|
601
|
+
readonly securityGroups?: ISecurityGroupRef[];
|
|
602
|
+
/**
|
|
603
|
+
* Public address allocation IDs to associate with ENIs created in the output VPC.
|
|
604
|
+
* Must specify one for SINGLE_PIPELINE, two for STANDARD channels.
|
|
605
|
+
* @default - no public addresses
|
|
606
|
+
*/
|
|
607
|
+
readonly publicAddressAllocationIds?: string[];
|
|
608
|
+
}
|
|
609
|
+
/**
|
|
610
|
+
* Shared metric implementation for both real and imported channels.
|
|
611
|
+
*/
|
|
612
|
+
declare abstract class ChannelBase extends Resource implements IChannel {
|
|
613
|
+
abstract readonly channelArn: string;
|
|
614
|
+
abstract readonly channelId: string;
|
|
615
|
+
abstract readonly channelInputs?: string[];
|
|
616
|
+
abstract get channelRef(): ChannelReference;
|
|
617
|
+
/** Collection of grant methods for this channel — start, stop, and update its schedule. */
|
|
618
|
+
readonly grants: ChannelGrants;
|
|
619
|
+
metric(metricName: string, pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
620
|
+
metricActiveAlerts(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
621
|
+
metricNetworkIn(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
622
|
+
metricNetworkOut(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
623
|
+
metricInputVideoFrameRate(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
624
|
+
metricFillMsec(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
625
|
+
metricInputLossSeconds(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
626
|
+
metricDroppedFrames(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
627
|
+
metricSvqTime(pipeline: Pipeline, props?: MetricOptions): Metric;
|
|
628
|
+
}
|
|
629
|
+
/**
|
|
630
|
+
* Defines an AWS Elemental MediaLive Channel.
|
|
631
|
+
*/
|
|
632
|
+
export declare class Channel extends ChannelBase {
|
|
633
|
+
/** Uniquely identifies this class. */
|
|
634
|
+
static readonly PROPERTY_INJECTION_ID: string;
|
|
635
|
+
/** Import an existing channel by its ARN. The id is parsed out of the ARN. */
|
|
636
|
+
static fromChannelArn(scope: Construct, id: string, channelArn: string): IChannel;
|
|
637
|
+
readonly channelArn: string;
|
|
638
|
+
readonly channelId: string;
|
|
639
|
+
readonly channelInputs?: string[];
|
|
640
|
+
/** The IAM role used by this channel. */
|
|
641
|
+
readonly role: IRole;
|
|
642
|
+
/** A reference to this Channel resource. */
|
|
643
|
+
get channelRef(): ChannelReference;
|
|
644
|
+
private readonly inputAttachments;
|
|
645
|
+
private readonly attachments;
|
|
646
|
+
private readonly hasAnywhereSettings;
|
|
647
|
+
private readonly outputGroups;
|
|
648
|
+
/**
|
|
649
|
+
* Whether the caller supplied their own `role`. When true, the channel makes no automatic
|
|
650
|
+
* grants.
|
|
651
|
+
*/
|
|
652
|
+
private readonly userProvidedRole;
|
|
653
|
+
private readonly usesEpochLocking;
|
|
654
|
+
constructor(scope: Construct, id: string, props: ChannelProps);
|
|
655
|
+
/**
|
|
656
|
+
* Grant the channel's service role the permissions implied by channel-level features.
|
|
657
|
+
*
|
|
658
|
+
* Mirrors the AWS-documented MediaLive trusted-entity requirements:
|
|
659
|
+
* https://docs.aws.amazon.com/medialive/latest/ug/trusted-entity-requirements.html
|
|
660
|
+
*
|
|
661
|
+
* Resource-level scoping is applied where the service supports it; EC2 `Describe*`
|
|
662
|
+
* actions don't support resource-level permissions, so they require `*`.
|
|
663
|
+
*/
|
|
664
|
+
private grantServiceRolePermissions;
|
|
665
|
+
/**
|
|
666
|
+
* Attach an input to this channel.
|
|
667
|
+
*/
|
|
668
|
+
addInput(attachment: InputAttachment): void;
|
|
669
|
+
/**
|
|
670
|
+
* Validate automatic-input-failover pairs against MediaLive's create-time rules. The secondary
|
|
671
|
+
* input is rejected by the service at deploy unless it is also attached to the channel, so we
|
|
672
|
+
* fail fast at synth.
|
|
673
|
+
*/
|
|
674
|
+
/**
|
|
675
|
+
* Synth-time input validations, run over all attached inputs (initial + addInput()).
|
|
676
|
+
*/
|
|
677
|
+
private validateInputs;
|
|
678
|
+
private buildInputAttachment;
|
|
679
|
+
/**
|
|
680
|
+
* Add an output group to this channel.
|
|
681
|
+
*
|
|
682
|
+
* Outputs are declared up front via the `outputs` prop on the group configuration.
|
|
683
|
+
*/
|
|
684
|
+
addOutputGroup(config: OutputGroupConfiguration): void;
|
|
685
|
+
/** Synth-time epoch-locking checks for configs MediaLive rejects at deploy. */
|
|
686
|
+
private validateEpochLocking;
|
|
687
|
+
}
|