@aws-cdk/aws-mediaconnect-alpha 2.263.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.
@@ -0,0 +1,558 @@
1
+ import type { Bitrate, Duration } from 'aws-cdk-lib';
2
+ import type { IBridge } from './bridge';
3
+ import type { MediaStream } from './flow';
4
+ import type { IFlowEntitlement } from './flow-entitlement';
5
+ import type { IRouterOutput } from './router-output';
6
+ import type { SrtPasswordEncryption, StaticKeyEncryption, TransitEncryption, VpcInterfaceConfig } from './shared';
7
+ /**
8
+ * Encoding options
9
+ */
10
+ export declare class Encoding {
11
+ readonly value: string;
12
+ /**
13
+ * Option for JXSV
14
+ */
15
+ static readonly JXSV: Encoding;
16
+ /**
17
+ * Option for raw
18
+ */
19
+ static readonly RAW: Encoding;
20
+ /**
21
+ * Option for SMPTE-291
22
+ */
23
+ static readonly SMPTE291: Encoding;
24
+ /**
25
+ * Option for PCM
26
+ */
27
+ static readonly PCM: Encoding;
28
+ /**
29
+ * Use a custom encoding value
30
+ * @param value The encoding string value
31
+ */
32
+ static of(value: string): Encoding;
33
+ /**
34
+ * @param value The encoding string value
35
+ */
36
+ private constructor();
37
+ /** Returns the string value */
38
+ toString(): string;
39
+ }
40
+ /**
41
+ * Defines network configuration for a source — either a public network with a CIDR allowlist, or a VPC interface.
42
+ */
43
+ export declare class NetworkConfiguration {
44
+ /**
45
+ * Use a public network with a CIDR allowlist.
46
+ */
47
+ static publicNetwork(allowlistCidr: string): NetworkConfiguration;
48
+ /**
49
+ * Use a VPC interface.
50
+ */
51
+ static vpc(vpcInterface: VpcInterfaceConfig): NetworkConfiguration;
52
+ /**
53
+ * The CIDR allowlist for public internet sources, or undefined if using VPC.
54
+ */
55
+ readonly allowlistCidr?: string;
56
+ /**
57
+ * The VPC interface name, or undefined if using public internet.
58
+ */
59
+ readonly vpcInterfaceName?: string;
60
+ private constructor();
61
+ }
62
+ /**
63
+ * Options for Media Stream Source Configuration
64
+ */
65
+ export interface MediaStreamSourceConfigurationCdi {
66
+ /**
67
+ * The format that was used to encode the data. For ancillary data streams, set the encoding name to smpte291.
68
+ * If the encoding name is smpte291, set the color space to one of the following:
69
+ * BT601, BT709, BT2020, or BT2100. For all other ancillary data streams, set the color space to SDR-NOCOLOR.
70
+ */
71
+ readonly encoding: Encoding;
72
+ /**
73
+ * The name of the media stream.
74
+ */
75
+ readonly mediaStream: MediaStream;
76
+ }
77
+ /**
78
+ * Options for Media Stream Source Configuration
79
+ */
80
+ export interface MediaStreamSourceConfigurationJpegXs {
81
+ /**
82
+ * The format that was used to encode the data. For ancillary data streams, set the encoding name to smpte291.
83
+ * If the encoding name is smpte291, set the color space to one of the following:
84
+ * BT601, BT709, BT2020, or BT2100. For all other ancillary data streams, set the color space to SDR-NOCOLOR.
85
+ */
86
+ readonly encoding: Encoding;
87
+ /**
88
+ * The port that the flow listens on for this incoming media stream.
89
+ */
90
+ readonly port: number;
91
+ /**
92
+ * The VPC interfaces where the media stream comes in from.
93
+ */
94
+ readonly inputInterface: VpcInterfaceConfig[];
95
+ /**
96
+ * The name of the media stream.
97
+ */
98
+ readonly mediaStream: MediaStream;
99
+ }
100
+ /**
101
+ * Common configuration across all inputs
102
+ */
103
+ export interface SourceBase {
104
+ /**
105
+ * The name of the source.
106
+ *
107
+ * @default - a name is generated automatically
108
+ */
109
+ readonly flowSourceName?: string;
110
+ /**
111
+ * A description of the source. This description appears only on the MediaConnect console and will not be seen by the end user.
112
+ *
113
+ * @default - no description
114
+ */
115
+ readonly description?: string;
116
+ }
117
+ /**
118
+ * Configuration for RTP
119
+ */
120
+ export interface SourceRtp extends SourceBase {
121
+ /**
122
+ * The port that the flow will be listening on for incoming content.
123
+ */
124
+ readonly port: number;
125
+ /**
126
+ * The maximum bitrate for RIST, RTP, and RTP-FEC streams.
127
+ *
128
+ * @default - no maximum bitrate
129
+ */
130
+ readonly maxBitrate?: Bitrate;
131
+ /**
132
+ * Defines networking configuration
133
+ */
134
+ readonly network: NetworkConfiguration;
135
+ }
136
+ /**
137
+ * Configuration for RIST
138
+ */
139
+ export interface SourceRist extends SourceBase {
140
+ /**
141
+ * The maximum latency in milliseconds for a RIST or Zixi-based source.
142
+ *
143
+ * @default - undefined; when omitted, MediaConnect applies its service default maximum latency
144
+ */
145
+ readonly maxLatency?: Duration;
146
+ /**
147
+ * The port that the flow will be listening on for incoming content.
148
+ */
149
+ readonly port: number;
150
+ /**
151
+ * The maximum bitrate for RIST, RTP, and RTP-FEC streams.
152
+ *
153
+ * @default - no maximum bitrate
154
+ */
155
+ readonly maxBitrate?: Bitrate;
156
+ /**
157
+ * Defines networking configuration
158
+ */
159
+ readonly network: NetworkConfiguration;
160
+ }
161
+ /**
162
+ * Configuration for SRT Listener
163
+ */
164
+ export interface SourceSrtListener extends SourceBase {
165
+ /**
166
+ * The port that the flow listens on for incoming content.
167
+ *
168
+ * Valid range: 1024–65535. Ports 2077 and 2088 are reserved by MediaConnect for Zixi
169
+ * traffic and cannot be used for SRT Listener.
170
+ */
171
+ readonly port: number;
172
+ /**
173
+ * The maximum bitrate for streams.
174
+ *
175
+ * @default - no maximum bitrate
176
+ */
177
+ readonly maxBitrate?: Bitrate;
178
+ /**
179
+ * Defines networking configuration
180
+ */
181
+ readonly network: NetworkConfiguration;
182
+ /**
183
+ * The minimum latency in milliseconds for SRT-based streams. The value you set on your
184
+ * MediaConnect source represents the minimal potential latency of that connection. The
185
+ * latency of the stream is set to the higher of the sender's minimum latency and the
186
+ * receiver's minimum latency.
187
+ *
188
+ * @default - no minimum latency
189
+ */
190
+ readonly minLatency?: Duration;
191
+ /**
192
+ * SRT Decryption options
193
+ *
194
+ * @default - no decryption
195
+ */
196
+ readonly decryption?: SrtPasswordEncryption;
197
+ }
198
+ /**
199
+ * Configuration for SRT Caller
200
+ */
201
+ export interface SourceSrtCaller extends SourceBase {
202
+ /**
203
+ * Source IP or domain name for SRT-caller protocol.
204
+ */
205
+ readonly sourceListenerAddress: string;
206
+ /**
207
+ * Source port for SRT-caller protocol.
208
+ *
209
+ * Valid range: 1024–65535. Ports 2077 and 2088 are reserved by MediaConnect for Zixi
210
+ * traffic and cannot be used for SRT Caller.
211
+ */
212
+ readonly sourceListenerPort: number;
213
+ /**
214
+ * The maximum bitrate for streams.
215
+ *
216
+ * @default - no maximum bitrate
217
+ */
218
+ readonly maxBitrate?: Bitrate;
219
+ /**
220
+ * The maximum latency in milliseconds for SRT-based streams.
221
+ *
222
+ * @default - no maximum latency
223
+ */
224
+ readonly maxLatency?: Duration;
225
+ /**
226
+ * The minimum latency in milliseconds for SRT-based streams. The value you set on your
227
+ * MediaConnect source represents the minimal potential latency of that connection. The
228
+ * latency of the stream is set to the higher of the sender's minimum latency and the
229
+ * receiver's minimum latency.
230
+ *
231
+ * @default - no minimum latency
232
+ */
233
+ readonly minLatency?: Duration;
234
+ /**
235
+ * The stream ID that you want to use for the transport.
236
+ *
237
+ * @default - no stream ID
238
+ */
239
+ readonly streamId?: string;
240
+ /**
241
+ * Optional VPC interface for the outbound SRT Caller connection. SRT Caller initiates
242
+ * the connection to the configured `sourceListenerAddress` and `sourceListenerPort`,
243
+ * so no CIDR allow list is needed.
244
+ *
245
+ * @default - outbound connection via the public internet; no VPC interface
246
+ */
247
+ readonly vpcInterface?: VpcInterfaceConfig;
248
+ /**
249
+ * SRT Decryption options
250
+ *
251
+ * @default - no decryption
252
+ */
253
+ readonly decryption?: SrtPasswordEncryption;
254
+ }
255
+ /**
256
+ * Configuration for Zixi Push.
257
+ *
258
+ * No port option is exposed: MediaConnect assigns the Zixi Push ingest port itself —
259
+ * public sources are served on 2088, VPC sources are auto-assigned a port in 2090–2099.
260
+ * The service rejects any user-supplied port value, so the L2 surface doesn't accept one.
261
+ *
262
+ * @see https://docs.aws.amazon.com/mediaconnect/latest/ug/source-ports.html
263
+ */
264
+ export interface SourceZixiPush extends SourceBase {
265
+ /**
266
+ * The maximum latency in milliseconds for a Zixi-based source.
267
+ *
268
+ * @default - chosen by MediaConnect
269
+ */
270
+ readonly maxLatency?: Duration;
271
+ /**
272
+ * The stream ID that you want to use for the transport. This parameter applies only to Zixi-based streams.
273
+ *
274
+ * @default - no stream ID
275
+ */
276
+ readonly streamId?: string;
277
+ /**
278
+ * Defines networking configuration
279
+ */
280
+ readonly network: NetworkConfiguration;
281
+ /**
282
+ * Decrypt source with static keys
283
+ *
284
+ * @default - no decryption
285
+ */
286
+ readonly decryption?: StaticKeyEncryption;
287
+ }
288
+ /**
289
+ * Configuration for CDI
290
+ */
291
+ export interface SourceCdi {
292
+ /**
293
+ * The name of the source.
294
+ *
295
+ * @default - a name is generated automatically
296
+ */
297
+ readonly flowSourceName?: string;
298
+ /**
299
+ * The VPC interface attachment to use for this bridge source.
300
+ */
301
+ readonly vpcInterface: VpcInterfaceConfig;
302
+ /**
303
+ * The size of the buffer (in ms) to use to sync incoming source data.
304
+ *
305
+ * Required by the MediaConnect service for CDI sources.
306
+ */
307
+ readonly maxSyncBuffer: number;
308
+ /**
309
+ * The port that the flow will be listening on for incoming content.
310
+ */
311
+ readonly port: number;
312
+ /**
313
+ * The media stream that is associated with the source, and the parameters for that association.
314
+ */
315
+ readonly mediaStreamSourceConfigurations: MediaStreamSourceConfigurationCdi[];
316
+ }
317
+ /**
318
+ * Configuration for Jpeg XS
319
+ */
320
+ export interface SourceJpegXs {
321
+ /**
322
+ * The name of the source.
323
+ *
324
+ * @default - a name is generated automatically
325
+ */
326
+ readonly flowSourceName?: string;
327
+ /**
328
+ * The size of the buffer (in ms) to use to sync incoming source data.
329
+ *
330
+ * @default 100
331
+ */
332
+ readonly maxSyncBuffer?: number;
333
+ /**
334
+ * The media stream that is associated with the source, and the parameters for that association.
335
+ */
336
+ readonly mediaStreamSourceConfigurations: MediaStreamSourceConfigurationJpegXs[];
337
+ /**
338
+ * The VPC interface attachment to use for this bridge source.
339
+ *
340
+ * @default - no VPC interface
341
+ */
342
+ readonly vpcInterface?: VpcInterfaceConfig[];
343
+ }
344
+ /**
345
+ * Configuration for NDI (SpeedHQ) source.
346
+ *
347
+ * NDI sources are ingested from NDI senders inside your VPC. The flow must be
348
+ * configured with `flowSize: FlowSize.LARGE` and `ndiConfig.ndiState = ENABLED`
349
+ * with at least one NDI discovery server. The VPC connectivity for NDI is
350
+ * configured on the discovery server entries in `NdiConfig`, not on the source
351
+ * itself.
352
+ */
353
+ export interface SourceNdi {
354
+ /**
355
+ * The name of the source.
356
+ *
357
+ * @default - a name is generated automatically
358
+ */
359
+ readonly flowSourceName?: string;
360
+ /**
361
+ * A description of the source. This description appears only on the MediaConnect
362
+ * console and will not be seen by the end user.
363
+ *
364
+ * @default - no description
365
+ */
366
+ readonly description?: string;
367
+ /**
368
+ * The exact name of an existing NDI sender that's registered with your discovery
369
+ * server. If included, the format of this name must be `MACHINENAME (ProgramName)`.
370
+ *
371
+ * If not specified, you can select the upstream NDI sender from the console
372
+ * after starting the flow.
373
+ *
374
+ * @default - select the NDI sender after starting the flow
375
+ */
376
+ readonly sourceName?: string;
377
+ }
378
+ /**
379
+ * Options for Gateway Bridge Source
380
+ */
381
+ export interface GatewayBridgeSource {
382
+ /**
383
+ * The bridge feeding this flow.
384
+ */
385
+ readonly bridge: IBridge;
386
+ /**
387
+ * The VPC interface attachment to use for this bridge source.
388
+ *
389
+ * @default - no VPC interface
390
+ */
391
+ readonly vpcInterface?: VpcInterfaceConfig;
392
+ }
393
+ /**
394
+ * Options for Router Source
395
+ */
396
+ export interface RouterSource {
397
+ /**
398
+ * The router output that feeds this flow source.
399
+ *
400
+ * @default - no router output connected
401
+ */
402
+ readonly routerOutput?: IRouterOutput;
403
+ /**
404
+ * Options to decrypt incoming feed
405
+ *
406
+ * @default - no decryption
407
+ */
408
+ readonly decryption?: TransitEncryption;
409
+ }
410
+ /**
411
+ * Options for Entitlement
412
+ */
413
+ export interface EntitlementSource {
414
+ /**
415
+ * The entitlement that allows you to subscribe to content that comes from another AWS account.
416
+ *
417
+ * @remarks Entitlements are always imported from another AWS account using
418
+ * `FlowEntitlement.fromFlowEntitlementArn()`. You cannot create new entitlements
419
+ * in the same stack where you're consuming them.
420
+ */
421
+ readonly entitlement: IFlowEntitlement;
422
+ /**
423
+ * Options to decrypt incoming feed
424
+ *
425
+ * @default - no decryption
426
+ */
427
+ readonly decryption?: StaticKeyEncryption;
428
+ }
429
+ /**
430
+ * Protocol Options for Sources
431
+ */
432
+ export declare class SourceProtocol {
433
+ readonly value: string;
434
+ /**
435
+ * Options for Zixi Push
436
+ */
437
+ static readonly ZIXI_PUSH: SourceProtocol;
438
+ /**
439
+ * Options for RTP-FEC
440
+ */
441
+ static readonly RTP_FEC: SourceProtocol;
442
+ /**
443
+ * Options for RTP
444
+ */
445
+ static readonly RTP: SourceProtocol;
446
+ /**
447
+ * Options for RIST
448
+ */
449
+ static readonly RIST: SourceProtocol;
450
+ /**
451
+ * Options for SRT Listener
452
+ */
453
+ static readonly SRT_LISTENER: SourceProtocol;
454
+ /**
455
+ * Options for SRT Caller
456
+ */
457
+ static readonly SRT_CALLER: SourceProtocol;
458
+ /**
459
+ * Options for 2110
460
+ */
461
+ static readonly JPEGXS: SourceProtocol;
462
+ /**
463
+ * Options for CDI
464
+ */
465
+ static readonly CDI: SourceProtocol;
466
+ /**
467
+ * Options for NDI (SpeedHQ)
468
+ */
469
+ static readonly NDI_SPEED_HQ: SourceProtocol;
470
+ /**
471
+ * Use a custom source protocol value
472
+ * @param value The source protocol string value
473
+ */
474
+ static of(value: string): SourceProtocol;
475
+ /**
476
+ * @param value The source protocol string value
477
+ */
478
+ private constructor();
479
+ /** Returns the string value */
480
+ toString(): string;
481
+ }
482
+ /**
483
+ * Configurations for sources
484
+ */
485
+ export declare class SourceConfiguration {
486
+ private readonly input;
487
+ private readonly staticKeyDecryption?;
488
+ private readonly srtPasswordDecryption?;
489
+ private readonly routerDecryption?;
490
+ /**
491
+ * The source configuration for flows receiving a stream from router.
492
+ */
493
+ static router(input?: RouterSource): SourceConfiguration;
494
+ /**
495
+ * The source configuration for cloud flows receiving a stream from a bridge.
496
+ */
497
+ static gatewayBridge(input: GatewayBridgeSource): SourceConfiguration;
498
+ /**
499
+ * The entitlement that allows you to subscribe to content that comes from another AWS account. The entitlement is set by the
500
+ * content originator and the ARN is generated as part of the originator's flow.
501
+ *
502
+ * @remarks The entitlement must be imported using `FlowEntitlement.fromFlowEntitlementArn()`
503
+ * as entitlements are created by the content originator in a different AWS account.
504
+ */
505
+ static entitlement(input: EntitlementSource): SourceConfiguration;
506
+ /**
507
+ * Source option for RTP input
508
+ */
509
+ static rtp(input: SourceRtp): SourceConfiguration;
510
+ /**
511
+ * Source option for RTP-FEC input
512
+ */
513
+ static rtpFec(input: SourceRtp): SourceConfiguration;
514
+ /**
515
+ * Source option for RIST input
516
+ */
517
+ static rist(input: SourceRist): SourceConfiguration;
518
+ /**
519
+ * Source option for SRT Listener input
520
+ */
521
+ static srtListener(input: SourceSrtListener): SourceConfiguration;
522
+ /**
523
+ * Source option for Zixi Push input
524
+ */
525
+ static zixiPush(input: SourceZixiPush): SourceConfiguration;
526
+ /**
527
+ * Source option for SRT Caller input
528
+ */
529
+ static srtCaller(input: SourceSrtCaller): SourceConfiguration;
530
+ /**
531
+ * Source option for CDI input
532
+ */
533
+ static cdi(input: SourceCdi): SourceConfiguration;
534
+ /**
535
+ * Source option for Jpeg-XS input
536
+ */
537
+ static jpegXs(input: SourceJpegXs): SourceConfiguration;
538
+ /**
539
+ * Source option for NDI (SpeedHQ) input.
540
+ *
541
+ * The flow must be configured with `flowSize: FlowSize.LARGE` and
542
+ * `ndiConfig.ndiState = State.ENABLED` with at least one NDI discovery server.
543
+ */
544
+ static ndi(input: SourceNdi): SourceConfiguration;
545
+ /**
546
+ * The name of this source, if one was set on the configuration.
547
+ */
548
+ readonly flowSourceName?: string;
549
+ /**
550
+ * @param input - CFN-shaped source properties (encryption fields are merged in `_bind`).
551
+ * @param staticKeyDecryption - Optional static-key decryption. Set at most one of
552
+ * `staticKeyDecryption` / `srtPasswordDecryption`.
553
+ * @param srtPasswordDecryption - Optional SRT-password decryption.
554
+ * @param routerDecryption - Optional transit decryption for router integration.
555
+ */
556
+ private constructor();
557
+ private renderDecryption;
558
+ }