@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
package/lib/input.d.ts ADDED
@@ -0,0 +1,505 @@
1
+ import type { Duration, IResource } from 'aws-cdk-lib';
2
+ import { Resource } from 'aws-cdk-lib';
3
+ import type { ISecurityGroupRef, ISubnetRef } from 'aws-cdk-lib/aws-ec2';
4
+ import type { IRole } from 'aws-cdk-lib/aws-iam';
5
+ import type { IFlowRef } from 'aws-cdk-lib/aws-mediaconnect';
6
+ import type { IInputRef, InputReference, IInputSecurityGroupRef, INetworkRef } from 'aws-cdk-lib/aws-medialive';
7
+ import type { IBucket } from 'aws-cdk-lib/aws-s3';
8
+ import type { ISecret } from 'aws-cdk-lib/aws-secretsmanager';
9
+ import type { IStringParameter } from 'aws-cdk-lib/aws-ssm';
10
+ import type { Construct } from 'constructs';
11
+ import type { ChannelClass } from './channel';
12
+ import type { NetworkRoute } from './network';
13
+ import type { ISdiSource } from './sdi-source';
14
+ /**
15
+ * Represents a MediaLive Input.
16
+ */
17
+ export interface IInput extends IResource, IInputRef {
18
+ /**
19
+ * The Amazon Resource Name (ARN) of the input.
20
+ * @attribute
21
+ */
22
+ readonly inputArn: string;
23
+ /**
24
+ * The ID of the input.
25
+ * @attribute
26
+ */
27
+ readonly inputId: string;
28
+ /**
29
+ * The input class (STANDARD or SINGLE_PIPELINE).
30
+ * Only available for input types where the pipeline count is known at construct time
31
+ * (e.g. mediaConnectRouter). Undefined for imported inputs and other types.
32
+ *
33
+ * @attribute
34
+ */
35
+ readonly inputClass?: string;
36
+ /**
37
+ * The input type (e.g. SRT_CALLER, MP4_FILE, URL_PULL).
38
+ * Undefined for imported inputs.
39
+ *
40
+ * @attribute
41
+ */
42
+ readonly inputType?: string;
43
+ /**
44
+ * For push inputs, the destination URLs where the upstream system sends content.
45
+ * @attribute
46
+ */
47
+ readonly inputDestinations?: string[];
48
+ /**
49
+ * For pull inputs, the source URLs where MediaLive pulls content from.
50
+ * @attribute
51
+ */
52
+ readonly inputSources?: string[];
53
+ }
54
+ /**
55
+ * The network location of a MediaLive input — the AWS cloud, or an on-premises network for
56
+ * MediaLive Anywhere.
57
+ */
58
+ export declare class InputNetworkLocation {
59
+ /** The input exists in the AWS cloud (the default). */
60
+ static readonly AWS: InputNetworkLocation;
61
+ /** The input exists in an on-premises network (MediaLive Anywhere). */
62
+ static readonly ON_PREMISES: InputNetworkLocation;
63
+ /** A value not yet modelled by AWS CDK. */
64
+ static of(value: string): InputNetworkLocation;
65
+ /** The underlying string value passed to CloudFormation. */
66
+ readonly value: string;
67
+ private constructor();
68
+ }
69
+ /**
70
+ * Properties for creating a MediaLive Input.
71
+ */
72
+ export interface InputProps {
73
+ /**
74
+ * Input name.
75
+ * @default - auto-generated
76
+ */
77
+ readonly inputName?: string;
78
+ /**
79
+ * Input configuration that defines the input type and source settings.
80
+ */
81
+ readonly input: InputConfiguration;
82
+ /**
83
+ * The network location of the input — AWS cloud or on-premises (MediaLive Anywhere).
84
+ * @default - AWS, applied by MediaLive
85
+ */
86
+ readonly inputNetworkLocation?: InputNetworkLocation;
87
+ /**
88
+ * Tags to add to the input.
89
+ * @default - no tags
90
+ */
91
+ readonly tags?: {
92
+ [key: string]: string;
93
+ };
94
+ }
95
+ /**
96
+ * Options for a URL-based input source.
97
+ */
98
+ export interface InputSourceOptions {
99
+ /**
100
+ * The username for accessing the upstream system.
101
+ * @default - no username
102
+ */
103
+ readonly username?: string;
104
+ /**
105
+ * The SSM parameter that holds the password for accessing the upstream system.
106
+ * @default - no password
107
+ */
108
+ readonly password?: IStringParameter;
109
+ }
110
+ /**
111
+ * A source for a pull-type input. Use the static factory methods to create.
112
+ */
113
+ export declare abstract class InputSource {
114
+ /**
115
+ * Create a source from a URL.
116
+ * @param url The URL where MediaLive pulls the source content from.
117
+ * @param options Optional credentials.
118
+ */
119
+ static url(url: string, options?: InputSourceOptions): InputSource;
120
+ /**
121
+ * Create a source from an S3 bucket. Automatically grants read access
122
+ * to the channel's role.
123
+ *
124
+ * @param bucket The S3 bucket containing the source file.
125
+ * @param key The object key within the bucket (e.g. 'videos/intro.mp4').
126
+ */
127
+ static fromBucket(bucket: IBucket, key: string): InputSource;
128
+ }
129
+ /** Properties for a MediaConnect router input. */
130
+ export interface MediaConnectRouterInputProps {
131
+ /**
132
+ * The availability zones for the router input pipelines.
133
+ *
134
+ * Provide one AZ for a single pipeline, or two for redundant pipelines.
135
+ * If omitted, defaults to the stack's first availability zone (single pipeline).
136
+ *
137
+ * @default - single pipeline using the stack's first availability zone
138
+ */
139
+ readonly availabilityZones?: string[];
140
+ /**
141
+ * The Secrets Manager secret for custom encryption.
142
+ * If not provided, automatic encryption is used.
143
+ * @default - automatic encryption
144
+ */
145
+ readonly encryptionSecret?: ISecret;
146
+ }
147
+ /** Properties for a MediaConnect input. */
148
+ export interface MediaConnectInputProps {
149
+ /**
150
+ * The MediaConnect flows to use as sources (one, or two for pipeline redundancy).
151
+ */
152
+ readonly flows: IFlowRef[];
153
+ /**
154
+ * The IAM role MediaLive uses to manage the output it adds to the flow for this input.
155
+ *
156
+ * When omitted, a role is created and granted the required permissions.
157
+ * When you provide a role, no permissions are added — you own all the permissions it needs.
158
+ *
159
+ * @default - a role is created with the medialive.amazonaws.com service principal
160
+ *
161
+ * [disable-awslint:prefer-ref-interface]
162
+ */
163
+ readonly role?: IRole;
164
+ }
165
+ /** Properties for an SRT caller input. */
166
+ export interface SrtCallerSourceProps {
167
+ /** The address of the SRT listener to connect to. */
168
+ readonly srtListenerAddress: string;
169
+ /** The port of the SRT listener. */
170
+ readonly srtListenerPort: number;
171
+ /**
172
+ * The minimum latency.
173
+ * @default - service default
174
+ */
175
+ readonly minimumLatency?: Duration;
176
+ /**
177
+ * The stream ID for the SRT connection.
178
+ * @default - no stream ID
179
+ */
180
+ readonly streamId?: string;
181
+ /**
182
+ * Decryption settings for the SRT connection.
183
+ * @default - no decryption
184
+ */
185
+ readonly decryption?: SrtDecryptionProps;
186
+ }
187
+ /** The encryption algorithm for SRT decryption. */
188
+ export declare class SrtDecryptionAlgorithm {
189
+ /** AES-128. */
190
+ static readonly AES128: SrtDecryptionAlgorithm;
191
+ /** AES-192. */
192
+ static readonly AES192: SrtDecryptionAlgorithm;
193
+ /** AES-256. */
194
+ static readonly AES256: SrtDecryptionAlgorithm;
195
+ /** A value not yet modelled by AWS CDK. */
196
+ static of(value: string): SrtDecryptionAlgorithm;
197
+ /** The underlying string value passed to CloudFormation. */
198
+ readonly value: string;
199
+ private constructor();
200
+ }
201
+ /** Properties for SRT decryption. */
202
+ export interface SrtDecryptionProps {
203
+ /**
204
+ * The encryption algorithm.
205
+ * @default - no algorithm
206
+ */
207
+ readonly algorithm?: SrtDecryptionAlgorithm;
208
+ /**
209
+ * The Secrets Manager secret containing the passphrase used to decrypt the content.
210
+ * @default - no passphrase
211
+ */
212
+ readonly passphraseSecret?: ISecret;
213
+ }
214
+ /** Properties for an SRT listener input. */
215
+ export interface SrtListenerInputProps {
216
+ /**
217
+ * Decryption settings for the SRT connection.
218
+ * @default - no decryption
219
+ */
220
+ readonly decryption?: SrtDecryptionProps;
221
+ /**
222
+ * The minimum latency.
223
+ * @default - service default
224
+ */
225
+ readonly minimumLatency?: Duration;
226
+ /**
227
+ * The stream ID that the upstream system uses when connecting to this listener.
228
+ * @default - no stream ID
229
+ */
230
+ readonly streamId?: string;
231
+ /**
232
+ * The input security groups. Required for SRT listener inputs.
233
+ */
234
+ readonly inputSecurityGroups: IInputSecurityGroupRef[];
235
+ /**
236
+ * Whether this is a STANDARD (two-pipeline) or SINGLE_PIPELINE input. A STANDARD input creates
237
+ * two listener endpoints for pipeline redundancy.
238
+ * @default ChannelClass.SINGLE_PIPELINE
239
+ */
240
+ readonly inputClass?: ChannelClass;
241
+ }
242
+ /** Properties for an Elemental Link input device input. */
243
+ export interface InputDeviceInputProps {
244
+ /** The IDs of one or two registered Elemental Link devices. Two provides pipeline redundancy. */
245
+ readonly deviceIds: string[];
246
+ }
247
+ /** The transport protocol for a multicast source. */
248
+ export declare class MulticastProtocol {
249
+ /** UDP transport. */
250
+ static readonly UDP: MulticastProtocol;
251
+ /** RTP transport. */
252
+ static readonly RTP: MulticastProtocol;
253
+ /** A value not yet modelled by AWS CDK. */
254
+ static of(value: string): MulticastProtocol;
255
+ /** The underlying string value passed to CloudFormation. */
256
+ readonly value: string;
257
+ private constructor();
258
+ }
259
+ /** A source for a multicast input. */
260
+ export interface MulticastInputSource {
261
+ /** The multicast group address. */
262
+ readonly address: string;
263
+ /** The multicast port. */
264
+ readonly port: number;
265
+ /**
266
+ * The transport protocol.
267
+ * @default MulticastProtocol.UDP
268
+ */
269
+ readonly protocol?: MulticastProtocol;
270
+ /**
271
+ * Filter to a specific source IP (source-specific multicast).
272
+ * @default - accept any source
273
+ */
274
+ readonly sourceIp?: string;
275
+ }
276
+ /** Properties for a multicast input. Requires `anywhereSettings` on the channel. */
277
+ export interface MulticastInputProps {
278
+ /** The multicast sources. Provide two for a STANDARD (redundant-pipeline) channel. */
279
+ readonly sources: MulticastInputSource[];
280
+ }
281
+ /** A reference to an SDP file that describes a SMPTE 2110 stream to ingest. */
282
+ export interface Smpte2110SdpLocation {
283
+ /** The URL of the SDP file. */
284
+ readonly sdpUrl: string;
285
+ /**
286
+ * The index of the media stream within the SDP to ingest. Use when the SDP describes
287
+ * more than one stream of that media type.
288
+ * @default - service default
289
+ */
290
+ readonly mediaIndex?: number;
291
+ }
292
+ /**
293
+ * Properties for a SMPTE 2110 receiver group input. Requires `anywhereSettings` on the channel.
294
+ *
295
+ * You specify the SDP files that describe the streams to ingest — one video SDP, and any
296
+ * number of audio and ancillary SDPs.
297
+ */
298
+ export interface Smpte2110InputProps {
299
+ /**
300
+ * The SDP describing the video stream.
301
+ * @default - no video stream
302
+ */
303
+ readonly videoSdp?: Smpte2110SdpLocation;
304
+ /**
305
+ * The SDPs describing the audio streams. Up to 50.
306
+ * @default - no audio streams
307
+ */
308
+ readonly audioSdps?: Smpte2110SdpLocation[];
309
+ /**
310
+ * The SDPs describing the ancillary data streams (SCTE-35 or captions). Up to 50.
311
+ * @default - no ancillary data streams
312
+ */
313
+ readonly ancillarySdps?: Smpte2110SdpLocation[];
314
+ }
315
+ /** Properties for a CDI (uncompressed) input. */
316
+ export interface CdiInputProps {
317
+ /**
318
+ * Two VPC subnets, in two different availability zones, for the CDI input network interfaces.
319
+ */
320
+ readonly subnets: ISubnetRef[];
321
+ /**
322
+ * Security groups to attach to the CDI input network interfaces.
323
+ * @default - VPC default security group
324
+ */
325
+ readonly securityGroups?: ISecurityGroupRef[];
326
+ /**
327
+ * The IAM role MediaLive assumes to create network interfaces in the VPC.
328
+ *
329
+ * When omitted, a role is created and granted the required permissions.
330
+ * When you provide a role, no permissions are added — you own all the permissions it needs.
331
+ *
332
+ * @default - a role is created with the medialive.amazonaws.com service principal
333
+ *
334
+ * [disable-awslint:prefer-ref-interface]
335
+ */
336
+ readonly role?: IRole;
337
+ }
338
+ /**
339
+ * Properties for push-type inputs (RTMP_PUSH, RTP_PUSH, UDP_PUSH).
340
+ */
341
+ export interface PushInputProps {
342
+ /**
343
+ * The input security groups that control which CIDR blocks can push to this input. Required for
344
+ * cloud inputs; must be omitted for on-premises inputs (`InputNetworkLocation.ON_PREMISES`),
345
+ * which do not support security groups.
346
+ * @default - none (only valid for on-premises inputs)
347
+ */
348
+ readonly inputSecurityGroups?: IInputSecurityGroupRef[];
349
+ /**
350
+ * The destinations for push inputs. For RTMP push, each destination can have a stream name.
351
+ * @default - MediaLive auto-generates destinations
352
+ */
353
+ readonly destinations?: PushInputDestination[];
354
+ }
355
+ /**
356
+ * A destination for a push-type input.
357
+ */
358
+ export interface PushInputDestination {
359
+ /**
360
+ * The stream name for RTMP push destinations (application name/instance).
361
+ * @default - auto-generated
362
+ */
363
+ readonly streamName?: string;
364
+ /**
365
+ * The MediaLive Anywhere network this push destination lives on. Required when the input's
366
+ * `inputNetworkLocation` is `ON_PREMISES`.
367
+ * @default - AWS-managed network
368
+ */
369
+ readonly network?: INetworkRef;
370
+ /**
371
+ * The routes to the push destination on the local network. Required for
372
+ * on-premises (`ON_PREMISES`) push inputs.
373
+ * @default - no routes
374
+ */
375
+ readonly networkRoutes?: NetworkRoute[];
376
+ /**
377
+ * A static IP address to assign to the push destination on the local network.
378
+ * @default - MediaLive Anywhere uses one from the IP pool specified on the selected network (service default)
379
+ */
380
+ readonly staticIpAddress?: string;
381
+ }
382
+ /**
383
+ * Defines the input configuration for a MediaLive Input.
384
+ *
385
+ * Use the static factory methods to create the appropriate configuration for your input type.
386
+ */
387
+ export declare class InputConfiguration {
388
+ private readonly _bindFn;
389
+ /**
390
+ * Create a URL pull input for HLS or TS streams.
391
+ *
392
+ * @example
393
+ *
394
+ * InputConfiguration.urlPull([
395
+ * InputSource.url('https://example.com/stream.m3u8'),
396
+ * ]);
397
+ *
398
+ */
399
+ static urlPull(sources: InputSource[]): InputConfiguration;
400
+ /** Create an RTMP pull input. */
401
+ static rtmpPull(sources: InputSource[]): InputConfiguration;
402
+ /** Create an MP4 file pull input. */
403
+ static mp4File(sources: InputSource[]): InputConfiguration;
404
+ /** Create a TS file pull input. */
405
+ static tsFile(sources: InputSource[]): InputConfiguration;
406
+ /**
407
+ * Create an RTMP push input.
408
+ *
409
+ * @example
410
+ *
411
+ * declare const securityGroup: InputSecurityGroup;
412
+ *
413
+ * InputConfiguration.rtmpPush({
414
+ * inputSecurityGroups: [securityGroup],
415
+ * });
416
+ *
417
+ */
418
+ static rtmpPush(props: PushInputProps): InputConfiguration;
419
+ /** Create an RTP push input. */
420
+ static rtpPush(props: PushInputProps): InputConfiguration;
421
+ /** Create a UDP push input. */
422
+ static udpPush(props: PushInputProps): InputConfiguration;
423
+ /**
424
+ * Create a MediaConnect router input configuration.
425
+ *
426
+ * @example
427
+ *
428
+ * // Single pipeline with default AZ
429
+ * InputConfiguration.mediaConnectRouter();
430
+ *
431
+ * @example
432
+ *
433
+ * // Redundant pipelines with explicit AZs
434
+ * InputConfiguration.mediaConnectRouter({
435
+ * availabilityZones: ['us-east-1a', 'us-east-1b'],
436
+ * });
437
+ *
438
+ */
439
+ static mediaConnectRouter(props?: MediaConnectRouterInputProps): InputConfiguration;
440
+ /**
441
+ * Create a MediaConnect flow input configuration.
442
+ *
443
+ * @example
444
+ *
445
+ * declare const role: iam.IRole;
446
+ * declare const flow: mediaconnect.IFlowRef;
447
+ *
448
+ * InputConfiguration.mediaConnect({
449
+ * flows: [flow],
450
+ * role,
451
+ * });
452
+ *
453
+ */
454
+ static mediaConnect(props: MediaConnectInputProps): InputConfiguration;
455
+ /** Create an SDI input configuration. */
456
+ static sdi(sources: ISdiSource[]): InputConfiguration;
457
+ /** Create an Elemental Link input from one or two registered Link device IDs. */
458
+ static inputDevice(props: InputDeviceInputProps): InputConfiguration;
459
+ /**
460
+ * Create a CDI (uncompressed) input delivered into a VPC.
461
+ *
462
+ * MediaLive creates network interfaces in the supplied subnets and hands back the CDI push
463
+ * endpoints. The required EC2 permissions are granted to the role automatically.
464
+ */
465
+ static cdi(props: CdiInputProps): InputConfiguration;
466
+ /** Create a multicast input. Requires `anywhereSettings` on the channel. */
467
+ static multicast(props: MulticastInputProps): InputConfiguration;
468
+ /** Create a SMPTE 2110 receiver group input. Requires `anywhereSettings` on the channel. */
469
+ static smpte2110ReceiverGroup(props: Smpte2110InputProps): InputConfiguration;
470
+ /**
471
+ * Create an SRT caller input configuration.
472
+ *
473
+ * @example
474
+ *
475
+ * InputConfiguration.srtCaller([{
476
+ * srtListenerAddress: '10.0.0.1',
477
+ * srtListenerPort: 5000,
478
+ * }]);
479
+ *
480
+ */
481
+ static srtCaller(sources: SrtCallerSourceProps[]): InputConfiguration;
482
+ /** Create an SRT listener input configuration. */
483
+ static srtListener(props: SrtListenerInputProps): InputConfiguration;
484
+ private static createPullInput;
485
+ private constructor();
486
+ }
487
+ /**
488
+ * Defines an AWS Elemental MediaLive Input.
489
+ */
490
+ export declare class Input extends Resource implements IInput {
491
+ /** Uniquely identifies this class. */
492
+ static readonly PROPERTY_INJECTION_ID: string;
493
+ /** Import an existing input by its ARN. The id is parsed out of the ARN. */
494
+ static fromInputArn(scope: Construct, id: string, inputArn: string): IInput;
495
+ readonly inputArn: string;
496
+ readonly inputId: string;
497
+ readonly inputClass?: string;
498
+ readonly inputType?: string;
499
+ readonly inputDestinations?: string[];
500
+ readonly inputSources?: string[];
501
+ /** A reference to this Input resource. */
502
+ get inputRef(): InputReference;
503
+ private readonly inputSourceRefs;
504
+ constructor(scope: Construct, id: string, props: InputProps);
505
+ }