@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,686 @@
1
+ import type { Bitrate, IResource } from 'aws-cdk-lib';
2
+ import { Duration, 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 { IRouterInputRef, RouterInputReference } from 'aws-cdk-lib/aws-mediaconnect';
6
+ import type { ISecret } from 'aws-cdk-lib/aws-secretsmanager';
7
+ import type { Construct } from 'constructs';
8
+ import type { IFlow } from './flow';
9
+ import type { IFlowOutput } from './flow-output';
10
+ import { RouterInputGrants } from './mediaconnect-grants.generated';
11
+ import type { IRouterNetworkInterface } from './router-network-interface';
12
+ import type { MaintenanceDay, MediaLivePipeline, RouterSrtEncryption, TransitEncryption } from './shared';
13
+ /**
14
+ * Protocol options available for Router Input configurations
15
+ */
16
+ export declare class RouterInputProtocolOptions {
17
+ readonly value: string;
18
+ /** Real-time Transport Protocol */
19
+ static readonly RTP: RouterInputProtocolOptions;
20
+ /** Reliable Internet Stream Transport */
21
+ static readonly RIST: RouterInputProtocolOptions;
22
+ /** Secure Reliable Transport - Caller mode */
23
+ static readonly SRT_CALLER: RouterInputProtocolOptions;
24
+ /** Secure Reliable Transport - Listener mode */
25
+ static readonly SRT_LISTENER: RouterInputProtocolOptions;
26
+ /**
27
+ * Use a custom protocol value
28
+ * @param value The protocol string value
29
+ */
30
+ static of(value: string): RouterInputProtocolOptions;
31
+ /** @param value The protocol string value */
32
+ private constructor();
33
+ /** Returns the string value */
34
+ toString(): string;
35
+ }
36
+ /**
37
+ * A single ingest endpoint where the router input listens for upstream content.
38
+ *
39
+ * Failover and merge configurations expose two endpoints; standard configurations
40
+ * expose one. Returned by {@link IRouterInput.endpoints}.
41
+ */
42
+ export interface RouterInputEndpoint {
43
+ /**
44
+ * The full ingest URL combining protocol scheme, IP, and port. For example:
45
+ * `srt://203.0.113.10:5000` or `rtp://203.0.113.10:5001`.
46
+ */
47
+ readonly url: string;
48
+ /**
49
+ * The listening port at which the router input accepts upstream content.
50
+ */
51
+ readonly port: number;
52
+ }
53
+ /**
54
+ * Interface for Router Input
55
+ */
56
+ export interface IRouterInput extends IResource, IRouterInputRef {
57
+ /**
58
+ * The Amazon Resource Name (ARN) of the router input.
59
+ *
60
+ * @attribute
61
+ */
62
+ readonly routerInputArn: string;
63
+ /**
64
+ * The unique identifier of the router input.
65
+ *
66
+ * @attribute
67
+ */
68
+ readonly routerInputId: string;
69
+ /**
70
+ * The IP address of the router input.
71
+ *
72
+ * @attribute
73
+ */
74
+ readonly ipAddress: string;
75
+ /**
76
+ * The timestamp when the router input was created.
77
+ *
78
+ * @attribute
79
+ */
80
+ readonly createdAt?: string;
81
+ /**
82
+ * The timestamp when the router input was last updated.
83
+ *
84
+ * @attribute
85
+ */
86
+ readonly updatedAt?: string;
87
+ /**
88
+ * The ingest endpoints (URL + port) where the router input listens.
89
+ *
90
+ * Returns one entry for standard protocol-based variants (RTP, RIST, SRT listener),
91
+ * and one entry per source for failover and merge configurations built from those
92
+ * protocols. For example a failover RTP input will return:
93
+ *
94
+ * ```
95
+ * [
96
+ * { url: 'rtp://203.0.113.10:5000', port: 5000 },
97
+ * { url: 'rtp://203.0.113.10:5001', port: 5001 },
98
+ * ]
99
+ * ```
100
+ *
101
+ * Accessing this on SRT caller (where the router input dials out to a remote
102
+ * source), MediaConnect Flow, MediaLive Channel, or imported inputs throws — those
103
+ * variants do not expose host:port pairs the input listens on.
104
+ */
105
+ readonly endpoints: RouterInputEndpoint[];
106
+ /**
107
+ * The Secrets Manager secret containing the transit encryption passphrase.
108
+ *
109
+ * Only available when the Router Input was created with explicit
110
+ * `transitEncryption` configuration. Not available for
111
+ * automatic encryption or imported inputs.
112
+ */
113
+ readonly transitEncryptionSecret?: ISecret;
114
+ /**
115
+ * Collection of grant methods for this router input.
116
+ */
117
+ readonly grants: RouterInputGrants;
118
+ /**
119
+ * Create a CloudWatch metric for this router input.
120
+ *
121
+ * Router input metrics are dimensioned by `RouterInputARN`. See the MediaConnect
122
+ * documentation for available metric names (e.g. `RouterInputBitRate`,
123
+ * `RouterInputNotRecoveredPackets`).
124
+ */
125
+ metric(metricName: string, props?: MetricOptions): Metric;
126
+ /**
127
+ * Metric for the bitrate of the router input's payload.
128
+ * @default - average over 60 seconds
129
+ */
130
+ metricBitrate(props?: MetricOptions): Metric;
131
+ /**
132
+ * Metric for packets lost in transit that were not recovered by error correction.
133
+ * @default - sum over 60 seconds
134
+ */
135
+ metricNotRecoveredPackets(props?: MetricOptions): Metric;
136
+ /**
137
+ * Metric for the total number of packets received by the router input.
138
+ * @default - sum over 60 seconds
139
+ */
140
+ metricTotalPackets(props?: MetricOptions): Metric;
141
+ /**
142
+ * Metric for the router input connection state (1 connected, 0 disconnected). Applies to SRT sources only.
143
+ * @default - minimum over 60 seconds
144
+ */
145
+ metricConnected(props?: MetricOptions): Metric;
146
+ /**
147
+ * Metric for continuity counter errors in the transport stream.
148
+ * @default - sum over 60 seconds
149
+ */
150
+ metricContinuityCounterErrors(props?: MetricOptions): Metric;
151
+ /**
152
+ * Metric for the recovery latency of the input stream. Applies to RIST, SRT, and RTP-FEC.
153
+ * @default - average over 60 seconds
154
+ */
155
+ metricLatency(props?: MetricOptions): Metric;
156
+ /**
157
+ * Metric for the number of times the router input has switched sources in Failover mode.
158
+ * @default - sum over 60 seconds
159
+ */
160
+ metricFailoverSwitches(props?: MetricOptions): Metric;
161
+ }
162
+ /**
163
+ * Routing scope for the Router Input
164
+ */
165
+ export declare class RoutingScope {
166
+ readonly value: string;
167
+ /** Route traffic within the same AWS region */
168
+ static readonly REGIONAL: RoutingScope;
169
+ /** Route traffic globally across AWS regions */
170
+ static readonly GLOBAL: RoutingScope;
171
+ /**
172
+ * Use a custom routing scope value
173
+ * @param value The routing scope string value
174
+ */
175
+ static of(value: string): RoutingScope;
176
+ /** @param value The routing scope string value */
177
+ private constructor();
178
+ /** Returns the string value */
179
+ toString(): string;
180
+ }
181
+ /**
182
+ * Routing tier based on your maximum bitrate requirements.
183
+ */
184
+ export declare class RouterInputTier {
185
+ readonly value: string;
186
+ /** Supports a maximum bitrate up to 100 megabits per second. */
187
+ static readonly INPUT_100: RouterInputTier;
188
+ /** Supports a maximum bitrate up to 50 megabits per second. */
189
+ static readonly INPUT_50: RouterInputTier;
190
+ /** Supports a maximum bitrate up to 20 megabits per second. */
191
+ static readonly INPUT_20: RouterInputTier;
192
+ /**
193
+ * Use a custom tier value
194
+ * @param value The tier string value
195
+ */
196
+ static of(value: string): RouterInputTier;
197
+ /** @param value The tier string value */
198
+ private constructor();
199
+ /** Returns the string value */
200
+ toString(): string;
201
+ }
202
+ /**
203
+ * Configuration for scheduled maintenance windows
204
+ */
205
+ export interface MaintenanceConfiguration {
206
+ /** Day of the week for maintenance (e.g., 'Monday', 'Tuesday') */
207
+ readonly day: MaintenanceDay;
208
+ /** Time of day for maintenance in HH:MM format (e.g., '02:00') */
209
+ readonly time: string;
210
+ }
211
+ /**
212
+ * Properties for creating a Router Input
213
+ */
214
+ export interface RouterInputProps {
215
+ /**
216
+ * Name of the Router Input
217
+ * @default - Generated automatically
218
+ */
219
+ readonly routerInputName?: string;
220
+ /** Maximum bitrate in bits per second that the Router Input can handle */
221
+ readonly maximumBitrate: Bitrate;
222
+ /** Routing scope for the Router Input */
223
+ readonly routingScope: RoutingScope;
224
+ /**
225
+ * Select a tier based on your maximum bitrate requirements.
226
+ *
227
+ * @default RouterInputTier.INPUT_20
228
+ */
229
+ readonly tier?: RouterInputTier;
230
+ /** Configuration for the Router Input (standard, failover, merge, or MediaConnect flow) */
231
+ readonly configuration: RouterInputConfiguration;
232
+ /**
233
+ * Maintenance window configuration
234
+ * @default - Default maintenance window will be used
235
+ */
236
+ readonly maintenanceConfiguration?: MaintenanceConfiguration;
237
+ /**
238
+ * AWS region where the Router Input will be created (i.e. us-east-1).
239
+ *
240
+ * Must match the region of the flows, flow outputs, and network interfaces it connects to —
241
+ * MediaConnect rejects a cross-region connection at deploy.
242
+ *
243
+ * @default - Same as the stack's region
244
+ */
245
+ readonly regionName?: string;
246
+ /**
247
+ * Tags to add to the Router Input
248
+ * @default - No tagging
249
+ */
250
+ readonly tags?: {
251
+ [key: string]: string;
252
+ };
253
+ /**
254
+ * Transit encryption configuration using AWS Secrets Manager.
255
+ *
256
+ * When provided without a role, a scoped IAM role is automatically created with read
257
+ * access to the secret.
258
+ *
259
+ * @default - Automatic encryption will be configured
260
+ */
261
+ readonly transitEncryption?: TransitEncryption;
262
+ }
263
+ /**
264
+ * Attributes for importing an existing Router Input.
265
+ */
266
+ export interface RouterInputAttributes {
267
+ /**
268
+ * The Amazon Resource Name (ARN) of the router input.
269
+ */
270
+ readonly routerInputArn: string;
271
+ /**
272
+ * The unique identifier of the router input.
273
+ *
274
+ * @default - accessing `routerInputId` on the imported input throws; only provide when available.
275
+ */
276
+ readonly routerInputId?: string;
277
+ /**
278
+ * The IP address that the router input uses to ingest content.
279
+ *
280
+ * @default - accessing `ipAddress` on the imported input throws; only provide when available.
281
+ */
282
+ readonly ipAddress?: string;
283
+ }
284
+ /**
285
+ * Forward Error Correction (FEC) options for RTP protocol
286
+ */
287
+ export declare enum ForwardErrorCorrection {
288
+ /** Enable Forward Error Correction */
289
+ ENABLED = "ENABLED",
290
+ /** Disable Forward Error Correction */
291
+ DISABLED = "DISABLED"
292
+ }
293
+ /**
294
+ * Identifies which protocol in a failover configuration's protocols array is primary.
295
+ */
296
+ export declare enum PrimarySource {
297
+ /** The first protocol in the failover protocols array. */
298
+ FIRST_SOURCE = 0,
299
+ /** The second protocol in the failover protocols array. */
300
+ SECOND_SOURCE = 1
301
+ }
302
+ /**
303
+ * Source priority configuration for failover Router Input configurations.
304
+ */
305
+ export declare class SourcePriorityConfig {
306
+ private readonly _mode;
307
+ private readonly _primary;
308
+ /**
309
+ * Treat both sources with equal priority — MediaConnect picks one when needed.
310
+ */
311
+ static none(): SourcePriorityConfig;
312
+ /**
313
+ * Designate one of the two sources as primary; the other is treated as backup.
314
+ */
315
+ static primarySecondary(primary: PrimarySource): SourcePriorityConfig;
316
+ private constructor();
317
+ }
318
+ /**
319
+ * Properties for RTP protocol configuration
320
+ */
321
+ export interface RtpProtocolProps {
322
+ /** Port number for RTP traffic */
323
+ readonly port: number;
324
+ /**
325
+ * Forward Error Correction setting
326
+ * @default - undefined; when omitted, MediaConnect applies ForwardErrorCorrection.DISABLED at deploy time
327
+ */
328
+ readonly forwardErrorCorrection?: ForwardErrorCorrection;
329
+ }
330
+ /**
331
+ * Properties for RIST protocol configuration
332
+ */
333
+ export interface RistProtocolProps {
334
+ /** Port number for RIST traffic */
335
+ readonly port: number;
336
+ /** Recovery latency for RIST */
337
+ readonly recoveryLatency: Duration;
338
+ }
339
+ /**
340
+ * Properties for SRT Listener protocol configuration
341
+ */
342
+ export interface SrtListenerProtocolProps {
343
+ /** Port number for SRT listener */
344
+ readonly port: number;
345
+ /** Minimum latency for SRT */
346
+ readonly minimumLatency: Duration;
347
+ /**
348
+ * Optional decryption configuration for encrypted SRT streams
349
+ * @default - No decryption
350
+ */
351
+ readonly decryptionConfiguration?: RouterSrtEncryption;
352
+ }
353
+ /**
354
+ * Properties for SRT Caller protocol configuration
355
+ */
356
+ export interface SrtCallerProtocolProps {
357
+ /** Source IP address to connect to */
358
+ readonly sourceAddress: string;
359
+ /** Source port to connect to */
360
+ readonly sourcePort: number;
361
+ /** Minimum latency for SRT */
362
+ readonly minimumLatency: Duration;
363
+ /**
364
+ * Optional stream ID for SRT connection
365
+ * @default - No stream ID
366
+ */
367
+ readonly streamId?: string;
368
+ /**
369
+ * Optional decryption configuration for encrypted SRT streams
370
+ * @default - No decryption
371
+ */
372
+ readonly decryptionConfiguration?: RouterSrtEncryption;
373
+ }
374
+ /**
375
+ * Factory class for creating Router Input protocol configurations
376
+ */
377
+ export declare class RouterInputProtocol {
378
+ /**
379
+ * Create an RTP protocol configuration
380
+ * @param props RTP protocol properties
381
+ * @returns RouterInputProtocol instance configured for RTP
382
+ */
383
+ static rtp(props: RtpProtocolProps): RouterInputProtocol;
384
+ /**
385
+ * Create a RIST protocol configuration
386
+ * @param props RIST protocol properties
387
+ * @returns RouterInputProtocol instance configured for RIST
388
+ */
389
+ static rist(props: RistProtocolProps): RouterInputProtocol;
390
+ /**
391
+ * Create an SRT Listener protocol configuration
392
+ * @param props SRT Listener protocol properties
393
+ * @returns RouterInputProtocol instance configured for SRT Listener
394
+ */
395
+ static srtListener(props: SrtListenerProtocolProps): RouterInputProtocol;
396
+ /**
397
+ * Create an SRT Caller protocol configuration
398
+ * @param props SRT Caller protocol properties
399
+ * @returns RouterInputProtocol instance configured for SRT Caller
400
+ */
401
+ static srtCaller(props: SrtCallerProtocolProps): RouterInputProtocol;
402
+ /**
403
+ * Validate that port is within the valid range (3000-30000)
404
+ */
405
+ private static validatePort;
406
+ /**
407
+ * Validate that SRT Caller port is within the valid range (0-65535)
408
+ */
409
+ private static validateSrtCallerPort;
410
+ private readonly _protocolName;
411
+ private readonly _config;
412
+ private readonly _port?;
413
+ private readonly _decryption?;
414
+ private constructor();
415
+ }
416
+ /**
417
+ * Properties for standard Router Input configuration
418
+ */
419
+ export interface StandardConfigurationProps {
420
+ /** Network interface for the Router Input */
421
+ readonly networkInterface: IRouterNetworkInterface;
422
+ /** Protocol configuration for the input */
423
+ readonly protocol: RouterInputProtocol;
424
+ }
425
+ /**
426
+ * Properties for failover Router Input configuration
427
+ */
428
+ export interface FailoverConfigurationProps {
429
+ /** Network interface for the Router Input */
430
+ readonly networkInterface: IRouterNetworkInterface;
431
+ /** Array of exactly 2 protocol configurations for failover (must be same protocol type) */
432
+ readonly protocols: RouterInputProtocol[];
433
+ /**
434
+ * Source priority configuration for failover.
435
+ *
436
+ * @default SourcePriorityConfig.none()
437
+ */
438
+ readonly sourcePriority?: SourcePriorityConfig;
439
+ }
440
+ /**
441
+ * Properties for merge Router Input configuration
442
+ */
443
+ export interface MergeConfigurationProps {
444
+ /** Network interface for the Router Input */
445
+ readonly networkInterface: IRouterNetworkInterface;
446
+ /** Array of exactly 2 protocol configurations for merge (must be same non-SRT protocol type) */
447
+ readonly protocols: RouterInputProtocol[];
448
+ /** Recovery window for merge operation */
449
+ readonly mergeRecoveryWindow: Duration;
450
+ }
451
+ /**
452
+ * Properties for MediaConnect Flow Router Input configuration
453
+ */
454
+ export interface MediaConnectFlowConfigurationProps {
455
+ /** The MediaConnect flow to use as input */
456
+ readonly flow: IFlow;
457
+ /** The flow output that feeds this router input */
458
+ readonly flowOutput: IFlowOutput;
459
+ /**
460
+ * Optional transit encryption configuration
461
+ * @default - Automatic encryption will be used
462
+ */
463
+ readonly sourceTransitDecryption?: TransitEncryption;
464
+ }
465
+ /**
466
+ * Properties for MediaConnect Flow Router Input configuration - without a connection
467
+ */
468
+ export interface MediaConnectFlowConfigurationWithoutConnectionProps {
469
+ /**
470
+ * Availability Zone the router input will be placed in.
471
+ */
472
+ readonly availabilityZone: string;
473
+ /**
474
+ * Optional transit encryption configuration
475
+ * @default - Automatic encryption will be used
476
+ */
477
+ readonly sourceTransitDecryption?: TransitEncryption;
478
+ }
479
+ /**
480
+ * Properties for MediaLive Channel Router Input configuration.
481
+ *
482
+ * Use this when the MediaLive channel already exists and you want to ingest
483
+ * from one of its outputs immediately.
484
+ */
485
+ export interface MediaLiveChannelConfigurationProps {
486
+ /**
487
+ * ARN of the MediaLive channel to use as input.
488
+ *
489
+ * Note: This will change to accept a typed MediaLive channel reference
490
+ * when the @aws-cdk/aws-medialive-alpha L2 construct is released.
491
+ */
492
+ readonly mediaLiveChannelArn: string;
493
+ /**
494
+ * The name of the MediaLive channel output to connect to this router input.
495
+ */
496
+ readonly mediaLiveChannelOutputName: string;
497
+ /**
498
+ * The MediaLive pipeline to connect to this router input.
499
+ */
500
+ readonly mediaLivePipelineId: MediaLivePipeline;
501
+ /**
502
+ * Optional transit encryption configuration.
503
+ *
504
+ * @default - Automatic encryption will be used
505
+ */
506
+ readonly sourceTransitDecryption?: TransitEncryption;
507
+ }
508
+ /**
509
+ * Properties for MediaLive Channel Router Input configuration without a specific channel connection.
510
+ *
511
+ * Use this when you want to set up the router input before the target MediaLive channel exists.
512
+ */
513
+ export interface MediaLiveChannelConfigurationWithoutConnectionProps {
514
+ /**
515
+ * Availability Zone the router input will be placed in.
516
+ */
517
+ readonly availabilityZone: string;
518
+ /**
519
+ * Optional transit encryption configuration.
520
+ *
521
+ * @default - Automatic encryption will be used
522
+ */
523
+ readonly sourceTransitDecryption?: TransitEncryption;
524
+ }
525
+ /**
526
+ * Factory class for creating Router Input configurations
527
+ */
528
+ export declare abstract class RouterInputConfiguration {
529
+ /**
530
+ * Create a standard Router Input configuration with a single protocol
531
+ * @param props Standard configuration properties
532
+ * @returns RouterInputConfiguration instance for standard setup
533
+ */
534
+ static standard(props: StandardConfigurationProps): RouterInputConfiguration;
535
+ /**
536
+ * Create a failover Router Input configuration with two matching protocols
537
+ * @param props Failover configuration properties
538
+ * @returns RouterInputConfiguration instance for failover setup
539
+ * @throws Error if protocols don't match or count is not exactly 2
540
+ */
541
+ static failover(props: FailoverConfigurationProps): RouterInputConfiguration;
542
+ /**
543
+ * Create a merge Router Input configuration with two matching non-SRT protocols
544
+ * @param props Merge configuration properties
545
+ * @returns RouterInputConfiguration instance for merge setup
546
+ * @throws Error if protocols don't match, count is not exactly 2, or SRT protocols are used
547
+ */
548
+ static merge(props: MergeConfigurationProps): RouterInputConfiguration;
549
+ /**
550
+ * Create a MediaConnect Flow Router Input configuration without connecting to a specific flow
551
+ * Use this when you want to prepare the router input for a flow connection later
552
+ * @param props MediaConnect Flow configuration properties without connection
553
+ * @returns RouterInputConfiguration instance for MediaConnect Flow setup without connection
554
+ */
555
+ static mediaConnectFlowWithoutConnection(props: MediaConnectFlowConfigurationWithoutConnectionProps): RouterInputConfiguration;
556
+ /**
557
+ * Create a MediaConnect Flow Router Input configuration.
558
+ *
559
+ * Use this when the source flow already exists and you want to connect immediately.
560
+ *
561
+ * @param props MediaConnect Flow configuration properties
562
+ * @returns RouterInputConfiguration instance for MediaConnect Flow setup
563
+ */
564
+ static mediaConnectFlow(props: MediaConnectFlowConfigurationProps): RouterInputConfiguration;
565
+ /**
566
+ * Create a MediaLive Channel Router Input configuration.
567
+ *
568
+ * Use this when the source MediaLive channel already exists and you want to
569
+ * ingest from one of its outputs immediately.
570
+ *
571
+ * @param props MediaLive channel configuration properties
572
+ * @returns RouterInputConfiguration instance for MediaLive channel setup
573
+ */
574
+ static mediaLiveChannel(props: MediaLiveChannelConfigurationProps): RouterInputConfiguration;
575
+ /**
576
+ * Create a MediaLive Channel Router Input configuration without a specific channel connection.
577
+ *
578
+ * Use this when you want to set up the router input before the target MediaLive channel exists.
579
+ *
580
+ * @param props MediaLive channel no-connection properties
581
+ * @returns RouterInputConfiguration instance for MediaLive channel setup without connection
582
+ */
583
+ static mediaLiveChannelWithoutConnection(props: MediaLiveChannelConfigurationWithoutConnectionProps): RouterInputConfiguration;
584
+ }
585
+ /**
586
+ * A MediaConnect Router Input that receives media streams and routes them to outputs.
587
+ *
588
+ * Router Inputs support multiple configuration types:
589
+ * - Standard: Single protocol input
590
+ * - Failover: Two matching protocols for redundancy
591
+ * - Merge: Two matching non-SRT protocols for stream merging
592
+ * - MediaConnect Flow: Input from an existing MediaConnect Flow
593
+ */
594
+ declare abstract class RouterInputBase extends Resource implements IRouterInput {
595
+ abstract readonly routerInputArn: string;
596
+ abstract readonly routerInputId: string;
597
+ abstract readonly ipAddress: string;
598
+ abstract readonly createdAt?: string;
599
+ abstract readonly updatedAt?: string;
600
+ abstract readonly endpoints: RouterInputEndpoint[];
601
+ abstract readonly transitEncryptionSecret?: ISecret;
602
+ abstract readonly grants: RouterInputGrants;
603
+ /**
604
+ * A reference to this Router Input resource.
605
+ * Required by the auto-generated IRouterInputRef interface.
606
+ */
607
+ get routerInputRef(): RouterInputReference;
608
+ /**
609
+ * Create a CloudWatch metric for this router input.
610
+ */
611
+ metric(metricName: string, props?: MetricOptions): Metric;
612
+ /**
613
+ * Metric for the bitrate of the router input's payload.
614
+ */
615
+ metricBitrate(props?: MetricOptions): Metric;
616
+ /**
617
+ * Metric for packets lost in transit that were not recovered by error correction.
618
+ */
619
+ metricNotRecoveredPackets(props?: MetricOptions): Metric;
620
+ /**
621
+ * Metric for the total number of packets received by the router input.
622
+ */
623
+ metricTotalPackets(props?: MetricOptions): Metric;
624
+ /**
625
+ * Metric for the router input connection state (1 connected, 0 disconnected). Applies to SRT sources only.
626
+ */
627
+ metricConnected(props?: MetricOptions): Metric;
628
+ /**
629
+ * Metric for continuity counter errors in the transport stream.
630
+ */
631
+ metricContinuityCounterErrors(props?: MetricOptions): Metric;
632
+ /**
633
+ * Metric for the recovery latency of the input stream. Applies to RIST, SRT, and RTP-FEC.
634
+ */
635
+ metricLatency(props?: MetricOptions): Metric;
636
+ /**
637
+ * Metric for the number of times the router input has switched sources in Failover mode.
638
+ */
639
+ metricFailoverSwitches(props?: MetricOptions): Metric;
640
+ }
641
+ /**
642
+ * Defines an AWS Elemental MediaConnect Router Input.
643
+ */
644
+ export declare class RouterInput extends RouterInputBase implements IRouterInput {
645
+ /** Uniquely identifies this class. */
646
+ static readonly PROPERTY_INJECTION_ID: string;
647
+ /**
648
+ * Import an existing Router Input from its ARN.
649
+ *
650
+ * Use `fromRouterInputAttributes()` instead if you need to expose `routerInputId`
651
+ * or `ipAddress` on the imported construct.
652
+ *
653
+ * @param scope The parent construct
654
+ * @param id The construct id
655
+ * @param routerInputArn The ARN of the Router Input
656
+ * @returns A Router Input construct
657
+ */
658
+ static fromRouterInputArn(scope: Construct, id: string, routerInputArn: string): IRouterInput;
659
+ /**
660
+ * Import an existing Router Input from its attributes.
661
+ *
662
+ * Provide `routerInputId` and/or `ipAddress` when importing an input that was deployed
663
+ * externally — otherwise accessing those properties on the imported construct will throw.
664
+ *
665
+ * @param scope The parent construct
666
+ * @param id The construct id
667
+ * @param attrs The Router Input attributes
668
+ * @returns A Router Input construct
669
+ */
670
+ static fromRouterInputAttributes(scope: Construct, id: string, attrs: RouterInputAttributes): IRouterInput;
671
+ /**
672
+ * Returns the maximum bitrate in Mbps for a known tier, or undefined for custom tiers.
673
+ */
674
+ private static tierLimitMbps;
675
+ readonly routerInputArn: string;
676
+ readonly routerInputId: string;
677
+ readonly ipAddress: string;
678
+ readonly createdAt?: string;
679
+ readonly updatedAt?: string;
680
+ private readonly _endpoints;
681
+ readonly transitEncryptionSecret?: ISecret;
682
+ readonly grants: RouterInputGrants;
683
+ get endpoints(): RouterInputEndpoint[];
684
+ constructor(scope: Construct, id: string, props: RouterInputProps);
685
+ }
686
+ export {};