@aws-cdk/aws-mediaconnect-alpha 2.267.0-alpha.0 → 2.268.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +582 -419
- package/.jsii.tabl.json.gz +0 -0
- package/README.md +66 -11
- package/lib/bridge-output.js +1 -1
- package/lib/bridge-source.js +2 -2
- package/lib/bridge.js +5 -5
- package/lib/flow-entitlement.js +1 -1
- package/lib/flow-output.js +2 -2
- package/lib/flow-source-configuration.js +4 -4
- package/lib/flow-source.js +1 -1
- package/lib/flow.js +10 -10
- package/lib/gateway.js +1 -1
- package/lib/mediaconnect-grants.generated.js +2 -2
- package/lib/router-input.d.ts +10 -10
- package/lib/router-input.js +11 -11
- package/lib/router-network-interface.js +2 -2
- package/lib/router-output.d.ts +7 -23
- package/lib/router-output.js +8 -23
- package/lib/shared.js +9 -9
- package/package.json +6 -6
- package/rosetta/default.ts-fixture +2 -1
package/.jsii
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"aws-cdk-lib": "^2.268.0",
|
|
12
12
|
"constructs": "^10.5.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -148,6 +148,19 @@
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
},
|
|
151
|
+
"aws-cdk-lib.aws_accountaccess": {
|
|
152
|
+
"targets": {
|
|
153
|
+
"dotnet": {
|
|
154
|
+
"namespace": "Amazon.CDK.AWS.AccountAccess"
|
|
155
|
+
},
|
|
156
|
+
"java": {
|
|
157
|
+
"package": "software.amazon.awscdk.services.accountaccess"
|
|
158
|
+
},
|
|
159
|
+
"python": {
|
|
160
|
+
"module": "aws_cdk.aws_accountaccess"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
},
|
|
151
164
|
"aws-cdk-lib.aws_acmpca": {
|
|
152
165
|
"targets": {
|
|
153
166
|
"dotnet": {
|
|
@@ -161,6 +174,19 @@
|
|
|
161
174
|
}
|
|
162
175
|
}
|
|
163
176
|
},
|
|
177
|
+
"aws-cdk-lib.aws_agentregistry": {
|
|
178
|
+
"targets": {
|
|
179
|
+
"dotnet": {
|
|
180
|
+
"namespace": "Amazon.CDK.AWS.AgentRegistry"
|
|
181
|
+
},
|
|
182
|
+
"java": {
|
|
183
|
+
"package": "software.amazon.awscdk.services.agentregistry"
|
|
184
|
+
},
|
|
185
|
+
"python": {
|
|
186
|
+
"module": "aws_cdk.aws_agentregistry"
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
},
|
|
164
190
|
"aws-cdk-lib.aws_aiops": {
|
|
165
191
|
"targets": {
|
|
166
192
|
"dotnet": {
|
|
@@ -447,19 +473,6 @@
|
|
|
447
473
|
}
|
|
448
474
|
}
|
|
449
475
|
},
|
|
450
|
-
"aws-cdk-lib.aws_artifact": {
|
|
451
|
-
"targets": {
|
|
452
|
-
"dotnet": {
|
|
453
|
-
"namespace": "Amazon.CDK.AWS.Artifact"
|
|
454
|
-
},
|
|
455
|
-
"java": {
|
|
456
|
-
"package": "software.amazon.awscdk.services.artifact"
|
|
457
|
-
},
|
|
458
|
-
"python": {
|
|
459
|
-
"module": "aws_cdk.aws_artifact"
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
},
|
|
463
476
|
"aws-cdk-lib.aws_athena": {
|
|
464
477
|
"targets": {
|
|
465
478
|
"dotnet": {
|
|
@@ -590,19 +603,6 @@
|
|
|
590
603
|
}
|
|
591
604
|
}
|
|
592
605
|
},
|
|
593
|
-
"aws-cdk-lib.aws_backupsearch": {
|
|
594
|
-
"targets": {
|
|
595
|
-
"dotnet": {
|
|
596
|
-
"namespace": "Amazon.CDK.AWS.BackupSearch"
|
|
597
|
-
},
|
|
598
|
-
"java": {
|
|
599
|
-
"package": "software.amazon.awscdk.services.backupsearch"
|
|
600
|
-
},
|
|
601
|
-
"python": {
|
|
602
|
-
"module": "aws_cdk.aws_backupsearch"
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
},
|
|
606
606
|
"aws-cdk-lib.aws_batch": {
|
|
607
607
|
"targets": {
|
|
608
608
|
"dotnet": {
|
|
@@ -877,6 +877,19 @@
|
|
|
877
877
|
}
|
|
878
878
|
}
|
|
879
879
|
},
|
|
880
|
+
"aws-cdk-lib.aws_cloudhsm": {
|
|
881
|
+
"targets": {
|
|
882
|
+
"dotnet": {
|
|
883
|
+
"namespace": "Amazon.CDK.AWS.CloudHSM"
|
|
884
|
+
},
|
|
885
|
+
"java": {
|
|
886
|
+
"package": "software.amazon.awscdk.services.cloudhsm"
|
|
887
|
+
},
|
|
888
|
+
"python": {
|
|
889
|
+
"module": "aws_cdk.aws_cloudhsm"
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
},
|
|
880
893
|
"aws-cdk-lib.aws_cloudtrail": {
|
|
881
894
|
"targets": {
|
|
882
895
|
"dotnet": {
|
|
@@ -1098,19 +1111,6 @@
|
|
|
1098
1111
|
}
|
|
1099
1112
|
}
|
|
1100
1113
|
},
|
|
1101
|
-
"aws-cdk-lib.aws_cognitosync": {
|
|
1102
|
-
"targets": {
|
|
1103
|
-
"dotnet": {
|
|
1104
|
-
"namespace": "Amazon.CDK.AWS.CognitoSync"
|
|
1105
|
-
},
|
|
1106
|
-
"java": {
|
|
1107
|
-
"package": "software.amazon.awscdk.services.cognitosync"
|
|
1108
|
-
},
|
|
1109
|
-
"python": {
|
|
1110
|
-
"module": "aws_cdk.aws_cognitosync"
|
|
1111
|
-
}
|
|
1112
|
-
}
|
|
1113
|
-
},
|
|
1114
1114
|
"aws-cdk-lib.aws_comprehend": {
|
|
1115
1115
|
"targets": {
|
|
1116
1116
|
"dotnet": {
|
|
@@ -1189,19 +1189,6 @@
|
|
|
1189
1189
|
}
|
|
1190
1190
|
}
|
|
1191
1191
|
},
|
|
1192
|
-
"aws-cdk-lib.aws_controlcatalog": {
|
|
1193
|
-
"targets": {
|
|
1194
|
-
"dotnet": {
|
|
1195
|
-
"namespace": "Amazon.CDK.AWS.ControlCatalog"
|
|
1196
|
-
},
|
|
1197
|
-
"java": {
|
|
1198
|
-
"package": "software.amazon.awscdk.services.controlcatalog"
|
|
1199
|
-
},
|
|
1200
|
-
"python": {
|
|
1201
|
-
"module": "aws_cdk.aws_controlcatalog"
|
|
1202
|
-
}
|
|
1203
|
-
}
|
|
1204
|
-
},
|
|
1205
1192
|
"aws-cdk-lib.aws_controltower": {
|
|
1206
1193
|
"targets": {
|
|
1207
1194
|
"dotnet": {
|
|
@@ -1254,6 +1241,19 @@
|
|
|
1254
1241
|
}
|
|
1255
1242
|
}
|
|
1256
1243
|
},
|
|
1244
|
+
"aws-cdk-lib.aws_dataexchange": {
|
|
1245
|
+
"targets": {
|
|
1246
|
+
"dotnet": {
|
|
1247
|
+
"namespace": "Amazon.CDK.AWS.DataExchange"
|
|
1248
|
+
},
|
|
1249
|
+
"java": {
|
|
1250
|
+
"package": "software.amazon.awscdk.services.dataexchange"
|
|
1251
|
+
},
|
|
1252
|
+
"python": {
|
|
1253
|
+
"module": "aws_cdk.aws_dataexchange"
|
|
1254
|
+
}
|
|
1255
|
+
}
|
|
1256
|
+
},
|
|
1257
1257
|
"aws-cdk-lib.aws_datapipeline": {
|
|
1258
1258
|
"targets": {
|
|
1259
1259
|
"dotnet": {
|
|
@@ -1449,6 +1449,19 @@
|
|
|
1449
1449
|
}
|
|
1450
1450
|
}
|
|
1451
1451
|
},
|
|
1452
|
+
"aws-cdk-lib.aws_drs": {
|
|
1453
|
+
"targets": {
|
|
1454
|
+
"dotnet": {
|
|
1455
|
+
"namespace": "Amazon.CDK.AWS.DRS"
|
|
1456
|
+
},
|
|
1457
|
+
"java": {
|
|
1458
|
+
"package": "software.amazon.awscdk.services.drs"
|
|
1459
|
+
},
|
|
1460
|
+
"python": {
|
|
1461
|
+
"module": "aws_cdk.aws_drs"
|
|
1462
|
+
}
|
|
1463
|
+
}
|
|
1464
|
+
},
|
|
1452
1465
|
"aws-cdk-lib.aws_dsql": {
|
|
1453
1466
|
"targets": {
|
|
1454
1467
|
"dotnet": {
|
|
@@ -2248,6 +2261,19 @@
|
|
|
2248
2261
|
}
|
|
2249
2262
|
}
|
|
2250
2263
|
},
|
|
2264
|
+
"aws-cdk-lib.aws_iotsecuretunneling": {
|
|
2265
|
+
"targets": {
|
|
2266
|
+
"dotnet": {
|
|
2267
|
+
"namespace": "Amazon.CDK.AWS.IoTSecureTunneling"
|
|
2268
|
+
},
|
|
2269
|
+
"java": {
|
|
2270
|
+
"package": "software.amazon.awscdk.services.iotsecuretunneling"
|
|
2271
|
+
},
|
|
2272
|
+
"python": {
|
|
2273
|
+
"module": "aws_cdk.aws_iotsecuretunneling"
|
|
2274
|
+
}
|
|
2275
|
+
}
|
|
2276
|
+
},
|
|
2251
2277
|
"aws-cdk-lib.aws_iotsitewise": {
|
|
2252
2278
|
"targets": {
|
|
2253
2279
|
"dotnet": {
|
|
@@ -2781,6 +2807,19 @@
|
|
|
2781
2807
|
}
|
|
2782
2808
|
}
|
|
2783
2809
|
},
|
|
2810
|
+
"aws-cdk-lib.aws_mgn": {
|
|
2811
|
+
"targets": {
|
|
2812
|
+
"dotnet": {
|
|
2813
|
+
"namespace": "Amazon.CDK.AWS.MGN"
|
|
2814
|
+
},
|
|
2815
|
+
"java": {
|
|
2816
|
+
"package": "software.amazon.awscdk.services.mgn"
|
|
2817
|
+
},
|
|
2818
|
+
"python": {
|
|
2819
|
+
"module": "aws_cdk.aws_mgn"
|
|
2820
|
+
}
|
|
2821
|
+
}
|
|
2822
|
+
},
|
|
2784
2823
|
"aws-cdk-lib.aws_mpa": {
|
|
2785
2824
|
"targets": {
|
|
2786
2825
|
"dotnet": {
|
|
@@ -3002,6 +3041,19 @@
|
|
|
3002
3041
|
}
|
|
3003
3042
|
}
|
|
3004
3043
|
},
|
|
3044
|
+
"aws-cdk-lib.aws_opensearch": {
|
|
3045
|
+
"targets": {
|
|
3046
|
+
"dotnet": {
|
|
3047
|
+
"namespace": "Amazon.CDK.AWS.OpenSearch"
|
|
3048
|
+
},
|
|
3049
|
+
"java": {
|
|
3050
|
+
"package": "software.amazon.awscdk.services.opensearch"
|
|
3051
|
+
},
|
|
3052
|
+
"python": {
|
|
3053
|
+
"module": "aws_cdk.aws_opensearch"
|
|
3054
|
+
}
|
|
3055
|
+
}
|
|
3056
|
+
},
|
|
3005
3057
|
"aws-cdk-lib.aws_opensearchserverless": {
|
|
3006
3058
|
"targets": {
|
|
3007
3059
|
"dotnet": {
|
|
@@ -3837,6 +3889,19 @@
|
|
|
3837
3889
|
}
|
|
3838
3890
|
}
|
|
3839
3891
|
},
|
|
3892
|
+
"aws-cdk-lib.aws_serverlessrepo": {
|
|
3893
|
+
"targets": {
|
|
3894
|
+
"dotnet": {
|
|
3895
|
+
"namespace": "Amazon.CDK.AWS.ServerlessRepo"
|
|
3896
|
+
},
|
|
3897
|
+
"java": {
|
|
3898
|
+
"package": "software.amazon.awscdk.services.serverlessrepo"
|
|
3899
|
+
},
|
|
3900
|
+
"python": {
|
|
3901
|
+
"module": "aws_cdk.aws_serverlessrepo"
|
|
3902
|
+
}
|
|
3903
|
+
}
|
|
3904
|
+
},
|
|
3840
3905
|
"aws-cdk-lib.aws_servicecatalog": {
|
|
3841
3906
|
"targets": {
|
|
3842
3907
|
"dotnet": {
|
|
@@ -4071,19 +4136,6 @@
|
|
|
4071
4136
|
}
|
|
4072
4137
|
}
|
|
4073
4138
|
},
|
|
4074
|
-
"aws-cdk-lib.aws_states": {
|
|
4075
|
-
"targets": {
|
|
4076
|
-
"dotnet": {
|
|
4077
|
-
"namespace": "Amazon.CDK.AWS.States"
|
|
4078
|
-
},
|
|
4079
|
-
"java": {
|
|
4080
|
-
"package": "software.amazon.awscdk.services.states"
|
|
4081
|
-
},
|
|
4082
|
-
"python": {
|
|
4083
|
-
"module": "aws_cdk.aws_states"
|
|
4084
|
-
}
|
|
4085
|
-
}
|
|
4086
|
-
},
|
|
4087
4139
|
"aws-cdk-lib.aws_stepfunctions": {
|
|
4088
4140
|
"targets": {
|
|
4089
4141
|
"dotnet": {
|
|
@@ -4136,6 +4188,19 @@
|
|
|
4136
4188
|
}
|
|
4137
4189
|
}
|
|
4138
4190
|
},
|
|
4191
|
+
"aws-cdk-lib.aws_supportauthz": {
|
|
4192
|
+
"targets": {
|
|
4193
|
+
"dotnet": {
|
|
4194
|
+
"namespace": "Amazon.CDK.AWS.SupportAuthZ"
|
|
4195
|
+
},
|
|
4196
|
+
"java": {
|
|
4197
|
+
"package": "software.amazon.awscdk.services.supportauthz"
|
|
4198
|
+
},
|
|
4199
|
+
"python": {
|
|
4200
|
+
"module": "aws_cdk.aws_supportauthz"
|
|
4201
|
+
}
|
|
4202
|
+
}
|
|
4203
|
+
},
|
|
4139
4204
|
"aws-cdk-lib.aws_synthetics": {
|
|
4140
4205
|
"targets": {
|
|
4141
4206
|
"dotnet": {
|
|
@@ -4162,16 +4227,16 @@
|
|
|
4162
4227
|
}
|
|
4163
4228
|
}
|
|
4164
4229
|
},
|
|
4165
|
-
"aws-cdk-lib.
|
|
4230
|
+
"aws-cdk-lib.aws_textract": {
|
|
4166
4231
|
"targets": {
|
|
4167
4232
|
"dotnet": {
|
|
4168
|
-
"namespace": "Amazon.CDK.AWS.
|
|
4233
|
+
"namespace": "Amazon.CDK.AWS.Textract"
|
|
4169
4234
|
},
|
|
4170
4235
|
"java": {
|
|
4171
|
-
"package": "software.amazon.awscdk.services.
|
|
4236
|
+
"package": "software.amazon.awscdk.services.textract"
|
|
4172
4237
|
},
|
|
4173
4238
|
"python": {
|
|
4174
|
-
"module": "aws_cdk.
|
|
4239
|
+
"module": "aws_cdk.aws_textract"
|
|
4175
4240
|
}
|
|
4176
4241
|
}
|
|
4177
4242
|
},
|
|
@@ -4214,16 +4279,16 @@
|
|
|
4214
4279
|
}
|
|
4215
4280
|
}
|
|
4216
4281
|
},
|
|
4217
|
-
"aws-cdk-lib.
|
|
4282
|
+
"aws-cdk-lib.aws_translate": {
|
|
4218
4283
|
"targets": {
|
|
4219
4284
|
"dotnet": {
|
|
4220
|
-
"namespace": "Amazon.CDK.AWS.
|
|
4285
|
+
"namespace": "Amazon.CDK.AWS.Translate"
|
|
4221
4286
|
},
|
|
4222
4287
|
"java": {
|
|
4223
|
-
"package": "software.amazon.awscdk.services.
|
|
4288
|
+
"package": "software.amazon.awscdk.services.translate"
|
|
4224
4289
|
},
|
|
4225
4290
|
"python": {
|
|
4226
|
-
"module": "aws_cdk.
|
|
4291
|
+
"module": "aws_cdk.aws_translate"
|
|
4227
4292
|
}
|
|
4228
4293
|
}
|
|
4229
4294
|
},
|
|
@@ -4331,6 +4396,19 @@
|
|
|
4331
4396
|
}
|
|
4332
4397
|
}
|
|
4333
4398
|
},
|
|
4399
|
+
"aws-cdk-lib.aws_wickr": {
|
|
4400
|
+
"targets": {
|
|
4401
|
+
"dotnet": {
|
|
4402
|
+
"namespace": "Amazon.CDK.AWS.Wickr"
|
|
4403
|
+
},
|
|
4404
|
+
"java": {
|
|
4405
|
+
"package": "software.amazon.awscdk.services.wickr"
|
|
4406
|
+
},
|
|
4407
|
+
"python": {
|
|
4408
|
+
"module": "aws_cdk.aws_wickr"
|
|
4409
|
+
}
|
|
4410
|
+
}
|
|
4411
|
+
},
|
|
4334
4412
|
"aws-cdk-lib.aws_wisdom": {
|
|
4335
4413
|
"targets": {
|
|
4336
4414
|
"dotnet": {
|
|
@@ -4497,6 +4575,22 @@
|
|
|
4497
4575
|
}
|
|
4498
4576
|
}
|
|
4499
4577
|
},
|
|
4578
|
+
"aws-cdk-lib.interfaces.aws_accountaccess": {
|
|
4579
|
+
"targets": {
|
|
4580
|
+
"dotnet": {
|
|
4581
|
+
"namespace": "Amazon.CDK.Interfaces.AccountAccess"
|
|
4582
|
+
},
|
|
4583
|
+
"go": {
|
|
4584
|
+
"packageName": "interfacesawsaccountaccess"
|
|
4585
|
+
},
|
|
4586
|
+
"java": {
|
|
4587
|
+
"package": "software.amazon.awscdk.interfaces.accountaccess"
|
|
4588
|
+
},
|
|
4589
|
+
"python": {
|
|
4590
|
+
"module": "aws_cdk.interfaces.aws_accountaccess"
|
|
4591
|
+
}
|
|
4592
|
+
}
|
|
4593
|
+
},
|
|
4500
4594
|
"aws-cdk-lib.interfaces.aws_acmpca": {
|
|
4501
4595
|
"targets": {
|
|
4502
4596
|
"dotnet": {
|
|
@@ -4513,6 +4607,22 @@
|
|
|
4513
4607
|
}
|
|
4514
4608
|
}
|
|
4515
4609
|
},
|
|
4610
|
+
"aws-cdk-lib.interfaces.aws_agentregistry": {
|
|
4611
|
+
"targets": {
|
|
4612
|
+
"dotnet": {
|
|
4613
|
+
"namespace": "Amazon.CDK.Interfaces.AgentRegistry"
|
|
4614
|
+
},
|
|
4615
|
+
"go": {
|
|
4616
|
+
"packageName": "interfacesawsagentregistry"
|
|
4617
|
+
},
|
|
4618
|
+
"java": {
|
|
4619
|
+
"package": "software.amazon.awscdk.interfaces.agentregistry"
|
|
4620
|
+
},
|
|
4621
|
+
"python": {
|
|
4622
|
+
"module": "aws_cdk.interfaces.aws_agentregistry"
|
|
4623
|
+
}
|
|
4624
|
+
}
|
|
4625
|
+
},
|
|
4516
4626
|
"aws-cdk-lib.interfaces.aws_aiops": {
|
|
4517
4627
|
"targets": {
|
|
4518
4628
|
"dotnet": {
|
|
@@ -4833,22 +4943,6 @@
|
|
|
4833
4943
|
}
|
|
4834
4944
|
}
|
|
4835
4945
|
},
|
|
4836
|
-
"aws-cdk-lib.interfaces.aws_artifact": {
|
|
4837
|
-
"targets": {
|
|
4838
|
-
"dotnet": {
|
|
4839
|
-
"namespace": "Amazon.CDK.Interfaces.Artifact"
|
|
4840
|
-
},
|
|
4841
|
-
"go": {
|
|
4842
|
-
"packageName": "interfacesawsartifact"
|
|
4843
|
-
},
|
|
4844
|
-
"java": {
|
|
4845
|
-
"package": "software.amazon.awscdk.interfaces.artifact"
|
|
4846
|
-
},
|
|
4847
|
-
"python": {
|
|
4848
|
-
"module": "aws_cdk.interfaces.aws_artifact"
|
|
4849
|
-
}
|
|
4850
|
-
}
|
|
4851
|
-
},
|
|
4852
4946
|
"aws-cdk-lib.interfaces.aws_athena": {
|
|
4853
4947
|
"targets": {
|
|
4854
4948
|
"dotnet": {
|
|
@@ -4977,22 +5071,6 @@
|
|
|
4977
5071
|
}
|
|
4978
5072
|
}
|
|
4979
5073
|
},
|
|
4980
|
-
"aws-cdk-lib.interfaces.aws_backupsearch": {
|
|
4981
|
-
"targets": {
|
|
4982
|
-
"dotnet": {
|
|
4983
|
-
"namespace": "Amazon.CDK.Interfaces.BackupSearch"
|
|
4984
|
-
},
|
|
4985
|
-
"go": {
|
|
4986
|
-
"packageName": "interfacesawsbackupsearch"
|
|
4987
|
-
},
|
|
4988
|
-
"java": {
|
|
4989
|
-
"package": "software.amazon.awscdk.interfaces.backupsearch"
|
|
4990
|
-
},
|
|
4991
|
-
"python": {
|
|
4992
|
-
"module": "aws_cdk.interfaces.aws_backupsearch"
|
|
4993
|
-
}
|
|
4994
|
-
}
|
|
4995
|
-
},
|
|
4996
5074
|
"aws-cdk-lib.interfaces.aws_batch": {
|
|
4997
5075
|
"targets": {
|
|
4998
5076
|
"dotnet": {
|
|
@@ -5345,6 +5423,22 @@
|
|
|
5345
5423
|
}
|
|
5346
5424
|
}
|
|
5347
5425
|
},
|
|
5426
|
+
"aws-cdk-lib.interfaces.aws_cloudhsm": {
|
|
5427
|
+
"targets": {
|
|
5428
|
+
"dotnet": {
|
|
5429
|
+
"namespace": "Amazon.CDK.Interfaces.CloudHSM"
|
|
5430
|
+
},
|
|
5431
|
+
"go": {
|
|
5432
|
+
"packageName": "interfacesawscloudhsm"
|
|
5433
|
+
},
|
|
5434
|
+
"java": {
|
|
5435
|
+
"package": "software.amazon.awscdk.interfaces.cloudhsm"
|
|
5436
|
+
},
|
|
5437
|
+
"python": {
|
|
5438
|
+
"module": "aws_cdk.interfaces.aws_cloudhsm"
|
|
5439
|
+
}
|
|
5440
|
+
}
|
|
5441
|
+
},
|
|
5348
5442
|
"aws-cdk-lib.interfaces.aws_cloudtrail": {
|
|
5349
5443
|
"targets": {
|
|
5350
5444
|
"dotnet": {
|
|
@@ -5569,22 +5663,6 @@
|
|
|
5569
5663
|
}
|
|
5570
5664
|
}
|
|
5571
5665
|
},
|
|
5572
|
-
"aws-cdk-lib.interfaces.aws_cognitosync": {
|
|
5573
|
-
"targets": {
|
|
5574
|
-
"dotnet": {
|
|
5575
|
-
"namespace": "Amazon.CDK.Interfaces.CognitoSync"
|
|
5576
|
-
},
|
|
5577
|
-
"go": {
|
|
5578
|
-
"packageName": "interfacesawscognitosync"
|
|
5579
|
-
},
|
|
5580
|
-
"java": {
|
|
5581
|
-
"package": "software.amazon.awscdk.interfaces.cognitosync"
|
|
5582
|
-
},
|
|
5583
|
-
"python": {
|
|
5584
|
-
"module": "aws_cdk.interfaces.aws_cognitosync"
|
|
5585
|
-
}
|
|
5586
|
-
}
|
|
5587
|
-
},
|
|
5588
5666
|
"aws-cdk-lib.interfaces.aws_comprehend": {
|
|
5589
5667
|
"targets": {
|
|
5590
5668
|
"dotnet": {
|
|
@@ -5681,22 +5759,6 @@
|
|
|
5681
5759
|
}
|
|
5682
5760
|
}
|
|
5683
5761
|
},
|
|
5684
|
-
"aws-cdk-lib.interfaces.aws_controlcatalog": {
|
|
5685
|
-
"targets": {
|
|
5686
|
-
"dotnet": {
|
|
5687
|
-
"namespace": "Amazon.CDK.Interfaces.ControlCatalog"
|
|
5688
|
-
},
|
|
5689
|
-
"go": {
|
|
5690
|
-
"packageName": "interfacesawscontrolcatalog"
|
|
5691
|
-
},
|
|
5692
|
-
"java": {
|
|
5693
|
-
"package": "software.amazon.awscdk.interfaces.controlcatalog"
|
|
5694
|
-
},
|
|
5695
|
-
"python": {
|
|
5696
|
-
"module": "aws_cdk.interfaces.aws_controlcatalog"
|
|
5697
|
-
}
|
|
5698
|
-
}
|
|
5699
|
-
},
|
|
5700
5762
|
"aws-cdk-lib.interfaces.aws_controltower": {
|
|
5701
5763
|
"targets": {
|
|
5702
5764
|
"dotnet": {
|
|
@@ -5761,6 +5823,22 @@
|
|
|
5761
5823
|
}
|
|
5762
5824
|
}
|
|
5763
5825
|
},
|
|
5826
|
+
"aws-cdk-lib.interfaces.aws_dataexchange": {
|
|
5827
|
+
"targets": {
|
|
5828
|
+
"dotnet": {
|
|
5829
|
+
"namespace": "Amazon.CDK.Interfaces.DataExchange"
|
|
5830
|
+
},
|
|
5831
|
+
"go": {
|
|
5832
|
+
"packageName": "interfacesawsdataexchange"
|
|
5833
|
+
},
|
|
5834
|
+
"java": {
|
|
5835
|
+
"package": "software.amazon.awscdk.interfaces.dataexchange"
|
|
5836
|
+
},
|
|
5837
|
+
"python": {
|
|
5838
|
+
"module": "aws_cdk.interfaces.aws_dataexchange"
|
|
5839
|
+
}
|
|
5840
|
+
}
|
|
5841
|
+
},
|
|
5764
5842
|
"aws-cdk-lib.interfaces.aws_datapipeline": {
|
|
5765
5843
|
"targets": {
|
|
5766
5844
|
"dotnet": {
|
|
@@ -6001,6 +6079,22 @@
|
|
|
6001
6079
|
}
|
|
6002
6080
|
}
|
|
6003
6081
|
},
|
|
6082
|
+
"aws-cdk-lib.interfaces.aws_drs": {
|
|
6083
|
+
"targets": {
|
|
6084
|
+
"dotnet": {
|
|
6085
|
+
"namespace": "Amazon.CDK.Interfaces.DRS"
|
|
6086
|
+
},
|
|
6087
|
+
"go": {
|
|
6088
|
+
"packageName": "interfacesawsdrs"
|
|
6089
|
+
},
|
|
6090
|
+
"java": {
|
|
6091
|
+
"package": "software.amazon.awscdk.interfaces.drs"
|
|
6092
|
+
},
|
|
6093
|
+
"python": {
|
|
6094
|
+
"module": "aws_cdk.interfaces.aws_drs"
|
|
6095
|
+
}
|
|
6096
|
+
}
|
|
6097
|
+
},
|
|
6004
6098
|
"aws-cdk-lib.interfaces.aws_dsql": {
|
|
6005
6099
|
"targets": {
|
|
6006
6100
|
"dotnet": {
|
|
@@ -6833,6 +6927,22 @@
|
|
|
6833
6927
|
}
|
|
6834
6928
|
}
|
|
6835
6929
|
},
|
|
6930
|
+
"aws-cdk-lib.interfaces.aws_iotsecuretunneling": {
|
|
6931
|
+
"targets": {
|
|
6932
|
+
"dotnet": {
|
|
6933
|
+
"namespace": "Amazon.CDK.Interfaces.IoTSecureTunneling"
|
|
6934
|
+
},
|
|
6935
|
+
"go": {
|
|
6936
|
+
"packageName": "interfacesawsiotsecuretunneling"
|
|
6937
|
+
},
|
|
6938
|
+
"java": {
|
|
6939
|
+
"package": "software.amazon.awscdk.interfaces.iotsecuretunneling"
|
|
6940
|
+
},
|
|
6941
|
+
"python": {
|
|
6942
|
+
"module": "aws_cdk.interfaces.aws_iotsecuretunneling"
|
|
6943
|
+
}
|
|
6944
|
+
}
|
|
6945
|
+
},
|
|
6836
6946
|
"aws-cdk-lib.interfaces.aws_iotsitewise": {
|
|
6837
6947
|
"targets": {
|
|
6838
6948
|
"dotnet": {
|
|
@@ -7425,6 +7535,22 @@
|
|
|
7425
7535
|
}
|
|
7426
7536
|
}
|
|
7427
7537
|
},
|
|
7538
|
+
"aws-cdk-lib.interfaces.aws_mgn": {
|
|
7539
|
+
"targets": {
|
|
7540
|
+
"dotnet": {
|
|
7541
|
+
"namespace": "Amazon.CDK.Interfaces.MGN"
|
|
7542
|
+
},
|
|
7543
|
+
"go": {
|
|
7544
|
+
"packageName": "interfacesawsmgn"
|
|
7545
|
+
},
|
|
7546
|
+
"java": {
|
|
7547
|
+
"package": "software.amazon.awscdk.interfaces.mgn"
|
|
7548
|
+
},
|
|
7549
|
+
"python": {
|
|
7550
|
+
"module": "aws_cdk.interfaces.aws_mgn"
|
|
7551
|
+
}
|
|
7552
|
+
}
|
|
7553
|
+
},
|
|
7428
7554
|
"aws-cdk-lib.interfaces.aws_mpa": {
|
|
7429
7555
|
"targets": {
|
|
7430
7556
|
"dotnet": {
|
|
@@ -7697,6 +7823,22 @@
|
|
|
7697
7823
|
}
|
|
7698
7824
|
}
|
|
7699
7825
|
},
|
|
7826
|
+
"aws-cdk-lib.interfaces.aws_opensearch": {
|
|
7827
|
+
"targets": {
|
|
7828
|
+
"dotnet": {
|
|
7829
|
+
"namespace": "Amazon.CDK.Interfaces.OpenSearch"
|
|
7830
|
+
},
|
|
7831
|
+
"go": {
|
|
7832
|
+
"packageName": "interfacesawsopensearch"
|
|
7833
|
+
},
|
|
7834
|
+
"java": {
|
|
7835
|
+
"package": "software.amazon.awscdk.interfaces.opensearch"
|
|
7836
|
+
},
|
|
7837
|
+
"python": {
|
|
7838
|
+
"module": "aws_cdk.interfaces.aws_opensearch"
|
|
7839
|
+
}
|
|
7840
|
+
}
|
|
7841
|
+
},
|
|
7700
7842
|
"aws-cdk-lib.interfaces.aws_opensearchserverless": {
|
|
7701
7843
|
"targets": {
|
|
7702
7844
|
"dotnet": {
|
|
@@ -8609,6 +8751,22 @@
|
|
|
8609
8751
|
}
|
|
8610
8752
|
}
|
|
8611
8753
|
},
|
|
8754
|
+
"aws-cdk-lib.interfaces.aws_serverlessrepo": {
|
|
8755
|
+
"targets": {
|
|
8756
|
+
"dotnet": {
|
|
8757
|
+
"namespace": "Amazon.CDK.Interfaces.ServerlessRepo"
|
|
8758
|
+
},
|
|
8759
|
+
"go": {
|
|
8760
|
+
"packageName": "interfacesawsserverlessrepo"
|
|
8761
|
+
},
|
|
8762
|
+
"java": {
|
|
8763
|
+
"package": "software.amazon.awscdk.interfaces.serverlessrepo"
|
|
8764
|
+
},
|
|
8765
|
+
"python": {
|
|
8766
|
+
"module": "aws_cdk.interfaces.aws_serverlessrepo"
|
|
8767
|
+
}
|
|
8768
|
+
}
|
|
8769
|
+
},
|
|
8612
8770
|
"aws-cdk-lib.interfaces.aws_servicecatalog": {
|
|
8613
8771
|
"targets": {
|
|
8614
8772
|
"dotnet": {
|
|
@@ -8865,22 +9023,6 @@
|
|
|
8865
9023
|
}
|
|
8866
9024
|
}
|
|
8867
9025
|
},
|
|
8868
|
-
"aws-cdk-lib.interfaces.aws_states": {
|
|
8869
|
-
"targets": {
|
|
8870
|
-
"dotnet": {
|
|
8871
|
-
"namespace": "Amazon.CDK.Interfaces.States"
|
|
8872
|
-
},
|
|
8873
|
-
"go": {
|
|
8874
|
-
"packageName": "interfacesawsstates"
|
|
8875
|
-
},
|
|
8876
|
-
"java": {
|
|
8877
|
-
"package": "software.amazon.awscdk.interfaces.states"
|
|
8878
|
-
},
|
|
8879
|
-
"python": {
|
|
8880
|
-
"module": "aws_cdk.interfaces.aws_states"
|
|
8881
|
-
}
|
|
8882
|
-
}
|
|
8883
|
-
},
|
|
8884
9026
|
"aws-cdk-lib.interfaces.aws_stepfunctions": {
|
|
8885
9027
|
"targets": {
|
|
8886
9028
|
"dotnet": {
|
|
@@ -8929,6 +9071,22 @@
|
|
|
8929
9071
|
}
|
|
8930
9072
|
}
|
|
8931
9073
|
},
|
|
9074
|
+
"aws-cdk-lib.interfaces.aws_supportauthz": {
|
|
9075
|
+
"targets": {
|
|
9076
|
+
"dotnet": {
|
|
9077
|
+
"namespace": "Amazon.CDK.Interfaces.SupportAuthZ"
|
|
9078
|
+
},
|
|
9079
|
+
"go": {
|
|
9080
|
+
"packageName": "interfacesawssupportauthz"
|
|
9081
|
+
},
|
|
9082
|
+
"java": {
|
|
9083
|
+
"package": "software.amazon.awscdk.interfaces.supportauthz"
|
|
9084
|
+
},
|
|
9085
|
+
"python": {
|
|
9086
|
+
"module": "aws_cdk.interfaces.aws_supportauthz"
|
|
9087
|
+
}
|
|
9088
|
+
}
|
|
9089
|
+
},
|
|
8932
9090
|
"aws-cdk-lib.interfaces.aws_synthetics": {
|
|
8933
9091
|
"targets": {
|
|
8934
9092
|
"dotnet": {
|
|
@@ -8961,19 +9119,19 @@
|
|
|
8961
9119
|
}
|
|
8962
9120
|
}
|
|
8963
9121
|
},
|
|
8964
|
-
"aws-cdk-lib.interfaces.
|
|
9122
|
+
"aws-cdk-lib.interfaces.aws_textract": {
|
|
8965
9123
|
"targets": {
|
|
8966
9124
|
"dotnet": {
|
|
8967
|
-
"namespace": "Amazon.CDK.Interfaces.
|
|
9125
|
+
"namespace": "Amazon.CDK.Interfaces.Textract"
|
|
8968
9126
|
},
|
|
8969
9127
|
"go": {
|
|
8970
|
-
"packageName": "
|
|
9128
|
+
"packageName": "interfacesawstextract"
|
|
8971
9129
|
},
|
|
8972
9130
|
"java": {
|
|
8973
|
-
"package": "software.amazon.awscdk.interfaces.
|
|
9131
|
+
"package": "software.amazon.awscdk.interfaces.textract"
|
|
8974
9132
|
},
|
|
8975
9133
|
"python": {
|
|
8976
|
-
"module": "aws_cdk.interfaces.
|
|
9134
|
+
"module": "aws_cdk.interfaces.aws_textract"
|
|
8977
9135
|
}
|
|
8978
9136
|
}
|
|
8979
9137
|
},
|
|
@@ -9025,19 +9183,19 @@
|
|
|
9025
9183
|
}
|
|
9026
9184
|
}
|
|
9027
9185
|
},
|
|
9028
|
-
"aws-cdk-lib.interfaces.
|
|
9186
|
+
"aws-cdk-lib.interfaces.aws_translate": {
|
|
9029
9187
|
"targets": {
|
|
9030
9188
|
"dotnet": {
|
|
9031
|
-
"namespace": "Amazon.CDK.Interfaces.
|
|
9189
|
+
"namespace": "Amazon.CDK.Interfaces.Translate"
|
|
9032
9190
|
},
|
|
9033
9191
|
"go": {
|
|
9034
|
-
"packageName": "
|
|
9192
|
+
"packageName": "interfacesawstranslate"
|
|
9035
9193
|
},
|
|
9036
9194
|
"java": {
|
|
9037
|
-
"package": "software.amazon.awscdk.interfaces.
|
|
9195
|
+
"package": "software.amazon.awscdk.interfaces.translate"
|
|
9038
9196
|
},
|
|
9039
9197
|
"python": {
|
|
9040
|
-
"module": "aws_cdk.interfaces.
|
|
9198
|
+
"module": "aws_cdk.interfaces.aws_translate"
|
|
9041
9199
|
}
|
|
9042
9200
|
}
|
|
9043
9201
|
},
|
|
@@ -9169,6 +9327,22 @@
|
|
|
9169
9327
|
}
|
|
9170
9328
|
}
|
|
9171
9329
|
},
|
|
9330
|
+
"aws-cdk-lib.interfaces.aws_wickr": {
|
|
9331
|
+
"targets": {
|
|
9332
|
+
"dotnet": {
|
|
9333
|
+
"namespace": "Amazon.CDK.Interfaces.Wickr"
|
|
9334
|
+
},
|
|
9335
|
+
"go": {
|
|
9336
|
+
"packageName": "interfacesawswickr"
|
|
9337
|
+
},
|
|
9338
|
+
"java": {
|
|
9339
|
+
"package": "software.amazon.awscdk.interfaces.wickr"
|
|
9340
|
+
},
|
|
9341
|
+
"python": {
|
|
9342
|
+
"module": "aws_cdk.interfaces.aws_wickr"
|
|
9343
|
+
}
|
|
9344
|
+
}
|
|
9345
|
+
},
|
|
9172
9346
|
"aws-cdk-lib.interfaces.aws_wisdom": {
|
|
9173
9347
|
"targets": {
|
|
9174
9348
|
"dotnet": {
|
|
@@ -9410,7 +9584,7 @@
|
|
|
9410
9584
|
},
|
|
9411
9585
|
"name": "@aws-cdk/aws-mediaconnect-alpha",
|
|
9412
9586
|
"readme": {
|
|
9413
|
-
"markdown": "# AWS::MediaConnect Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n\n## AWS Elemental MediaConnect\n\nAWS Elemental MediaConnect is a high-quality transport service for live video. It provides the reliability and security of satellite and fiber-optic combined with the flexibility, agility, and economics of IP-based networks. MediaConnect enables you to build mission-critical live video workflows in a fraction of the time and cost of satellite or fiber services.\n\nThis package contains constructs for working with AWS Elemental MediaConnect, allowing you to define Flows, Bridges, Gateways, Router Inputs, Router Outputs, and Router Network Interfaces for transporting live video streams.\n\nFor further information on AWS Elemental MediaConnect, see [the documentation](https://aws.amazon.com/mediaconnect/).\n\n## Table of Contents\n\n- [Router Resources](#router-resources)\n - [Router Network Interfaces](#router-network-interfaces)\n - [Router Inputs](#router-inputs)\n - [Router Outputs](#router-outputs)\n- [Flows](#flows)\n - [Creating a Flow](#creating-a-flow)\n - [Flow Sources](#flow-sources)\n - [VPC Interfaces](#vpc-interfaces)\n - [Media Streams](#media-streams)\n - [Flow Sizes](#flow-sizes)\n- [Gateways](#gateways)\n - [Creating a Gateway](#creating-a-gateway)\n - [Importing an Existing Gateway](#importing-an-existing-gateway)\n- [Bridges](#bridges)\n - [Creating a Bridge](#creating-a-bridge)\n - [Bridge Sources](#bridge-sources)\n - [Bridge Outputs](#bridge-outputs)\n- [Encryption](#encryption)\n- [CloudWatch Metrics](#cloudwatch-metrics)\n- [Public CIDR warnings](#public-cidr-warnings)\n\n## Router Resources\n\nMediaConnect routers provide high-performance, low-latency video routing capabilities for building complex live video workflows. Router resources include network interfaces, inputs, and outputs.\n\n### How Router Resources Relate\n\nRouter resources work together in a pipeline:\n\n- A **RouterNetworkInterface** defines the network connectivity (public internet or VPC). Required for standard protocol-based inputs and outputs, but not needed when connecting to MediaLive inputs or MediaConnect flows directly.\n- A **RouterInput** is the entry point — it receives video from a source via a protocol (RTP, SRT, RIST), or from a MediaConnect flow.\n- A **RouterOutput** is the exit point — it sends video to a destination via a protocol, to a MediaLive input, or to a MediaConnect flow.\n\nA typical camera-to-cloud workflow looks like:\n\n```text\nCamera → RouterNetworkInterface → RouterInput (SRT) → [Router] → RouterOutput (MediaLive) → MediaLive Channel\n```\n\nThe router sits in the middle, routing content from inputs to outputs. You can have many outputs per input — for example, one camera feed going to both a MediaLive channel and a MediaConnect flow simultaneously.\n\n### End-to-End Example: SRT Source to MediaLive\n\nHere's a complete example showing how to connect an SRT source through a router to MediaLive:\n\n```ts\ndeclare const stack: Stack;\ndeclare const mediaLiveInput: medialive.CfnInput;\n\n// 1. A public network interface for the SRT input\nconst networkInterface = new RouterNetworkInterface(stack, 'NetworkInterface', {\n routerNetworkInterfaceName: 'camera-network',\n configuration: RouterNetworkConfiguration.publicNetwork({\n cidr: ['203.0.113.0/24'],\n }),\n});\n\n// 2. A router input receiving SRT from an upstream encoder\nconst input = new RouterInput(stack, 'Input', {\n routerInputName: 'camera-input',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_20,\n configuration: RouterInputConfiguration.standard({\n networkInterface,\n protocol: RouterInputProtocol.srtListener({\n port: 9000,\n minimumLatency: Duration.millis(200),\n }),\n }),\n});\n\n// 3. A router output delivering to MediaLive\nconst output = new RouterOutput(stack, 'Output', {\n routerOutputName: 'medialive-output',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_20,\n configuration: RouterOutputConfiguration.mediaLiveInput({\n mediaLiveInputArn: mediaLiveInput.attrArn,\n mediaLivePipelineId: MediaLivePipeline.PIPELINE_0,\n }),\n});\n```\n\nThis gives you a complete pipeline: the encoder pushes SRT to the network interface, the router receives it as an input, and the router output delivers it to MediaLive. For routing rules — including how bitrate affects which outputs can receive which inputs — see the [documentation](https://docs.aws.amazon.com/mediaconnect/latest/ug/using-router-control-panel.html).\n\n### Router Network Interfaces\n\nNetwork interfaces define the network connectivity for router inputs and outputs:\n\n#### Public Network Interface\n\n```ts\ndeclare const stack: Stack;\n\nconst publicInterface = new RouterNetworkInterface(stack, 'PublicInterface', {\n routerNetworkInterfaceName: 'public-interface',\n configuration: RouterNetworkConfiguration.publicNetwork({\n cidr: ['203.0.113.0/24'],\n }),\n});\n```\n\n#### Private Network Interface\n\n```ts\ndeclare const stack: Stack;\ndeclare const securityGroup: ec2.ISecurityGroup;\ndeclare const subnet: ec2.ISubnet;\n\nconst privateInterface = new RouterNetworkInterface(stack, 'PrivateInterface', {\n routerNetworkInterfaceName: 'private-interface',\n configuration: RouterNetworkConfiguration.vpc({\n securityGroups: [securityGroup],\n subnet: subnet,\n }),\n});\n```\n\n### Router Inputs\n\nRouter inputs receive live video streams from various sources and make them available for routing:\n\n#### Standard Input with RTP Protocol\n\n```ts\ndeclare const stack: Stack;\ndeclare const networkInterface: RouterNetworkInterface;\n\nconst input = new RouterInput(stack, 'RtpInput', {\n routerInputName: 'rtp-input',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n // tier defaults to RouterInputTier.INPUT_20 (lowest cost)\n configuration: RouterInputConfiguration.standard({\n networkInterface: networkInterface,\n protocol: RouterInputProtocol.rtp({\n port: 5000,\n }),\n }),\n});\n```\n\n#### Failover Input Configuration\n\n```ts\ndeclare const stack: Stack;\ndeclare const networkInterface: RouterNetworkInterface;\n\nconst input = new RouterInput(stack, 'FailoverInput', {\n routerInputName: 'failover-input',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.failover({\n networkInterface: networkInterface,\n protocols: [\n RouterInputProtocol.rist({\n port: 5000,\n recoveryLatency: Duration.millis(1000),\n }),\n RouterInputProtocol.rist({\n port: 5002, // Must not be consecutive with primary port\n recoveryLatency: Duration.millis(1000),\n }),\n ],\n sourcePriority: SourcePriorityConfig.primarySecondary(PrimarySource.FIRST_SOURCE),\n }),\n});\n```\n\n#### MediaConnect Flow Input\n\nConnect a router input to an existing MediaConnect flow:\n\n```ts\ndeclare const stack: Stack;\ndeclare const flow: Flow;\ndeclare const flowOutput: FlowOutput;\n\nconst input = new RouterInput(stack, 'FlowInput', {\n routerInputName: 'flow-input',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaConnectFlow({\n flow: flow,\n flowOutput: flowOutput,\n }),\n});\n```\n\nOr prepare a router input for a flow connection without specifying the flow (requires explicit availability zone):\n\n```ts\ndeclare const stack: Stack;\n\nconst input = new RouterInput(stack, 'FlowInputNoConnection', {\n routerInputName: 'flow-input-no-connection',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaConnectFlowWithoutConnection({\n availabilityZone: 'us-east-1a',\n }),\n});\n```\n\n### Router Outputs\n\nRouter outputs send video streams to various destinations including standard protocols, MediaLive inputs, and MediaConnect flows:\n\n#### Standard Output with SRT Protocol\n\n```ts\ndeclare const stack: Stack;\ndeclare const networkInterface: RouterNetworkInterface;\n\nconst output = new RouterOutput(stack, 'SrtOutput', {\n routerOutputName: 'srt-output',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n // tier defaults to RouterOutputTier.OUTPUT_20 (lowest cost)\n configuration: RouterOutputConfiguration.standard({\n protocol: RouterOutputProtocol.srtListener({\n port: 9001,\n minimumLatency: Duration.millis(200),\n }),\n networkInterface: networkInterface,\n }),\n});\n```\n\n> **Note:** The `tier` property defaults to the lowest (and cheapest) tier: `INPUT_20` for Router Inputs and `OUTPUT_20` for Router Outputs. The construct validates that `maximumBitrate` does not exceed the tier's capacity (20, 50, or 100 Mbps) at synth time. Per the [documentation](https://docs.aws.amazon.com/mediaconnect/latest/ug/using-router-control-panel.html), if an input is 20 Mbps you can't route it to an output set up for less than 20 Mbps.\n\n#### MediaLive Output\n\nNote (breaking change in the future): MediaLive configuration is currently passed in as `mediaLiveInputArn` but when L2 construct available, this will be updated to use the construct instead.\n\nConnect a router output to an existing MediaLive input:\n\n```ts\ndeclare const stack: Stack;\ndeclare const mediaLiveInput: medialive.CfnInput;\n\nconst output = new RouterOutput(stack, 'MediaLiveOutput', {\n routerOutputName: 'medialive-output',\n maximumBitrate: Bitrate.mbps(15),\n routingScope: RoutingScope.GLOBAL,\n tier: RouterOutputTier.OUTPUT_50,\n configuration: RouterOutputConfiguration.mediaLiveInput({\n mediaLiveInputArn: mediaLiveInput.attrArn,\n mediaLivePipelineId: MediaLivePipeline.PIPELINE_0,\n }),\n});\n```\n\nOr prepare a router output for a MediaLive connection without specifying the input (requires explicit availability zone):\n\n```ts\ndeclare const stack: Stack;\n\nconst output = new RouterOutput(stack, 'MediaLiveOutputNoConnection', {\n routerOutputName: 'medialive-output-no-connection',\n maximumBitrate: Bitrate.mbps(15),\n routingScope: RoutingScope.GLOBAL,\n tier: RouterOutputTier.OUTPUT_50,\n configuration: RouterOutputConfiguration.mediaLiveInputWithoutConnection({\n availabilityZone: 'us-east-1a',\n }),\n});\n```\n\n#### MediaConnect Flow Output\n\nConnect a router output to an existing MediaConnect flow:\n\n```ts\ndeclare const stack: Stack;\ndeclare const flow: Flow;\n\nconst output = new RouterOutput(stack, 'FlowOutput', {\n routerOutputName: 'flow-output',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_100,\n configuration: RouterOutputConfiguration.mediaConnectFlow({\n flow: flow,\n }),\n});\n```\n\nOr prepare a router output for a flow connection without specifying the flow (requires explicit availability zone):\n\n```ts\ndeclare const stack: Stack;\n\nconst output = new RouterOutput(stack, 'FlowOutputNoConnection', {\n routerOutputName: 'flow-output-no-connection',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_100,\n configuration: RouterOutputConfiguration.mediaConnectFlowWithoutConnection({\n availabilityZone: 'us-east-1a',\n }),\n});\n```\n\n#### Output with Encryption\n\n```ts\ndeclare const stack: Stack;\ndeclare const networkInterface: RouterNetworkInterface;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\n\nconst output = new RouterOutput(stack, 'EncryptedOutput', {\n routerOutputName: 'encrypted-output',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_50,\n configuration: RouterOutputConfiguration.standard({\n protocol: RouterOutputProtocol.srtCaller({\n destinationAddress: '203.0.113.100',\n destinationPort: 9001,\n minimumLatency: Duration.millis(200),\n encryptionConfiguration: { role, secret },\n }),\n networkInterface: networkInterface,\n }),\n});\n```\n\n## Flows\n\nA MediaConnect flow represents a transport stream connection between a source and one or more outputs. Flows are the primary resource for transporting live video content.\n\n### Creating a Flow\n\nThe following example creates a basic MediaConnect flow with an RTP source:\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n flowName: 'my-live-stream',\n source: SourceConfiguration.rtp({\n flowSourceName: 'my-source',\n port: 5000,\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n }),\n});\n```\n\n### Flow Sources\n\nMediaConnect supports multiple source types for ingesting content into a flow. The examples below use `NetworkConfiguration.publicNetwork()` for simplicity, but all protocol-based sources can also use `NetworkConfiguration.vpc()` with a VPC interface for private connectivity.\n\n> The source's `flowSourceName` and `description` are set on the `SourceConfiguration`, not on `FlowSourceProps`. This is because the same `SourceConfiguration` is used both for a flow's inline primary source (`FlowProps.source`, which has no separate props object) and for additional sources added via `FlowSource`. Keeping the name on the configuration lets both be described identically.\n\n#### SRT Listener Source\n\nSRT (Secure Reliable Transport) in listener mode configures MediaConnect to listen on a specific port for incoming content. The upstream device connects to MediaConnect as a caller.\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.srtListener({\n flowSourceName: 'live-encoder-source',\n description: 'Live encoder feed',\n port: 5000,\n minLatency: Duration.millis(2000),\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n }),\n});\n```\n\n#### SRT Caller Source\n\nSRT in caller mode configures MediaConnect to connect to a remote SRT listener. Use this when the source device is listening for incoming connections rather than pushing content.\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.srtCaller({\n flowSourceName: 'remote-source',\n sourceListenerAddress: '203.0.113.50',\n sourceListenerPort: 5000,\n minLatency: Duration.millis(200),\n }),\n});\n```\n\n#### RTP Source\n\nRTP (Real-time Transport Protocol) is a standard protocol for delivering audio and video over IP networks.\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.rtp({\n flowSourceName: 'rtp-source',\n port: 5000,\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n }),\n});\n```\n\n#### RTP-FEC Source\n\nRTP with Forward Error Correction adds redundancy to recover lost packets without retransmission. Use this when contributing via RTP and you need packet recovery.\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.rtpFec({\n flowSourceName: 'rtp-fec-source',\n port: 5000,\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n }),\n});\n```\n\n#### RIST Source\n\nRIST (Reliable Internet Stream Transport) provides reliable video transport with packet recovery.\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.rist({\n flowSourceName: 'rist-source',\n port: 5000,\n maxLatency: Duration.millis(2000),\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n }),\n});\n```\n\n#### Zixi Push Source\n\nZixi Push uses the Zixi protocol for reliable video transport. Content is pushed to MediaConnect from a Zixi-compatible component upstream.\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.zixiPush({\n flowSourceName: 'zixi-source',\n maxLatency: Duration.millis(2000),\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n }),\n});\n```\n\n> Zixi Push ports are assigned by MediaConnect: 2088 for public sources, 2090-2099 for VPC sources. See [Source port assignments](https://docs.aws.amazon.com/mediaconnect/latest/ug/source-ports.html).\n\n#### Router Source\n\nUse a router source when the flow's source comes from a MediaConnect Router rather than a direct connection.\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.router(),\n});\n```\n\n#### VPC Source\n\nUse a VPC-based source when you need a connection between a flow and your Amazon VPC. This enables private connectivity for receiving content from on-premises equipment via AWS Direct Connect or VPN, or from other AWS services running in your VPC.\n\n```ts\ndeclare const stack: Stack;\ndeclare const securityGroup: ec2.ISecurityGroup;\ndeclare const subnet: ec2.ISubnet;\ndeclare const role: iam.IRole;\n\nconst vpcInterface = VpcInterface.define({\n vpcInterfaceName: 'my-vpc-interface',\n role: role,\n securityGroups: [securityGroup],\n subnet: subnet,\n});\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.rist({\n flowSourceName: 'vpc-source',\n description: 'VPC-based source',\n port: 5000,\n maxLatency: Duration.millis(2000),\n network: NetworkConfiguration.vpc(vpcInterface),\n }),\n vpcInterfaces: [vpcInterface],\n});\n```\n\n#### Entitled Source (From Another AWS Account)\n\nEntitlements allow you to subscribe to content from another AWS account. The entitlement is created by the content originator in their AWS account, and you import it using the entitlement ARN they provide.\n\n```ts\ndeclare const stack: Stack;\n\n// Import an entitlement from another AWS account\nconst entitlement = FlowEntitlement.fromFlowEntitlementArn(stack, 'ImportedEntitlement',\n 'arn:aws:mediaconnect:us-west-2:111122223333:entitlement:1-11111111111111111111111111111111:MyEntitlement',\n);\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.entitlement({\n entitlement: entitlement,\n }),\n});\n```\n\n#### Gateway Bridge Source\n\nUse a gateway bridge source when ingesting content from on-premises equipment through a MediaConnect gateway and bridge. Gateways define the network infrastructure that bridges use to transport video between on-premises and cloud environments.\n\n```ts\ndeclare const stack: Stack;\ndeclare const bridge: Bridge;\ndeclare const role: iam.IRole;\ndeclare const securityGroup: ec2.ISecurityGroup;\ndeclare const subnet: ec2.ISubnet;\n\nconst vpcInterface = VpcInterface.define({\n vpcInterfaceName: 'bridge-interface',\n role: role,\n securityGroups: [securityGroup],\n subnet: subnet,\n});\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.gatewayBridge({\n bridge: bridge,\n vpcInterface: vpcInterface,\n }),\n vpcInterfaces: [vpcInterface],\n});\n```\n\n### VPC Interfaces\n\nVPC interfaces allow MediaConnect to send or receive content within your VPC. Create VPC interfaces using `VpcInterface.define()` and add them to the flow's `vpcInterfaces` array. The same interface can then be referenced in sources and outputs:\n\n```ts\ndeclare const stack: Stack;\ndeclare const role: iam.IRole;\ndeclare const securityGroup: ec2.ISecurityGroup;\ndeclare const subnet: ec2.ISubnet;\n\n// Create VPC interface\nconst vpcInterface = VpcInterface.define({\n vpcInterfaceName: 'my-vpc-interface',\n role: role,\n securityGroups: [securityGroup],\n subnet: subnet,\n networkInterfaceType: NetworkInterface.ENA,\n});\n\n// Add to flow and reference in source\nconst flow = new Flow(stack, 'MyFlow', {\n vpcInterfaces: [vpcInterface], // Declare at flow level\n source: SourceConfiguration.rist({\n flowSourceName: 'vpc-source',\n port: 5000,\n maxLatency: Duration.millis(2000),\n network: NetworkConfiguration.vpc(vpcInterface), // Reference in source\n }),\n});\n```\n\n#### CDI and JPEG XS with EFA Interfaces\n\nFor high-performance CDI or JPEG XS workflows, use EFA (Elastic Fabric Adapter) interfaces. Note that flows can have a maximum of 1 EFA interface:\n\n```ts\ndeclare const stack: Stack;\ndeclare const role: iam.IRole;\ndeclare const securityGroup: ec2.ISecurityGroup;\ndeclare const subnet: ec2.ISubnet;\n\nconst efaInterface = VpcInterface.define({\n vpcInterfaceName: 'efa-interface',\n role: role,\n securityGroups: [securityGroup],\n subnet: subnet,\n networkInterfaceType: NetworkInterface.EFA, // Required for CDI\n});\n\nconst videoStream = MediaStream.video({\n mediaStreamId: 1,\n mediaStreamName: 'video',\n videoFormat: MediaVideoFormat.HD_1080P,\n fmtp: {\n exactFramerate: Framerate.FPS_29_97,\n par: PixelAspectRatio.SQUARE,\n },\n});\n\nconst flow = new Flow(stack, 'MyCdiFlow', {\n flowSize: FlowSize.LARGE_4X, // Required for CDI and JPEG XS\n vpcInterfaces: [efaInterface],\n mediaStreams: [videoStream],\n source: SourceConfiguration.cdi({\n flowSourceName: 'cdi-source',\n vpcInterface: efaInterface,\n port: 5000,\n maxSyncBuffer: 100,\n mediaStreamSourceConfigurations: [{\n encoding: Encoding.RAW,\n mediaStream: videoStream,\n }],\n }),\n});\n```\n\n#### JPEG XS with Redundant Interfaces\n\nJPEG XS requires exactly 2 input interfaces per media stream for redundancy. Typically one EFA and one ENA interface:\n\n```ts\ndeclare const stack: Stack;\ndeclare const role: iam.IRole;\ndeclare const sg1: ec2.ISecurityGroup;\ndeclare const sg2: ec2.ISecurityGroup;\ndeclare const subnet: ec2.ISubnet;\n\nconst efaInterface = VpcInterface.define({\n vpcInterfaceName: 'efa-interface',\n role: role,\n securityGroups: [sg1],\n subnet: subnet,\n networkInterfaceType: NetworkInterface.EFA,\n});\n\nconst enaInterface = VpcInterface.define({\n vpcInterfaceName: 'ena-interface',\n role: role,\n securityGroups: [sg2],\n subnet: subnet,\n networkInterfaceType: NetworkInterface.ENA,\n});\n\nconst videoStream = MediaStream.video({\n mediaStreamId: 1,\n mediaStreamName: 'video',\n videoFormat: MediaVideoFormat.UHD_2160P,\n fmtp: {\n exactFramerate: Framerate.FPS_59_94,\n par: PixelAspectRatio.SQUARE,\n colorimetry: Colorimetry.BT2020,\n videoRange: VideoRange.FULL,\n scanMode: ScanMode.PROGRESSIVE,\n tcs: Tcs.PQ,\n },\n});\n\nconst flow = new Flow(stack, 'MyJpegXsFlow', {\n flowSize: FlowSize.LARGE_4X, // Required for JPEG XS\n vpcInterfaces: [efaInterface, enaInterface],\n mediaStreams: [videoStream],\n source: SourceConfiguration.jpegXs({\n flowSourceName: 'jpegxs-source',\n maxSyncBuffer: 100,\n mediaStreamSourceConfigurations: [{\n encoding: Encoding.JXSV,\n port: 5000,\n inputInterface: [efaInterface, enaInterface], // 2 interfaces for redundancy\n mediaStream: videoStream,\n }],\n }),\n});\n```\n\n### Media Streams\n\nMedia streams represent individual components of your content (video, audio, ancillary data) for ST 2110 JPEG XS or CDI workflows. Create media streams using the static factory methods and add them to the flow's `mediaStreams` array:\n\n```ts\ndeclare const stack: Stack;\n\n// Create media streams\nconst videoStream = MediaStream.video({\n mediaStreamId: 1,\n mediaStreamName: 'video-stream',\n videoFormat: MediaVideoFormat.HD_1080P,\n fmtp: {\n colorimetry: Colorimetry.BT709,\n exactFramerate: Framerate.FPS_29_97,\n par: PixelAspectRatio.SQUARE,\n videoRange: VideoRange.NARROW,\n scanMode: ScanMode.PROGRESSIVE,\n tcs: Tcs.SDR,\n },\n});\n\nconst audioStream = MediaStream.audio({\n mediaStreamId: 2,\n mediaStreamName: 'audio-stream',\n channelOrder: AudioStreamOrderOptions.STANDARD_STEREO,\n});\n\n// Add to flow\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.router(),\n mediaStreams: [videoStream, audioStream], // Declare at flow level\n});\n```\n\n#### Audio Channel Order\n\nFor audio media streams, use the `AudioStreamOrderOptions` enum to specify the SMPTE 2110-30 channel order:\n\n```ts\n// Available channel order options\nAudioStreamOrderOptions.MONO // SMPTE2110.(M)\nAudioStreamOrderOptions.DUAL_MONO // SMPTE2110.(DM)\nAudioStreamOrderOptions.STANDARD_STEREO // SMPTE2110.(ST)\nAudioStreamOrderOptions.LTRT_MATRIX_STEREO // SMPTE2110.(LtRt)\nAudioStreamOrderOptions.SURROUND_5_1 // SMPTE2110.(51)\nAudioStreamOrderOptions.SURROUND_7_1 // SMPTE2110.(71)\nAudioStreamOrderOptions.SURROUND_22_2 // SMPTE2110.(222)\nAudioStreamOrderOptions.ONE_SDI_AUDIO_GROUP // SMPTE2110.(SGRP)\n\n// Example with 5.1 surround\nconst surroundAudio = MediaStream.audio({\n mediaStreamId: 3,\n mediaStreamName: 'surround-audio',\n channelOrder: AudioStreamOrderOptions.SURROUND_5_1,\n});\n```\n\nMedia streams can be referenced in source configurations (for CDI and JPEG XS) and output configurations.\n\n### Flow Sizes\n\nMediaConnect offers three flow sizes that determine feature support:\n\n| Flow Size | Transport Streams | NDI | CDI / JPEG XS |\n|-----------|------------------|-----|---------------|\n| `MEDIUM` (default) | ✅ | ❌ | ❌ |\n| `LARGE` | ✅ | ✅ | ❌ |\n| `LARGE_4X` | ❌ | ❌ | ✅ |\n\nThis table maps each `FlowSize` to the capabilities the construct validates. For output counts, throughput limits, and other per-size details, see [Flow sizes and capabilities](https://docs.aws.amazon.com/mediaconnect/latest/ug/flow-sizes-capabilities.html).\n\nThe construct validates flow size constraints at synthesis time based on the source protocol and NDI configuration:\n\n- `MEDIUM` supports transport stream protocols (RTP, SRT, RIST, etc.) but not NDI or CDI\n- `LARGE` supports transport streams and NDI, and is required when NDI is enabled\n- `LARGE_4X` is required for CDI and JPEG XS protocols, and does not support transport streams or NDI\n\nThese are mutually exclusive — CDI/JPEG XS and NDI cannot coexist on the same flow because they require different flow sizes.\n\n```ts\ndeclare const stack: Stack;\ndeclare const ndiVpcInterface: VpcInterfaceConfig;\ndeclare const efaInterface: VpcInterfaceConfig;\ndeclare const videoStream: MediaStream;\n\n// NDI requires LARGE, an encoding profile, and at least one discovery server\nnew Flow(stack, 'NdiFlow', {\n flowSize: FlowSize.LARGE,\n ndiConfig: {\n ndiState: State.ENABLED,\n ndiDiscoveryServers: [{\n discoveryServerAddress: '10.0.0.10',\n vpcInterface: ndiVpcInterface,\n }],\n },\n encodingConfig: {\n encodingProfile: EncodingProfile.CONTRIBUTION_H264_DEFAULT,\n },\n source: SourceConfiguration.ndi({\n flowSourceName: 'ndi-source',\n }),\n});\n\n// CDI and JPEG XS require LARGE_4X\nnew Flow(stack, 'CdiFlow', {\n flowSize: FlowSize.LARGE_4X,\n vpcInterfaces: [efaInterface],\n mediaStreams: [videoStream],\n source: SourceConfiguration.cdi({\n flowSourceName: 'cdi-source',\n vpcInterface: efaInterface,\n port: 5000,\n maxSyncBuffer: 100,\n mediaStreamSourceConfigurations: [{\n encoding: Encoding.RAW,\n mediaStream: videoStream,\n }],\n }),\n});\n```\n\nFor more information, see [Flow sizes and capabilities](https://docs.aws.amazon.com/mediaconnect/latest/ug/flow-sizes-capabilities.html).\n\n## Gateways\n\nMediaConnect Gateways enable the deployment of on-premises resources for transporting live video to and from the AWS Cloud. Gateways are required for creating bridges.\n\n### Creating a Gateway\n\n```ts\ndeclare const stack: Stack;\n\nconst productionNetwork = GatewayNetwork.define({\n cidrBlock: '192.168.1.0/24',\n name: 'production-network',\n});\n\nconst gateway = new Gateway(stack, 'MyGateway', {\n gatewayName: 'my-gateway',\n egressCidrBlocks: ['10.0.0.0/16'],\n networks: [productionNetwork],\n});\n```\n\n### Importing an Existing Gateway\n\n```ts\ndeclare const stack: Stack;\n\nconst gateway = Gateway.fromGatewayArn(stack, 'ImportedGateway',\n 'arn:aws:mediaconnect:us-west-2:123456789012:gateway:1-XXXXXX',\n);\n```\n\n## Bridges\n\nMediaConnect bridges enable you to interconnect on-premises equipment with cloud-based workflows. Bridges support both ingress (on-premises to cloud) and egress (cloud to on-premises) scenarios.\n\n### Creating a Bridge\n\n#### Ingress Bridge (On-premises to Cloud)\n\nAn ingress bridge receives content from on-premises equipment and makes it available in the cloud:\n\n```ts\ndeclare const stack: Stack;\n\nconst productionNetwork = GatewayNetwork.define({\n cidrBlock: '192.168.1.0/24',\n name: 'production-network',\n});\n\nconst gateway = new Gateway(stack, 'MyGateway', {\n gatewayName: 'my-gateway',\n egressCidrBlocks: ['10.0.0.0/16'],\n networks: [productionNetwork],\n});\n\nconst ingressBridge = new Bridge(stack, 'MyIngressBridge', {\n bridgeName: 'my-ingress-bridge',\n config: BridgeConfiguration.ingress({\n maxBitrate: Bitrate.mbps(10),\n maxOutputs: 2,\n networkSources: [{\n name: 'on-prem-source',\n source: {\n protocol: BridgeProtocol.RTP,\n network: productionNetwork,\n multicastIp: '239.1.1.1',\n port: 5000,\n },\n }],\n }),\n gateway: gateway,\n});\n```\n\n#### Egress Bridge (Cloud to On-premises)\n\nAn egress bridge sends content from MediaConnect flows to on-premises equipment:\n\n```ts\ndeclare const stack: Stack;\ndeclare const gateway: Gateway;\ndeclare const flow: Flow;\ndeclare const vpcInterface: VpcInterfaceConfig;\ndeclare const productionNetwork: GatewayNetwork;\n\nconst egressBridge = new Bridge(stack, 'MyEgressBridge', {\n bridgeName: 'my-egress-bridge',\n config: BridgeConfiguration.egress({\n maxBitrate: Bitrate.mbps(10),\n flowSources: [{\n name: 'cloud-source',\n source: {\n flow: flow,\n vpcInterface: vpcInterface,\n },\n }],\n networkOutputs: [{\n name: 'on-prem-output',\n output: BridgeOutputConfiguration.network({\n ipAddress: '192.168.1.200',\n port: 5001,\n network: productionNetwork,\n protocol: BridgeProtocol.RTP,\n ttl: 50,\n }),\n }],\n }),\n gateway: gateway,\n});\n```\n\n### Bridge Sources\n\nFor failover scenarios, you can add additional sources to an existing bridge using the `BridgeSource` construct:\n\n```ts\ndeclare const stack: Stack;\ndeclare const bridge: Bridge;\ndeclare const flow: Flow;\n\n// Add a flow source to an egress bridge (requires failover to be enabled)\nconst additionalSource = new BridgeSource(stack, 'AdditionalSource', {\n bridgeSourceName: 'backup-source',\n bridge: bridge,\n source: BridgeSourceConfiguration.flow({\n flow: flow,\n }),\n});\n```\n\n### Bridge Outputs\n\nBridge outputs are configured as part of the bridge configuration for egress bridges. They define where content exits the bridge to on-premises equipment.\n\n```ts\ndeclare const productionNetwork: GatewayNetwork;\n\nconst networkConfig = BridgeOutputConfiguration.network({\n ipAddress: '192.168.1.200',\n port: 5001,\n network: productionNetwork,\n protocol: BridgeProtocol.RTP,\n ttl: 50,\n});\n\nconst namedOutput = { name: 'on-prem-output', output: networkConfig };\n```\n\n## Encryption\n\nMediaConnect supports encryption for sources, outputs, and entitlements. This package provides type-safe encryption configuration structs that match the encryption requirements for different protocols.\n\n### Encryption Types\n\nMediaConnect supports two types of encryption:\n\n1. **Static Key Encryption** - Used for Zixi Push/Pull protocols and entitlements\n2. **SRT Password Encryption** - Used for SRT Listener and SRT Caller protocols\n\nNote: CFN exposes only `static-key` and `srt-password` for flow output encryption today; SPEKE is not currently part of the surface.\n\n**Auto-created IAM role.** Every encryption struct accepts an optional `role`. Omit it and the consuming construct creates a scoped role for you: trust policy for `mediaconnect.amazonaws.com` with `aws:SourceAccount` + `aws:SourceArn` conditions (confused-deputy protection), and just enough permission to read the provided secret (including `kms:Decrypt` when the secret uses a customer-managed KMS key).\n\n**Providing your own role.** If you supply a `role`, it's used as-is — the construct does **not** grant it any permissions. You must grant it the necessary permissions yourself. Provide your own role when you need stricter control or a shared identity.\n\n**Trust-policy scope: flows vs. routers.** When the L2 auto-creates a role, it also pins `aws:SourceArn` to the consuming resource:\n\n- **Flows** — the trust policy pins the flow ARN (`arn:...:flow:*:<flow-name>`). The `*` wildcards the service-assigned id segment; the flow name is fixed at create time.\n- **Routers** — the trust policy can only pin a wildcarded ARN (`arn:...:routerInput:*` / `arn:...:routerOutput:*`). Router I/O ARNs use a service-generated id segment that is unknown at synth time, and using the live ARN attribute would create a CloudFormation dependency cycle (role → router → role). If you need per-resource pinning, supply your own `role` with a trust condition that pins the exact ARN — you can compute it from the resource's `routerInputId` / `routerOutputId` after first deploy and apply it on a follow-up deploy.\n\n### Static Key Encryption\n\nUse a static-key encryption struct for Zixi protocols and entitlements. This requires an encryption algorithm (AES128, AES192, or AES256). Pass it inline where the construct asks for it:\n\n```ts\ndeclare const stack: Stack;\ndeclare const flow: Flow;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\n\nnew FlowEntitlement(stack, 'MyEntitlement', {\n flow,\n subscribers: ['111122223333'],\n description: 'Grant partner access to live feed',\n encryption: {\n role,\n secret,\n algorithm: EncryptionAlgorithm.AES256,\n },\n});\n```\n\n### SRT Password Encryption\n\nSRT protocols take an encryption struct with just `role` and `secret` — no algorithm:\n\n```ts\ndeclare const stack: Stack;\ndeclare const flow: Flow;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\n\nnew FlowOutput(stack, 'SrtOutput', {\n flow,\n output: OutputConfiguration.srtCaller({\n destination: '203.0.113.100',\n port: 7000,\n encryption: { role, secret },\n }),\n});\n```\n\n### Using Encryption with Sources\n\nApply encryption when configuring flow sources:\n\n```ts\ndeclare const stack: Stack;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\n\n// SRT Listener source with encryption\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.srtListener({\n flowSourceName: 'encrypted-source',\n port: 5000,\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n decryption: { role, secret },\n }),\n});\n\n// Zixi Push source with encryption\nconst flow2 = new Flow(stack, 'MyFlow2', {\n source: SourceConfiguration.zixiPush({\n flowSourceName: 'encrypted-zixi-source',\n maxLatency: Duration.millis(2000),\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n decryption: {\n role,\n secret,\n algorithm: EncryptionAlgorithm.AES256,\n },\n }),\n});\n```\n\n### Using Encryption with Outputs\n\nApply encryption when configuring flow outputs:\n\n```ts\ndeclare const stack: Stack;\ndeclare const flow: Flow;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\n\n// SRT Caller output with encryption\nconst output = new FlowOutput(stack, 'EncryptedOutput', {\n flow: flow,\n description: 'Encrypted SRT output',\n output: OutputConfiguration.srtCaller({\n destination: '203.0.113.100',\n port: 7000,\n encryption: { role, secret },\n }),\n});\n```\n\n### Using Encryption with Entitlements\n\nEntitlements use static key encryption:\n\n```ts\ndeclare const stack: Stack;\ndeclare const flow: Flow;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\n\nconst entitlement = new FlowEntitlement(stack, 'MyEntitlement', {\n flow: flow,\n description: 'Grant partner access to live feed',\n subscribers: ['111122223333'],\n encryption: {\n role,\n secret,\n algorithm: EncryptionAlgorithm.AES256,\n },\n});\n```\n\n### Router Transit Encryption\n\nWhen integrating flows with routers, use transit encryption to secure the connection between the flow and router:\n\n```ts\ndeclare const stack: Stack;\ndeclare const flow: Flow;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\ndeclare const existingRouterOutput: RouterOutput;\n\n// Flow output to router with transit encryption\nconst routerOutput = new FlowOutput(stack, 'RouterOutput', {\n flow: flow,\n output: OutputConfiguration.router({\n encryption: { role, secret },\n }),\n});\n\n// Flow source from router with transit encryption\nconst flowFromRouter = new Flow(stack, 'FlowFromRouter', {\n source: SourceConfiguration.router({\n routerOutput: existingRouterOutput,\n decryption: { role, secret },\n }),\n});\n```\n\n### Router SRT Encryption\n\nRouter outputs using SRT protocols use `RouterSrtEncryption` for encryption:\n\n```ts\ndeclare const stack: Stack;\ndeclare const networkInterface: RouterNetworkInterface;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\n\nconst output = new RouterOutput(stack, 'EncryptedSrtOutput', {\n routerOutputName: 'encrypted-srt-output',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_50,\n configuration: RouterOutputConfiguration.standard({\n protocol: RouterOutputProtocol.srtCaller({\n destinationAddress: '203.0.113.100',\n destinationPort: 9001,\n minimumLatency: Duration.millis(200),\n encryptionConfiguration: { role, secret },\n }),\n networkInterface: networkInterface,\n }),\n});\n```\n\nNote: `RouterSrtEncryption` is distinct from `SrtPasswordEncryption` (used on flow sources/outputs) — router outputs use a simpler CFN shape without a `keyType` discriminator.\n\n## CloudWatch Metrics\n\nFlows and Bridges expose CloudWatch metric helpers for monitoring. You can create alarms and dashboards using these metrics:\n\n```ts\ndeclare const flow: Flow;\ndeclare const stack: Stack;\n\n// Create a CloudWatch alarm on source bitrate\nconst alarm = flow.metricSourceBitrate().createAlarm(stack, 'LowBitrate', {\n threshold: 1000000,\n evaluationPeriods: 1,\n});\n\n// Monitor unrecovered packets\nflow.metricSourceNotRecoveredPackets().createAlarm(stack, 'PacketLoss', {\n threshold: 100,\n evaluationPeriods: 2,\n});\n\n// Track total packets with custom options\nconst totalPackets = flow.metricSourceTotalPackets({\n statistic: 'sum',\n period: Duration.minutes(5),\n});\n```\n\n### Flow metrics\n\n- `metricSourceBitrate()` - Bitrate of content ingested into the flow (average)\n- `metricSourceNotRecoveredPackets()` - Packets lost in transit that were not recovered by error correction (sum)\n- `metricSourceTotalPackets()` - Total packets received by the flow sources (sum)\n- `metricSourceSelected()` - Indicates which source is being used under Failover mode (max; 1 = active, 0 = standby)\n- `metricSourceConnected()` - Source connection state for Zixi, SRT, and RIST (min; 1 = connected, 0 = disconnected)\n- `metricSourceDisconnections()` - Number of times the source transitioned from connected to disconnected (sum)\n- `metricSourceDroppedPackets()` - Packets lost before any error correction took place (sum)\n- `metricSourcePacketLossPercent()` - Percentage of packets lost during transit, even if they were recovered (average)\n- `metricSourceRoundTripTime()` - Round-trip time to the source for RIST, Zixi, and SRT (average, milliseconds)\n- `metricSourceJitter()` - Current network jitter of the source (average, milliseconds)\n- `metric(metricName)` - Create a custom metric by name\n\n### Bridge metrics\n\nBridge metrics are dimensioned by `BridgeARN`. The underlying CloudWatch metric name is chosen automatically based on whether the bridge is ingress or egress.\n\n- `metricSourceBitrate(bridgeSourceName)` - Bitrate of a specific bridge source (average)\n- `metricSourcePacketLossPercent(bridgeSourceName)` - Percentage of packets lost on a specific bridge source (average)\n- `metricFailoverSwitches()` - Total number of times the bridge switches between sources under `FAILOVER` failover mode (sum)\n- `metric(metricName)` - Create a custom metric by name\n\n### Router Input metrics\n\nRouter input metrics are dimensioned by `RouterInputARN`.\n\n- `metricBitrate()` - Bitrate of the router input's payload (average)\n- `metricNotRecoveredPackets()` - Packets lost in transit that were not recovered by error correction (sum)\n- `metricTotalPackets()` - Total number of packets received by the router input (sum)\n- `metricConnected()` - Connection state for SRT sources (min; 1 = connected, 0 = disconnected)\n- `metricContinuityCounterErrors()` - Continuity counter errors in the transport stream (sum)\n- `metricLatency()` - Recovery latency of the input stream for RIST, SRT, and RTP-FEC (average, milliseconds)\n- `metricFailoverSwitches()` - Total times the router input switched sources under Failover mode (sum)\n- `metric(metricName)` - Create a custom metric by name\n\n### Router Output metrics\n\nRouter output metrics are dimensioned by `RouterOutputARN`.\n\n- `metricBitrate()` - Bitrate of the router output's payload (average)\n- `metricTotalPackets()` - Total number of packets sent by the router output (sum)\n- `metricConnected()` - Connection state for SRT outputs (min; 1 = connected, 0 = disconnected)\n- `metricArqRequests()` - Retransmitted packets requested through ARQ for RIST and SRT outputs (sum)\n- `metric(metricName)` - Create a custom metric by name\n\n### Gateway metrics\n\nGateway metrics are dimensioned by `GatewayARN`. Pass extra dimensions such as `NetworkName`, `InstanceId`, or `BridgeSourceName` via `props.dimensionsMap` to narrow to a specific network, appliance, or bridge source.\n\n- `metricEgressBridgeTotalPackets()` - Total packets sent from egress bridges hosted on the gateway (sum)\n- `metricEgressBridgeDroppedPackets()` - Packets dropped by egress bridges hosted on the gateway (sum)\n- `metricIngressBridgeTotalPackets()` - Total packets received by ingress bridges hosted on the gateway (sum)\n- `metricIngressBridgeDroppedPackets()` - Packets dropped by ingress bridges hosted on the gateway (sum)\n- `metric(metricName)` - Create a custom metric by name (e.g. `IngressBridgeBitRate`, `EgressBridgeBitRate`, `IngressBridgeSourcePacketLossPercent`)\n\nPair the total + dropped helpers to build a dropped-packet percentage chart — for example, divide `metricEgressBridgeDroppedPackets()` by `metricEgressBridgeTotalPackets()` in a math expression.\n\nAll metrics support standard CloudWatch metric options for customizing period, statistic, and dimensions.\n\n## Public CIDR warnings\n\nSeveral constructs accept CIDR ranges that determine who can contribute content or pull outputs. Passing an open range (`0.0.0.0/0` or any `/0` prefix) makes the resource reachable from anywhere on the public internet, which is rarely what you want. The module emits synthesis-time warnings when it detects an open range on:\n\n- `GatewayProps.egressCidrBlocks`\n- `NetworkConfiguration.publicNetwork(cidr)` used on flow sources\n- `cidrAllowList` on Zixi Push / Zixi Pull / SRT Listener flow outputs\n- `RouterNetworkConfiguration.publicNetwork({ cidr })`\n\nRestrict each range to the narrowest set of addresses that actually need access.\n"
|
|
9587
|
+
"markdown": "# AWS::MediaConnect Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n\n## AWS Elemental MediaConnect\n\nAWS Elemental MediaConnect is a high-quality transport service for live video. It provides the reliability and security of satellite and fiber-optic combined with the flexibility, agility, and economics of IP-based networks. MediaConnect enables you to build mission-critical live video workflows in a fraction of the time and cost of satellite or fiber services.\n\nThis package contains constructs for working with AWS Elemental MediaConnect, allowing you to define Flows, Bridges, Gateways, Router Inputs, Router Outputs, and Router Network Interfaces for transporting live video streams.\n\nFor further information on AWS Elemental MediaConnect, see [the documentation](https://aws.amazon.com/mediaconnect/).\n\n## Table of Contents\n\n- [Router Resources](#router-resources)\n - [Router Network Interfaces](#router-network-interfaces)\n - [Router Inputs](#router-inputs)\n - [Router Outputs](#router-outputs)\n- [Flows](#flows)\n - [Creating a Flow](#creating-a-flow)\n - [Flow Sources](#flow-sources)\n - [VPC Interfaces](#vpc-interfaces)\n - [Media Streams](#media-streams)\n - [Flow Sizes](#flow-sizes)\n- [Gateways](#gateways)\n - [Creating a Gateway](#creating-a-gateway)\n - [Importing an Existing Gateway](#importing-an-existing-gateway)\n- [Bridges](#bridges)\n - [Creating a Bridge](#creating-a-bridge)\n - [Bridge Sources](#bridge-sources)\n - [Bridge Outputs](#bridge-outputs)\n- [Encryption](#encryption)\n- [CloudWatch Metrics](#cloudwatch-metrics)\n- [Public CIDR warnings](#public-cidr-warnings)\n\n## Router Resources\n\nMediaConnect routers provide high-performance, low-latency video routing capabilities for building complex live video workflows. Router resources include network interfaces, inputs, and outputs.\n\n### How Router Resources Relate\n\nRouter resources work together in a pipeline:\n\n- A **RouterNetworkInterface** defines the network connectivity (public internet or VPC). Required for standard protocol-based inputs and outputs, but not needed when connecting to MediaLive inputs or MediaConnect flows directly.\n- A **RouterInput** is the entry point — it receives video from a source via a protocol (RTP, SRT, RIST), or from a MediaConnect flow.\n- A **RouterOutput** is the exit point — it sends video to a destination via a protocol, to a MediaLive input, or to a MediaConnect flow.\n\nA typical camera-to-cloud workflow looks like:\n\n```text\nCamera → RouterNetworkInterface → RouterInput (SRT) → [Router] → RouterOutput (MediaLive) → MediaLive Channel\n```\n\nThe router sits in the middle, routing content from inputs to outputs. You can have many outputs per input — for example, one camera feed going to both a MediaLive channel and a MediaConnect flow simultaneously.\n\n### End-to-End Example: SRT Source to MediaLive\n\nHere's a complete example showing how to connect an SRT source through a router to MediaLive:\n\n```ts\ndeclare const stack: Stack;\ndeclare const mediaLiveInput: medialive.IInput;\n\n// 1. A public network interface for the SRT input\nconst networkInterface = new RouterNetworkInterface(stack, 'NetworkInterface', {\n routerNetworkInterfaceName: 'camera-network',\n configuration: RouterNetworkConfiguration.publicNetwork({\n cidr: ['203.0.113.0/24'],\n }),\n});\n\n// 2. A router input receiving SRT from an upstream encoder\nconst input = new RouterInput(stack, 'Input', {\n routerInputName: 'camera-input',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_20,\n configuration: RouterInputConfiguration.standard({\n networkInterface,\n protocol: RouterInputProtocol.srtListener({\n port: 9000,\n minimumLatency: Duration.millis(200),\n }),\n }),\n});\n\n// 3. A router output delivering to MediaLive\nconst output = new RouterOutput(stack, 'Output', {\n routerOutputName: 'medialive-output',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_20,\n configuration: RouterOutputConfiguration.mediaLiveInput({\n input: mediaLiveInput,\n pipeline: MediaLivePipeline.PIPELINE_0,\n }),\n});\n```\n\nThis gives you a complete pipeline: the encoder pushes SRT to the network interface, the router receives it as an input, and the router output delivers it to MediaLive. For routing rules — including how bitrate affects which outputs can receive which inputs — see the [documentation](https://docs.aws.amazon.com/mediaconnect/latest/ug/using-router-control-panel.html).\n\n### Router Network Interfaces\n\nNetwork interfaces define the network connectivity for router inputs and outputs:\n\n#### Public Network Interface\n\n```ts\ndeclare const stack: Stack;\n\nconst publicInterface = new RouterNetworkInterface(stack, 'PublicInterface', {\n routerNetworkInterfaceName: 'public-interface',\n configuration: RouterNetworkConfiguration.publicNetwork({\n cidr: ['203.0.113.0/24'],\n }),\n});\n```\n\n#### Private Network Interface\n\n```ts\ndeclare const stack: Stack;\ndeclare const securityGroup: ec2.ISecurityGroup;\ndeclare const subnet: ec2.ISubnet;\n\nconst privateInterface = new RouterNetworkInterface(stack, 'PrivateInterface', {\n routerNetworkInterfaceName: 'private-interface',\n configuration: RouterNetworkConfiguration.vpc({\n securityGroups: [securityGroup],\n subnet: subnet,\n }),\n});\n```\n\n### Router Inputs\n\nRouter inputs receive live video streams from various sources and make them available for routing:\n\n#### Standard Input with RTP Protocol\n\n```ts\ndeclare const stack: Stack;\ndeclare const networkInterface: RouterNetworkInterface;\n\nconst input = new RouterInput(stack, 'RtpInput', {\n routerInputName: 'rtp-input',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n // tier defaults to RouterInputTier.INPUT_20 (lowest cost)\n configuration: RouterInputConfiguration.standard({\n networkInterface: networkInterface,\n protocol: RouterInputProtocol.rtp({\n port: 5000,\n }),\n }),\n});\n```\n\n#### Failover Input Configuration\n\n```ts\ndeclare const stack: Stack;\ndeclare const networkInterface: RouterNetworkInterface;\n\nconst input = new RouterInput(stack, 'FailoverInput', {\n routerInputName: 'failover-input',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.failover({\n networkInterface: networkInterface,\n protocols: [\n RouterInputProtocol.rist({\n port: 5000,\n recoveryLatency: Duration.millis(1000),\n }),\n RouterInputProtocol.rist({\n port: 5002, // Must not be consecutive with primary port\n recoveryLatency: Duration.millis(1000),\n }),\n ],\n sourcePriority: SourcePriorityConfig.primarySecondary(PrimarySource.FIRST_SOURCE),\n }),\n});\n```\n\n#### MediaLive Channel Input\n\nConnect a router input to a MediaLive channel. The `outputName` must match the name of an output configured in the channel's MediaConnect Router output group.\n\n```ts\ndeclare const stack: Stack;\ndeclare const mediaLiveChannel: medialive.IChannel;\n\nconst input = new RouterInput(stack, 'ChannelInput', {\n routerInputName: 'channel-input',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaLiveChannel({\n channel: mediaLiveChannel,\n outputName: 'router-ts',\n pipeline: MediaLivePipeline.PIPELINE_0,\n }),\n});\n```\n\n> **Tip:** For full examples of wiring a MediaLive channel to a MediaConnect Router (including\n> transit encryption), see the [MediaLive L2 README — MediaConnect Router section](./../aws-medialive-alpha/README.md#aws-elemental-mediaconnect-router).\n\n```ts\ndeclare const stack: Stack;\ndeclare const mediaLiveChannel: medialive.IChannel;\ndeclare const transitSecret: Secret; // must hold the same value as the channel's MediaConnectRouterSettings.shared() secret\n\nconst input = new RouterInput(stack, 'ChannelInput', {\n routerInputName: 'channel-input',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaLiveChannel({\n channel: mediaLiveChannel,\n outputName: 'router-ts',\n pipeline: MediaLivePipeline.PIPELINE_0,\n sourceTransitDecryption: { secret: transitSecret },\n }),\n});\n```\n\nOr prepare a router input for a MediaLive connection without specifying the channel (requires explicit availability zone):\n\n```ts\ndeclare const stack: Stack;\n\nconst input = new RouterInput(stack, 'ChannelInputNoConnection', {\n routerInputName: 'channel-input-no-connection',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaLiveChannelWithoutConnection({\n availabilityZone: 'us-east-1a',\n }),\n});\n```\n\n#### MediaConnect Flow Input\n\nConnect a router input to an existing MediaConnect flow:\n\n```ts\ndeclare const stack: Stack;\ndeclare const flow: Flow;\ndeclare const flowOutput: FlowOutput;\n\nconst input = new RouterInput(stack, 'FlowInput', {\n routerInputName: 'flow-input',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaConnectFlow({\n flow: flow,\n flowOutput: flowOutput,\n }),\n});\n```\n\nOr prepare a router input for a flow connection without specifying the flow (requires explicit availability zone):\n\n```ts\ndeclare const stack: Stack;\n\nconst input = new RouterInput(stack, 'FlowInputNoConnection', {\n routerInputName: 'flow-input-no-connection',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaConnectFlowWithoutConnection({\n availabilityZone: 'us-east-1a',\n }),\n});\n```\n\n### Router Outputs\n\nRouter outputs send video streams to various destinations including standard protocols, MediaLive inputs, and MediaConnect flows:\n\n#### Standard Output with SRT Protocol\n\n```ts\ndeclare const stack: Stack;\ndeclare const networkInterface: RouterNetworkInterface;\n\nconst output = new RouterOutput(stack, 'SrtOutput', {\n routerOutputName: 'srt-output',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n // tier defaults to RouterOutputTier.OUTPUT_20 (lowest cost)\n configuration: RouterOutputConfiguration.standard({\n protocol: RouterOutputProtocol.srtListener({\n port: 9001,\n minimumLatency: Duration.millis(200),\n }),\n networkInterface: networkInterface,\n }),\n});\n```\n\n> **Note:** The `tier` property defaults to the lowest (and cheapest) tier: `INPUT_20` for Router Inputs and `OUTPUT_20` for Router Outputs. The construct validates that `maximumBitrate` does not exceed the tier's capacity (20, 50, or 100 Mbps) at synth time. Per the [documentation](https://docs.aws.amazon.com/mediaconnect/latest/ug/using-router-control-panel.html), if an input is 20 Mbps you can't route it to an output set up for less than 20 Mbps.\n\n#### MediaLive Output\n\nConnect a router output to a MediaLive input (the input must be a MediaConnect Router type):\n\n```ts\ndeclare const stack: Stack;\ndeclare const mediaLiveInput: medialive.IInput;\n\nconst output = new RouterOutput(stack, 'MediaLiveOutput', {\n routerOutputName: 'medialive-output',\n maximumBitrate: Bitrate.mbps(15),\n routingScope: RoutingScope.GLOBAL,\n tier: RouterOutputTier.OUTPUT_50,\n configuration: RouterOutputConfiguration.mediaLiveInput({\n input: mediaLiveInput,\n pipeline: MediaLivePipeline.PIPELINE_0,\n }),\n});\n```\n\nOr prepare a router output for a MediaLive connection without specifying the input (requires explicit availability zone):\n\n```ts\ndeclare const stack: Stack;\n\nconst output = new RouterOutput(stack, 'MediaLiveOutputNoConnection', {\n routerOutputName: 'medialive-output-no-connection',\n maximumBitrate: Bitrate.mbps(15),\n routingScope: RoutingScope.GLOBAL,\n tier: RouterOutputTier.OUTPUT_50,\n configuration: RouterOutputConfiguration.mediaLiveInputWithoutConnection({\n availabilityZone: 'us-east-1a',\n }),\n});\n```\n\n#### MediaConnect Flow Output\n\nConnect a router output to an existing MediaConnect flow:\n\n```ts\ndeclare const stack: Stack;\ndeclare const flow: Flow;\n\nconst output = new RouterOutput(stack, 'FlowOutput', {\n routerOutputName: 'flow-output',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_100,\n configuration: RouterOutputConfiguration.mediaConnectFlow({\n flow: flow,\n }),\n});\n```\n\nOr prepare a router output for a flow connection without specifying the flow (requires explicit availability zone):\n\n```ts\ndeclare const stack: Stack;\n\nconst output = new RouterOutput(stack, 'FlowOutputNoConnection', {\n routerOutputName: 'flow-output-no-connection',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_100,\n configuration: RouterOutputConfiguration.mediaConnectFlowWithoutConnection({\n availabilityZone: 'us-east-1a',\n }),\n});\n```\n\n#### Output with Encryption\n\n```ts\ndeclare const stack: Stack;\ndeclare const networkInterface: RouterNetworkInterface;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\n\nconst output = new RouterOutput(stack, 'EncryptedOutput', {\n routerOutputName: 'encrypted-output',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_50,\n configuration: RouterOutputConfiguration.standard({\n protocol: RouterOutputProtocol.srtCaller({\n destinationAddress: '203.0.113.100',\n destinationPort: 9001,\n minimumLatency: Duration.millis(200),\n encryptionConfiguration: { role, secret },\n }),\n networkInterface: networkInterface,\n }),\n});\n```\n\n## Flows\n\nA MediaConnect flow represents a transport stream connection between a source and one or more outputs. Flows are the primary resource for transporting live video content.\n\n### Creating a Flow\n\nThe following example creates a basic MediaConnect flow with an RTP source:\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n flowName: 'my-live-stream',\n source: SourceConfiguration.rtp({\n flowSourceName: 'my-source',\n port: 5000,\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n }),\n});\n```\n\n### Flow Sources\n\nMediaConnect supports multiple source types for ingesting content into a flow. The examples below use `NetworkConfiguration.publicNetwork()` for simplicity, but all protocol-based sources can also use `NetworkConfiguration.vpc()` with a VPC interface for private connectivity.\n\n#### SRT Listener Source\n\nSRT (Secure Reliable Transport) in listener mode configures MediaConnect to listen on a specific port for incoming content. The upstream device connects to MediaConnect as a caller.\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.srtListener({\n flowSourceName: 'live-encoder-source',\n description: 'Live encoder feed',\n port: 5000,\n minLatency: Duration.millis(2000),\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n }),\n});\n```\n\n#### SRT Caller Source\n\nSRT in caller mode configures MediaConnect to connect to a remote SRT listener. Use this when the source device is listening for incoming connections rather than pushing content.\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.srtCaller({\n flowSourceName: 'remote-source',\n sourceListenerAddress: '203.0.113.50',\n sourceListenerPort: 5000,\n minLatency: Duration.millis(200),\n }),\n});\n```\n\n#### RTP Source\n\nRTP (Real-time Transport Protocol) is a standard protocol for delivering audio and video over IP networks.\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.rtp({\n flowSourceName: 'rtp-source',\n port: 5000,\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n }),\n});\n```\n\n#### RTP-FEC Source\n\nRTP with Forward Error Correction adds redundancy to recover lost packets without retransmission. Use this when contributing via RTP and you need packet recovery.\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.rtpFec({\n flowSourceName: 'rtp-fec-source',\n port: 5000,\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n }),\n});\n```\n\n#### RIST Source\n\nRIST (Reliable Internet Stream Transport) provides reliable video transport with packet recovery.\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.rist({\n flowSourceName: 'rist-source',\n port: 5000,\n maxLatency: Duration.millis(2000),\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n }),\n});\n```\n\n#### Zixi Push Source\n\nZixi Push uses the Zixi protocol for reliable video transport. Content is pushed to MediaConnect from a Zixi-compatible component upstream.\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.zixiPush({\n flowSourceName: 'zixi-source',\n maxLatency: Duration.millis(2000),\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n }),\n});\n```\n\n> Zixi Push ports are assigned by MediaConnect: 2088 for public sources, 2090-2099 for VPC sources. See [Source port assignments](https://docs.aws.amazon.com/mediaconnect/latest/ug/source-ports.html).\n\n#### Router Source\n\nUse a router source when the flow's source comes from a MediaConnect Router rather than a direct connection.\n\n```ts\ndeclare const stack: Stack;\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.router(),\n});\n```\n\n#### VPC Source\n\nUse a VPC-based source when you need a connection between a flow and your Amazon VPC. This enables private connectivity for receiving content from on-premises equipment via AWS Direct Connect or VPN, or from other AWS services running in your VPC.\n\n```ts\ndeclare const stack: Stack;\ndeclare const securityGroup: ec2.ISecurityGroup;\ndeclare const subnet: ec2.ISubnet;\ndeclare const role: iam.IRole;\n\nconst vpcInterface = VpcInterface.define({\n vpcInterfaceName: 'my-vpc-interface',\n role: role,\n securityGroups: [securityGroup],\n subnet: subnet,\n});\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.rist({\n flowSourceName: 'vpc-source',\n description: 'VPC-based source',\n port: 5000,\n maxLatency: Duration.millis(2000),\n network: NetworkConfiguration.vpc(vpcInterface),\n }),\n vpcInterfaces: [vpcInterface],\n});\n```\n\n#### Entitled Source (From Another AWS Account)\n\nEntitlements allow you to subscribe to content from another AWS account. The entitlement is created by the content originator in their AWS account, and you import it using the entitlement ARN they provide.\n\n```ts\ndeclare const stack: Stack;\n\n// Import an entitlement from another AWS account\nconst entitlement = FlowEntitlement.fromFlowEntitlementArn(stack, 'ImportedEntitlement',\n 'arn:aws:mediaconnect:us-west-2:111122223333:entitlement:1-11111111111111111111111111111111:MyEntitlement',\n);\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.entitlement({\n entitlement: entitlement,\n }),\n});\n```\n\n#### Gateway Bridge Source\n\nUse a gateway bridge source when ingesting content from on-premises equipment through a MediaConnect gateway and bridge. Gateways define the network infrastructure that bridges use to transport video between on-premises and cloud environments.\n\n```ts\ndeclare const stack: Stack;\ndeclare const bridge: Bridge;\ndeclare const role: iam.IRole;\ndeclare const securityGroup: ec2.ISecurityGroup;\ndeclare const subnet: ec2.ISubnet;\n\nconst vpcInterface = VpcInterface.define({\n vpcInterfaceName: 'bridge-interface',\n role: role,\n securityGroups: [securityGroup],\n subnet: subnet,\n});\n\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.gatewayBridge({\n bridge: bridge,\n vpcInterface: vpcInterface,\n }),\n vpcInterfaces: [vpcInterface],\n});\n```\n\n### VPC Interfaces\n\nVPC interfaces allow MediaConnect to send or receive content within your VPC. Create VPC interfaces using `VpcInterface.define()` and add them to the flow's `vpcInterfaces` array. The same interface can then be referenced in sources and outputs:\n\n```ts\ndeclare const stack: Stack;\ndeclare const role: iam.IRole;\ndeclare const securityGroup: ec2.ISecurityGroup;\ndeclare const subnet: ec2.ISubnet;\n\n// Create VPC interface\nconst vpcInterface = VpcInterface.define({\n vpcInterfaceName: 'my-vpc-interface',\n role: role,\n securityGroups: [securityGroup],\n subnet: subnet,\n networkInterfaceType: NetworkInterface.ENA,\n});\n\n// Add to flow and reference in source\nconst flow = new Flow(stack, 'MyFlow', {\n vpcInterfaces: [vpcInterface], // Declare at flow level\n source: SourceConfiguration.rist({\n flowSourceName: 'vpc-source',\n port: 5000,\n maxLatency: Duration.millis(2000),\n network: NetworkConfiguration.vpc(vpcInterface), // Reference in source\n }),\n});\n```\n\n#### CDI and JPEG XS with EFA Interfaces\n\nFor high-performance CDI or JPEG XS workflows, use EFA (Elastic Fabric Adapter) interfaces. Note that flows can have a maximum of 1 EFA interface:\n\n```ts\ndeclare const stack: Stack;\ndeclare const role: iam.IRole;\ndeclare const securityGroup: ec2.ISecurityGroup;\ndeclare const subnet: ec2.ISubnet;\n\nconst efaInterface = VpcInterface.define({\n vpcInterfaceName: 'efa-interface',\n role: role,\n securityGroups: [securityGroup],\n subnet: subnet,\n networkInterfaceType: NetworkInterface.EFA, // Required for CDI\n});\n\nconst videoStream = MediaStream.video({\n mediaStreamId: 1,\n mediaStreamName: 'video',\n videoFormat: MediaVideoFormat.HD_1080P,\n fmtp: {\n exactFramerate: Framerate.FPS_29_97,\n par: PixelAspectRatio.SQUARE,\n },\n});\n\nconst flow = new Flow(stack, 'MyCdiFlow', {\n flowSize: FlowSize.LARGE_4X, // Required for CDI and JPEG XS\n vpcInterfaces: [efaInterface],\n mediaStreams: [videoStream],\n source: SourceConfiguration.cdi({\n flowSourceName: 'cdi-source',\n vpcInterface: efaInterface,\n port: 5000,\n maxSyncBuffer: 100,\n mediaStreamSourceConfigurations: [{\n encoding: Encoding.RAW,\n mediaStream: videoStream,\n }],\n }),\n});\n```\n\n#### JPEG XS with Redundant Interfaces\n\nJPEG XS requires exactly 2 input interfaces per media stream for redundancy. Typically one EFA and one ENA interface:\n\n```ts\ndeclare const stack: Stack;\ndeclare const role: iam.IRole;\ndeclare const sg1: ec2.ISecurityGroup;\ndeclare const sg2: ec2.ISecurityGroup;\ndeclare const subnet: ec2.ISubnet;\n\nconst efaInterface = VpcInterface.define({\n vpcInterfaceName: 'efa-interface',\n role: role,\n securityGroups: [sg1],\n subnet: subnet,\n networkInterfaceType: NetworkInterface.EFA,\n});\n\nconst enaInterface = VpcInterface.define({\n vpcInterfaceName: 'ena-interface',\n role: role,\n securityGroups: [sg2],\n subnet: subnet,\n networkInterfaceType: NetworkInterface.ENA,\n});\n\nconst videoStream = MediaStream.video({\n mediaStreamId: 1,\n mediaStreamName: 'video',\n videoFormat: MediaVideoFormat.UHD_2160P,\n fmtp: {\n exactFramerate: Framerate.FPS_59_94,\n par: PixelAspectRatio.SQUARE,\n colorimetry: Colorimetry.BT2020,\n videoRange: VideoRange.FULL,\n scanMode: ScanMode.PROGRESSIVE,\n tcs: Tcs.PQ,\n },\n});\n\nconst flow = new Flow(stack, 'MyJpegXsFlow', {\n flowSize: FlowSize.LARGE_4X, // Required for JPEG XS\n vpcInterfaces: [efaInterface, enaInterface],\n mediaStreams: [videoStream],\n source: SourceConfiguration.jpegXs({\n flowSourceName: 'jpegxs-source',\n maxSyncBuffer: 100,\n mediaStreamSourceConfigurations: [{\n encoding: Encoding.JXSV,\n port: 5000,\n inputInterface: [efaInterface, enaInterface], // 2 interfaces for redundancy\n mediaStream: videoStream,\n }],\n }),\n});\n```\n\n### Media Streams\n\nMedia streams represent individual components of your content (video, audio, ancillary data) for ST 2110 JPEG XS or CDI workflows. Create media streams using the static factory methods and add them to the flow's `mediaStreams` array:\n\n```ts\ndeclare const stack: Stack;\n\n// Create media streams\nconst videoStream = MediaStream.video({\n mediaStreamId: 1,\n mediaStreamName: 'video-stream',\n videoFormat: MediaVideoFormat.HD_1080P,\n fmtp: {\n colorimetry: Colorimetry.BT709,\n exactFramerate: Framerate.FPS_29_97,\n par: PixelAspectRatio.SQUARE,\n videoRange: VideoRange.NARROW,\n scanMode: ScanMode.PROGRESSIVE,\n tcs: Tcs.SDR,\n },\n});\n\nconst audioStream = MediaStream.audio({\n mediaStreamId: 2,\n mediaStreamName: 'audio-stream',\n channelOrder: AudioStreamOrderOptions.STANDARD_STEREO,\n});\n\n// Add to flow\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.router(),\n mediaStreams: [videoStream, audioStream], // Declare at flow level\n});\n```\n\n#### Audio Channel Order\n\nFor audio media streams, use the `AudioStreamOrderOptions` enum to specify the SMPTE 2110-30 channel order:\n\n```ts\n// Available channel order options\nAudioStreamOrderOptions.MONO // SMPTE2110.(M)\nAudioStreamOrderOptions.DUAL_MONO // SMPTE2110.(DM)\nAudioStreamOrderOptions.STANDARD_STEREO // SMPTE2110.(ST)\nAudioStreamOrderOptions.LTRT_MATRIX_STEREO // SMPTE2110.(LtRt)\nAudioStreamOrderOptions.SURROUND_5_1 // SMPTE2110.(51)\nAudioStreamOrderOptions.SURROUND_7_1 // SMPTE2110.(71)\nAudioStreamOrderOptions.SURROUND_22_2 // SMPTE2110.(222)\nAudioStreamOrderOptions.ONE_SDI_AUDIO_GROUP // SMPTE2110.(SGRP)\n\n// Example with 5.1 surround\nconst surroundAudio = MediaStream.audio({\n mediaStreamId: 3,\n mediaStreamName: 'surround-audio',\n channelOrder: AudioStreamOrderOptions.SURROUND_5_1,\n});\n```\n\nMedia streams can be referenced in source configurations (for CDI and JPEG XS) and output configurations.\n\n### Flow Sizes\n\nMediaConnect offers three flow sizes that determine feature support:\n\n| Flow Size | Transport Streams | NDI | CDI / JPEG XS |\n|-----------|------------------|-----|---------------|\n| `MEDIUM` (default) | ✅ | ❌ | ❌ |\n| `LARGE` | ✅ | ✅ | ❌ |\n| `LARGE_4X` | ❌ | ❌ | ✅ |\n\nThis table maps each `FlowSize` to the capabilities the construct validates. For output counts, throughput limits, and other per-size details, see [Flow sizes and capabilities](https://docs.aws.amazon.com/mediaconnect/latest/ug/flow-sizes-capabilities.html).\n\nThe construct validates flow size constraints at synthesis time based on the source protocol and NDI configuration:\n\n- `MEDIUM` supports transport stream protocols (RTP, SRT, RIST, etc.) but not NDI or CDI\n- `LARGE` supports transport streams and NDI, and is required when NDI is enabled\n- `LARGE_4X` is required for CDI and JPEG XS protocols, and does not support transport streams or NDI\n\nThese are mutually exclusive — CDI/JPEG XS and NDI cannot coexist on the same flow because they require different flow sizes.\n\n```ts\ndeclare const stack: Stack;\ndeclare const ndiVpcInterface: VpcInterfaceConfig;\ndeclare const efaInterface: VpcInterfaceConfig;\ndeclare const videoStream: MediaStream;\n\n// NDI requires LARGE, an encoding profile, and at least one discovery server\nnew Flow(stack, 'NdiFlow', {\n flowSize: FlowSize.LARGE,\n ndiConfig: {\n ndiState: State.ENABLED,\n ndiDiscoveryServers: [{\n discoveryServerAddress: '10.0.0.10',\n vpcInterface: ndiVpcInterface,\n }],\n },\n encodingConfig: {\n encodingProfile: EncodingProfile.CONTRIBUTION_H264_DEFAULT,\n },\n source: SourceConfiguration.ndi({\n flowSourceName: 'ndi-source',\n }),\n});\n\n// CDI and JPEG XS require LARGE_4X\nnew Flow(stack, 'CdiFlow', {\n flowSize: FlowSize.LARGE_4X,\n vpcInterfaces: [efaInterface],\n mediaStreams: [videoStream],\n source: SourceConfiguration.cdi({\n flowSourceName: 'cdi-source',\n vpcInterface: efaInterface,\n port: 5000,\n maxSyncBuffer: 100,\n mediaStreamSourceConfigurations: [{\n encoding: Encoding.RAW,\n mediaStream: videoStream,\n }],\n }),\n});\n```\n\nFor more information, see [Flow sizes and capabilities](https://docs.aws.amazon.com/mediaconnect/latest/ug/flow-sizes-capabilities.html).\n\n## Gateways\n\nMediaConnect Gateways enable the deployment of on-premises resources for transporting live video to and from the AWS Cloud. Gateways are required for creating bridges.\n\n### Creating a Gateway\n\n```ts\ndeclare const stack: Stack;\n\nconst productionNetwork = GatewayNetwork.define({\n cidrBlock: '192.168.1.0/24',\n name: 'production-network',\n});\n\nconst gateway = new Gateway(stack, 'MyGateway', {\n gatewayName: 'my-gateway',\n egressCidrBlocks: ['10.0.0.0/16'],\n networks: [productionNetwork],\n});\n```\n\n### Importing an Existing Gateway\n\n```ts\ndeclare const stack: Stack;\n\nconst gateway = Gateway.fromGatewayArn(stack, 'ImportedGateway',\n 'arn:aws:mediaconnect:us-west-2:123456789012:gateway:1-XXXXXX',\n);\n```\n\n## Bridges\n\nMediaConnect bridges enable you to interconnect on-premises equipment with cloud-based workflows. Bridges support both ingress (on-premises to cloud) and egress (cloud to on-premises) scenarios.\n\n### Creating a Bridge\n\n#### Ingress Bridge (On-premises to Cloud)\n\nAn ingress bridge receives content from on-premises equipment and makes it available in the cloud:\n\n```ts\ndeclare const stack: Stack;\n\nconst productionNetwork = GatewayNetwork.define({\n cidrBlock: '192.168.1.0/24',\n name: 'production-network',\n});\n\nconst gateway = new Gateway(stack, 'MyGateway', {\n gatewayName: 'my-gateway',\n egressCidrBlocks: ['10.0.0.0/16'],\n networks: [productionNetwork],\n});\n\nconst ingressBridge = new Bridge(stack, 'MyIngressBridge', {\n bridgeName: 'my-ingress-bridge',\n config: BridgeConfiguration.ingress({\n maxBitrate: Bitrate.mbps(10),\n maxOutputs: 2,\n networkSources: [{\n name: 'on-prem-source',\n source: {\n protocol: BridgeProtocol.RTP,\n network: productionNetwork,\n multicastIp: '239.1.1.1',\n port: 5000,\n },\n }],\n }),\n gateway: gateway,\n});\n```\n\n#### Egress Bridge (Cloud to On-premises)\n\nAn egress bridge sends content from MediaConnect flows to on-premises equipment:\n\n```ts\ndeclare const stack: Stack;\ndeclare const gateway: Gateway;\ndeclare const flow: Flow;\ndeclare const vpcInterface: VpcInterfaceConfig;\ndeclare const productionNetwork: GatewayNetwork;\n\nconst egressBridge = new Bridge(stack, 'MyEgressBridge', {\n bridgeName: 'my-egress-bridge',\n config: BridgeConfiguration.egress({\n maxBitrate: Bitrate.mbps(10),\n flowSources: [{\n name: 'cloud-source',\n source: {\n flow: flow,\n vpcInterface: vpcInterface,\n },\n }],\n networkOutputs: [{\n name: 'on-prem-output',\n output: BridgeOutputConfiguration.network({\n ipAddress: '192.168.1.200',\n port: 5001,\n network: productionNetwork,\n protocol: BridgeProtocol.RTP,\n ttl: 50,\n }),\n }],\n }),\n gateway: gateway,\n});\n```\n\n### Bridge Sources\n\nFor failover scenarios, you can add additional sources to an existing bridge using the `BridgeSource` construct:\n\n```ts\ndeclare const stack: Stack;\ndeclare const bridge: Bridge;\ndeclare const flow: Flow;\n\n// Add a flow source to an egress bridge (requires failover to be enabled)\nconst additionalSource = new BridgeSource(stack, 'AdditionalSource', {\n bridgeSourceName: 'backup-source',\n bridge: bridge,\n source: BridgeSourceConfiguration.flow({\n flow: flow,\n }),\n});\n```\n\n### Bridge Outputs\n\nBridge outputs are configured as part of the bridge configuration for egress bridges. They define where content exits the bridge to on-premises equipment.\n\n```ts\ndeclare const productionNetwork: GatewayNetwork;\n\nconst networkConfig = BridgeOutputConfiguration.network({\n ipAddress: '192.168.1.200',\n port: 5001,\n network: productionNetwork,\n protocol: BridgeProtocol.RTP,\n ttl: 50,\n});\n\nconst namedOutput = { name: 'on-prem-output', output: networkConfig };\n```\n\n## Encryption\n\nMediaConnect supports encryption for sources, outputs, and entitlements. This package provides type-safe encryption configuration structs that match the encryption requirements for different protocols.\n\n### Encryption Types\n\nMediaConnect supports two types of encryption:\n\n1. **Static Key Encryption** - Used for Zixi Push/Pull protocols and entitlements\n2. **SRT Password Encryption** - Used for SRT Listener and SRT Caller protocols\n\nNote: CFN exposes only `static-key` and `srt-password` for flow output encryption today; SPEKE is not currently part of the surface.\n\n**Auto-created IAM role.** Every encryption struct accepts an optional `role`. Omit it and the consuming construct creates a scoped role for you: trust policy for `mediaconnect.amazonaws.com` with `aws:SourceAccount` + `aws:SourceArn` conditions (confused-deputy protection), and just enough permission to read the provided secret (including `kms:Decrypt` when the secret uses a customer-managed KMS key).\n\n**Providing your own role.** If you supply a `role`, it's used as-is — the construct does **not** grant it any permissions. You must grant it the necessary permissions yourself. Provide your own role when you need stricter control or a shared identity.\n\n**Trust-policy scope: flows vs. routers.** When the L2 auto-creates a role, it also pins `aws:SourceArn` to the consuming resource:\n\n- **Flows** — the trust policy pins the flow ARN (`arn:...:flow:*:<flow-name>`). The `*` wildcards the service-assigned id segment; the flow name is fixed at create time.\n- **Routers** — the trust policy can only pin a wildcarded ARN (`arn:...:routerInput:*` / `arn:...:routerOutput:*`). Router I/O ARNs use a service-generated id segment that is unknown at synth time, and using the live ARN attribute would create a CloudFormation dependency cycle (role → router → role). If you need per-resource pinning, supply your own `role` with a trust condition that pins the exact ARN — you can compute it from the resource's `routerInputId` / `routerOutputId` after first deploy and apply it on a follow-up deploy.\n\n### Static Key Encryption\n\nUse a static-key encryption struct for Zixi protocols and entitlements. This requires an encryption algorithm (AES128, AES192, or AES256). Pass it inline where the construct asks for it:\n\n```ts\ndeclare const stack: Stack;\ndeclare const flow: Flow;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\n\nnew FlowEntitlement(stack, 'MyEntitlement', {\n flow,\n subscribers: ['111122223333'],\n description: 'Grant partner access to live feed',\n encryption: {\n role,\n secret,\n algorithm: EncryptionAlgorithm.AES256,\n },\n});\n```\n\n### SRT Password Encryption\n\nSRT protocols take an encryption struct with just `role` and `secret` — no algorithm:\n\n```ts\ndeclare const stack: Stack;\ndeclare const flow: Flow;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\n\nnew FlowOutput(stack, 'SrtOutput', {\n flow,\n output: OutputConfiguration.srtCaller({\n destination: '203.0.113.100',\n port: 7000,\n encryption: { role, secret },\n }),\n});\n```\n\n### Using Encryption with Sources\n\nApply encryption when configuring flow sources:\n\n```ts\ndeclare const stack: Stack;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\n\n// SRT Listener source with encryption\nconst flow = new Flow(stack, 'MyFlow', {\n source: SourceConfiguration.srtListener({\n flowSourceName: 'encrypted-source',\n port: 5000,\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n decryption: { role, secret },\n }),\n});\n\n// Zixi Push source with encryption\nconst flow2 = new Flow(stack, 'MyFlow2', {\n source: SourceConfiguration.zixiPush({\n flowSourceName: 'encrypted-zixi-source',\n maxLatency: Duration.millis(2000),\n network: NetworkConfiguration.publicNetwork('203.0.113.0/24'),\n decryption: {\n role,\n secret,\n algorithm: EncryptionAlgorithm.AES256,\n },\n }),\n});\n```\n\n### Using Encryption with Outputs\n\nApply encryption when configuring flow outputs:\n\n```ts\ndeclare const stack: Stack;\ndeclare const flow: Flow;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\n\n// SRT Caller output with encryption\nconst output = new FlowOutput(stack, 'EncryptedOutput', {\n flow: flow,\n description: 'Encrypted SRT output',\n output: OutputConfiguration.srtCaller({\n destination: '203.0.113.100',\n port: 7000,\n encryption: { role, secret },\n }),\n});\n```\n\n### Using Encryption with Entitlements\n\nEntitlements use static key encryption:\n\n```ts\ndeclare const stack: Stack;\ndeclare const flow: Flow;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\n\nconst entitlement = new FlowEntitlement(stack, 'MyEntitlement', {\n flow: flow,\n description: 'Grant partner access to live feed',\n subscribers: ['111122223333'],\n encryption: {\n role,\n secret,\n algorithm: EncryptionAlgorithm.AES256,\n },\n});\n```\n\n### Router Transit Encryption\n\nWhen integrating flows with routers, use transit encryption to secure the connection between the flow and router:\n\n```ts\ndeclare const stack: Stack;\ndeclare const flow: Flow;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\ndeclare const existingRouterOutput: RouterOutput;\n\n// Flow output to router with transit encryption\nconst routerOutput = new FlowOutput(stack, 'RouterOutput', {\n flow: flow,\n output: OutputConfiguration.router({\n encryption: { role, secret },\n }),\n});\n\n// Flow source from router with transit encryption\nconst flowFromRouter = new Flow(stack, 'FlowFromRouter', {\n source: SourceConfiguration.router({\n routerOutput: existingRouterOutput,\n decryption: { role, secret },\n }),\n});\n```\n\n### Router SRT Encryption\n\nRouter outputs using SRT protocols use `RouterSrtEncryption` for encryption:\n\n```ts\ndeclare const stack: Stack;\ndeclare const networkInterface: RouterNetworkInterface;\ndeclare const role: iam.IRole;\ndeclare const secret: secretsmanager.ISecret;\n\nconst output = new RouterOutput(stack, 'EncryptedSrtOutput', {\n routerOutputName: 'encrypted-srt-output',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_50,\n configuration: RouterOutputConfiguration.standard({\n protocol: RouterOutputProtocol.srtCaller({\n destinationAddress: '203.0.113.100',\n destinationPort: 9001,\n minimumLatency: Duration.millis(200),\n encryptionConfiguration: { role, secret },\n }),\n networkInterface: networkInterface,\n }),\n});\n```\n\nNote: `RouterSrtEncryption` is distinct from `SrtPasswordEncryption` (used on flow sources/outputs) — router outputs use a simpler CFN shape without a `keyType` discriminator.\n\n## CloudWatch Metrics\n\nFlows and Bridges expose CloudWatch metric helpers for monitoring. You can create alarms and dashboards using these metrics:\n\n```ts\ndeclare const flow: Flow;\ndeclare const stack: Stack;\n\n// Create a CloudWatch alarm on source bitrate\nconst alarm = flow.metricSourceBitrate().createAlarm(stack, 'LowBitrate', {\n threshold: 1000000,\n evaluationPeriods: 1,\n});\n\n// Monitor unrecovered packets\nflow.metricSourceNotRecoveredPackets().createAlarm(stack, 'PacketLoss', {\n threshold: 100,\n evaluationPeriods: 2,\n});\n\n// Track total packets with custom options\nconst totalPackets = flow.metricSourceTotalPackets({\n statistic: 'sum',\n period: Duration.minutes(5),\n});\n```\n\n### Flow metrics\n\n- `metricSourceBitrate()` - Bitrate of content ingested into the flow (average)\n- `metricSourceNotRecoveredPackets()` - Packets lost in transit that were not recovered by error correction (sum)\n- `metricSourceTotalPackets()` - Total packets received by the flow sources (sum)\n- `metricSourceSelected()` - Indicates which source is being used under Failover mode (max; 1 = active, 0 = standby)\n- `metricSourceConnected()` - Source connection state for Zixi, SRT, and RIST (min; 1 = connected, 0 = disconnected)\n- `metricSourceDisconnections()` - Number of times the source transitioned from connected to disconnected (sum)\n- `metricSourceDroppedPackets()` - Packets lost before any error correction took place (sum)\n- `metricSourcePacketLossPercent()` - Percentage of packets lost during transit, even if they were recovered (average)\n- `metricSourceRoundTripTime()` - Round-trip time to the source for RIST, Zixi, and SRT (average, milliseconds)\n- `metricSourceJitter()` - Current network jitter of the source (average, milliseconds)\n- `metric(metricName)` - Create a custom metric by name\n\n### Bridge metrics\n\nBridge metrics are dimensioned by `BridgeARN`. The underlying CloudWatch metric name is chosen automatically based on whether the bridge is ingress or egress.\n\n- `metricSourceBitrate(bridgeSourceName)` - Bitrate of a specific bridge source (average)\n- `metricSourcePacketLossPercent(bridgeSourceName)` - Percentage of packets lost on a specific bridge source (average)\n- `metricFailoverSwitches()` - Total number of times the bridge switches between sources under `FAILOVER` failover mode (sum)\n- `metric(metricName)` - Create a custom metric by name\n\n### Router Input metrics\n\nRouter input metrics are dimensioned by `RouterInputARN`.\n\n- `metricBitrate()` - Bitrate of the router input's payload (average)\n- `metricNotRecoveredPackets()` - Packets lost in transit that were not recovered by error correction (sum)\n- `metricTotalPackets()` - Total number of packets received by the router input (sum)\n- `metricConnected()` - Connection state for SRT sources (min; 1 = connected, 0 = disconnected)\n- `metricContinuityCounterErrors()` - Continuity counter errors in the transport stream (sum)\n- `metricLatency()` - Recovery latency of the input stream for RIST, SRT, and RTP-FEC (average, milliseconds)\n- `metricFailoverSwitches()` - Total times the router input switched sources under Failover mode (sum)\n- `metric(metricName)` - Create a custom metric by name\n\n### Router Output metrics\n\nRouter output metrics are dimensioned by `RouterOutputARN`.\n\n- `metricBitrate()` - Bitrate of the router output's payload (average)\n- `metricTotalPackets()` - Total number of packets sent by the router output (sum)\n- `metricConnected()` - Connection state for SRT outputs (min; 1 = connected, 0 = disconnected)\n- `metricArqRequests()` - Retransmitted packets requested through ARQ for RIST and SRT outputs (sum)\n- `metric(metricName)` - Create a custom metric by name\n\n### Gateway metrics\n\nGateway metrics are dimensioned by `GatewayARN`. Pass extra dimensions such as `NetworkName`, `InstanceId`, or `BridgeSourceName` via `props.dimensionsMap` to narrow to a specific network, appliance, or bridge source.\n\n- `metricEgressBridgeTotalPackets()` - Total packets sent from egress bridges hosted on the gateway (sum)\n- `metricEgressBridgeDroppedPackets()` - Packets dropped by egress bridges hosted on the gateway (sum)\n- `metricIngressBridgeTotalPackets()` - Total packets received by ingress bridges hosted on the gateway (sum)\n- `metricIngressBridgeDroppedPackets()` - Packets dropped by ingress bridges hosted on the gateway (sum)\n- `metric(metricName)` - Create a custom metric by name (e.g. `IngressBridgeBitRate`, `EgressBridgeBitRate`, `IngressBridgeSourcePacketLossPercent`)\n\nPair the total + dropped helpers to build a dropped-packet percentage chart — for example, divide `metricEgressBridgeDroppedPackets()` by `metricEgressBridgeTotalPackets()` in a math expression.\n\nAll metrics support standard CloudWatch metric options for customizing period, statistic, and dimensions.\n\n## Public CIDR warnings\n\nSeveral constructs accept CIDR ranges that determine who can contribute content or pull outputs. Passing an open range (`0.0.0.0/0` or any `/0` prefix) makes the resource reachable from anywhere on the public internet, which is rarely what you want. The module emits synthesis-time warnings when it detects an open range on:\n\n- `GatewayProps.egressCidrBlocks`\n- `NetworkConfiguration.publicNetwork(cidr)` used on flow sources\n- `cidrAllowList` on Zixi Push / Zixi Pull / SRT Listener flow outputs\n- `RouterNetworkConfiguration.publicNetwork({ cidr })`\n\nRestrict each range to the narrowest set of addresses that actually need access.\n"
|
|
9414
9588
|
},
|
|
9415
9589
|
"repository": {
|
|
9416
9590
|
"directory": "packages/@aws-cdk/aws-mediaconnect-alpha",
|
|
@@ -12586,7 +12760,7 @@
|
|
|
12586
12760
|
"kind": "interface",
|
|
12587
12761
|
"locationInModule": {
|
|
12588
12762
|
"filename": "lib/router-input.ts",
|
|
12589
|
-
"line":
|
|
12763
|
+
"line": 725
|
|
12590
12764
|
},
|
|
12591
12765
|
"name": "FailoverConfigurationProps",
|
|
12592
12766
|
"properties": [
|
|
@@ -12599,7 +12773,7 @@
|
|
|
12599
12773
|
"immutable": true,
|
|
12600
12774
|
"locationInModule": {
|
|
12601
12775
|
"filename": "lib/router-input.ts",
|
|
12602
|
-
"line":
|
|
12776
|
+
"line": 727
|
|
12603
12777
|
},
|
|
12604
12778
|
"name": "networkInterface",
|
|
12605
12779
|
"type": {
|
|
@@ -12615,7 +12789,7 @@
|
|
|
12615
12789
|
"immutable": true,
|
|
12616
12790
|
"locationInModule": {
|
|
12617
12791
|
"filename": "lib/router-input.ts",
|
|
12618
|
-
"line":
|
|
12792
|
+
"line": 729
|
|
12619
12793
|
},
|
|
12620
12794
|
"name": "protocols",
|
|
12621
12795
|
"type": {
|
|
@@ -12637,7 +12811,7 @@
|
|
|
12637
12811
|
"immutable": true,
|
|
12638
12812
|
"locationInModule": {
|
|
12639
12813
|
"filename": "lib/router-input.ts",
|
|
12640
|
-
"line":
|
|
12814
|
+
"line": 741
|
|
12641
12815
|
},
|
|
12642
12816
|
"name": "availabilityZone",
|
|
12643
12817
|
"optional": true,
|
|
@@ -12655,7 +12829,7 @@
|
|
|
12655
12829
|
"immutable": true,
|
|
12656
12830
|
"locationInModule": {
|
|
12657
12831
|
"filename": "lib/router-input.ts",
|
|
12658
|
-
"line":
|
|
12832
|
+
"line": 735
|
|
12659
12833
|
},
|
|
12660
12834
|
"name": "sourcePriority",
|
|
12661
12835
|
"optional": true,
|
|
@@ -15275,7 +15449,7 @@
|
|
|
15275
15449
|
"kind": "enum",
|
|
15276
15450
|
"locationInModule": {
|
|
15277
15451
|
"filename": "lib/router-input.ts",
|
|
15278
|
-
"line":
|
|
15452
|
+
"line": 331
|
|
15279
15453
|
},
|
|
15280
15454
|
"members": [
|
|
15281
15455
|
{
|
|
@@ -17414,7 +17588,7 @@
|
|
|
17414
17588
|
"kind": "interface",
|
|
17415
17589
|
"locationInModule": {
|
|
17416
17590
|
"filename": "lib/router-input.ts",
|
|
17417
|
-
"line":
|
|
17591
|
+
"line": 72
|
|
17418
17592
|
},
|
|
17419
17593
|
"methods": [
|
|
17420
17594
|
{
|
|
@@ -17426,7 +17600,7 @@
|
|
|
17426
17600
|
},
|
|
17427
17601
|
"locationInModule": {
|
|
17428
17602
|
"filename": "lib/router-input.ts",
|
|
17429
|
-
"line":
|
|
17603
|
+
"line": 149
|
|
17430
17604
|
},
|
|
17431
17605
|
"name": "metric",
|
|
17432
17606
|
"parameters": [
|
|
@@ -17459,7 +17633,7 @@
|
|
|
17459
17633
|
},
|
|
17460
17634
|
"locationInModule": {
|
|
17461
17635
|
"filename": "lib/router-input.ts",
|
|
17462
|
-
"line":
|
|
17636
|
+
"line": 155
|
|
17463
17637
|
},
|
|
17464
17638
|
"name": "metricBitrate",
|
|
17465
17639
|
"parameters": [
|
|
@@ -17487,7 +17661,7 @@
|
|
|
17487
17661
|
},
|
|
17488
17662
|
"locationInModule": {
|
|
17489
17663
|
"filename": "lib/router-input.ts",
|
|
17490
|
-
"line":
|
|
17664
|
+
"line": 173
|
|
17491
17665
|
},
|
|
17492
17666
|
"name": "metricConnected",
|
|
17493
17667
|
"parameters": [
|
|
@@ -17514,7 +17688,7 @@
|
|
|
17514
17688
|
},
|
|
17515
17689
|
"locationInModule": {
|
|
17516
17690
|
"filename": "lib/router-input.ts",
|
|
17517
|
-
"line":
|
|
17691
|
+
"line": 179
|
|
17518
17692
|
},
|
|
17519
17693
|
"name": "metricContinuityCounterErrors",
|
|
17520
17694
|
"parameters": [
|
|
@@ -17541,7 +17715,7 @@
|
|
|
17541
17715
|
},
|
|
17542
17716
|
"locationInModule": {
|
|
17543
17717
|
"filename": "lib/router-input.ts",
|
|
17544
|
-
"line":
|
|
17718
|
+
"line": 191
|
|
17545
17719
|
},
|
|
17546
17720
|
"name": "metricFailoverSwitches",
|
|
17547
17721
|
"parameters": [
|
|
@@ -17569,7 +17743,7 @@
|
|
|
17569
17743
|
},
|
|
17570
17744
|
"locationInModule": {
|
|
17571
17745
|
"filename": "lib/router-input.ts",
|
|
17572
|
-
"line":
|
|
17746
|
+
"line": 185
|
|
17573
17747
|
},
|
|
17574
17748
|
"name": "metricLatency",
|
|
17575
17749
|
"parameters": [
|
|
@@ -17596,7 +17770,7 @@
|
|
|
17596
17770
|
},
|
|
17597
17771
|
"locationInModule": {
|
|
17598
17772
|
"filename": "lib/router-input.ts",
|
|
17599
|
-
"line":
|
|
17773
|
+
"line": 161
|
|
17600
17774
|
},
|
|
17601
17775
|
"name": "metricNotRecoveredPackets",
|
|
17602
17776
|
"parameters": [
|
|
@@ -17623,7 +17797,7 @@
|
|
|
17623
17797
|
},
|
|
17624
17798
|
"locationInModule": {
|
|
17625
17799
|
"filename": "lib/router-input.ts",
|
|
17626
|
-
"line":
|
|
17800
|
+
"line": 167
|
|
17627
17801
|
},
|
|
17628
17802
|
"name": "metricTotalPackets",
|
|
17629
17803
|
"parameters": [
|
|
@@ -17654,7 +17828,7 @@
|
|
|
17654
17828
|
"immutable": true,
|
|
17655
17829
|
"locationInModule": {
|
|
17656
17830
|
"filename": "lib/router-input.ts",
|
|
17657
|
-
"line":
|
|
17831
|
+
"line": 126
|
|
17658
17832
|
},
|
|
17659
17833
|
"name": "endpoints",
|
|
17660
17834
|
"type": {
|
|
@@ -17675,7 +17849,7 @@
|
|
|
17675
17849
|
"immutable": true,
|
|
17676
17850
|
"locationInModule": {
|
|
17677
17851
|
"filename": "lib/router-input.ts",
|
|
17678
|
-
"line":
|
|
17852
|
+
"line": 140
|
|
17679
17853
|
},
|
|
17680
17854
|
"name": "grants",
|
|
17681
17855
|
"type": {
|
|
@@ -17694,7 +17868,7 @@
|
|
|
17694
17868
|
"immutable": true,
|
|
17695
17869
|
"locationInModule": {
|
|
17696
17870
|
"filename": "lib/router-input.ts",
|
|
17697
|
-
"line":
|
|
17871
|
+
"line": 92
|
|
17698
17872
|
},
|
|
17699
17873
|
"name": "ipAddress",
|
|
17700
17874
|
"type": {
|
|
@@ -17713,7 +17887,7 @@
|
|
|
17713
17887
|
"immutable": true,
|
|
17714
17888
|
"locationInModule": {
|
|
17715
17889
|
"filename": "lib/router-input.ts",
|
|
17716
|
-
"line":
|
|
17890
|
+
"line": 78
|
|
17717
17891
|
},
|
|
17718
17892
|
"name": "routerInputArn",
|
|
17719
17893
|
"type": {
|
|
@@ -17732,7 +17906,7 @@
|
|
|
17732
17906
|
"immutable": true,
|
|
17733
17907
|
"locationInModule": {
|
|
17734
17908
|
"filename": "lib/router-input.ts",
|
|
17735
|
-
"line":
|
|
17909
|
+
"line": 85
|
|
17736
17910
|
},
|
|
17737
17911
|
"name": "routerInputId",
|
|
17738
17912
|
"type": {
|
|
@@ -17751,7 +17925,7 @@
|
|
|
17751
17925
|
"immutable": true,
|
|
17752
17926
|
"locationInModule": {
|
|
17753
17927
|
"filename": "lib/router-input.ts",
|
|
17754
|
-
"line":
|
|
17928
|
+
"line": 99
|
|
17755
17929
|
},
|
|
17756
17930
|
"name": "createdAt",
|
|
17757
17931
|
"optional": true,
|
|
@@ -17769,7 +17943,7 @@
|
|
|
17769
17943
|
"immutable": true,
|
|
17770
17944
|
"locationInModule": {
|
|
17771
17945
|
"filename": "lib/router-input.ts",
|
|
17772
|
-
"line":
|
|
17946
|
+
"line": 135
|
|
17773
17947
|
},
|
|
17774
17948
|
"name": "transitEncryptionSecret",
|
|
17775
17949
|
"optional": true,
|
|
@@ -17789,7 +17963,7 @@
|
|
|
17789
17963
|
"immutable": true,
|
|
17790
17964
|
"locationInModule": {
|
|
17791
17965
|
"filename": "lib/router-input.ts",
|
|
17792
|
-
"line":
|
|
17966
|
+
"line": 106
|
|
17793
17967
|
},
|
|
17794
17968
|
"name": "updatedAt",
|
|
17795
17969
|
"optional": true,
|
|
@@ -17913,7 +18087,7 @@
|
|
|
17913
18087
|
"kind": "interface",
|
|
17914
18088
|
"locationInModule": {
|
|
17915
18089
|
"filename": "lib/router-output.ts",
|
|
17916
|
-
"line":
|
|
18090
|
+
"line": 80
|
|
17917
18091
|
},
|
|
17918
18092
|
"methods": [
|
|
17919
18093
|
{
|
|
@@ -17925,7 +18099,7 @@
|
|
|
17925
18099
|
},
|
|
17926
18100
|
"locationInModule": {
|
|
17927
18101
|
"filename": "lib/router-output.ts",
|
|
17928
|
-
"line":
|
|
18102
|
+
"line": 130
|
|
17929
18103
|
},
|
|
17930
18104
|
"name": "metric",
|
|
17931
18105
|
"parameters": [
|
|
@@ -17959,7 +18133,7 @@
|
|
|
17959
18133
|
},
|
|
17960
18134
|
"locationInModule": {
|
|
17961
18135
|
"filename": "lib/router-output.ts",
|
|
17962
|
-
"line":
|
|
18136
|
+
"line": 156
|
|
17963
18137
|
},
|
|
17964
18138
|
"name": "metricArqRequests",
|
|
17965
18139
|
"parameters": [
|
|
@@ -17986,7 +18160,7 @@
|
|
|
17986
18160
|
},
|
|
17987
18161
|
"locationInModule": {
|
|
17988
18162
|
"filename": "lib/router-output.ts",
|
|
17989
|
-
"line":
|
|
18163
|
+
"line": 136
|
|
17990
18164
|
},
|
|
17991
18165
|
"name": "metricBitrate",
|
|
17992
18166
|
"parameters": [
|
|
@@ -18014,7 +18188,7 @@
|
|
|
18014
18188
|
},
|
|
18015
18189
|
"locationInModule": {
|
|
18016
18190
|
"filename": "lib/router-output.ts",
|
|
18017
|
-
"line":
|
|
18191
|
+
"line": 148
|
|
18018
18192
|
},
|
|
18019
18193
|
"name": "metricConnected",
|
|
18020
18194
|
"parameters": [
|
|
@@ -18041,7 +18215,7 @@
|
|
|
18041
18215
|
},
|
|
18042
18216
|
"locationInModule": {
|
|
18043
18217
|
"filename": "lib/router-output.ts",
|
|
18044
|
-
"line":
|
|
18218
|
+
"line": 142
|
|
18045
18219
|
},
|
|
18046
18220
|
"name": "metricTotalPackets",
|
|
18047
18221
|
"parameters": [
|
|
@@ -18074,7 +18248,7 @@
|
|
|
18074
18248
|
"immutable": true,
|
|
18075
18249
|
"locationInModule": {
|
|
18076
18250
|
"filename": "lib/router-output.ts",
|
|
18077
|
-
"line":
|
|
18251
|
+
"line": 107
|
|
18078
18252
|
},
|
|
18079
18253
|
"name": "ipAddress",
|
|
18080
18254
|
"type": {
|
|
@@ -18093,7 +18267,7 @@
|
|
|
18093
18267
|
"immutable": true,
|
|
18094
18268
|
"locationInModule": {
|
|
18095
18269
|
"filename": "lib/router-output.ts",
|
|
18096
|
-
"line":
|
|
18270
|
+
"line": 93
|
|
18097
18271
|
},
|
|
18098
18272
|
"name": "routerOutputArn",
|
|
18099
18273
|
"type": {
|
|
@@ -18112,7 +18286,7 @@
|
|
|
18112
18286
|
"immutable": true,
|
|
18113
18287
|
"locationInModule": {
|
|
18114
18288
|
"filename": "lib/router-output.ts",
|
|
18115
|
-
"line":
|
|
18289
|
+
"line": 100
|
|
18116
18290
|
},
|
|
18117
18291
|
"name": "routerOutputId",
|
|
18118
18292
|
"type": {
|
|
@@ -18131,7 +18305,7 @@
|
|
|
18131
18305
|
"immutable": true,
|
|
18132
18306
|
"locationInModule": {
|
|
18133
18307
|
"filename": "lib/router-output.ts",
|
|
18134
|
-
"line":
|
|
18308
|
+
"line": 86
|
|
18135
18309
|
},
|
|
18136
18310
|
"name": "routerOutputName",
|
|
18137
18311
|
"type": {
|
|
@@ -18150,7 +18324,7 @@
|
|
|
18150
18324
|
"immutable": true,
|
|
18151
18325
|
"locationInModule": {
|
|
18152
18326
|
"filename": "lib/router-output.ts",
|
|
18153
|
-
"line":
|
|
18327
|
+
"line": 114
|
|
18154
18328
|
},
|
|
18155
18329
|
"name": "createdAt",
|
|
18156
18330
|
"optional": true,
|
|
@@ -18170,7 +18344,7 @@
|
|
|
18170
18344
|
"immutable": true,
|
|
18171
18345
|
"locationInModule": {
|
|
18172
18346
|
"filename": "lib/router-output.ts",
|
|
18173
|
-
"line":
|
|
18347
|
+
"line": 121
|
|
18174
18348
|
},
|
|
18175
18349
|
"name": "updatedAt",
|
|
18176
18350
|
"optional": true,
|
|
@@ -18387,7 +18561,7 @@
|
|
|
18387
18561
|
"kind": "interface",
|
|
18388
18562
|
"locationInModule": {
|
|
18389
18563
|
"filename": "lib/router-input.ts",
|
|
18390
|
-
"line":
|
|
18564
|
+
"line": 251
|
|
18391
18565
|
},
|
|
18392
18566
|
"name": "MaintenanceConfiguration",
|
|
18393
18567
|
"properties": [
|
|
@@ -18400,7 +18574,7 @@
|
|
|
18400
18574
|
"immutable": true,
|
|
18401
18575
|
"locationInModule": {
|
|
18402
18576
|
"filename": "lib/router-input.ts",
|
|
18403
|
-
"line":
|
|
18577
|
+
"line": 253
|
|
18404
18578
|
},
|
|
18405
18579
|
"name": "day",
|
|
18406
18580
|
"type": {
|
|
@@ -18416,7 +18590,7 @@
|
|
|
18416
18590
|
"immutable": true,
|
|
18417
18591
|
"locationInModule": {
|
|
18418
18592
|
"filename": "lib/router-input.ts",
|
|
18419
|
-
"line":
|
|
18593
|
+
"line": 255
|
|
18420
18594
|
},
|
|
18421
18595
|
"name": "time",
|
|
18422
18596
|
"type": {
|
|
@@ -18563,7 +18737,7 @@
|
|
|
18563
18737
|
"kind": "interface",
|
|
18564
18738
|
"locationInModule": {
|
|
18565
18739
|
"filename": "lib/router-input.ts",
|
|
18566
|
-
"line":
|
|
18740
|
+
"line": 765
|
|
18567
18741
|
},
|
|
18568
18742
|
"name": "MediaConnectFlowConfigurationProps",
|
|
18569
18743
|
"properties": [
|
|
@@ -18576,7 +18750,7 @@
|
|
|
18576
18750
|
"immutable": true,
|
|
18577
18751
|
"locationInModule": {
|
|
18578
18752
|
"filename": "lib/router-input.ts",
|
|
18579
|
-
"line":
|
|
18753
|
+
"line": 767
|
|
18580
18754
|
},
|
|
18581
18755
|
"name": "flow",
|
|
18582
18756
|
"type": {
|
|
@@ -18592,7 +18766,7 @@
|
|
|
18592
18766
|
"immutable": true,
|
|
18593
18767
|
"locationInModule": {
|
|
18594
18768
|
"filename": "lib/router-input.ts",
|
|
18595
|
-
"line":
|
|
18769
|
+
"line": 769
|
|
18596
18770
|
},
|
|
18597
18771
|
"name": "flowOutput",
|
|
18598
18772
|
"type": {
|
|
@@ -18609,7 +18783,7 @@
|
|
|
18609
18783
|
"immutable": true,
|
|
18610
18784
|
"locationInModule": {
|
|
18611
18785
|
"filename": "lib/router-input.ts",
|
|
18612
|
-
"line":
|
|
18786
|
+
"line": 774
|
|
18613
18787
|
},
|
|
18614
18788
|
"name": "sourceTransitDecryption",
|
|
18615
18789
|
"optional": true,
|
|
@@ -18635,7 +18809,7 @@
|
|
|
18635
18809
|
"kind": "interface",
|
|
18636
18810
|
"locationInModule": {
|
|
18637
18811
|
"filename": "lib/router-input.ts",
|
|
18638
|
-
"line":
|
|
18812
|
+
"line": 780
|
|
18639
18813
|
},
|
|
18640
18814
|
"name": "MediaConnectFlowConfigurationWithoutConnectionProps",
|
|
18641
18815
|
"properties": [
|
|
@@ -18648,7 +18822,7 @@
|
|
|
18648
18822
|
"immutable": true,
|
|
18649
18823
|
"locationInModule": {
|
|
18650
18824
|
"filename": "lib/router-input.ts",
|
|
18651
|
-
"line":
|
|
18825
|
+
"line": 784
|
|
18652
18826
|
},
|
|
18653
18827
|
"name": "availabilityZone",
|
|
18654
18828
|
"type": {
|
|
@@ -18665,7 +18839,7 @@
|
|
|
18665
18839
|
"immutable": true,
|
|
18666
18840
|
"locationInModule": {
|
|
18667
18841
|
"filename": "lib/router-input.ts",
|
|
18668
|
-
"line":
|
|
18842
|
+
"line": 789
|
|
18669
18843
|
},
|
|
18670
18844
|
"name": "sourceTransitDecryption",
|
|
18671
18845
|
"optional": true,
|
|
@@ -18691,7 +18865,7 @@
|
|
|
18691
18865
|
"kind": "interface",
|
|
18692
18866
|
"locationInModule": {
|
|
18693
18867
|
"filename": "lib/router-output.ts",
|
|
18694
|
-
"line":
|
|
18868
|
+
"line": 508
|
|
18695
18869
|
},
|
|
18696
18870
|
"name": "MediaConnectFlowConnectionProps",
|
|
18697
18871
|
"properties": [
|
|
@@ -18704,7 +18878,7 @@
|
|
|
18704
18878
|
"immutable": true,
|
|
18705
18879
|
"locationInModule": {
|
|
18706
18880
|
"filename": "lib/router-output.ts",
|
|
18707
|
-
"line":
|
|
18881
|
+
"line": 510
|
|
18708
18882
|
},
|
|
18709
18883
|
"name": "flow",
|
|
18710
18884
|
"type": {
|
|
@@ -18721,7 +18895,7 @@
|
|
|
18721
18895
|
"immutable": true,
|
|
18722
18896
|
"locationInModule": {
|
|
18723
18897
|
"filename": "lib/router-output.ts",
|
|
18724
|
-
"line":
|
|
18898
|
+
"line": 515
|
|
18725
18899
|
},
|
|
18726
18900
|
"name": "destinationTransitEncryption",
|
|
18727
18901
|
"optional": true,
|
|
@@ -18747,7 +18921,7 @@
|
|
|
18747
18921
|
"kind": "interface",
|
|
18748
18922
|
"locationInModule": {
|
|
18749
18923
|
"filename": "lib/router-output.ts",
|
|
18750
|
-
"line":
|
|
18924
|
+
"line": 521
|
|
18751
18925
|
},
|
|
18752
18926
|
"name": "MediaConnectFlowNoConnectionProps",
|
|
18753
18927
|
"properties": [
|
|
@@ -18760,7 +18934,7 @@
|
|
|
18760
18934
|
"immutable": true,
|
|
18761
18935
|
"locationInModule": {
|
|
18762
18936
|
"filename": "lib/router-output.ts",
|
|
18763
|
-
"line":
|
|
18937
|
+
"line": 523
|
|
18764
18938
|
},
|
|
18765
18939
|
"name": "availabilityZone",
|
|
18766
18940
|
"type": {
|
|
@@ -18777,7 +18951,7 @@
|
|
|
18777
18951
|
"immutable": true,
|
|
18778
18952
|
"locationInModule": {
|
|
18779
18953
|
"filename": "lib/router-output.ts",
|
|
18780
|
-
"line":
|
|
18954
|
+
"line": 528
|
|
18781
18955
|
},
|
|
18782
18956
|
"name": "destinationTransitEncryption",
|
|
18783
18957
|
"optional": true,
|
|
@@ -18795,51 +18969,47 @@
|
|
|
18795
18969
|
"remarks": "Use this when the MediaLive channel already exists and you want to ingest\nfrom one of its outputs immediately.",
|
|
18796
18970
|
"stability": "experimental",
|
|
18797
18971
|
"summary": "Properties for MediaLive Channel Router Input configuration.",
|
|
18798
|
-
"example": "
|
|
18972
|
+
"example": "declare const stack: Stack;\ndeclare const mediaLiveChannel: medialive.IChannel;\n\nconst input = new RouterInput(stack, 'ChannelInput', {\n routerInputName: 'channel-input',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaLiveChannel({\n channel: mediaLiveChannel,\n outputName: 'router-ts',\n pipeline: MediaLivePipeline.PIPELINE_0,\n }),\n});",
|
|
18799
18973
|
"custom": {
|
|
18800
|
-
"exampleMetadata": "
|
|
18974
|
+
"exampleMetadata": "infused"
|
|
18801
18975
|
}
|
|
18802
18976
|
},
|
|
18803
18977
|
"fqn": "@aws-cdk/aws-mediaconnect-alpha.MediaLiveChannelConfigurationProps",
|
|
18804
18978
|
"kind": "interface",
|
|
18805
18979
|
"locationInModule": {
|
|
18806
18980
|
"filename": "lib/router-input.ts",
|
|
18807
|
-
"line":
|
|
18981
|
+
"line": 798
|
|
18808
18982
|
},
|
|
18809
18983
|
"name": "MediaLiveChannelConfigurationProps",
|
|
18810
18984
|
"properties": [
|
|
18811
18985
|
{
|
|
18812
18986
|
"abstract": true,
|
|
18813
18987
|
"docs": {
|
|
18814
|
-
"custom": {
|
|
18815
|
-
"aws-cdk": "/aws-medialive-alpha L2 construct is released."
|
|
18816
|
-
},
|
|
18817
|
-
"remarks": "Note: This will change to accept a typed MediaLive channel reference\nwhen the",
|
|
18818
18988
|
"stability": "experimental",
|
|
18819
|
-
"summary": "
|
|
18989
|
+
"summary": "The MediaLive channel to use as input."
|
|
18820
18990
|
},
|
|
18821
18991
|
"immutable": true,
|
|
18822
18992
|
"locationInModule": {
|
|
18823
18993
|
"filename": "lib/router-input.ts",
|
|
18824
|
-
"line":
|
|
18994
|
+
"line": 802
|
|
18825
18995
|
},
|
|
18826
|
-
"name": "
|
|
18996
|
+
"name": "channel",
|
|
18827
18997
|
"type": {
|
|
18828
|
-
"
|
|
18998
|
+
"fqn": "aws-cdk-lib.interfaces.aws_medialive.IChannelRef"
|
|
18829
18999
|
}
|
|
18830
19000
|
},
|
|
18831
19001
|
{
|
|
18832
19002
|
"abstract": true,
|
|
18833
19003
|
"docs": {
|
|
18834
19004
|
"stability": "experimental",
|
|
18835
|
-
"summary": "The name of the
|
|
19005
|
+
"summary": "The name of the individual output (within the channel's MediaConnect Router output group) to connect to this router input — not the name of the output group itself."
|
|
18836
19006
|
},
|
|
18837
19007
|
"immutable": true,
|
|
18838
19008
|
"locationInModule": {
|
|
18839
19009
|
"filename": "lib/router-input.ts",
|
|
18840
|
-
"line":
|
|
19010
|
+
"line": 808
|
|
18841
19011
|
},
|
|
18842
|
-
"name": "
|
|
19012
|
+
"name": "outputName",
|
|
18843
19013
|
"type": {
|
|
18844
19014
|
"primitive": "string"
|
|
18845
19015
|
}
|
|
@@ -18853,9 +19023,9 @@
|
|
|
18853
19023
|
"immutable": true,
|
|
18854
19024
|
"locationInModule": {
|
|
18855
19025
|
"filename": "lib/router-input.ts",
|
|
18856
|
-
"line":
|
|
19026
|
+
"line": 813
|
|
18857
19027
|
},
|
|
18858
|
-
"name": "
|
|
19028
|
+
"name": "pipeline",
|
|
18859
19029
|
"type": {
|
|
18860
19030
|
"fqn": "@aws-cdk/aws-mediaconnect-alpha.MediaLivePipeline"
|
|
18861
19031
|
}
|
|
@@ -18863,7 +19033,8 @@
|
|
|
18863
19033
|
{
|
|
18864
19034
|
"abstract": true,
|
|
18865
19035
|
"docs": {
|
|
18866
|
-
"default": "-
|
|
19036
|
+
"default": "- automatic encryption",
|
|
19037
|
+
"remarks": "Must match the encryption type configured on the\nMediaLive channel's MediaConnect Router output group.",
|
|
18867
19038
|
"stability": "experimental",
|
|
18868
19039
|
"summary": "Optional transit encryption configuration."
|
|
18869
19040
|
},
|
|
@@ -18888,9 +19059,9 @@
|
|
|
18888
19059
|
"remarks": "Use this when you want to set up the router input before the target MediaLive channel exists.",
|
|
18889
19060
|
"stability": "experimental",
|
|
18890
19061
|
"summary": "Properties for MediaLive Channel Router Input configuration without a specific channel connection.",
|
|
18891
|
-
"example": "
|
|
19062
|
+
"example": "declare const stack: Stack;\n\nconst input = new RouterInput(stack, 'ChannelInputNoConnection', {\n routerInputName: 'channel-input-no-connection',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaLiveChannelWithoutConnection({\n availabilityZone: 'us-east-1a',\n }),\n});",
|
|
18892
19063
|
"custom": {
|
|
18893
|
-
"exampleMetadata": "
|
|
19064
|
+
"exampleMetadata": "infused"
|
|
18894
19065
|
}
|
|
18895
19066
|
},
|
|
18896
19067
|
"fqn": "@aws-cdk/aws-mediaconnect-alpha.MediaLiveChannelConfigurationWithoutConnectionProps",
|
|
@@ -18944,7 +19115,7 @@
|
|
|
18944
19115
|
"docs": {
|
|
18945
19116
|
"stability": "experimental",
|
|
18946
19117
|
"summary": "Properties for MediaLive Router Output configuration with specific input connection.",
|
|
18947
|
-
"example": "declare const stack: Stack;\ndeclare const mediaLiveInput: medialive.
|
|
19118
|
+
"example": "declare const stack: Stack;\ndeclare const mediaLiveInput: medialive.IInput;\n\n// 1. A public network interface for the SRT input\nconst networkInterface = new RouterNetworkInterface(stack, 'NetworkInterface', {\n routerNetworkInterfaceName: 'camera-network',\n configuration: RouterNetworkConfiguration.publicNetwork({\n cidr: ['203.0.113.0/24'],\n }),\n});\n\n// 2. A router input receiving SRT from an upstream encoder\nconst input = new RouterInput(stack, 'Input', {\n routerInputName: 'camera-input',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_20,\n configuration: RouterInputConfiguration.standard({\n networkInterface,\n protocol: RouterInputProtocol.srtListener({\n port: 9000,\n minimumLatency: Duration.millis(200),\n }),\n }),\n});\n\n// 3. A router output delivering to MediaLive\nconst output = new RouterOutput(stack, 'Output', {\n routerOutputName: 'medialive-output',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_20,\n configuration: RouterOutputConfiguration.mediaLiveInput({\n input: mediaLiveInput,\n pipeline: MediaLivePipeline.PIPELINE_0,\n }),\n});",
|
|
18948
19119
|
"custom": {
|
|
18949
19120
|
"exampleMetadata": "infused"
|
|
18950
19121
|
}
|
|
@@ -18953,42 +19124,38 @@
|
|
|
18953
19124
|
"kind": "interface",
|
|
18954
19125
|
"locationInModule": {
|
|
18955
19126
|
"filename": "lib/router-output.ts",
|
|
18956
|
-
"line":
|
|
19127
|
+
"line": 478
|
|
18957
19128
|
},
|
|
18958
19129
|
"name": "MediaLiveInputConnectionProps",
|
|
18959
19130
|
"properties": [
|
|
18960
19131
|
{
|
|
18961
19132
|
"abstract": true,
|
|
18962
19133
|
"docs": {
|
|
18963
|
-
"custom": {
|
|
18964
|
-
"aws-cdk": "/aws-medialive-alpha L2 construct is released."
|
|
18965
|
-
},
|
|
18966
|
-
"remarks": "Note: This will change to accept an IInputRef (typed MediaLive Input reference)\nwhen the",
|
|
18967
19134
|
"stability": "experimental",
|
|
18968
|
-
"summary": "
|
|
19135
|
+
"summary": "The MediaLive input to send output to (must be of type `medialive.InputConfiguration.mediaConnectRouter()`)."
|
|
18969
19136
|
},
|
|
18970
19137
|
"immutable": true,
|
|
18971
19138
|
"locationInModule": {
|
|
18972
19139
|
"filename": "lib/router-output.ts",
|
|
18973
|
-
"line":
|
|
19140
|
+
"line": 482
|
|
18974
19141
|
},
|
|
18975
|
-
"name": "
|
|
19142
|
+
"name": "input",
|
|
18976
19143
|
"type": {
|
|
18977
|
-
"
|
|
19144
|
+
"fqn": "aws-cdk-lib.interfaces.aws_medialive.IInputRef"
|
|
18978
19145
|
}
|
|
18979
19146
|
},
|
|
18980
19147
|
{
|
|
18981
19148
|
"abstract": true,
|
|
18982
19149
|
"docs": {
|
|
18983
19150
|
"stability": "experimental",
|
|
18984
|
-
"summary": "
|
|
19151
|
+
"summary": "MediaLive pipeline to send output to."
|
|
18985
19152
|
},
|
|
18986
19153
|
"immutable": true,
|
|
18987
19154
|
"locationInModule": {
|
|
18988
19155
|
"filename": "lib/router-output.ts",
|
|
18989
|
-
"line":
|
|
19156
|
+
"line": 484
|
|
18990
19157
|
},
|
|
18991
|
-
"name": "
|
|
19158
|
+
"name": "pipeline",
|
|
18992
19159
|
"type": {
|
|
18993
19160
|
"fqn": "@aws-cdk/aws-mediaconnect-alpha.MediaLivePipeline"
|
|
18994
19161
|
}
|
|
@@ -19003,7 +19170,7 @@
|
|
|
19003
19170
|
"immutable": true,
|
|
19004
19171
|
"locationInModule": {
|
|
19005
19172
|
"filename": "lib/router-output.ts",
|
|
19006
|
-
"line":
|
|
19173
|
+
"line": 489
|
|
19007
19174
|
},
|
|
19008
19175
|
"name": "destinationTransitEncryption",
|
|
19009
19176
|
"optional": true,
|
|
@@ -19029,7 +19196,7 @@
|
|
|
19029
19196
|
"kind": "interface",
|
|
19030
19197
|
"locationInModule": {
|
|
19031
19198
|
"filename": "lib/router-output.ts",
|
|
19032
|
-
"line":
|
|
19199
|
+
"line": 495
|
|
19033
19200
|
},
|
|
19034
19201
|
"name": "MediaLiveNoInputConnectionProps",
|
|
19035
19202
|
"properties": [
|
|
@@ -19042,7 +19209,7 @@
|
|
|
19042
19209
|
"immutable": true,
|
|
19043
19210
|
"locationInModule": {
|
|
19044
19211
|
"filename": "lib/router-output.ts",
|
|
19045
|
-
"line":
|
|
19212
|
+
"line": 497
|
|
19046
19213
|
},
|
|
19047
19214
|
"name": "availabilityZone",
|
|
19048
19215
|
"type": {
|
|
@@ -19059,7 +19226,7 @@
|
|
|
19059
19226
|
"immutable": true,
|
|
19060
19227
|
"locationInModule": {
|
|
19061
19228
|
"filename": "lib/router-output.ts",
|
|
19062
|
-
"line":
|
|
19229
|
+
"line": 502
|
|
19063
19230
|
},
|
|
19064
19231
|
"name": "destinationTransitEncryption",
|
|
19065
19232
|
"optional": true,
|
|
@@ -19075,7 +19242,7 @@
|
|
|
19075
19242
|
"docs": {
|
|
19076
19243
|
"stability": "experimental",
|
|
19077
19244
|
"summary": "MediaLive pipeline options.",
|
|
19078
|
-
"example": "declare const stack: Stack;\ndeclare const
|
|
19245
|
+
"example": "declare const stack: Stack;\ndeclare const mediaLiveChannel: medialive.IChannel;\ndeclare const transitSecret: Secret; // must hold the same value as the channel's MediaConnectRouterSettings.shared() secret\n\nconst input = new RouterInput(stack, 'ChannelInput', {\n routerInputName: 'channel-input',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaLiveChannel({\n channel: mediaLiveChannel,\n outputName: 'router-ts',\n pipeline: MediaLivePipeline.PIPELINE_0,\n sourceTransitDecryption: { secret: transitSecret },\n }),\n});",
|
|
19079
19246
|
"custom": {
|
|
19080
19247
|
"exampleMetadata": "infused"
|
|
19081
19248
|
}
|
|
@@ -19819,7 +19986,7 @@
|
|
|
19819
19986
|
"kind": "interface",
|
|
19820
19987
|
"locationInModule": {
|
|
19821
19988
|
"filename": "lib/router-input.ts",
|
|
19822
|
-
"line":
|
|
19989
|
+
"line": 747
|
|
19823
19990
|
},
|
|
19824
19991
|
"name": "MergeConfigurationProps",
|
|
19825
19992
|
"properties": [
|
|
@@ -19832,7 +19999,7 @@
|
|
|
19832
19999
|
"immutable": true,
|
|
19833
20000
|
"locationInModule": {
|
|
19834
20001
|
"filename": "lib/router-input.ts",
|
|
19835
|
-
"line":
|
|
20002
|
+
"line": 753
|
|
19836
20003
|
},
|
|
19837
20004
|
"name": "mergeRecoveryWindow",
|
|
19838
20005
|
"type": {
|
|
@@ -19848,7 +20015,7 @@
|
|
|
19848
20015
|
"immutable": true,
|
|
19849
20016
|
"locationInModule": {
|
|
19850
20017
|
"filename": "lib/router-input.ts",
|
|
19851
|
-
"line":
|
|
20018
|
+
"line": 749
|
|
19852
20019
|
},
|
|
19853
20020
|
"name": "networkInterface",
|
|
19854
20021
|
"type": {
|
|
@@ -19864,7 +20031,7 @@
|
|
|
19864
20031
|
"immutable": true,
|
|
19865
20032
|
"locationInModule": {
|
|
19866
20033
|
"filename": "lib/router-input.ts",
|
|
19867
|
-
"line":
|
|
20034
|
+
"line": 751
|
|
19868
20035
|
},
|
|
19869
20036
|
"name": "protocols",
|
|
19870
20037
|
"type": {
|
|
@@ -19886,7 +20053,7 @@
|
|
|
19886
20053
|
"immutable": true,
|
|
19887
20054
|
"locationInModule": {
|
|
19888
20055
|
"filename": "lib/router-input.ts",
|
|
19889
|
-
"line":
|
|
20056
|
+
"line": 759
|
|
19890
20057
|
},
|
|
19891
20058
|
"name": "availabilityZone",
|
|
19892
20059
|
"optional": true,
|
|
@@ -20808,7 +20975,7 @@
|
|
|
20808
20975
|
"kind": "enum",
|
|
20809
20976
|
"locationInModule": {
|
|
20810
20977
|
"filename": "lib/router-input.ts",
|
|
20811
|
-
"line":
|
|
20978
|
+
"line": 341
|
|
20812
20979
|
},
|
|
20813
20980
|
"members": [
|
|
20814
20981
|
{
|
|
@@ -20835,7 +21002,7 @@
|
|
|
20835
21002
|
"docs": {
|
|
20836
21003
|
"stability": "experimental",
|
|
20837
21004
|
"summary": "Properties for public network configuration.",
|
|
20838
|
-
"example": "declare const stack: Stack;\ndeclare const mediaLiveInput: medialive.
|
|
21005
|
+
"example": "declare const stack: Stack;\ndeclare const mediaLiveInput: medialive.IInput;\n\n// 1. A public network interface for the SRT input\nconst networkInterface = new RouterNetworkInterface(stack, 'NetworkInterface', {\n routerNetworkInterfaceName: 'camera-network',\n configuration: RouterNetworkConfiguration.publicNetwork({\n cidr: ['203.0.113.0/24'],\n }),\n});\n\n// 2. A router input receiving SRT from an upstream encoder\nconst input = new RouterInput(stack, 'Input', {\n routerInputName: 'camera-input',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_20,\n configuration: RouterInputConfiguration.standard({\n networkInterface,\n protocol: RouterInputProtocol.srtListener({\n port: 9000,\n minimumLatency: Duration.millis(200),\n }),\n }),\n});\n\n// 3. A router output delivering to MediaLive\nconst output = new RouterOutput(stack, 'Output', {\n routerOutputName: 'medialive-output',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_20,\n configuration: RouterOutputConfiguration.mediaLiveInput({\n input: mediaLiveInput,\n pipeline: MediaLivePipeline.PIPELINE_0,\n }),\n});",
|
|
20839
21006
|
"custom": {
|
|
20840
21007
|
"exampleMetadata": "infused"
|
|
20841
21008
|
}
|
|
@@ -20912,7 +21079,7 @@
|
|
|
20912
21079
|
"kind": "interface",
|
|
20913
21080
|
"locationInModule": {
|
|
20914
21081
|
"filename": "lib/router-output.ts",
|
|
20915
|
-
"line":
|
|
21082
|
+
"line": 242
|
|
20916
21083
|
},
|
|
20917
21084
|
"name": "RistOutputProtocolProps",
|
|
20918
21085
|
"properties": [
|
|
@@ -20925,7 +21092,7 @@
|
|
|
20925
21092
|
"immutable": true,
|
|
20926
21093
|
"locationInModule": {
|
|
20927
21094
|
"filename": "lib/router-output.ts",
|
|
20928
|
-
"line":
|
|
21095
|
+
"line": 244
|
|
20929
21096
|
},
|
|
20930
21097
|
"name": "destinationAddress",
|
|
20931
21098
|
"type": {
|
|
@@ -20941,7 +21108,7 @@
|
|
|
20941
21108
|
"immutable": true,
|
|
20942
21109
|
"locationInModule": {
|
|
20943
21110
|
"filename": "lib/router-output.ts",
|
|
20944
|
-
"line":
|
|
21111
|
+
"line": 246
|
|
20945
21112
|
},
|
|
20946
21113
|
"name": "port",
|
|
20947
21114
|
"type": {
|
|
@@ -20966,7 +21133,7 @@
|
|
|
20966
21133
|
"kind": "interface",
|
|
20967
21134
|
"locationInModule": {
|
|
20968
21135
|
"filename": "lib/router-input.ts",
|
|
20969
|
-
"line":
|
|
21136
|
+
"line": 410
|
|
20970
21137
|
},
|
|
20971
21138
|
"name": "RistProtocolProps",
|
|
20972
21139
|
"properties": [
|
|
@@ -20979,7 +21146,7 @@
|
|
|
20979
21146
|
"immutable": true,
|
|
20980
21147
|
"locationInModule": {
|
|
20981
21148
|
"filename": "lib/router-input.ts",
|
|
20982
|
-
"line":
|
|
21149
|
+
"line": 412
|
|
20983
21150
|
},
|
|
20984
21151
|
"name": "port",
|
|
20985
21152
|
"type": {
|
|
@@ -20995,7 +21162,7 @@
|
|
|
20995
21162
|
"immutable": true,
|
|
20996
21163
|
"locationInModule": {
|
|
20997
21164
|
"filename": "lib/router-input.ts",
|
|
20998
|
-
"line":
|
|
21165
|
+
"line": 414
|
|
20999
21166
|
},
|
|
21000
21167
|
"name": "recoveryLatency",
|
|
21001
21168
|
"type": {
|
|
@@ -21011,7 +21178,7 @@
|
|
|
21011
21178
|
"docs": {
|
|
21012
21179
|
"stability": "experimental",
|
|
21013
21180
|
"summary": "Defines an AWS Elemental MediaConnect Router Input.",
|
|
21014
|
-
"example": "declare const stack: Stack;\ndeclare const
|
|
21181
|
+
"example": "declare const stack: Stack;\ndeclare const mediaLiveChannel: medialive.IChannel;\n\nconst input = new RouterInput(stack, 'ChannelInput', {\n routerInputName: 'channel-input',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaLiveChannel({\n channel: mediaLiveChannel,\n outputName: 'router-ts',\n pipeline: MediaLivePipeline.PIPELINE_0,\n }),\n});",
|
|
21015
21182
|
"custom": {
|
|
21016
21183
|
"exampleMetadata": "infused"
|
|
21017
21184
|
}
|
|
@@ -21560,7 +21727,7 @@
|
|
|
21560
21727
|
"kind": "interface",
|
|
21561
21728
|
"locationInModule": {
|
|
21562
21729
|
"filename": "lib/router-input.ts",
|
|
21563
|
-
"line":
|
|
21730
|
+
"line": 307
|
|
21564
21731
|
},
|
|
21565
21732
|
"name": "RouterInputAttributes",
|
|
21566
21733
|
"properties": [
|
|
@@ -21573,7 +21740,7 @@
|
|
|
21573
21740
|
"immutable": true,
|
|
21574
21741
|
"locationInModule": {
|
|
21575
21742
|
"filename": "lib/router-input.ts",
|
|
21576
|
-
"line":
|
|
21743
|
+
"line": 311
|
|
21577
21744
|
},
|
|
21578
21745
|
"name": "routerInputArn",
|
|
21579
21746
|
"type": {
|
|
@@ -21590,7 +21757,7 @@
|
|
|
21590
21757
|
"immutable": true,
|
|
21591
21758
|
"locationInModule": {
|
|
21592
21759
|
"filename": "lib/router-input.ts",
|
|
21593
|
-
"line":
|
|
21760
|
+
"line": 325
|
|
21594
21761
|
},
|
|
21595
21762
|
"name": "ipAddress",
|
|
21596
21763
|
"optional": true,
|
|
@@ -21608,7 +21775,7 @@
|
|
|
21608
21775
|
"immutable": true,
|
|
21609
21776
|
"locationInModule": {
|
|
21610
21777
|
"filename": "lib/router-input.ts",
|
|
21611
|
-
"line":
|
|
21778
|
+
"line": 318
|
|
21612
21779
|
},
|
|
21613
21780
|
"name": "routerInputId",
|
|
21614
21781
|
"optional": true,
|
|
@@ -21625,7 +21792,7 @@
|
|
|
21625
21792
|
"docs": {
|
|
21626
21793
|
"stability": "experimental",
|
|
21627
21794
|
"summary": "Factory class for creating Router Input configurations.",
|
|
21628
|
-
"example": "declare const stack: Stack;\ndeclare const
|
|
21795
|
+
"example": "declare const stack: Stack;\ndeclare const mediaLiveChannel: medialive.IChannel;\n\nconst input = new RouterInput(stack, 'ChannelInput', {\n routerInputName: 'channel-input',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaLiveChannel({\n channel: mediaLiveChannel,\n outputName: 'router-ts',\n pipeline: MediaLivePipeline.PIPELINE_0,\n }),\n});",
|
|
21629
21796
|
"custom": {
|
|
21630
21797
|
"exampleMetadata": "infused"
|
|
21631
21798
|
}
|
|
@@ -21874,7 +22041,7 @@
|
|
|
21874
22041
|
"kind": "interface",
|
|
21875
22042
|
"locationInModule": {
|
|
21876
22043
|
"filename": "lib/router-input.ts",
|
|
21877
|
-
"line":
|
|
22044
|
+
"line": 56
|
|
21878
22045
|
},
|
|
21879
22046
|
"name": "RouterInputEndpoint",
|
|
21880
22047
|
"properties": [
|
|
@@ -21887,7 +22054,7 @@
|
|
|
21887
22054
|
"immutable": true,
|
|
21888
22055
|
"locationInModule": {
|
|
21889
22056
|
"filename": "lib/router-input.ts",
|
|
21890
|
-
"line":
|
|
22057
|
+
"line": 66
|
|
21891
22058
|
},
|
|
21892
22059
|
"name": "port",
|
|
21893
22060
|
"type": {
|
|
@@ -21904,7 +22071,7 @@
|
|
|
21904
22071
|
"immutable": true,
|
|
21905
22072
|
"locationInModule": {
|
|
21906
22073
|
"filename": "lib/router-input.ts",
|
|
21907
|
-
"line":
|
|
22074
|
+
"line": 61
|
|
21908
22075
|
},
|
|
21909
22076
|
"name": "url",
|
|
21910
22077
|
"type": {
|
|
@@ -22097,7 +22264,7 @@
|
|
|
22097
22264
|
"docs": {
|
|
22098
22265
|
"stability": "experimental",
|
|
22099
22266
|
"summary": "Properties for creating a Router Input.",
|
|
22100
|
-
"example": "declare const stack: Stack;\ndeclare const
|
|
22267
|
+
"example": "declare const stack: Stack;\ndeclare const mediaLiveChannel: medialive.IChannel;\n\nconst input = new RouterInput(stack, 'ChannelInput', {\n routerInputName: 'channel-input',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaLiveChannel({\n channel: mediaLiveChannel,\n outputName: 'router-ts',\n pipeline: MediaLivePipeline.PIPELINE_0,\n }),\n});",
|
|
22101
22268
|
"custom": {
|
|
22102
22269
|
"exampleMetadata": "infused"
|
|
22103
22270
|
}
|
|
@@ -22106,7 +22273,7 @@
|
|
|
22106
22273
|
"kind": "interface",
|
|
22107
22274
|
"locationInModule": {
|
|
22108
22275
|
"filename": "lib/router-input.ts",
|
|
22109
|
-
"line":
|
|
22276
|
+
"line": 261
|
|
22110
22277
|
},
|
|
22111
22278
|
"name": "RouterInputProps",
|
|
22112
22279
|
"properties": [
|
|
@@ -22119,7 +22286,7 @@
|
|
|
22119
22286
|
"immutable": true,
|
|
22120
22287
|
"locationInModule": {
|
|
22121
22288
|
"filename": "lib/router-input.ts",
|
|
22122
|
-
"line":
|
|
22289
|
+
"line": 277
|
|
22123
22290
|
},
|
|
22124
22291
|
"name": "configuration",
|
|
22125
22292
|
"type": {
|
|
@@ -22135,7 +22302,7 @@
|
|
|
22135
22302
|
"immutable": true,
|
|
22136
22303
|
"locationInModule": {
|
|
22137
22304
|
"filename": "lib/router-input.ts",
|
|
22138
|
-
"line":
|
|
22305
|
+
"line": 268
|
|
22139
22306
|
},
|
|
22140
22307
|
"name": "maximumBitrate",
|
|
22141
22308
|
"type": {
|
|
@@ -22151,7 +22318,7 @@
|
|
|
22151
22318
|
"immutable": true,
|
|
22152
22319
|
"locationInModule": {
|
|
22153
22320
|
"filename": "lib/router-input.ts",
|
|
22154
|
-
"line":
|
|
22321
|
+
"line": 270
|
|
22155
22322
|
},
|
|
22156
22323
|
"name": "routingScope",
|
|
22157
22324
|
"type": {
|
|
@@ -22168,7 +22335,7 @@
|
|
|
22168
22335
|
"immutable": true,
|
|
22169
22336
|
"locationInModule": {
|
|
22170
22337
|
"filename": "lib/router-input.ts",
|
|
22171
|
-
"line":
|
|
22338
|
+
"line": 282
|
|
22172
22339
|
},
|
|
22173
22340
|
"name": "maintenanceConfiguration",
|
|
22174
22341
|
"optional": true,
|
|
@@ -22186,7 +22353,7 @@
|
|
|
22186
22353
|
"immutable": true,
|
|
22187
22354
|
"locationInModule": {
|
|
22188
22355
|
"filename": "lib/router-input.ts",
|
|
22189
|
-
"line":
|
|
22356
|
+
"line": 287
|
|
22190
22357
|
},
|
|
22191
22358
|
"name": "regionName",
|
|
22192
22359
|
"optional": true,
|
|
@@ -22204,7 +22371,7 @@
|
|
|
22204
22371
|
"immutable": true,
|
|
22205
22372
|
"locationInModule": {
|
|
22206
22373
|
"filename": "lib/router-input.ts",
|
|
22207
|
-
"line":
|
|
22374
|
+
"line": 266
|
|
22208
22375
|
},
|
|
22209
22376
|
"name": "routerInputName",
|
|
22210
22377
|
"optional": true,
|
|
@@ -22222,7 +22389,7 @@
|
|
|
22222
22389
|
"immutable": true,
|
|
22223
22390
|
"locationInModule": {
|
|
22224
22391
|
"filename": "lib/router-input.ts",
|
|
22225
|
-
"line":
|
|
22392
|
+
"line": 292
|
|
22226
22393
|
},
|
|
22227
22394
|
"name": "tags",
|
|
22228
22395
|
"optional": true,
|
|
@@ -22245,7 +22412,7 @@
|
|
|
22245
22412
|
"immutable": true,
|
|
22246
22413
|
"locationInModule": {
|
|
22247
22414
|
"filename": "lib/router-input.ts",
|
|
22248
|
-
"line":
|
|
22415
|
+
"line": 275
|
|
22249
22416
|
},
|
|
22250
22417
|
"name": "tier",
|
|
22251
22418
|
"optional": true,
|
|
@@ -22264,7 +22431,7 @@
|
|
|
22264
22431
|
"immutable": true,
|
|
22265
22432
|
"locationInModule": {
|
|
22266
22433
|
"filename": "lib/router-input.ts",
|
|
22267
|
-
"line":
|
|
22434
|
+
"line": 301
|
|
22268
22435
|
},
|
|
22269
22436
|
"name": "transitEncryption",
|
|
22270
22437
|
"optional": true,
|
|
@@ -22280,7 +22447,7 @@
|
|
|
22280
22447
|
"docs": {
|
|
22281
22448
|
"stability": "experimental",
|
|
22282
22449
|
"summary": "Factory class for creating Router Input protocol configurations.",
|
|
22283
|
-
"example": "declare const stack: Stack;\ndeclare const mediaLiveInput: medialive.
|
|
22450
|
+
"example": "declare const stack: Stack;\ndeclare const mediaLiveInput: medialive.IInput;\n\n// 1. A public network interface for the SRT input\nconst networkInterface = new RouterNetworkInterface(stack, 'NetworkInterface', {\n routerNetworkInterfaceName: 'camera-network',\n configuration: RouterNetworkConfiguration.publicNetwork({\n cidr: ['203.0.113.0/24'],\n }),\n});\n\n// 2. A router input receiving SRT from an upstream encoder\nconst input = new RouterInput(stack, 'Input', {\n routerInputName: 'camera-input',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_20,\n configuration: RouterInputConfiguration.standard({\n networkInterface,\n protocol: RouterInputProtocol.srtListener({\n port: 9000,\n minimumLatency: Duration.millis(200),\n }),\n }),\n});\n\n// 3. A router output delivering to MediaLive\nconst output = new RouterOutput(stack, 'Output', {\n routerOutputName: 'medialive-output',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_20,\n configuration: RouterOutputConfiguration.mediaLiveInput({\n input: mediaLiveInput,\n pipeline: MediaLivePipeline.PIPELINE_0,\n }),\n});",
|
|
22284
22451
|
"custom": {
|
|
22285
22452
|
"exampleMetadata": "infused"
|
|
22286
22453
|
}
|
|
@@ -22289,7 +22456,7 @@
|
|
|
22289
22456
|
"kind": "class",
|
|
22290
22457
|
"locationInModule": {
|
|
22291
22458
|
"filename": "lib/router-input.ts",
|
|
22292
|
-
"line":
|
|
22459
|
+
"line": 468
|
|
22293
22460
|
},
|
|
22294
22461
|
"methods": [
|
|
22295
22462
|
{
|
|
@@ -22300,7 +22467,7 @@
|
|
|
22300
22467
|
},
|
|
22301
22468
|
"locationInModule": {
|
|
22302
22469
|
"filename": "lib/router-input.ts",
|
|
22303
|
-
"line":
|
|
22470
|
+
"line": 489
|
|
22304
22471
|
},
|
|
22305
22472
|
"name": "rist",
|
|
22306
22473
|
"parameters": [
|
|
@@ -22329,7 +22496,7 @@
|
|
|
22329
22496
|
},
|
|
22330
22497
|
"locationInModule": {
|
|
22331
22498
|
"filename": "lib/router-input.ts",
|
|
22332
|
-
"line":
|
|
22499
|
+
"line": 474
|
|
22333
22500
|
},
|
|
22334
22501
|
"name": "rtp",
|
|
22335
22502
|
"parameters": [
|
|
@@ -22358,7 +22525,7 @@
|
|
|
22358
22525
|
},
|
|
22359
22526
|
"locationInModule": {
|
|
22360
22527
|
"filename": "lib/router-input.ts",
|
|
22361
|
-
"line":
|
|
22528
|
+
"line": 519
|
|
22362
22529
|
},
|
|
22363
22530
|
"name": "srtCaller",
|
|
22364
22531
|
"parameters": [
|
|
@@ -22387,7 +22554,7 @@
|
|
|
22387
22554
|
},
|
|
22388
22555
|
"locationInModule": {
|
|
22389
22556
|
"filename": "lib/router-input.ts",
|
|
22390
|
-
"line":
|
|
22557
|
+
"line": 504
|
|
22391
22558
|
},
|
|
22392
22559
|
"name": "srtListener",
|
|
22393
22560
|
"parameters": [
|
|
@@ -22426,7 +22593,7 @@
|
|
|
22426
22593
|
"kind": "class",
|
|
22427
22594
|
"locationInModule": {
|
|
22428
22595
|
"filename": "lib/router-input.ts",
|
|
22429
|
-
"line":
|
|
22596
|
+
"line": 23
|
|
22430
22597
|
},
|
|
22431
22598
|
"methods": [
|
|
22432
22599
|
{
|
|
@@ -22436,7 +22603,7 @@
|
|
|
22436
22603
|
},
|
|
22437
22604
|
"locationInModule": {
|
|
22438
22605
|
"filename": "lib/router-input.ts",
|
|
22439
|
-
"line":
|
|
22606
|
+
"line": 37
|
|
22440
22607
|
},
|
|
22441
22608
|
"name": "of",
|
|
22442
22609
|
"parameters": [
|
|
@@ -22464,7 +22631,7 @@
|
|
|
22464
22631
|
},
|
|
22465
22632
|
"locationInModule": {
|
|
22466
22633
|
"filename": "lib/router-input.ts",
|
|
22467
|
-
"line":
|
|
22634
|
+
"line": 45
|
|
22468
22635
|
},
|
|
22469
22636
|
"name": "toString",
|
|
22470
22637
|
"returns": {
|
|
@@ -22485,7 +22652,7 @@
|
|
|
22485
22652
|
"immutable": true,
|
|
22486
22653
|
"locationInModule": {
|
|
22487
22654
|
"filename": "lib/router-input.ts",
|
|
22488
|
-
"line":
|
|
22655
|
+
"line": 27
|
|
22489
22656
|
},
|
|
22490
22657
|
"name": "RIST",
|
|
22491
22658
|
"static": true,
|
|
@@ -22502,7 +22669,7 @@
|
|
|
22502
22669
|
"immutable": true,
|
|
22503
22670
|
"locationInModule": {
|
|
22504
22671
|
"filename": "lib/router-input.ts",
|
|
22505
|
-
"line":
|
|
22672
|
+
"line": 25
|
|
22506
22673
|
},
|
|
22507
22674
|
"name": "RTP",
|
|
22508
22675
|
"static": true,
|
|
@@ -22519,7 +22686,7 @@
|
|
|
22519
22686
|
"immutable": true,
|
|
22520
22687
|
"locationInModule": {
|
|
22521
22688
|
"filename": "lib/router-input.ts",
|
|
22522
|
-
"line":
|
|
22689
|
+
"line": 29
|
|
22523
22690
|
},
|
|
22524
22691
|
"name": "SRT_CALLER",
|
|
22525
22692
|
"static": true,
|
|
@@ -22536,7 +22703,7 @@
|
|
|
22536
22703
|
"immutable": true,
|
|
22537
22704
|
"locationInModule": {
|
|
22538
22705
|
"filename": "lib/router-input.ts",
|
|
22539
|
-
"line":
|
|
22706
|
+
"line": 31
|
|
22540
22707
|
},
|
|
22541
22708
|
"name": "SRT_LISTENER",
|
|
22542
22709
|
"static": true,
|
|
@@ -22552,7 +22719,7 @@
|
|
|
22552
22719
|
"immutable": true,
|
|
22553
22720
|
"locationInModule": {
|
|
22554
22721
|
"filename": "lib/router-input.ts",
|
|
22555
|
-
"line":
|
|
22722
|
+
"line": 42
|
|
22556
22723
|
},
|
|
22557
22724
|
"name": "value",
|
|
22558
22725
|
"type": {
|
|
@@ -22567,7 +22734,7 @@
|
|
|
22567
22734
|
"docs": {
|
|
22568
22735
|
"stability": "experimental",
|
|
22569
22736
|
"summary": "Routing tier based on your maximum bitrate requirements.",
|
|
22570
|
-
"example": "declare const stack: Stack;\ndeclare const
|
|
22737
|
+
"example": "declare const stack: Stack;\ndeclare const mediaLiveChannel: medialive.IChannel;\ndeclare const transitSecret: Secret; // must hold the same value as the channel's MediaConnectRouterSettings.shared() secret\n\nconst input = new RouterInput(stack, 'ChannelInput', {\n routerInputName: 'channel-input',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaLiveChannel({\n channel: mediaLiveChannel,\n outputName: 'router-ts',\n pipeline: MediaLivePipeline.PIPELINE_0,\n sourceTransitDecryption: { secret: transitSecret },\n }),\n});",
|
|
22571
22738
|
"custom": {
|
|
22572
22739
|
"exampleMetadata": "infused"
|
|
22573
22740
|
}
|
|
@@ -22576,7 +22743,7 @@
|
|
|
22576
22743
|
"kind": "class",
|
|
22577
22744
|
"locationInModule": {
|
|
22578
22745
|
"filename": "lib/router-input.ts",
|
|
22579
|
-
"line":
|
|
22746
|
+
"line": 223
|
|
22580
22747
|
},
|
|
22581
22748
|
"methods": [
|
|
22582
22749
|
{
|
|
@@ -22586,7 +22753,7 @@
|
|
|
22586
22753
|
},
|
|
22587
22754
|
"locationInModule": {
|
|
22588
22755
|
"filename": "lib/router-input.ts",
|
|
22589
|
-
"line":
|
|
22756
|
+
"line": 235
|
|
22590
22757
|
},
|
|
22591
22758
|
"name": "of",
|
|
22592
22759
|
"parameters": [
|
|
@@ -22614,7 +22781,7 @@
|
|
|
22614
22781
|
},
|
|
22615
22782
|
"locationInModule": {
|
|
22616
22783
|
"filename": "lib/router-input.ts",
|
|
22617
|
-
"line":
|
|
22784
|
+
"line": 243
|
|
22618
22785
|
},
|
|
22619
22786
|
"name": "toString",
|
|
22620
22787
|
"returns": {
|
|
@@ -22635,7 +22802,7 @@
|
|
|
22635
22802
|
"immutable": true,
|
|
22636
22803
|
"locationInModule": {
|
|
22637
22804
|
"filename": "lib/router-input.ts",
|
|
22638
|
-
"line":
|
|
22805
|
+
"line": 225
|
|
22639
22806
|
},
|
|
22640
22807
|
"name": "INPUT_100",
|
|
22641
22808
|
"static": true,
|
|
@@ -22652,7 +22819,7 @@
|
|
|
22652
22819
|
"immutable": true,
|
|
22653
22820
|
"locationInModule": {
|
|
22654
22821
|
"filename": "lib/router-input.ts",
|
|
22655
|
-
"line":
|
|
22822
|
+
"line": 229
|
|
22656
22823
|
},
|
|
22657
22824
|
"name": "INPUT_20",
|
|
22658
22825
|
"static": true,
|
|
@@ -22669,7 +22836,7 @@
|
|
|
22669
22836
|
"immutable": true,
|
|
22670
22837
|
"locationInModule": {
|
|
22671
22838
|
"filename": "lib/router-input.ts",
|
|
22672
|
-
"line":
|
|
22839
|
+
"line": 227
|
|
22673
22840
|
},
|
|
22674
22841
|
"name": "INPUT_50",
|
|
22675
22842
|
"static": true,
|
|
@@ -22685,7 +22852,7 @@
|
|
|
22685
22852
|
"immutable": true,
|
|
22686
22853
|
"locationInModule": {
|
|
22687
22854
|
"filename": "lib/router-input.ts",
|
|
22688
|
-
"line":
|
|
22855
|
+
"line": 240
|
|
22689
22856
|
},
|
|
22690
22857
|
"name": "value",
|
|
22691
22858
|
"type": {
|
|
@@ -23202,7 +23369,7 @@
|
|
|
23202
23369
|
},
|
|
23203
23370
|
"locationInModule": {
|
|
23204
23371
|
"filename": "lib/router-output.ts",
|
|
23205
|
-
"line":
|
|
23372
|
+
"line": 903
|
|
23206
23373
|
},
|
|
23207
23374
|
"parameters": [
|
|
23208
23375
|
{
|
|
@@ -23231,7 +23398,7 @@
|
|
|
23231
23398
|
"kind": "class",
|
|
23232
23399
|
"locationInModule": {
|
|
23233
23400
|
"filename": "lib/router-output.ts",
|
|
23234
|
-
"line":
|
|
23401
|
+
"line": 823
|
|
23235
23402
|
},
|
|
23236
23403
|
"methods": [
|
|
23237
23404
|
{
|
|
@@ -23243,7 +23410,7 @@
|
|
|
23243
23410
|
},
|
|
23244
23411
|
"locationInModule": {
|
|
23245
23412
|
"filename": "lib/router-output.ts",
|
|
23246
|
-
"line":
|
|
23413
|
+
"line": 840
|
|
23247
23414
|
},
|
|
23248
23415
|
"name": "fromRouterOutputArn",
|
|
23249
23416
|
"parameters": [
|
|
@@ -23291,7 +23458,7 @@
|
|
|
23291
23458
|
},
|
|
23292
23459
|
"locationInModule": {
|
|
23293
23460
|
"filename": "lib/router-output.ts",
|
|
23294
|
-
"line":
|
|
23461
|
+
"line": 854
|
|
23295
23462
|
},
|
|
23296
23463
|
"name": "fromRouterOutputAttributes",
|
|
23297
23464
|
"parameters": [
|
|
@@ -23337,7 +23504,7 @@
|
|
|
23337
23504
|
},
|
|
23338
23505
|
"locationInModule": {
|
|
23339
23506
|
"filename": "lib/router-output.ts",
|
|
23340
|
-
"line":
|
|
23507
|
+
"line": 759
|
|
23341
23508
|
},
|
|
23342
23509
|
"name": "metric",
|
|
23343
23510
|
"overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
|
|
@@ -23370,7 +23537,7 @@
|
|
|
23370
23537
|
},
|
|
23371
23538
|
"locationInModule": {
|
|
23372
23539
|
"filename": "lib/router-output.ts",
|
|
23373
|
-
"line":
|
|
23540
|
+
"line": 810
|
|
23374
23541
|
},
|
|
23375
23542
|
"name": "metricArqRequests",
|
|
23376
23543
|
"overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
|
|
@@ -23396,7 +23563,7 @@
|
|
|
23396
23563
|
},
|
|
23397
23564
|
"locationInModule": {
|
|
23398
23565
|
"filename": "lib/router-output.ts",
|
|
23399
|
-
"line":
|
|
23566
|
+
"line": 774
|
|
23400
23567
|
},
|
|
23401
23568
|
"name": "metricBitrate",
|
|
23402
23569
|
"overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
|
|
@@ -23423,7 +23590,7 @@
|
|
|
23423
23590
|
},
|
|
23424
23591
|
"locationInModule": {
|
|
23425
23592
|
"filename": "lib/router-output.ts",
|
|
23426
|
-
"line":
|
|
23593
|
+
"line": 798
|
|
23427
23594
|
},
|
|
23428
23595
|
"name": "metricConnected",
|
|
23429
23596
|
"overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
|
|
@@ -23449,7 +23616,7 @@
|
|
|
23449
23616
|
},
|
|
23450
23617
|
"locationInModule": {
|
|
23451
23618
|
"filename": "lib/router-output.ts",
|
|
23452
|
-
"line":
|
|
23619
|
+
"line": 786
|
|
23453
23620
|
},
|
|
23454
23621
|
"name": "metricTotalPackets",
|
|
23455
23622
|
"overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
|
|
@@ -23480,7 +23647,7 @@
|
|
|
23480
23647
|
"immutable": true,
|
|
23481
23648
|
"locationInModule": {
|
|
23482
23649
|
"filename": "lib/router-output.ts",
|
|
23483
|
-
"line":
|
|
23650
|
+
"line": 826
|
|
23484
23651
|
},
|
|
23485
23652
|
"name": "PROPERTY_INJECTION_ID",
|
|
23486
23653
|
"static": true,
|
|
@@ -23496,7 +23663,7 @@
|
|
|
23496
23663
|
"immutable": true,
|
|
23497
23664
|
"locationInModule": {
|
|
23498
23665
|
"filename": "lib/router-output.ts",
|
|
23499
|
-
"line":
|
|
23666
|
+
"line": 899
|
|
23500
23667
|
},
|
|
23501
23668
|
"name": "ipAddress",
|
|
23502
23669
|
"overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
|
|
@@ -23512,7 +23679,7 @@
|
|
|
23512
23679
|
"immutable": true,
|
|
23513
23680
|
"locationInModule": {
|
|
23514
23681
|
"filename": "lib/router-output.ts",
|
|
23515
|
-
"line":
|
|
23682
|
+
"line": 896
|
|
23516
23683
|
},
|
|
23517
23684
|
"name": "routerOutputArn",
|
|
23518
23685
|
"overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
|
|
@@ -23528,7 +23695,7 @@
|
|
|
23528
23695
|
"immutable": true,
|
|
23529
23696
|
"locationInModule": {
|
|
23530
23697
|
"filename": "lib/router-output.ts",
|
|
23531
|
-
"line":
|
|
23698
|
+
"line": 898
|
|
23532
23699
|
},
|
|
23533
23700
|
"name": "routerOutputId",
|
|
23534
23701
|
"overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
|
|
@@ -23544,7 +23711,7 @@
|
|
|
23544
23711
|
"immutable": true,
|
|
23545
23712
|
"locationInModule": {
|
|
23546
23713
|
"filename": "lib/router-output.ts",
|
|
23547
|
-
"line":
|
|
23714
|
+
"line": 897
|
|
23548
23715
|
},
|
|
23549
23716
|
"name": "routerOutputName",
|
|
23550
23717
|
"overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
|
|
@@ -23561,7 +23728,7 @@
|
|
|
23561
23728
|
"immutable": true,
|
|
23562
23729
|
"locationInModule": {
|
|
23563
23730
|
"filename": "lib/router-output.ts",
|
|
23564
|
-
"line":
|
|
23731
|
+
"line": 752
|
|
23565
23732
|
},
|
|
23566
23733
|
"name": "routerOutputRef",
|
|
23567
23734
|
"overrides": "aws-cdk-lib.interfaces.aws_mediaconnect.IRouterOutputRef",
|
|
@@ -23577,7 +23744,7 @@
|
|
|
23577
23744
|
"immutable": true,
|
|
23578
23745
|
"locationInModule": {
|
|
23579
23746
|
"filename": "lib/router-output.ts",
|
|
23580
|
-
"line":
|
|
23747
|
+
"line": 900
|
|
23581
23748
|
},
|
|
23582
23749
|
"name": "createdAt",
|
|
23583
23750
|
"optional": true,
|
|
@@ -23594,7 +23761,7 @@
|
|
|
23594
23761
|
"immutable": true,
|
|
23595
23762
|
"locationInModule": {
|
|
23596
23763
|
"filename": "lib/router-output.ts",
|
|
23597
|
-
"line":
|
|
23764
|
+
"line": 901
|
|
23598
23765
|
},
|
|
23599
23766
|
"name": "updatedAt",
|
|
23600
23767
|
"optional": true,
|
|
@@ -23621,7 +23788,7 @@
|
|
|
23621
23788
|
"kind": "interface",
|
|
23622
23789
|
"locationInModule": {
|
|
23623
23790
|
"filename": "lib/router-output.ts",
|
|
23624
|
-
"line":
|
|
23791
|
+
"line": 200
|
|
23625
23792
|
},
|
|
23626
23793
|
"name": "RouterOutputAttributes",
|
|
23627
23794
|
"properties": [
|
|
@@ -23634,7 +23801,7 @@
|
|
|
23634
23801
|
"immutable": true,
|
|
23635
23802
|
"locationInModule": {
|
|
23636
23803
|
"filename": "lib/router-output.ts",
|
|
23637
|
-
"line":
|
|
23804
|
+
"line": 204
|
|
23638
23805
|
},
|
|
23639
23806
|
"name": "routerOutputArn",
|
|
23640
23807
|
"type": {
|
|
@@ -23651,7 +23818,7 @@
|
|
|
23651
23818
|
"immutable": true,
|
|
23652
23819
|
"locationInModule": {
|
|
23653
23820
|
"filename": "lib/router-output.ts",
|
|
23654
|
-
"line":
|
|
23821
|
+
"line": 221
|
|
23655
23822
|
},
|
|
23656
23823
|
"name": "routerOutputId",
|
|
23657
23824
|
"optional": true,
|
|
@@ -23670,7 +23837,7 @@
|
|
|
23670
23837
|
"immutable": true,
|
|
23671
23838
|
"locationInModule": {
|
|
23672
23839
|
"filename": "lib/router-output.ts",
|
|
23673
|
-
"line":
|
|
23840
|
+
"line": 214
|
|
23674
23841
|
},
|
|
23675
23842
|
"name": "routerOutputName",
|
|
23676
23843
|
"optional": true,
|
|
@@ -23701,7 +23868,7 @@
|
|
|
23701
23868
|
"kind": "class",
|
|
23702
23869
|
"locationInModule": {
|
|
23703
23870
|
"filename": "lib/router-output.ts",
|
|
23704
|
-
"line":
|
|
23871
|
+
"line": 534
|
|
23705
23872
|
},
|
|
23706
23873
|
"methods": [
|
|
23707
23874
|
{
|
|
@@ -23714,7 +23881,7 @@
|
|
|
23714
23881
|
},
|
|
23715
23882
|
"locationInModule": {
|
|
23716
23883
|
"filename": "lib/router-output.ts",
|
|
23717
|
-
"line":
|
|
23884
|
+
"line": 602
|
|
23718
23885
|
},
|
|
23719
23886
|
"name": "mediaConnectFlow",
|
|
23720
23887
|
"parameters": [
|
|
@@ -23745,7 +23912,7 @@
|
|
|
23745
23912
|
},
|
|
23746
23913
|
"locationInModule": {
|
|
23747
23914
|
"filename": "lib/router-output.ts",
|
|
23748
|
-
"line":
|
|
23915
|
+
"line": 623
|
|
23749
23916
|
},
|
|
23750
23917
|
"name": "mediaConnectFlowWithoutConnection",
|
|
23751
23918
|
"parameters": [
|
|
@@ -23768,15 +23935,13 @@
|
|
|
23768
23935
|
},
|
|
23769
23936
|
{
|
|
23770
23937
|
"docs": {
|
|
23771
|
-
"example": " RouterOutputConfiguration.mediaLiveInput({\n mediaLiveInputArn: 'arn:aws:medialive:us-east-1:123456789012:input:1234567',\n mediaLivePipelineId: MediaLivePipeline.PIPELINE_0,\n });",
|
|
23772
23938
|
"remarks": "Use this when the MediaLive input already exists and you want to connect immediately.",
|
|
23773
|
-
"returns": "RouterOutputConfiguration instance for MediaLive setup with input connection",
|
|
23774
23939
|
"stability": "experimental",
|
|
23775
23940
|
"summary": "Create a MediaLive Router Output configuration with a specific input connection."
|
|
23776
23941
|
},
|
|
23777
23942
|
"locationInModule": {
|
|
23778
23943
|
"filename": "lib/router-output.ts",
|
|
23779
|
-
"line":
|
|
23944
|
+
"line": 564
|
|
23780
23945
|
},
|
|
23781
23946
|
"name": "mediaLiveInput",
|
|
23782
23947
|
"parameters": [
|
|
@@ -23799,15 +23964,13 @@
|
|
|
23799
23964
|
},
|
|
23800
23965
|
{
|
|
23801
23966
|
"docs": {
|
|
23802
|
-
"example": " RouterOutputConfiguration.mediaLiveInputWithoutConnection({\n availabilityZone: 'us-east-1a',\n });",
|
|
23803
23967
|
"remarks": "Use this when you want to set up the router output before the MediaLive input exists.",
|
|
23804
|
-
"returns": "RouterOutputConfiguration instance for MediaLive setup without input connection",
|
|
23805
23968
|
"stability": "experimental",
|
|
23806
23969
|
"summary": "Create a MediaLive Router Output configuration without a specific input connection."
|
|
23807
23970
|
},
|
|
23808
23971
|
"locationInModule": {
|
|
23809
23972
|
"filename": "lib/router-output.ts",
|
|
23810
|
-
"line":
|
|
23973
|
+
"line": 579
|
|
23811
23974
|
},
|
|
23812
23975
|
"name": "mediaLiveInputWithoutConnection",
|
|
23813
23976
|
"parameters": [
|
|
@@ -23837,7 +24000,7 @@
|
|
|
23837
24000
|
},
|
|
23838
24001
|
"locationInModule": {
|
|
23839
24002
|
"filename": "lib/router-output.ts",
|
|
23840
|
-
"line":
|
|
24003
|
+
"line": 553
|
|
23841
24004
|
},
|
|
23842
24005
|
"name": "standard",
|
|
23843
24006
|
"parameters": [
|
|
@@ -23877,7 +24040,7 @@
|
|
|
23877
24040
|
"kind": "interface",
|
|
23878
24041
|
"locationInModule": {
|
|
23879
24042
|
"filename": "lib/router-output.ts",
|
|
23880
|
-
"line":
|
|
24043
|
+
"line": 162
|
|
23881
24044
|
},
|
|
23882
24045
|
"name": "RouterOutputProps",
|
|
23883
24046
|
"properties": [
|
|
@@ -23890,7 +24053,7 @@
|
|
|
23890
24053
|
"immutable": true,
|
|
23891
24054
|
"locationInModule": {
|
|
23892
24055
|
"filename": "lib/router-output.ts",
|
|
23893
|
-
"line":
|
|
24056
|
+
"line": 179
|
|
23894
24057
|
},
|
|
23895
24058
|
"name": "configuration",
|
|
23896
24059
|
"type": {
|
|
@@ -23906,7 +24069,7 @@
|
|
|
23906
24069
|
"immutable": true,
|
|
23907
24070
|
"locationInModule": {
|
|
23908
24071
|
"filename": "lib/router-output.ts",
|
|
23909
|
-
"line":
|
|
24072
|
+
"line": 169
|
|
23910
24073
|
},
|
|
23911
24074
|
"name": "maximumBitrate",
|
|
23912
24075
|
"type": {
|
|
@@ -23922,7 +24085,7 @@
|
|
|
23922
24085
|
"immutable": true,
|
|
23923
24086
|
"locationInModule": {
|
|
23924
24087
|
"filename": "lib/router-output.ts",
|
|
23925
|
-
"line":
|
|
24088
|
+
"line": 171
|
|
23926
24089
|
},
|
|
23927
24090
|
"name": "routingScope",
|
|
23928
24091
|
"type": {
|
|
@@ -23939,7 +24102,7 @@
|
|
|
23939
24102
|
"immutable": true,
|
|
23940
24103
|
"locationInModule": {
|
|
23941
24104
|
"filename": "lib/router-output.ts",
|
|
23942
|
-
"line":
|
|
24105
|
+
"line": 184
|
|
23943
24106
|
},
|
|
23944
24107
|
"name": "maintenanceConfiguration",
|
|
23945
24108
|
"optional": true,
|
|
@@ -23957,7 +24120,7 @@
|
|
|
23957
24120
|
"immutable": true,
|
|
23958
24121
|
"locationInModule": {
|
|
23959
24122
|
"filename": "lib/router-output.ts",
|
|
23960
|
-
"line":
|
|
24123
|
+
"line": 189
|
|
23961
24124
|
},
|
|
23962
24125
|
"name": "regionName",
|
|
23963
24126
|
"optional": true,
|
|
@@ -23975,7 +24138,7 @@
|
|
|
23975
24138
|
"immutable": true,
|
|
23976
24139
|
"locationInModule": {
|
|
23977
24140
|
"filename": "lib/router-output.ts",
|
|
23978
|
-
"line":
|
|
24141
|
+
"line": 167
|
|
23979
24142
|
},
|
|
23980
24143
|
"name": "routerOutputName",
|
|
23981
24144
|
"optional": true,
|
|
@@ -23993,7 +24156,7 @@
|
|
|
23993
24156
|
"immutable": true,
|
|
23994
24157
|
"locationInModule": {
|
|
23995
24158
|
"filename": "lib/router-output.ts",
|
|
23996
|
-
"line":
|
|
24159
|
+
"line": 194
|
|
23997
24160
|
},
|
|
23998
24161
|
"name": "tags",
|
|
23999
24162
|
"optional": true,
|
|
@@ -24011,12 +24174,12 @@
|
|
|
24011
24174
|
"docs": {
|
|
24012
24175
|
"default": "RouterOutputTier.OUTPUT_20",
|
|
24013
24176
|
"stability": "experimental",
|
|
24014
|
-
"summary": "
|
|
24177
|
+
"summary": "Routing tier that determines the maximum bitrate (in Mbps) for this output."
|
|
24015
24178
|
},
|
|
24016
24179
|
"immutable": true,
|
|
24017
24180
|
"locationInModule": {
|
|
24018
24181
|
"filename": "lib/router-output.ts",
|
|
24019
|
-
"line":
|
|
24182
|
+
"line": 177
|
|
24020
24183
|
},
|
|
24021
24184
|
"name": "tier",
|
|
24022
24185
|
"optional": true,
|
|
@@ -24042,7 +24205,7 @@
|
|
|
24042
24205
|
"kind": "class",
|
|
24043
24206
|
"locationInModule": {
|
|
24044
24207
|
"filename": "lib/router-output.ts",
|
|
24045
|
-
"line":
|
|
24208
|
+
"line": 291
|
|
24046
24209
|
},
|
|
24047
24210
|
"methods": [
|
|
24048
24211
|
{
|
|
@@ -24054,7 +24217,7 @@
|
|
|
24054
24217
|
},
|
|
24055
24218
|
"locationInModule": {
|
|
24056
24219
|
"filename": "lib/router-output.ts",
|
|
24057
|
-
"line":
|
|
24220
|
+
"line": 329
|
|
24058
24221
|
},
|
|
24059
24222
|
"name": "rist",
|
|
24060
24223
|
"parameters": [
|
|
@@ -24084,7 +24247,7 @@
|
|
|
24084
24247
|
},
|
|
24085
24248
|
"locationInModule": {
|
|
24086
24249
|
"filename": "lib/router-output.ts",
|
|
24087
|
-
"line":
|
|
24250
|
+
"line": 305
|
|
24088
24251
|
},
|
|
24089
24252
|
"name": "rtp",
|
|
24090
24253
|
"parameters": [
|
|
@@ -24114,7 +24277,7 @@
|
|
|
24114
24277
|
},
|
|
24115
24278
|
"locationInModule": {
|
|
24116
24279
|
"filename": "lib/router-output.ts",
|
|
24117
|
-
"line":
|
|
24280
|
+
"line": 376
|
|
24118
24281
|
},
|
|
24119
24282
|
"name": "srtCaller",
|
|
24120
24283
|
"parameters": [
|
|
@@ -24144,7 +24307,7 @@
|
|
|
24144
24307
|
},
|
|
24145
24308
|
"locationInModule": {
|
|
24146
24309
|
"filename": "lib/router-output.ts",
|
|
24147
|
-
"line":
|
|
24310
|
+
"line": 352
|
|
24148
24311
|
},
|
|
24149
24312
|
"name": "srtListener",
|
|
24150
24313
|
"parameters": [
|
|
@@ -24183,7 +24346,7 @@
|
|
|
24183
24346
|
"kind": "class",
|
|
24184
24347
|
"locationInModule": {
|
|
24185
24348
|
"filename": "lib/router-output.ts",
|
|
24186
|
-
"line":
|
|
24349
|
+
"line": 22
|
|
24187
24350
|
},
|
|
24188
24351
|
"methods": [
|
|
24189
24352
|
{
|
|
@@ -24193,7 +24356,7 @@
|
|
|
24193
24356
|
},
|
|
24194
24357
|
"locationInModule": {
|
|
24195
24358
|
"filename": "lib/router-output.ts",
|
|
24196
|
-
"line":
|
|
24359
|
+
"line": 36
|
|
24197
24360
|
},
|
|
24198
24361
|
"name": "of",
|
|
24199
24362
|
"parameters": [
|
|
@@ -24221,7 +24384,7 @@
|
|
|
24221
24384
|
},
|
|
24222
24385
|
"locationInModule": {
|
|
24223
24386
|
"filename": "lib/router-output.ts",
|
|
24224
|
-
"line":
|
|
24387
|
+
"line": 44
|
|
24225
24388
|
},
|
|
24226
24389
|
"name": "toString",
|
|
24227
24390
|
"returns": {
|
|
@@ -24242,7 +24405,7 @@
|
|
|
24242
24405
|
"immutable": true,
|
|
24243
24406
|
"locationInModule": {
|
|
24244
24407
|
"filename": "lib/router-output.ts",
|
|
24245
|
-
"line":
|
|
24408
|
+
"line": 26
|
|
24246
24409
|
},
|
|
24247
24410
|
"name": "RIST",
|
|
24248
24411
|
"static": true,
|
|
@@ -24259,7 +24422,7 @@
|
|
|
24259
24422
|
"immutable": true,
|
|
24260
24423
|
"locationInModule": {
|
|
24261
24424
|
"filename": "lib/router-output.ts",
|
|
24262
|
-
"line":
|
|
24425
|
+
"line": 24
|
|
24263
24426
|
},
|
|
24264
24427
|
"name": "RTP",
|
|
24265
24428
|
"static": true,
|
|
@@ -24276,7 +24439,7 @@
|
|
|
24276
24439
|
"immutable": true,
|
|
24277
24440
|
"locationInModule": {
|
|
24278
24441
|
"filename": "lib/router-output.ts",
|
|
24279
|
-
"line":
|
|
24442
|
+
"line": 28
|
|
24280
24443
|
},
|
|
24281
24444
|
"name": "SRT_CALLER",
|
|
24282
24445
|
"static": true,
|
|
@@ -24293,7 +24456,7 @@
|
|
|
24293
24456
|
"immutable": true,
|
|
24294
24457
|
"locationInModule": {
|
|
24295
24458
|
"filename": "lib/router-output.ts",
|
|
24296
|
-
"line":
|
|
24459
|
+
"line": 30
|
|
24297
24460
|
},
|
|
24298
24461
|
"name": "SRT_LISTENER",
|
|
24299
24462
|
"static": true,
|
|
@@ -24309,7 +24472,7 @@
|
|
|
24309
24472
|
"immutable": true,
|
|
24310
24473
|
"locationInModule": {
|
|
24311
24474
|
"filename": "lib/router-output.ts",
|
|
24312
|
-
"line":
|
|
24475
|
+
"line": 41
|
|
24313
24476
|
},
|
|
24314
24477
|
"name": "value",
|
|
24315
24478
|
"type": {
|
|
@@ -24324,7 +24487,7 @@
|
|
|
24324
24487
|
"docs": {
|
|
24325
24488
|
"stability": "experimental",
|
|
24326
24489
|
"summary": "Routing tier that determines the maximum bitrate (in Mbps) for a Router Output.",
|
|
24327
|
-
"example": "declare const stack: Stack;\ndeclare const mediaLiveInput: medialive.
|
|
24490
|
+
"example": "declare const stack: Stack;\ndeclare const mediaLiveInput: medialive.IInput;\n\nconst output = new RouterOutput(stack, 'MediaLiveOutput', {\n routerOutputName: 'medialive-output',\n maximumBitrate: Bitrate.mbps(15),\n routingScope: RoutingScope.GLOBAL,\n tier: RouterOutputTier.OUTPUT_50,\n configuration: RouterOutputConfiguration.mediaLiveInput({\n input: mediaLiveInput,\n pipeline: MediaLivePipeline.PIPELINE_0,\n }),\n});",
|
|
24328
24491
|
"custom": {
|
|
24329
24492
|
"exampleMetadata": "infused"
|
|
24330
24493
|
}
|
|
@@ -24333,7 +24496,7 @@
|
|
|
24333
24496
|
"kind": "class",
|
|
24334
24497
|
"locationInModule": {
|
|
24335
24498
|
"filename": "lib/router-output.ts",
|
|
24336
|
-
"line":
|
|
24499
|
+
"line": 52
|
|
24337
24500
|
},
|
|
24338
24501
|
"methods": [
|
|
24339
24502
|
{
|
|
@@ -24343,7 +24506,7 @@
|
|
|
24343
24506
|
},
|
|
24344
24507
|
"locationInModule": {
|
|
24345
24508
|
"filename": "lib/router-output.ts",
|
|
24346
|
-
"line":
|
|
24509
|
+
"line": 64
|
|
24347
24510
|
},
|
|
24348
24511
|
"name": "of",
|
|
24349
24512
|
"parameters": [
|
|
@@ -24371,7 +24534,7 @@
|
|
|
24371
24534
|
},
|
|
24372
24535
|
"locationInModule": {
|
|
24373
24536
|
"filename": "lib/router-output.ts",
|
|
24374
|
-
"line":
|
|
24537
|
+
"line": 72
|
|
24375
24538
|
},
|
|
24376
24539
|
"name": "toString",
|
|
24377
24540
|
"returns": {
|
|
@@ -24392,7 +24555,7 @@
|
|
|
24392
24555
|
"immutable": true,
|
|
24393
24556
|
"locationInModule": {
|
|
24394
24557
|
"filename": "lib/router-output.ts",
|
|
24395
|
-
"line":
|
|
24558
|
+
"line": 54
|
|
24396
24559
|
},
|
|
24397
24560
|
"name": "OUTPUT_100",
|
|
24398
24561
|
"static": true,
|
|
@@ -24409,7 +24572,7 @@
|
|
|
24409
24572
|
"immutable": true,
|
|
24410
24573
|
"locationInModule": {
|
|
24411
24574
|
"filename": "lib/router-output.ts",
|
|
24412
|
-
"line":
|
|
24575
|
+
"line": 58
|
|
24413
24576
|
},
|
|
24414
24577
|
"name": "OUTPUT_20",
|
|
24415
24578
|
"static": true,
|
|
@@ -24426,7 +24589,7 @@
|
|
|
24426
24589
|
"immutable": true,
|
|
24427
24590
|
"locationInModule": {
|
|
24428
24591
|
"filename": "lib/router-output.ts",
|
|
24429
|
-
"line":
|
|
24592
|
+
"line": 56
|
|
24430
24593
|
},
|
|
24431
24594
|
"name": "OUTPUT_50",
|
|
24432
24595
|
"static": true,
|
|
@@ -24442,7 +24605,7 @@
|
|
|
24442
24605
|
"immutable": true,
|
|
24443
24606
|
"locationInModule": {
|
|
24444
24607
|
"filename": "lib/router-output.ts",
|
|
24445
|
-
"line":
|
|
24608
|
+
"line": 69
|
|
24446
24609
|
},
|
|
24447
24610
|
"name": "value",
|
|
24448
24611
|
"type": {
|
|
@@ -24614,7 +24777,7 @@
|
|
|
24614
24777
|
"docs": {
|
|
24615
24778
|
"stability": "experimental",
|
|
24616
24779
|
"summary": "Routing scope for the Router Input.",
|
|
24617
|
-
"example": "declare const stack: Stack;\ndeclare const
|
|
24780
|
+
"example": "declare const stack: Stack;\ndeclare const mediaLiveChannel: medialive.IChannel;\n\nconst input = new RouterInput(stack, 'ChannelInput', {\n routerInputName: 'channel-input',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaLiveChannel({\n channel: mediaLiveChannel,\n outputName: 'router-ts',\n pipeline: MediaLivePipeline.PIPELINE_0,\n }),\n});",
|
|
24618
24781
|
"custom": {
|
|
24619
24782
|
"exampleMetadata": "infused"
|
|
24620
24783
|
}
|
|
@@ -24623,7 +24786,7 @@
|
|
|
24623
24786
|
"kind": "class",
|
|
24624
24787
|
"locationInModule": {
|
|
24625
24788
|
"filename": "lib/router-input.ts",
|
|
24626
|
-
"line":
|
|
24789
|
+
"line": 197
|
|
24627
24790
|
},
|
|
24628
24791
|
"methods": [
|
|
24629
24792
|
{
|
|
@@ -24633,7 +24796,7 @@
|
|
|
24633
24796
|
},
|
|
24634
24797
|
"locationInModule": {
|
|
24635
24798
|
"filename": "lib/router-input.ts",
|
|
24636
|
-
"line":
|
|
24799
|
+
"line": 207
|
|
24637
24800
|
},
|
|
24638
24801
|
"name": "of",
|
|
24639
24802
|
"parameters": [
|
|
@@ -24661,7 +24824,7 @@
|
|
|
24661
24824
|
},
|
|
24662
24825
|
"locationInModule": {
|
|
24663
24826
|
"filename": "lib/router-input.ts",
|
|
24664
|
-
"line":
|
|
24827
|
+
"line": 215
|
|
24665
24828
|
},
|
|
24666
24829
|
"name": "toString",
|
|
24667
24830
|
"returns": {
|
|
@@ -24682,7 +24845,7 @@
|
|
|
24682
24845
|
"immutable": true,
|
|
24683
24846
|
"locationInModule": {
|
|
24684
24847
|
"filename": "lib/router-input.ts",
|
|
24685
|
-
"line":
|
|
24848
|
+
"line": 201
|
|
24686
24849
|
},
|
|
24687
24850
|
"name": "GLOBAL",
|
|
24688
24851
|
"static": true,
|
|
@@ -24699,7 +24862,7 @@
|
|
|
24699
24862
|
"immutable": true,
|
|
24700
24863
|
"locationInModule": {
|
|
24701
24864
|
"filename": "lib/router-input.ts",
|
|
24702
|
-
"line":
|
|
24865
|
+
"line": 199
|
|
24703
24866
|
},
|
|
24704
24867
|
"name": "REGIONAL",
|
|
24705
24868
|
"static": true,
|
|
@@ -24715,7 +24878,7 @@
|
|
|
24715
24878
|
"immutable": true,
|
|
24716
24879
|
"locationInModule": {
|
|
24717
24880
|
"filename": "lib/router-input.ts",
|
|
24718
|
-
"line":
|
|
24881
|
+
"line": 212
|
|
24719
24882
|
},
|
|
24720
24883
|
"name": "value",
|
|
24721
24884
|
"type": {
|
|
@@ -24853,7 +25016,7 @@
|
|
|
24853
25016
|
"kind": "interface",
|
|
24854
25017
|
"locationInModule": {
|
|
24855
25018
|
"filename": "lib/router-output.ts",
|
|
24856
|
-
"line":
|
|
25019
|
+
"line": 227
|
|
24857
25020
|
},
|
|
24858
25021
|
"name": "RtpOutputProtocolProps",
|
|
24859
25022
|
"properties": [
|
|
@@ -24866,7 +25029,7 @@
|
|
|
24866
25029
|
"immutable": true,
|
|
24867
25030
|
"locationInModule": {
|
|
24868
25031
|
"filename": "lib/router-output.ts",
|
|
24869
|
-
"line":
|
|
25032
|
+
"line": 229
|
|
24870
25033
|
},
|
|
24871
25034
|
"name": "destinationAddress",
|
|
24872
25035
|
"type": {
|
|
@@ -24882,7 +25045,7 @@
|
|
|
24882
25045
|
"immutable": true,
|
|
24883
25046
|
"locationInModule": {
|
|
24884
25047
|
"filename": "lib/router-output.ts",
|
|
24885
|
-
"line":
|
|
25048
|
+
"line": 231
|
|
24886
25049
|
},
|
|
24887
25050
|
"name": "port",
|
|
24888
25051
|
"type": {
|
|
@@ -24899,7 +25062,7 @@
|
|
|
24899
25062
|
"immutable": true,
|
|
24900
25063
|
"locationInModule": {
|
|
24901
25064
|
"filename": "lib/router-output.ts",
|
|
24902
|
-
"line":
|
|
25065
|
+
"line": 236
|
|
24903
25066
|
},
|
|
24904
25067
|
"name": "forwardErrorCorrection",
|
|
24905
25068
|
"optional": true,
|
|
@@ -24925,7 +25088,7 @@
|
|
|
24925
25088
|
"kind": "interface",
|
|
24926
25089
|
"locationInModule": {
|
|
24927
25090
|
"filename": "lib/router-input.ts",
|
|
24928
|
-
"line":
|
|
25091
|
+
"line": 397
|
|
24929
25092
|
},
|
|
24930
25093
|
"name": "RtpProtocolProps",
|
|
24931
25094
|
"properties": [
|
|
@@ -24938,7 +25101,7 @@
|
|
|
24938
25101
|
"immutable": true,
|
|
24939
25102
|
"locationInModule": {
|
|
24940
25103
|
"filename": "lib/router-input.ts",
|
|
24941
|
-
"line":
|
|
25104
|
+
"line": 399
|
|
24942
25105
|
},
|
|
24943
25106
|
"name": "port",
|
|
24944
25107
|
"type": {
|
|
@@ -24955,7 +25118,7 @@
|
|
|
24955
25118
|
"immutable": true,
|
|
24956
25119
|
"locationInModule": {
|
|
24957
25120
|
"filename": "lib/router-input.ts",
|
|
24958
|
-
"line":
|
|
25121
|
+
"line": 404
|
|
24959
25122
|
},
|
|
24960
25123
|
"name": "forwardErrorCorrection",
|
|
24961
25124
|
"optional": true,
|
|
@@ -25917,7 +26080,7 @@
|
|
|
25917
26080
|
"kind": "class",
|
|
25918
26081
|
"locationInModule": {
|
|
25919
26082
|
"filename": "lib/router-input.ts",
|
|
25920
|
-
"line":
|
|
26083
|
+
"line": 362
|
|
25921
26084
|
},
|
|
25922
26085
|
"methods": [
|
|
25923
26086
|
{
|
|
@@ -25927,7 +26090,7 @@
|
|
|
25927
26090
|
},
|
|
25928
26091
|
"locationInModule": {
|
|
25929
26092
|
"filename": "lib/router-input.ts",
|
|
25930
|
-
"line":
|
|
26093
|
+
"line": 366
|
|
25931
26094
|
},
|
|
25932
26095
|
"name": "none",
|
|
25933
26096
|
"returns": {
|
|
@@ -25945,7 +26108,7 @@
|
|
|
25945
26108
|
},
|
|
25946
26109
|
"locationInModule": {
|
|
25947
26110
|
"filename": "lib/router-input.ts",
|
|
25948
|
-
"line":
|
|
26111
|
+
"line": 373
|
|
25949
26112
|
},
|
|
25950
26113
|
"name": "primarySecondary",
|
|
25951
26114
|
"parameters": [
|
|
@@ -26891,7 +27054,7 @@
|
|
|
26891
27054
|
"kind": "interface",
|
|
26892
27055
|
"locationInModule": {
|
|
26893
27056
|
"filename": "lib/router-output.ts",
|
|
26894
|
-
"line":
|
|
27057
|
+
"line": 267
|
|
26895
27058
|
},
|
|
26896
27059
|
"name": "SrtCallerOutputProtocolProps",
|
|
26897
27060
|
"properties": [
|
|
@@ -26904,7 +27067,7 @@
|
|
|
26904
27067
|
"immutable": true,
|
|
26905
27068
|
"locationInModule": {
|
|
26906
27069
|
"filename": "lib/router-output.ts",
|
|
26907
|
-
"line":
|
|
27070
|
+
"line": 269
|
|
26908
27071
|
},
|
|
26909
27072
|
"name": "destinationAddress",
|
|
26910
27073
|
"type": {
|
|
@@ -26920,7 +27083,7 @@
|
|
|
26920
27083
|
"immutable": true,
|
|
26921
27084
|
"locationInModule": {
|
|
26922
27085
|
"filename": "lib/router-output.ts",
|
|
26923
|
-
"line":
|
|
27086
|
+
"line": 271
|
|
26924
27087
|
},
|
|
26925
27088
|
"name": "destinationPort",
|
|
26926
27089
|
"type": {
|
|
@@ -26936,7 +27099,7 @@
|
|
|
26936
27099
|
"immutable": true,
|
|
26937
27100
|
"locationInModule": {
|
|
26938
27101
|
"filename": "lib/router-output.ts",
|
|
26939
|
-
"line":
|
|
27102
|
+
"line": 273
|
|
26940
27103
|
},
|
|
26941
27104
|
"name": "minimumLatency",
|
|
26942
27105
|
"type": {
|
|
@@ -26953,7 +27116,7 @@
|
|
|
26953
27116
|
"immutable": true,
|
|
26954
27117
|
"locationInModule": {
|
|
26955
27118
|
"filename": "lib/router-output.ts",
|
|
26956
|
-
"line":
|
|
27119
|
+
"line": 283
|
|
26957
27120
|
},
|
|
26958
27121
|
"name": "encryptionConfiguration",
|
|
26959
27122
|
"optional": true,
|
|
@@ -26971,7 +27134,7 @@
|
|
|
26971
27134
|
"immutable": true,
|
|
26972
27135
|
"locationInModule": {
|
|
26973
27136
|
"filename": "lib/router-output.ts",
|
|
26974
|
-
"line":
|
|
27137
|
+
"line": 278
|
|
26975
27138
|
},
|
|
26976
27139
|
"name": "streamId",
|
|
26977
27140
|
"optional": true,
|
|
@@ -26997,7 +27160,7 @@
|
|
|
26997
27160
|
"kind": "interface",
|
|
26998
27161
|
"locationInModule": {
|
|
26999
27162
|
"filename": "lib/router-input.ts",
|
|
27000
|
-
"line":
|
|
27163
|
+
"line": 435
|
|
27001
27164
|
},
|
|
27002
27165
|
"name": "SrtCallerProtocolProps",
|
|
27003
27166
|
"properties": [
|
|
@@ -27010,7 +27173,7 @@
|
|
|
27010
27173
|
"immutable": true,
|
|
27011
27174
|
"locationInModule": {
|
|
27012
27175
|
"filename": "lib/router-input.ts",
|
|
27013
|
-
"line":
|
|
27176
|
+
"line": 441
|
|
27014
27177
|
},
|
|
27015
27178
|
"name": "minimumLatency",
|
|
27016
27179
|
"type": {
|
|
@@ -27026,7 +27189,7 @@
|
|
|
27026
27189
|
"immutable": true,
|
|
27027
27190
|
"locationInModule": {
|
|
27028
27191
|
"filename": "lib/router-input.ts",
|
|
27029
|
-
"line":
|
|
27192
|
+
"line": 437
|
|
27030
27193
|
},
|
|
27031
27194
|
"name": "sourceAddress",
|
|
27032
27195
|
"type": {
|
|
@@ -27042,7 +27205,7 @@
|
|
|
27042
27205
|
"immutable": true,
|
|
27043
27206
|
"locationInModule": {
|
|
27044
27207
|
"filename": "lib/router-input.ts",
|
|
27045
|
-
"line":
|
|
27208
|
+
"line": 439
|
|
27046
27209
|
},
|
|
27047
27210
|
"name": "sourcePort",
|
|
27048
27211
|
"type": {
|
|
@@ -27059,7 +27222,7 @@
|
|
|
27059
27222
|
"immutable": true,
|
|
27060
27223
|
"locationInModule": {
|
|
27061
27224
|
"filename": "lib/router-input.ts",
|
|
27062
|
-
"line":
|
|
27225
|
+
"line": 451
|
|
27063
27226
|
},
|
|
27064
27227
|
"name": "decryptionConfiguration",
|
|
27065
27228
|
"optional": true,
|
|
@@ -27077,7 +27240,7 @@
|
|
|
27077
27240
|
"immutable": true,
|
|
27078
27241
|
"locationInModule": {
|
|
27079
27242
|
"filename": "lib/router-input.ts",
|
|
27080
|
-
"line":
|
|
27243
|
+
"line": 446
|
|
27081
27244
|
},
|
|
27082
27245
|
"name": "streamId",
|
|
27083
27246
|
"optional": true,
|
|
@@ -27220,7 +27383,7 @@
|
|
|
27220
27383
|
"kind": "interface",
|
|
27221
27384
|
"locationInModule": {
|
|
27222
27385
|
"filename": "lib/router-output.ts",
|
|
27223
|
-
"line":
|
|
27386
|
+
"line": 252
|
|
27224
27387
|
},
|
|
27225
27388
|
"name": "SrtListenerOutputProtocolProps",
|
|
27226
27389
|
"properties": [
|
|
@@ -27233,7 +27396,7 @@
|
|
|
27233
27396
|
"immutable": true,
|
|
27234
27397
|
"locationInModule": {
|
|
27235
27398
|
"filename": "lib/router-output.ts",
|
|
27236
|
-
"line":
|
|
27399
|
+
"line": 256
|
|
27237
27400
|
},
|
|
27238
27401
|
"name": "minimumLatency",
|
|
27239
27402
|
"type": {
|
|
@@ -27249,7 +27412,7 @@
|
|
|
27249
27412
|
"immutable": true,
|
|
27250
27413
|
"locationInModule": {
|
|
27251
27414
|
"filename": "lib/router-output.ts",
|
|
27252
|
-
"line":
|
|
27415
|
+
"line": 254
|
|
27253
27416
|
},
|
|
27254
27417
|
"name": "port",
|
|
27255
27418
|
"type": {
|
|
@@ -27266,7 +27429,7 @@
|
|
|
27266
27429
|
"immutable": true,
|
|
27267
27430
|
"locationInModule": {
|
|
27268
27431
|
"filename": "lib/router-output.ts",
|
|
27269
|
-
"line":
|
|
27432
|
+
"line": 261
|
|
27270
27433
|
},
|
|
27271
27434
|
"name": "encryptionConfiguration",
|
|
27272
27435
|
"optional": true,
|
|
@@ -27283,7 +27446,7 @@
|
|
|
27283
27446
|
"docs": {
|
|
27284
27447
|
"stability": "experimental",
|
|
27285
27448
|
"summary": "Properties for SRT Listener protocol configuration.",
|
|
27286
|
-
"example": "declare const stack: Stack;\ndeclare const mediaLiveInput: medialive.
|
|
27449
|
+
"example": "declare const stack: Stack;\ndeclare const mediaLiveInput: medialive.IInput;\n\n// 1. A public network interface for the SRT input\nconst networkInterface = new RouterNetworkInterface(stack, 'NetworkInterface', {\n routerNetworkInterfaceName: 'camera-network',\n configuration: RouterNetworkConfiguration.publicNetwork({\n cidr: ['203.0.113.0/24'],\n }),\n});\n\n// 2. A router input receiving SRT from an upstream encoder\nconst input = new RouterInput(stack, 'Input', {\n routerInputName: 'camera-input',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_20,\n configuration: RouterInputConfiguration.standard({\n networkInterface,\n protocol: RouterInputProtocol.srtListener({\n port: 9000,\n minimumLatency: Duration.millis(200),\n }),\n }),\n});\n\n// 3. A router output delivering to MediaLive\nconst output = new RouterOutput(stack, 'Output', {\n routerOutputName: 'medialive-output',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_20,\n configuration: RouterOutputConfiguration.mediaLiveInput({\n input: mediaLiveInput,\n pipeline: MediaLivePipeline.PIPELINE_0,\n }),\n});",
|
|
27287
27450
|
"custom": {
|
|
27288
27451
|
"exampleMetadata": "infused"
|
|
27289
27452
|
}
|
|
@@ -27292,7 +27455,7 @@
|
|
|
27292
27455
|
"kind": "interface",
|
|
27293
27456
|
"locationInModule": {
|
|
27294
27457
|
"filename": "lib/router-input.ts",
|
|
27295
|
-
"line":
|
|
27458
|
+
"line": 420
|
|
27296
27459
|
},
|
|
27297
27460
|
"name": "SrtListenerProtocolProps",
|
|
27298
27461
|
"properties": [
|
|
@@ -27305,7 +27468,7 @@
|
|
|
27305
27468
|
"immutable": true,
|
|
27306
27469
|
"locationInModule": {
|
|
27307
27470
|
"filename": "lib/router-input.ts",
|
|
27308
|
-
"line":
|
|
27471
|
+
"line": 424
|
|
27309
27472
|
},
|
|
27310
27473
|
"name": "minimumLatency",
|
|
27311
27474
|
"type": {
|
|
@@ -27321,7 +27484,7 @@
|
|
|
27321
27484
|
"immutable": true,
|
|
27322
27485
|
"locationInModule": {
|
|
27323
27486
|
"filename": "lib/router-input.ts",
|
|
27324
|
-
"line":
|
|
27487
|
+
"line": 422
|
|
27325
27488
|
},
|
|
27326
27489
|
"name": "port",
|
|
27327
27490
|
"type": {
|
|
@@ -27338,7 +27501,7 @@
|
|
|
27338
27501
|
"immutable": true,
|
|
27339
27502
|
"locationInModule": {
|
|
27340
27503
|
"filename": "lib/router-input.ts",
|
|
27341
|
-
"line":
|
|
27504
|
+
"line": 429
|
|
27342
27505
|
},
|
|
27343
27506
|
"name": "decryptionConfiguration",
|
|
27344
27507
|
"optional": true,
|
|
@@ -27414,7 +27577,7 @@
|
|
|
27414
27577
|
"docs": {
|
|
27415
27578
|
"stability": "experimental",
|
|
27416
27579
|
"summary": "Properties for standard Router Input configuration.",
|
|
27417
|
-
"example": "declare const stack: Stack;\ndeclare const mediaLiveInput: medialive.
|
|
27580
|
+
"example": "declare const stack: Stack;\ndeclare const mediaLiveInput: medialive.IInput;\n\n// 1. A public network interface for the SRT input\nconst networkInterface = new RouterNetworkInterface(stack, 'NetworkInterface', {\n routerNetworkInterfaceName: 'camera-network',\n configuration: RouterNetworkConfiguration.publicNetwork({\n cidr: ['203.0.113.0/24'],\n }),\n});\n\n// 2. A router input receiving SRT from an upstream encoder\nconst input = new RouterInput(stack, 'Input', {\n routerInputName: 'camera-input',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_20,\n configuration: RouterInputConfiguration.standard({\n networkInterface,\n protocol: RouterInputProtocol.srtListener({\n port: 9000,\n minimumLatency: Duration.millis(200),\n }),\n }),\n});\n\n// 3. A router output delivering to MediaLive\nconst output = new RouterOutput(stack, 'Output', {\n routerOutputName: 'medialive-output',\n maximumBitrate: Bitrate.mbps(10),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterOutputTier.OUTPUT_20,\n configuration: RouterOutputConfiguration.mediaLiveInput({\n input: mediaLiveInput,\n pipeline: MediaLivePipeline.PIPELINE_0,\n }),\n});",
|
|
27418
27581
|
"custom": {
|
|
27419
27582
|
"exampleMetadata": "infused"
|
|
27420
27583
|
}
|
|
@@ -27423,7 +27586,7 @@
|
|
|
27423
27586
|
"kind": "interface",
|
|
27424
27587
|
"locationInModule": {
|
|
27425
27588
|
"filename": "lib/router-input.ts",
|
|
27426
|
-
"line":
|
|
27589
|
+
"line": 709
|
|
27427
27590
|
},
|
|
27428
27591
|
"name": "StandardConfigurationProps",
|
|
27429
27592
|
"properties": [
|
|
@@ -27436,7 +27599,7 @@
|
|
|
27436
27599
|
"immutable": true,
|
|
27437
27600
|
"locationInModule": {
|
|
27438
27601
|
"filename": "lib/router-input.ts",
|
|
27439
|
-
"line":
|
|
27602
|
+
"line": 711
|
|
27440
27603
|
},
|
|
27441
27604
|
"name": "networkInterface",
|
|
27442
27605
|
"type": {
|
|
@@ -27452,7 +27615,7 @@
|
|
|
27452
27615
|
"immutable": true,
|
|
27453
27616
|
"locationInModule": {
|
|
27454
27617
|
"filename": "lib/router-input.ts",
|
|
27455
|
-
"line":
|
|
27618
|
+
"line": 713
|
|
27456
27619
|
},
|
|
27457
27620
|
"name": "protocol",
|
|
27458
27621
|
"type": {
|
|
@@ -27469,7 +27632,7 @@
|
|
|
27469
27632
|
"immutable": true,
|
|
27470
27633
|
"locationInModule": {
|
|
27471
27634
|
"filename": "lib/router-input.ts",
|
|
27472
|
-
"line":
|
|
27635
|
+
"line": 719
|
|
27473
27636
|
},
|
|
27474
27637
|
"name": "availabilityZone",
|
|
27475
27638
|
"optional": true,
|
|
@@ -27495,7 +27658,7 @@
|
|
|
27495
27658
|
"kind": "interface",
|
|
27496
27659
|
"locationInModule": {
|
|
27497
27660
|
"filename": "lib/router-output.ts",
|
|
27498
|
-
"line":
|
|
27661
|
+
"line": 462
|
|
27499
27662
|
},
|
|
27500
27663
|
"name": "StandardOutputConfigurationProps",
|
|
27501
27664
|
"properties": [
|
|
@@ -27508,7 +27671,7 @@
|
|
|
27508
27671
|
"immutable": true,
|
|
27509
27672
|
"locationInModule": {
|
|
27510
27673
|
"filename": "lib/router-output.ts",
|
|
27511
|
-
"line":
|
|
27674
|
+
"line": 464
|
|
27512
27675
|
},
|
|
27513
27676
|
"name": "networkInterface",
|
|
27514
27677
|
"type": {
|
|
@@ -27524,7 +27687,7 @@
|
|
|
27524
27687
|
"immutable": true,
|
|
27525
27688
|
"locationInModule": {
|
|
27526
27689
|
"filename": "lib/router-output.ts",
|
|
27527
|
-
"line":
|
|
27690
|
+
"line": 466
|
|
27528
27691
|
},
|
|
27529
27692
|
"name": "protocol",
|
|
27530
27693
|
"type": {
|
|
@@ -27541,7 +27704,7 @@
|
|
|
27541
27704
|
"immutable": true,
|
|
27542
27705
|
"locationInModule": {
|
|
27543
27706
|
"filename": "lib/router-output.ts",
|
|
27544
|
-
"line":
|
|
27707
|
+
"line": 472
|
|
27545
27708
|
},
|
|
27546
27709
|
"name": "availabilityZone",
|
|
27547
27710
|
"optional": true,
|
|
@@ -27902,7 +28065,7 @@
|
|
|
27902
28065
|
"see": "https://docs.aws.amazon.com/mediaconnect/latest/ug/cross-service-confused-deputy-prevention.html",
|
|
27903
28066
|
"stability": "experimental",
|
|
27904
28067
|
"summary": "Transit encryption configuration for router integrations — securing the link between a router and a flow or a MediaLive channel/input.",
|
|
27905
|
-
"example": "declare const stack: Stack;\ndeclare const
|
|
28068
|
+
"example": "declare const stack: Stack;\ndeclare const mediaLiveChannel: medialive.IChannel;\ndeclare const transitSecret: Secret; // must hold the same value as the channel's MediaConnectRouterSettings.shared() secret\n\nconst input = new RouterInput(stack, 'ChannelInput', {\n routerInputName: 'channel-input',\n maximumBitrate: Bitrate.mbps(20),\n routingScope: RoutingScope.REGIONAL,\n tier: RouterInputTier.INPUT_50,\n configuration: RouterInputConfiguration.mediaLiveChannel({\n channel: mediaLiveChannel,\n outputName: 'router-ts',\n pipeline: MediaLivePipeline.PIPELINE_0,\n sourceTransitDecryption: { secret: transitSecret },\n }),\n});",
|
|
27906
28069
|
"custom": {
|
|
27907
28070
|
"exampleMetadata": "infused"
|
|
27908
28071
|
}
|
|
@@ -28864,6 +29027,6 @@
|
|
|
28864
29027
|
"symbolId": "lib/flow-output:ZixiPushOutputConfig"
|
|
28865
29028
|
}
|
|
28866
29029
|
},
|
|
28867
|
-
"version": "2.
|
|
29030
|
+
"version": "2.268.0-alpha.0",
|
|
28868
29031
|
"fingerprint": "**********"
|
|
28869
29032
|
}
|