@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,924 @@
1
+ export * from './destinations';
2
+ export * from './enums';
3
+ export * from './outputs';
4
+ import type { IChannel as IMediaPackageV2Channel } from '@aws-cdk/aws-mediapackagev2-alpha';
5
+ import type { Duration, SecretValue } from 'aws-cdk-lib';
6
+ import type { OutputDestination, S3OutputDestination, UdpOutputDestination } from './destinations';
7
+ import { MediaPackageV2Destination, MediaConnectRouterSettings } from './destinations';
8
+ import { HlsMode, HlsInputLossAction, RtmpAuthenticationScheme, HlsClientCache, HlsCodecSpecification, HlsDirectoryStructure, HlsDiscontinuityTags, HlsId3SegmentTaggingState, HlsIFrameOnlyPlaylists, HlsIncompleteSegmentBehavior, HlsManifestCompression, HlsManifestDurationFormat, HlsOutputSelection, HlsProgramDateTime, HlsProgramDateTimeClock, HlsRedundantManifest, HlsSegmentationMode, HlsStreamInfResolution, HlsTsFileMode, HttpTransferMode, HlsTimedMetadataId3Frame, UdpInputLossAction, Id3Behavior, KlvBehavior, NielsenId3Behavior, Scte35Type, TimedMetadataId3Frame, TimedMetadataPassthrough, UdpTimedMetadataId3Frame, SrtInputLossAction } from './enums';
9
+ import type { S3CannedAcl, HlsEncryptionType, HlsIvInManifest, HlsIvSource, HlsCaptionLanguageSetting, RtmpCacheFullBehavior, RtmpCaptionData, RtmpInputLossAction, RtmpIncludeFillerNalUnits, MsSmoothAudioOnlyTimecodeControl, MsSmoothCertificateMode, MsSmoothEventIdMode, MsSmoothEventStopBehavior, MsSmoothInputLossAction, MsSmoothSegmentationMode, MsSmoothSparseTrackType, MsSmoothStreamManifestBehavior, MsSmoothTimestampOffsetMode, HlsAdMarkers, RtmpAdMarkers } from './enums';
10
+ import type { MediaConnectRouterOutputDefinition, MediaPackageV2OutputDefinition, HlsOutputDefinition, UdpOutputDefinition, ArchiveOutputDefinition, RtmpOutputDefinition, SrtOutputDefinition, CmafIngestOutputDefinition, FrameCaptureOutputDefinition, MsSmoothOutputDefinition } from './outputs';
11
+ import type { Segment } from './shared';
12
+ /**
13
+ * Configuration for an output group. Use the static factory methods to create.
14
+ */
15
+ export declare abstract class OutputGroupConfiguration {
16
+ /**
17
+ * Create a MediaPackage V2 output group that delivers to a single channel, auto-mapping each
18
+ * pipeline to a MediaPackage ingest endpoint based on the channel class.
19
+ */
20
+ static mediaPackageV2(props: MediaPackageV2OutputGroupProps): OutputGroupConfiguration;
21
+ /**
22
+ * Create a MediaPackage V2 output group with explicit per-pipeline destinations (channel +
23
+ * endpoint per pipeline). Use for cross-region delivery or pinning a pipeline to an endpoint.
24
+ */
25
+ static mediaPackageV2PerPipeline(props: MediaPackageV2PerPipelineOutputGroupProps): OutputGroupConfiguration;
26
+ /**
27
+ * Create a MediaConnect Router output group, delivering each channel pipeline to a MediaConnect
28
+ * Router. Transit encryption defaults to AUTOMATIC; override per pipeline via `routerSettings`.
29
+ *
30
+ * The downstream wiring (which router input each pipeline feeds) is configured on the
31
+ * MediaConnect side, referencing this output group by `name` and the pipeline id.
32
+ */
33
+ static mediaConnectRouter(props: MediaConnectRouterOutputGroupProps): OutputGroupConfiguration;
34
+ /** Create an HLS output group configuration. */
35
+ static hls(props: HlsOutputGroupProps): OutputGroupConfiguration;
36
+ /** Create a UDP output group configuration. */
37
+ static udp(props: UdpOutputGroupProps): OutputGroupConfiguration;
38
+ /** Create an Archive (S3) output group configuration. */
39
+ static archive(props: ArchiveOutputGroupProps): OutputGroupConfiguration;
40
+ /** Create an RTMP output group configuration. */
41
+ static rtmp(props: RtmpOutputGroupProps): OutputGroupConfiguration;
42
+ /** Create an SRT output group configuration. */
43
+ static srt(props: SrtOutputGroupProps): OutputGroupConfiguration;
44
+ /** Create a CMAF Ingest output group configuration. */
45
+ static cmafIngest(props: CmafIngestOutputGroupProps): OutputGroupConfiguration;
46
+ /**
47
+ * Create a Frame Capture output group configuration.
48
+ *
49
+ * A channel that includes a Frame Capture output group must also include
50
+ * a separate video output group (e.g. Archive, HLS, UDP). Frame Capture
51
+ * cannot be the channel's only output group.
52
+ */
53
+ static frameCapture(props: FrameCaptureOutputGroupProps): OutputGroupConfiguration;
54
+ /** Create an MS Smooth output group configuration. */
55
+ static msSmooth(props: MsSmoothOutputGroupProps): OutputGroupConfiguration;
56
+ }
57
+ /**
58
+ * Maps a captions channel to an ISO 693-2 language code.
59
+ */
60
+ export interface CaptionLanguageMapping {
61
+ /** The closed caption channel number (1-4). */
62
+ readonly captionChannel: number;
63
+ /** A three-character ISO 639-2 language code. */
64
+ readonly languageCode: string;
65
+ /** The textual description of the language. */
66
+ readonly languageDescription: string;
67
+ }
68
+ /**
69
+ * Maps a captions channel to an ISO 639-2 language code for a CMAF Ingest output group.
70
+ *
71
+ * Unlike `CaptionLanguageMapping`, the CMAF Ingest variant has no language description.
72
+ */
73
+ export interface CmafCaptionLanguageMapping {
74
+ /** The closed caption channel number (1-4). */
75
+ readonly captionChannel: number;
76
+ /** A three-character ISO 639-2 language code. */
77
+ readonly languageCode: string;
78
+ }
79
+ /** Properties for HLS static key encryption. */
80
+ export interface HlsStaticKeyProps {
81
+ /**
82
+ * The URL of the license server that serves the static key.
83
+ *
84
+ * Required — MediaLive rejects this without a server URL, even though the underlying
85
+ * CloudFormation property is typed as optional.
86
+ */
87
+ readonly keyProviderServerUrl: string;
88
+ /** The static key value as a 32-character hexadecimal string. */
89
+ readonly staticKeyValue: SecretValue;
90
+ }
91
+ /** Properties for HLS S3 CDN settings. */
92
+ export interface HlsS3CdnProps {
93
+ /** The S3 canned ACL to apply to each output. @default - no canned ACL */
94
+ readonly cannedAcl?: S3CannedAcl;
95
+ }
96
+ /** Properties for HLS Basic PUT CDN settings. */
97
+ export interface HlsBasicPutCdnProps {
98
+ /** The number of seconds to wait before retrying a connection to the CDN. @default 1 */
99
+ readonly connectionRetryInterval?: number;
100
+ /** The size of the file cache for streaming outputs. @default Duration.seconds(300) */
101
+ readonly filecacheDuration?: Duration;
102
+ /** The number of retry attempts. @default 10 */
103
+ readonly numRetries?: number;
104
+ /** The number of seconds to wait before restarting after a failure. @default 1 */
105
+ readonly restartDelay?: number;
106
+ }
107
+ /** Properties for HLS Akamai CDN settings. */
108
+ export interface HlsAkamaiCdnProps {
109
+ /** The number of seconds to wait before retrying a connection to the CDN. @default 1 */
110
+ readonly connectionRetryInterval?: number;
111
+ /** The size of the file cache for streaming outputs. @default Duration.seconds(300) */
112
+ readonly filecacheDuration?: Duration;
113
+ /** Specifies whether to use chunked transfer encoding. @default HttpTransferMode.NON_CHUNKED */
114
+ readonly httpTransferMode?: HttpTransferMode;
115
+ /** The number of retry attempts. @default 10 */
116
+ readonly numRetries?: number;
117
+ /** The number of seconds to wait before restarting after a failure. @default 1 */
118
+ readonly restartDelay?: number;
119
+ /** The salt for Akamai authentication. @default - no salt */
120
+ readonly salt?: string;
121
+ /** The token for Akamai authentication. @default - no token */
122
+ readonly token?: string;
123
+ }
124
+ /** Properties for HLS WebDAV CDN settings. */
125
+ export interface HlsWebdavCdnProps {
126
+ /** The number of seconds to wait before retrying a connection to the CDN. @default 1 */
127
+ readonly connectionRetryInterval?: number;
128
+ /** The size of the file cache for streaming outputs. @default Duration.seconds(300) */
129
+ readonly filecacheDuration?: Duration;
130
+ /** Specifies whether to use chunked transfer encoding. @default HttpTransferMode.NON_CHUNKED */
131
+ readonly httpTransferMode?: HttpTransferMode;
132
+ /** The number of retry attempts. @default 10 */
133
+ readonly numRetries?: number;
134
+ /** The number of seconds to wait before restarting after a failure. @default 1 */
135
+ readonly restartDelay?: number;
136
+ }
137
+ /**
138
+ * Key provider settings for HLS encryption.
139
+ */
140
+ export declare class HlsKeyProviderSettings {
141
+ /** Use a static key for HLS encryption. */
142
+ static staticKey(props: HlsStaticKeyProps): HlsKeyProviderSettings;
143
+ private readonly config;
144
+ private constructor();
145
+ }
146
+ /**
147
+ * CDN settings for HLS output groups.
148
+ */
149
+ export declare class HlsCdnSettings {
150
+ /** Use Amazon S3 as the CDN for HLS output. */
151
+ static s3(props?: HlsS3CdnProps): HlsCdnSettings;
152
+ /** Use a basic HTTP PUT for HLS output. */
153
+ static basicPut(props?: HlsBasicPutCdnProps): HlsCdnSettings;
154
+ /** Use Akamai as the CDN for HLS output. */
155
+ static akamai(props?: HlsAkamaiCdnProps): HlsCdnSettings;
156
+ /** Use WebDAV as the CDN for HLS output. */
157
+ static webdav(props?: HlsWebdavCdnProps): HlsCdnSettings;
158
+ private readonly config;
159
+ private constructor();
160
+ }
161
+ /**
162
+ * Common properties shared by the MediaPackage V2 output group variants.
163
+ *
164
+ * @see https://docs.aws.amazon.com/medialive/latest/ug/creating-mediapackage-output-group.html
165
+ */
166
+ export interface MediaPackageV2OutputGroupBaseProps {
167
+ /** The name of this output group. Used as the destination reference ID. Underscores are normalised to hyphens internally. */
168
+ readonly name: string;
169
+ /**
170
+ * Configure additional destinations to fan out the output to extra MediaPackage V2
171
+ * channels, for example for cross-region delivery or backup packaging.
172
+ * These correspond to Destination 3/4 in the AWS console. Each additional destination is a
173
+ * single, explicit entry (channel + endpoint), independent of the channel class.
174
+ *
175
+ * @see https://docs.aws.amazon.com/medialive/latest/ug/creating-mediapackage-output-group.html
176
+ * @default - no additional destinations
177
+ */
178
+ readonly additionalDestinations?: MediaPackageV2Destination[];
179
+ /**
180
+ * The length of each media segment.
181
+ * @default - Segment.seconds(1)
182
+ */
183
+ readonly segment?: Segment;
184
+ /**
185
+ * The ID3 behavior.
186
+ * @default Id3Behavior.DISABLED
187
+ */
188
+ readonly id3Behavior?: Id3Behavior;
189
+ /**
190
+ * The KLV behavior.
191
+ * @default KlvBehavior.NO_PASSTHROUGH
192
+ */
193
+ readonly klvBehavior?: KlvBehavior;
194
+ /**
195
+ * The Nielsen ID3 behavior.
196
+ * @default NielsenId3Behavior.NO_PASSTHROUGH
197
+ */
198
+ readonly nielsenId3Behavior?: NielsenId3Behavior;
199
+ /**
200
+ * The SCTE-35 type.
201
+ * @default Scte35Type.SCTE_35_WITHOUT_SEGMENTATION
202
+ */
203
+ readonly scte35Type?: Scte35Type;
204
+ /**
205
+ * The timed metadata ID3 frame.
206
+ * @default TimedMetadataId3Frame.NONE
207
+ */
208
+ readonly timedMetadataId3Frame?: TimedMetadataId3Frame;
209
+ /**
210
+ * The timed metadata interval.
211
+ * @default Duration.seconds(10)
212
+ */
213
+ readonly timedMetadataId3Period?: Duration;
214
+ /**
215
+ * Whether timed metadata is passed through.
216
+ * @default TimedMetadataPassthrough.DISABLED
217
+ */
218
+ readonly timedMetadataPassthrough?: TimedMetadataPassthrough;
219
+ /**
220
+ * Caption language mappings for the MediaPackage V2 output.
221
+ * @default - no caption language mappings
222
+ */
223
+ readonly captionLanguageMappings?: CaptionLanguageMapping[];
224
+ /**
225
+ * The outputs for this output group.
226
+ *
227
+ * MediaPackage V2 uses CMAF ingest which requires one track per output.
228
+ * Create a separate output for each encode (e.g. one for HD video, one for SD video, one for audio).
229
+ * Do NOT put multiple encodes in a single output.
230
+ */
231
+ readonly outputs: MediaPackageV2OutputDefinition[];
232
+ }
233
+ /**
234
+ * Properties for a MediaPackage V2 output group.
235
+ *
236
+ * Reference a single MediaPackage V2 channel; MediaLive wires each channel pipeline to a
237
+ * MediaPackage ingest endpoint automatically (one for SINGLE_PIPELINE, both for STANDARD). For
238
+ * per-pipeline control — for example sending pipeline 0 to a specific endpoint of a channel in
239
+ * another region — use `OutputGroupConfiguration.mediaPackageV2PerPipeline()` instead.
240
+ */
241
+ export interface MediaPackageV2OutputGroupProps extends MediaPackageV2OutputGroupBaseProps {
242
+ /**
243
+ * The MediaPackage V2 channel to deliver to. MediaLive maps the channel pipelines to the
244
+ * channel's ingest endpoints automatically based on the channel class.
245
+ */
246
+ readonly channel: IMediaPackageV2Channel;
247
+ }
248
+ /**
249
+ * Properties for a MediaPackage V2 output group with explicit per-pipeline destinations.
250
+ *
251
+ * Use this when you need to control the channel and endpoint each pipeline delivers to — for
252
+ * example cross-region delivery, or pinning pipeline 0 to a specific endpoint.
253
+ */
254
+ export interface MediaPackageV2PerPipelineOutputGroupProps extends MediaPackageV2OutputGroupBaseProps {
255
+ /**
256
+ * The primary MediaPackage V2 destinations — one per pipeline.
257
+ *
258
+ * Array position determines the pipeline mapping:
259
+ * - `destinations[0]` → Pipeline 0
260
+ * - `destinations[1]` → Pipeline 1 (STANDARD channels only)
261
+ *
262
+ * For a SINGLE_PIPELINE channel, provide exactly 1 destination.
263
+ * For a STANDARD channel, provide exactly 2 destinations.
264
+ */
265
+ readonly destinations: MediaPackageV2Destination[];
266
+ }
267
+ /**
268
+ * Properties for a MediaConnect Router output group.
269
+ *
270
+ * Delivers each channel pipeline to a MediaConnect Router. The downstream routing (which router
271
+ * input each pipeline feeds) is configured on the MediaConnect side, referencing this group by
272
+ * `name` and pipeline id.
273
+ *
274
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediaconnectroutergroupsettings.html
275
+ */
276
+ export interface MediaConnectRouterOutputGroupProps {
277
+ /** The name of this output group. Used as the destination reference ID. Underscores are normalised to hyphens internally. */
278
+ readonly name: string;
279
+ /**
280
+ * The Availability Zones in which to write output to the MediaConnect Router. Provide exactly
281
+ * one AZ for a `SINGLE_PIPELINE` channel, or two (one per pipeline) for a `STANDARD` channel.
282
+ */
283
+ readonly availabilityZones: string[];
284
+ /**
285
+ * Transit-encryption settings, applied per channel pipeline.
286
+ * @default - AUTOMATIC (service-managed) transit encryption on every pipeline
287
+ */
288
+ readonly routerSettings?: MediaConnectRouterSettings;
289
+ /**
290
+ * The outputs for this output group.
291
+ *
292
+ * MediaConnect Router outputs use an MPEG-TS container, so each output may multiplex one video
293
+ * encode and one or more audio encodes (as with UDP).
294
+ */
295
+ readonly outputs: MediaConnectRouterOutputDefinition[];
296
+ }
297
+ /**
298
+ * Properties for an HLS output group.
299
+ */
300
+ export interface HlsOutputGroupProps {
301
+ /**
302
+ * The name of this output group. Used as the destination reference ID. Underscores are normalised to hyphens internally.
303
+ */
304
+ readonly name: string;
305
+ /**
306
+ * The destinations for this output group — one per pipeline.
307
+ *
308
+ * Array position determines the pipeline mapping:
309
+ * - `destinations[0]` → Pipeline 0
310
+ * - `destinations[1]` → Pipeline 1 (STANDARD channels only)
311
+ *
312
+ * For a SINGLE_PIPELINE channel, provide exactly 1 destination.
313
+ * For a STANDARD channel, provide exactly 2 destinations.
314
+ */
315
+ readonly destinations: OutputDestination[];
316
+ /**
317
+ * The length of each media segment. HLS supports whole-second segments only.
318
+ * @default - Segment.seconds(2)
319
+ */
320
+ readonly segment?: Segment;
321
+ /**
322
+ * The number of segments to retain in the destination directory (LIVE mode only).
323
+ * @default 21
324
+ */
325
+ readonly keepSegments?: number;
326
+ /**
327
+ * The maximum number of segments in the media manifest (LIVE mode only).
328
+ * @default 10
329
+ */
330
+ readonly indexNSegments?: number;
331
+ /**
332
+ * The output mode — LIVE or VOD.
333
+ * @default HlsMode.LIVE
334
+ */
335
+ readonly mode?: HlsMode;
336
+ /**
337
+ * The minimum segment length. HLS supports whole-second segments only.
338
+ * @default - service default
339
+ */
340
+ readonly minSegment?: Segment;
341
+ /**
342
+ * Action to take when the input is lost.
343
+ * @default HlsInputLossAction.EMIT_OUTPUT
344
+ */
345
+ readonly inputLossAction?: HlsInputLossAction;
346
+ /**
347
+ * Chooses one or more ad marker types to pass SCTE35 signals through to this group of Apple HLS outputs.
348
+ * @default - no ad markers
349
+ */
350
+ readonly adMarkers?: HlsAdMarkers[];
351
+ /**
352
+ * A partial URI prefix that will be prepended to each output in the media .m3u8 file.
353
+ * @default - no base URL content prefix
354
+ */
355
+ readonly baseUrlContent?: string;
356
+ /**
357
+ * Optional base URL content for pipeline 1 if different from pipeline 0.
358
+ * @default - no base URL content 1
359
+ */
360
+ readonly baseUrlContent1?: string;
361
+ /**
362
+ * A partial URI prefix that will be prepended to each output in the media .m3u8 file for the manifest.
363
+ * @default - no base URL manifest prefix
364
+ */
365
+ readonly baseUrlManifest?: string;
366
+ /**
367
+ * Optional base URL manifest for pipeline 1 if different from pipeline 0.
368
+ * @default - no base URL manifest 1
369
+ */
370
+ readonly baseUrlManifest1?: string;
371
+ /**
372
+ * A mapping of up to 4 captions channels to captions languages.
373
+ * Meaningful only if captionLanguageSetting is set to INSERT.
374
+ * @default - no caption language mappings
375
+ */
376
+ readonly captionLanguageMappings?: CaptionLanguageMapping[];
377
+ /**
378
+ * Applies only to 608 embedded output captions.
379
+ * @default - service default
380
+ */
381
+ readonly captionLanguageSetting?: HlsCaptionLanguageSetting;
382
+ /**
383
+ * When set to DISABLED, sets the #EXT-X-ALLOW-CACHE:no tag in the manifest.
384
+ * @default HlsClientCache.ENABLED
385
+ */
386
+ readonly clientCache?: HlsClientCache;
387
+ /**
388
+ * The specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist generation.
389
+ * @default HlsCodecSpecification.RFC_4281
390
+ */
391
+ readonly codecSpecification?: HlsCodecSpecification;
392
+ /**
393
+ * A 128-bit, 16-byte hex value represented by a 32-character text string used as the IV for encryption.
394
+ * Used with encryptionType when ivSource is set to EXPLICIT.
395
+ * @default - no constant IV
396
+ */
397
+ readonly constantIv?: string;
398
+ /**
399
+ * Places segments in subdirectories.
400
+ * @default HlsDirectoryStructure.SINGLE_DIRECTORY
401
+ */
402
+ readonly directoryStructure?: HlsDirectoryStructure;
403
+ /**
404
+ * Specifies whether to insert EXT-X-DISCONTINUITY tags in the HLS child manifests.
405
+ * @default HlsDiscontinuityTags.INSERT
406
+ */
407
+ readonly discontinuityTags?: HlsDiscontinuityTags;
408
+ /**
409
+ * Encrypts the segments with the specified encryption scheme.
410
+ * @default - no encryption
411
+ */
412
+ readonly encryptionType?: HlsEncryptionType;
413
+ /**
414
+ * Settings to configure the CDN for the HLS output.
415
+ * @default - service default
416
+ */
417
+ readonly hlsCdnSettings?: HlsCdnSettings;
418
+ /**
419
+ * State of HLS ID3 Segment Tagging.
420
+ * @default HlsId3SegmentTaggingState.DISABLED
421
+ */
422
+ readonly hlsId3SegmentTagging?: HlsId3SegmentTaggingState;
423
+ /**
424
+ * Whether to create an I-frame-only manifest.
425
+ * @default HlsIFrameOnlyPlaylists.DISABLED
426
+ */
427
+ readonly iFrameOnlyPlaylists?: HlsIFrameOnlyPlaylists;
428
+ /**
429
+ * Specifies whether to include the final (incomplete) segment in the media output.
430
+ * @default HlsIncompleteSegmentBehavior.AUTO
431
+ */
432
+ readonly incompleteSegmentBehavior?: HlsIncompleteSegmentBehavior;
433
+ /**
434
+ * Whether the IV is listed in the manifest.
435
+ * @default - service default
436
+ */
437
+ readonly ivInManifest?: HlsIvInManifest;
438
+ /**
439
+ * Whether the IV follows the segment number or is explicit.
440
+ * @default - service default
441
+ */
442
+ readonly ivSource?: HlsIvSource;
443
+ /**
444
+ * Specifies how the key is represented in the resource identified by the URI.
445
+ * @default - service default
446
+ */
447
+ readonly keyFormat?: string;
448
+ /**
449
+ * Either a single positive integer version value or a slash-delimited list of version values (1/2/3).
450
+ * @default - service default
451
+ */
452
+ readonly keyFormatVersions?: string;
453
+ /**
454
+ * The key provider settings for HLS encryption.
455
+ * @default - no key provider settings
456
+ */
457
+ readonly keyProviderSettings?: HlsKeyProviderSettings;
458
+ /**
459
+ * When set to GZIP, compresses HLS playlist.
460
+ * @default HlsManifestCompression.NONE
461
+ */
462
+ readonly manifestCompression?: HlsManifestCompression;
463
+ /**
464
+ * Indicates whether the output manifest should use floating point or integer values for segment duration.
465
+ * @default HlsManifestDurationFormat.FLOATING_POINT
466
+ */
467
+ readonly manifestDurationFormat?: HlsManifestDurationFormat;
468
+ /**
469
+ * Controls which manifests and segments are generated.
470
+ * @default HlsOutputSelection.MANIFESTS_AND_SEGMENTS
471
+ */
472
+ readonly outputSelection?: HlsOutputSelection;
473
+ /**
474
+ * Includes or excludes the EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files.
475
+ * @default HlsProgramDateTime.INCLUDE
476
+ */
477
+ readonly programDateTime?: HlsProgramDateTime;
478
+ /**
479
+ * Specifies the algorithm used to drive the HLS EXT-X-PROGRAM-DATE-TIME clock.
480
+ *
481
+ * @default - HlsProgramDateTimeClock.SYSTEM_CLOCK, or INITIALIZE_FROM_OUTPUT_TIMECODE with epoch locking
482
+ */
483
+ readonly programDateTimeClock?: HlsProgramDateTimeClock;
484
+ /**
485
+ * The period of insertion of the EXT-X-PROGRAM-DATE-TIME entry.
486
+ * @default Duration.minutes(10)
487
+ */
488
+ readonly programDateTimePeriod?: Duration;
489
+ /**
490
+ * Whether the master manifest includes information about both pipelines.
491
+ * @default HlsRedundantManifest.DISABLED
492
+ */
493
+ readonly redundantManifest?: HlsRedundantManifest;
494
+ /**
495
+ * The segmentation mode.
496
+ * @default HlsSegmentationMode.USE_SEGMENT_DURATION
497
+ */
498
+ readonly segmentationMode?: HlsSegmentationMode;
499
+ /**
500
+ * The number of segments to write to a subdirectory before starting a new one.
501
+ * @default 10000
502
+ */
503
+ readonly segmentsPerSubdirectory?: number;
504
+ /**
505
+ * Whether to include or exclude the RESOLUTION attribute for a video in the EXT-X-STREAM-INF tag.
506
+ * @default HlsStreamInfResolution.INCLUDE
507
+ */
508
+ readonly streamInfResolution?: HlsStreamInfResolution;
509
+ /**
510
+ * Indicates the ID3 frame that has the timecode.
511
+ * @default HlsTimedMetadataId3Frame.PRIV
512
+ */
513
+ readonly timedMetadataId3Frame?: HlsTimedMetadataId3Frame;
514
+ /**
515
+ * The timed metadata interval.
516
+ * @default Duration.seconds(10)
517
+ */
518
+ readonly timedMetadataId3Period?: Duration;
519
+ /**
520
+ * Provides an extra delta offset to fine tune the timestamps.
521
+ * @default - service default
522
+ */
523
+ readonly timestampDelta?: Duration;
524
+ /**
525
+ * Whether to emit segmented files or a single file.
526
+ * @default HlsTsFileMode.SEGMENTED_FILES
527
+ */
528
+ readonly tsFileMode?: HlsTsFileMode;
529
+ /**
530
+ * The outputs for this HLS output group.
531
+ * @default - no initial outputs
532
+ */
533
+ readonly outputs?: HlsOutputDefinition[];
534
+ }
535
+ /**
536
+ * Properties for a UDP output group.
537
+ */
538
+ export interface UdpOutputGroupProps {
539
+ /**
540
+ * The name of this output group. Used as the destination reference ID. Underscores are normalised to hyphens internally.
541
+ */
542
+ readonly name: string;
543
+ /**
544
+ * The destinations for this output group — one per pipeline.
545
+ *
546
+ * Array position determines the pipeline mapping:
547
+ * - `destinations[0]` → Pipeline 0
548
+ * - `destinations[1]` → Pipeline 1 (STANDARD channels only)
549
+ *
550
+ * For a SINGLE_PIPELINE channel, provide exactly 1 destination.
551
+ * For a STANDARD channel, provide exactly 2 destinations.
552
+ */
553
+ readonly destinations: UdpOutputDestination[];
554
+ /**
555
+ * The output buffering. Applied at millisecond granularity.
556
+ * @default - service default
557
+ */
558
+ readonly buffer?: Duration;
559
+ /**
560
+ * Action to take when the input is lost.
561
+ * @default UdpInputLossAction.EMIT_PROGRAM
562
+ */
563
+ readonly inputLossAction?: UdpInputLossAction;
564
+ /**
565
+ * Indicates the ID3 frame that has the timecode.
566
+ * @default UdpTimedMetadataId3Frame.PRIV
567
+ */
568
+ readonly timedMetadataId3Frame?: UdpTimedMetadataId3Frame;
569
+ /**
570
+ * The timed metadata interval.
571
+ * @default - Duration.seconds(10)
572
+ */
573
+ readonly timedMetadataId3Period?: Duration;
574
+ /**
575
+ * The outputs for this UDP output group.
576
+ * @default - no initial outputs
577
+ */
578
+ readonly outputs?: UdpOutputDefinition[];
579
+ }
580
+ /** Properties for an Archive (S3) output group. */
581
+ export interface ArchiveOutputGroupProps {
582
+ /**
583
+ * The name of this output group. Used as the destination reference ID. Underscores are normalised to hyphens internally.
584
+ */
585
+ readonly name: string;
586
+ /**
587
+ * The destinations for this output group — one per pipeline.
588
+ *
589
+ * Array position determines the pipeline mapping:
590
+ * - `destinations[0]` → Pipeline 0
591
+ * - `destinations[1]` → Pipeline 1 (STANDARD channels only)
592
+ *
593
+ * For a SINGLE_PIPELINE channel, provide exactly 1 destination.
594
+ * For a STANDARD channel, provide exactly 2 destinations.
595
+ */
596
+ readonly destinations: S3OutputDestination[];
597
+ /**
598
+ * The duration of each archive file (rollover interval).
599
+ * @default Duration.seconds(300)
600
+ */
601
+ readonly rolloverInterval?: Duration;
602
+ /**
603
+ * The S3 canned ACL to apply to each archive output.
604
+ * @default - no canned ACL
605
+ */
606
+ readonly archiveS3CannedAcl?: S3CannedAcl;
607
+ /**
608
+ * The outputs for this Archive output group.
609
+ * @default - no initial outputs
610
+ */
611
+ readonly outputs?: ArchiveOutputDefinition[];
612
+ }
613
+ /** Properties for an RTMP output group. */
614
+ export interface RtmpOutputGroupProps {
615
+ /**
616
+ * The name of this output group.
617
+ */
618
+ readonly name: string;
619
+ /**
620
+ * The authentication scheme for the RTMP connection.
621
+ * @default RtmpAuthenticationScheme.COMMON
622
+ */
623
+ readonly authenticationScheme?: RtmpAuthenticationScheme;
624
+ /**
625
+ * The delay before restarting after a streaming output failure. A value of
626
+ * `Duration.seconds(0)` means never restart.
627
+ * @default Duration.seconds(1)
628
+ */
629
+ readonly restartDelay?: Duration;
630
+ /**
631
+ * Choose the ad marker type for this output group.
632
+ * @default - no ad markers
633
+ */
634
+ readonly adMarkers?: RtmpAdMarkers[];
635
+ /**
636
+ * Controls behavior when the content cache fills up.
637
+ * @default - service default
638
+ */
639
+ readonly cacheFullBehavior?: RtmpCacheFullBehavior;
640
+ /**
641
+ * The cache length, in seconds, that is used to calculate buffer size.
642
+ * @default - service default
643
+ */
644
+ readonly cacheLength?: Duration;
645
+ /**
646
+ * Controls the types of data that pass to onCaptionInfo outputs.
647
+ * @default - service default
648
+ */
649
+ readonly captionData?: RtmpCaptionData;
650
+ /**
651
+ * Controls whether filler NAL units are included in the output.
652
+ * @default - service default
653
+ */
654
+ readonly includeFillerNalUnits?: RtmpIncludeFillerNalUnits;
655
+ /**
656
+ * Controls the behavior of this RTMP group if the input becomes unavailable.
657
+ * @default - service default
658
+ */
659
+ readonly inputLossAction?: RtmpInputLossAction;
660
+ /**
661
+ * The outputs for this RTMP output group. Each output includes its own RTMP destination.
662
+ */
663
+ readonly outputs: RtmpOutputDefinition[];
664
+ }
665
+ /** Properties for an SRT output group. */
666
+ export interface SrtOutputGroupProps {
667
+ /**
668
+ * The name of this output group.
669
+ */
670
+ readonly name: string;
671
+ /**
672
+ * Controls the behavior of this SRT group if the input becomes unavailable.
673
+ * @default SrtInputLossAction.EMIT_PROGRAM
674
+ */
675
+ readonly inputLossAction?: SrtInputLossAction;
676
+ /**
677
+ * The outputs for this SRT output group. Each output includes its own SRT destination.
678
+ */
679
+ readonly outputs: SrtOutputDefinition[];
680
+ }
681
+ /** Properties for a CMAF Ingest output group. */
682
+ export interface CmafIngestOutputGroupProps {
683
+ /**
684
+ * The name of this output group. Used as the destination reference ID. Underscores are normalised to hyphens internally.
685
+ */
686
+ readonly name: string;
687
+ /**
688
+ * The primary CMAF ingest destinations — one per pipeline.
689
+ *
690
+ * Array position determines the pipeline mapping:
691
+ * - `destinations[0]` → Pipeline 0
692
+ * - `destinations[1]` → Pipeline 1 (STANDARD channels only)
693
+ *
694
+ * For a SINGLE_PIPELINE channel, provide exactly 1 destination.
695
+ * For a STANDARD channel, provide exactly 2 destinations to utilise both
696
+ * pipelines for redundancy.
697
+ */
698
+ readonly destinations: OutputDestination[];
699
+ /**
700
+ * Configure additional destinations to fan out the CMAF ingest output to extra
701
+ * endpoints, for example for cross-region delivery or backup packaging.
702
+ *
703
+ * Standard channels support up to 2 additional destinations.
704
+ * Single pipeline channels support 1 additional destination.
705
+ *
706
+ * @default - no additional destinations
707
+ */
708
+ readonly additionalDestinations?: OutputDestination[];
709
+ /**
710
+ * The length of each media segment.
711
+ * @default - Segment.seconds(1)
712
+ */
713
+ readonly segment?: Segment;
714
+ /**
715
+ * The ID3 behavior for the CMAF ingest output.
716
+ * @default Id3Behavior.DISABLED
717
+ */
718
+ readonly id3Behavior?: Id3Behavior;
719
+ /**
720
+ * The name modifier for ID3 metadata.
721
+ * @default - service default
722
+ */
723
+ readonly id3NameModifier?: string;
724
+ /**
725
+ * The KLV behavior for the CMAF ingest output.
726
+ * @default KlvBehavior.NO_PASSTHROUGH
727
+ */
728
+ readonly klvBehavior?: KlvBehavior;
729
+ /**
730
+ * The name modifier for KLV metadata.
731
+ * @default - service default
732
+ */
733
+ readonly klvNameModifier?: string;
734
+ /**
735
+ * The Nielsen ID3 behavior for the CMAF ingest output.
736
+ * @default NielsenId3Behavior.NO_PASSTHROUGH
737
+ */
738
+ readonly nielsenId3Behavior?: NielsenId3Behavior;
739
+ /**
740
+ * The name modifier for Nielsen ID3 metadata.
741
+ * @default - service default
742
+ */
743
+ readonly nielsenId3NameModifier?: string;
744
+ /**
745
+ * The name modifier for SCTE-35 messages.
746
+ * @default - service default
747
+ */
748
+ readonly scte35NameModifier?: string;
749
+ /**
750
+ * The SCTE-35 type for the CMAF ingest output.
751
+ * @default Scte35Type.SCTE_35_WITHOUT_SEGMENTATION
752
+ */
753
+ readonly scte35Type?: Scte35Type;
754
+ /**
755
+ * The number of milliseconds to delay the output from the second pipeline.
756
+ * @default - service default
757
+ */
758
+ readonly sendDelayMs?: number;
759
+ /**
760
+ * Indicates the ID3 frame that has the timecode.
761
+ * @default TimedMetadataId3Frame.NONE
762
+ */
763
+ readonly timedMetadataId3Frame?: TimedMetadataId3Frame;
764
+ /**
765
+ * The timed metadata interval.
766
+ * @default - Duration.seconds(10)
767
+ */
768
+ readonly timedMetadataId3Period?: Duration;
769
+ /**
770
+ * Whether timed metadata is passed through.
771
+ * @default TimedMetadataPassthrough.DISABLED
772
+ */
773
+ readonly timedMetadataPassthrough?: TimedMetadataPassthrough;
774
+ /**
775
+ * Maps captions channels to languages for this CMAF Ingest output group.
776
+ * @default - no caption language mappings
777
+ */
778
+ readonly captionLanguageMappings?: CmafCaptionLanguageMapping[];
779
+ /**
780
+ * The outputs for this CMAF Ingest output group. Each output should contain a single encode.
781
+ */
782
+ readonly outputs: CmafIngestOutputDefinition[];
783
+ }
784
+ /** Properties for a Frame Capture output group. */
785
+ export interface FrameCaptureOutputGroupProps {
786
+ /**
787
+ * The name of this output group. Used as the destination reference ID. Underscores are normalised to hyphens internally.
788
+ */
789
+ readonly name: string;
790
+ /**
791
+ * The destinations for this output group — one per pipeline.
792
+ *
793
+ * Array position determines the pipeline mapping:
794
+ * - `destinations[0]` → Pipeline 0
795
+ * - `destinations[1]` → Pipeline 1 (STANDARD channels only)
796
+ *
797
+ * For a SINGLE_PIPELINE channel, provide exactly 1 destination.
798
+ * For a STANDARD channel, provide exactly 2 destinations.
799
+ */
800
+ readonly destinations: S3OutputDestination[];
801
+ /**
802
+ * The S3 canned ACL to apply to each frame capture output.
803
+ * @default - no canned ACL
804
+ */
805
+ readonly frameCaptureS3CannedAcl?: S3CannedAcl;
806
+ /**
807
+ * The outputs for this Frame Capture output group.
808
+ * @default - no initial outputs
809
+ */
810
+ readonly outputs?: FrameCaptureOutputDefinition[];
811
+ }
812
+ /** Properties for an MS Smooth output group. */
813
+ export interface MsSmoothOutputGroupProps {
814
+ /**
815
+ * The name of this output group. Used as the destination reference ID. Underscores are normalised to hyphens internally.
816
+ */
817
+ readonly name: string;
818
+ /**
819
+ * The destinations for this output group — one per pipeline.
820
+ *
821
+ * Array position determines the pipeline mapping:
822
+ * - `destinations[0]` → Pipeline 0
823
+ * - `destinations[1]` → Pipeline 1 (STANDARD channels only)
824
+ *
825
+ * For a SINGLE_PIPELINE channel, provide exactly 1 destination.
826
+ * For a STANDARD channel, provide exactly 2 destinations.
827
+ */
828
+ readonly destinations: OutputDestination[];
829
+ /**
830
+ * The value of the Acquisition Point Identity element used in each message placed in the sparse track.
831
+ * @default - service default
832
+ */
833
+ readonly acquisitionPointId?: string;
834
+ /**
835
+ * If set to passthrough for an audio-only output, the fragment absolute time is set to the current timecode.
836
+ * @default - service default
837
+ */
838
+ readonly audioOnlyTimecodeControl?: MsSmoothAudioOnlyTimecodeControl;
839
+ /**
840
+ * If set to VERIFY_AUTHENTICITY, verifies the HTTPS certificate chain to a trusted CA.
841
+ * @default - service default
842
+ */
843
+ readonly certificateMode?: MsSmoothCertificateMode;
844
+ /**
845
+ * The number of seconds to wait before retrying the connection to the IIS server if the connection is lost.
846
+ * @default - service default
847
+ */
848
+ readonly connectionRetryInterval?: Duration;
849
+ /**
850
+ * The Microsoft Smooth channel ID that is sent to the IIS server.
851
+ * @default - service default
852
+ */
853
+ readonly eventId?: string;
854
+ /**
855
+ * Specifies whether to send a channel ID to the IIS server.
856
+ * @default - service default
857
+ */
858
+ readonly eventIdMode?: MsSmoothEventIdMode;
859
+ /**
860
+ * When set to SEND_EOS, sends an EOS signal to an IIS server when stopping the channel.
861
+ * @default - service default
862
+ */
863
+ readonly eventStopBehavior?: MsSmoothEventStopBehavior;
864
+ /**
865
+ * The size, in seconds, of the file cache for streaming outputs.
866
+ * @default - service default
867
+ */
868
+ readonly filecacheDuration?: Duration;
869
+ /**
870
+ * The length, in seconds, of mp4 fragments to generate.
871
+ * @default - service default
872
+ */
873
+ readonly fragmentLength?: Duration;
874
+ /**
875
+ * A parameter that controls output group behavior on an input loss.
876
+ * @default - service default
877
+ */
878
+ readonly inputLossAction?: MsSmoothInputLossAction;
879
+ /**
880
+ * The number of retry attempts.
881
+ * @default 10
882
+ */
883
+ readonly numRetries?: number;
884
+ /**
885
+ * The number of seconds before initiating a restart due to output failure.
886
+ * @default - Duration.seconds(1)
887
+ */
888
+ readonly restartDelay?: Duration;
889
+ /**
890
+ * The segmentation mode.
891
+ * @default - service default
892
+ */
893
+ readonly segmentationMode?: MsSmoothSegmentationMode;
894
+ /**
895
+ * The number of milliseconds to delay the output from the second pipeline.
896
+ * @default - service default
897
+ */
898
+ readonly sendDelayMs?: number;
899
+ /**
900
+ * If set to SCTE_35, uses incoming SCTE-35 messages to generate a sparse track.
901
+ * @default - service default
902
+ */
903
+ readonly sparseTrackType?: MsSmoothSparseTrackType;
904
+ /**
905
+ * When set to SEND, sends a stream manifest so that the publishing point doesn't start until all streams start.
906
+ * @default - service default
907
+ */
908
+ readonly streamManifestBehavior?: MsSmoothStreamManifestBehavior;
909
+ /**
910
+ * The timestamp offset for the channel. Used only if timestampOffsetMode is set to USE_CONFIGURED_OFFSET.
911
+ * @default - service default
912
+ */
913
+ readonly timestampOffset?: string;
914
+ /**
915
+ * The type of timestamp date offset to use.
916
+ * @default - service default
917
+ */
918
+ readonly timestampOffsetMode?: MsSmoothTimestampOffsetMode;
919
+ /**
920
+ * The outputs for this MS Smooth output group.
921
+ * @default - no initial outputs
922
+ */
923
+ readonly outputs?: MsSmoothOutputDefinition[];
924
+ }