@aws-cdk/aws-mediaconnect-alpha 2.267.0-alpha.0 → 2.269.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 CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.267.0",
11
+ "aws-cdk-lib": "^2.269.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": {
@@ -3210,6 +3262,19 @@
3210
3262
  }
3211
3263
  }
3212
3264
  },
3265
+ "aws-cdk-lib.aws_pricingplanmanager": {
3266
+ "targets": {
3267
+ "dotnet": {
3268
+ "namespace": "Amazon.CDK.AWS.PricingPlanManager"
3269
+ },
3270
+ "java": {
3271
+ "package": "software.amazon.awscdk.services.pricingplanmanager"
3272
+ },
3273
+ "python": {
3274
+ "module": "aws_cdk.aws_pricingplanmanager"
3275
+ }
3276
+ }
3277
+ },
3213
3278
  "aws-cdk-lib.aws_proton": {
3214
3279
  "targets": {
3215
3280
  "dotnet": {
@@ -3837,6 +3902,19 @@
3837
3902
  }
3838
3903
  }
3839
3904
  },
3905
+ "aws-cdk-lib.aws_serverlessrepo": {
3906
+ "targets": {
3907
+ "dotnet": {
3908
+ "namespace": "Amazon.CDK.AWS.ServerlessRepo"
3909
+ },
3910
+ "java": {
3911
+ "package": "software.amazon.awscdk.services.serverlessrepo"
3912
+ },
3913
+ "python": {
3914
+ "module": "aws_cdk.aws_serverlessrepo"
3915
+ }
3916
+ }
3917
+ },
3840
3918
  "aws-cdk-lib.aws_servicecatalog": {
3841
3919
  "targets": {
3842
3920
  "dotnet": {
@@ -4071,19 +4149,6 @@
4071
4149
  }
4072
4150
  }
4073
4151
  },
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
4152
  "aws-cdk-lib.aws_stepfunctions": {
4088
4153
  "targets": {
4089
4154
  "dotnet": {
@@ -4136,6 +4201,19 @@
4136
4201
  }
4137
4202
  }
4138
4203
  },
4204
+ "aws-cdk-lib.aws_supportauthz": {
4205
+ "targets": {
4206
+ "dotnet": {
4207
+ "namespace": "Amazon.CDK.AWS.SupportAuthZ"
4208
+ },
4209
+ "java": {
4210
+ "package": "software.amazon.awscdk.services.supportauthz"
4211
+ },
4212
+ "python": {
4213
+ "module": "aws_cdk.aws_supportauthz"
4214
+ }
4215
+ }
4216
+ },
4139
4217
  "aws-cdk-lib.aws_synthetics": {
4140
4218
  "targets": {
4141
4219
  "dotnet": {
@@ -4162,16 +4240,16 @@
4162
4240
  }
4163
4241
  }
4164
4242
  },
4165
- "aws-cdk-lib.aws_thinclient": {
4243
+ "aws-cdk-lib.aws_textract": {
4166
4244
  "targets": {
4167
4245
  "dotnet": {
4168
- "namespace": "Amazon.CDK.AWS.ThinClient"
4246
+ "namespace": "Amazon.CDK.AWS.Textract"
4169
4247
  },
4170
4248
  "java": {
4171
- "package": "software.amazon.awscdk.services.thinclient"
4249
+ "package": "software.amazon.awscdk.services.textract"
4172
4250
  },
4173
4251
  "python": {
4174
- "module": "aws_cdk.aws_thinclient"
4252
+ "module": "aws_cdk.aws_textract"
4175
4253
  }
4176
4254
  }
4177
4255
  },
@@ -4214,16 +4292,16 @@
4214
4292
  }
4215
4293
  }
4216
4294
  },
4217
- "aws-cdk-lib.aws_usernotifications": {
4295
+ "aws-cdk-lib.aws_translate": {
4218
4296
  "targets": {
4219
4297
  "dotnet": {
4220
- "namespace": "Amazon.CDK.AWS.UserNotifications"
4298
+ "namespace": "Amazon.CDK.AWS.Translate"
4221
4299
  },
4222
4300
  "java": {
4223
- "package": "software.amazon.awscdk.services.usernotifications"
4301
+ "package": "software.amazon.awscdk.services.translate"
4224
4302
  },
4225
4303
  "python": {
4226
- "module": "aws_cdk.aws_usernotifications"
4304
+ "module": "aws_cdk.aws_translate"
4227
4305
  }
4228
4306
  }
4229
4307
  },
@@ -4331,6 +4409,19 @@
4331
4409
  }
4332
4410
  }
4333
4411
  },
4412
+ "aws-cdk-lib.aws_wickr": {
4413
+ "targets": {
4414
+ "dotnet": {
4415
+ "namespace": "Amazon.CDK.AWS.Wickr"
4416
+ },
4417
+ "java": {
4418
+ "package": "software.amazon.awscdk.services.wickr"
4419
+ },
4420
+ "python": {
4421
+ "module": "aws_cdk.aws_wickr"
4422
+ }
4423
+ }
4424
+ },
4334
4425
  "aws-cdk-lib.aws_wisdom": {
4335
4426
  "targets": {
4336
4427
  "dotnet": {
@@ -4497,6 +4588,22 @@
4497
4588
  }
4498
4589
  }
4499
4590
  },
4591
+ "aws-cdk-lib.interfaces.aws_accountaccess": {
4592
+ "targets": {
4593
+ "dotnet": {
4594
+ "namespace": "Amazon.CDK.Interfaces.AccountAccess"
4595
+ },
4596
+ "go": {
4597
+ "packageName": "interfacesawsaccountaccess"
4598
+ },
4599
+ "java": {
4600
+ "package": "software.amazon.awscdk.interfaces.accountaccess"
4601
+ },
4602
+ "python": {
4603
+ "module": "aws_cdk.interfaces.aws_accountaccess"
4604
+ }
4605
+ }
4606
+ },
4500
4607
  "aws-cdk-lib.interfaces.aws_acmpca": {
4501
4608
  "targets": {
4502
4609
  "dotnet": {
@@ -4513,6 +4620,22 @@
4513
4620
  }
4514
4621
  }
4515
4622
  },
4623
+ "aws-cdk-lib.interfaces.aws_agentregistry": {
4624
+ "targets": {
4625
+ "dotnet": {
4626
+ "namespace": "Amazon.CDK.Interfaces.AgentRegistry"
4627
+ },
4628
+ "go": {
4629
+ "packageName": "interfacesawsagentregistry"
4630
+ },
4631
+ "java": {
4632
+ "package": "software.amazon.awscdk.interfaces.agentregistry"
4633
+ },
4634
+ "python": {
4635
+ "module": "aws_cdk.interfaces.aws_agentregistry"
4636
+ }
4637
+ }
4638
+ },
4516
4639
  "aws-cdk-lib.interfaces.aws_aiops": {
4517
4640
  "targets": {
4518
4641
  "dotnet": {
@@ -4833,22 +4956,6 @@
4833
4956
  }
4834
4957
  }
4835
4958
  },
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
4959
  "aws-cdk-lib.interfaces.aws_athena": {
4853
4960
  "targets": {
4854
4961
  "dotnet": {
@@ -4977,22 +5084,6 @@
4977
5084
  }
4978
5085
  }
4979
5086
  },
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
5087
  "aws-cdk-lib.interfaces.aws_batch": {
4997
5088
  "targets": {
4998
5089
  "dotnet": {
@@ -5345,6 +5436,22 @@
5345
5436
  }
5346
5437
  }
5347
5438
  },
5439
+ "aws-cdk-lib.interfaces.aws_cloudhsm": {
5440
+ "targets": {
5441
+ "dotnet": {
5442
+ "namespace": "Amazon.CDK.Interfaces.CloudHSM"
5443
+ },
5444
+ "go": {
5445
+ "packageName": "interfacesawscloudhsm"
5446
+ },
5447
+ "java": {
5448
+ "package": "software.amazon.awscdk.interfaces.cloudhsm"
5449
+ },
5450
+ "python": {
5451
+ "module": "aws_cdk.interfaces.aws_cloudhsm"
5452
+ }
5453
+ }
5454
+ },
5348
5455
  "aws-cdk-lib.interfaces.aws_cloudtrail": {
5349
5456
  "targets": {
5350
5457
  "dotnet": {
@@ -5569,22 +5676,6 @@
5569
5676
  }
5570
5677
  }
5571
5678
  },
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
5679
  "aws-cdk-lib.interfaces.aws_comprehend": {
5589
5680
  "targets": {
5590
5681
  "dotnet": {
@@ -5681,22 +5772,6 @@
5681
5772
  }
5682
5773
  }
5683
5774
  },
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
5775
  "aws-cdk-lib.interfaces.aws_controltower": {
5701
5776
  "targets": {
5702
5777
  "dotnet": {
@@ -5761,6 +5836,22 @@
5761
5836
  }
5762
5837
  }
5763
5838
  },
5839
+ "aws-cdk-lib.interfaces.aws_dataexchange": {
5840
+ "targets": {
5841
+ "dotnet": {
5842
+ "namespace": "Amazon.CDK.Interfaces.DataExchange"
5843
+ },
5844
+ "go": {
5845
+ "packageName": "interfacesawsdataexchange"
5846
+ },
5847
+ "java": {
5848
+ "package": "software.amazon.awscdk.interfaces.dataexchange"
5849
+ },
5850
+ "python": {
5851
+ "module": "aws_cdk.interfaces.aws_dataexchange"
5852
+ }
5853
+ }
5854
+ },
5764
5855
  "aws-cdk-lib.interfaces.aws_datapipeline": {
5765
5856
  "targets": {
5766
5857
  "dotnet": {
@@ -6001,6 +6092,22 @@
6001
6092
  }
6002
6093
  }
6003
6094
  },
6095
+ "aws-cdk-lib.interfaces.aws_drs": {
6096
+ "targets": {
6097
+ "dotnet": {
6098
+ "namespace": "Amazon.CDK.Interfaces.DRS"
6099
+ },
6100
+ "go": {
6101
+ "packageName": "interfacesawsdrs"
6102
+ },
6103
+ "java": {
6104
+ "package": "software.amazon.awscdk.interfaces.drs"
6105
+ },
6106
+ "python": {
6107
+ "module": "aws_cdk.interfaces.aws_drs"
6108
+ }
6109
+ }
6110
+ },
6004
6111
  "aws-cdk-lib.interfaces.aws_dsql": {
6005
6112
  "targets": {
6006
6113
  "dotnet": {
@@ -6833,6 +6940,22 @@
6833
6940
  }
6834
6941
  }
6835
6942
  },
6943
+ "aws-cdk-lib.interfaces.aws_iotsecuretunneling": {
6944
+ "targets": {
6945
+ "dotnet": {
6946
+ "namespace": "Amazon.CDK.Interfaces.IoTSecureTunneling"
6947
+ },
6948
+ "go": {
6949
+ "packageName": "interfacesawsiotsecuretunneling"
6950
+ },
6951
+ "java": {
6952
+ "package": "software.amazon.awscdk.interfaces.iotsecuretunneling"
6953
+ },
6954
+ "python": {
6955
+ "module": "aws_cdk.interfaces.aws_iotsecuretunneling"
6956
+ }
6957
+ }
6958
+ },
6836
6959
  "aws-cdk-lib.interfaces.aws_iotsitewise": {
6837
6960
  "targets": {
6838
6961
  "dotnet": {
@@ -7425,6 +7548,22 @@
7425
7548
  }
7426
7549
  }
7427
7550
  },
7551
+ "aws-cdk-lib.interfaces.aws_mgn": {
7552
+ "targets": {
7553
+ "dotnet": {
7554
+ "namespace": "Amazon.CDK.Interfaces.MGN"
7555
+ },
7556
+ "go": {
7557
+ "packageName": "interfacesawsmgn"
7558
+ },
7559
+ "java": {
7560
+ "package": "software.amazon.awscdk.interfaces.mgn"
7561
+ },
7562
+ "python": {
7563
+ "module": "aws_cdk.interfaces.aws_mgn"
7564
+ }
7565
+ }
7566
+ },
7428
7567
  "aws-cdk-lib.interfaces.aws_mpa": {
7429
7568
  "targets": {
7430
7569
  "dotnet": {
@@ -7697,6 +7836,22 @@
7697
7836
  }
7698
7837
  }
7699
7838
  },
7839
+ "aws-cdk-lib.interfaces.aws_opensearch": {
7840
+ "targets": {
7841
+ "dotnet": {
7842
+ "namespace": "Amazon.CDK.Interfaces.OpenSearch"
7843
+ },
7844
+ "go": {
7845
+ "packageName": "interfacesawsopensearch"
7846
+ },
7847
+ "java": {
7848
+ "package": "software.amazon.awscdk.interfaces.opensearch"
7849
+ },
7850
+ "python": {
7851
+ "module": "aws_cdk.interfaces.aws_opensearch"
7852
+ }
7853
+ }
7854
+ },
7700
7855
  "aws-cdk-lib.interfaces.aws_opensearchserverless": {
7701
7856
  "targets": {
7702
7857
  "dotnet": {
@@ -7953,6 +8108,22 @@
7953
8108
  }
7954
8109
  }
7955
8110
  },
8111
+ "aws-cdk-lib.interfaces.aws_pricingplanmanager": {
8112
+ "targets": {
8113
+ "dotnet": {
8114
+ "namespace": "Amazon.CDK.Interfaces.PricingPlanManager"
8115
+ },
8116
+ "go": {
8117
+ "packageName": "interfacesawspricingplanmanager"
8118
+ },
8119
+ "java": {
8120
+ "package": "software.amazon.awscdk.interfaces.pricingplanmanager"
8121
+ },
8122
+ "python": {
8123
+ "module": "aws_cdk.interfaces.aws_pricingplanmanager"
8124
+ }
8125
+ }
8126
+ },
7956
8127
  "aws-cdk-lib.interfaces.aws_proton": {
7957
8128
  "targets": {
7958
8129
  "dotnet": {
@@ -8609,6 +8780,22 @@
8609
8780
  }
8610
8781
  }
8611
8782
  },
8783
+ "aws-cdk-lib.interfaces.aws_serverlessrepo": {
8784
+ "targets": {
8785
+ "dotnet": {
8786
+ "namespace": "Amazon.CDK.Interfaces.ServerlessRepo"
8787
+ },
8788
+ "go": {
8789
+ "packageName": "interfacesawsserverlessrepo"
8790
+ },
8791
+ "java": {
8792
+ "package": "software.amazon.awscdk.interfaces.serverlessrepo"
8793
+ },
8794
+ "python": {
8795
+ "module": "aws_cdk.interfaces.aws_serverlessrepo"
8796
+ }
8797
+ }
8798
+ },
8612
8799
  "aws-cdk-lib.interfaces.aws_servicecatalog": {
8613
8800
  "targets": {
8614
8801
  "dotnet": {
@@ -8865,22 +9052,6 @@
8865
9052
  }
8866
9053
  }
8867
9054
  },
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
9055
  "aws-cdk-lib.interfaces.aws_stepfunctions": {
8885
9056
  "targets": {
8886
9057
  "dotnet": {
@@ -8929,6 +9100,22 @@
8929
9100
  }
8930
9101
  }
8931
9102
  },
9103
+ "aws-cdk-lib.interfaces.aws_supportauthz": {
9104
+ "targets": {
9105
+ "dotnet": {
9106
+ "namespace": "Amazon.CDK.Interfaces.SupportAuthZ"
9107
+ },
9108
+ "go": {
9109
+ "packageName": "interfacesawssupportauthz"
9110
+ },
9111
+ "java": {
9112
+ "package": "software.amazon.awscdk.interfaces.supportauthz"
9113
+ },
9114
+ "python": {
9115
+ "module": "aws_cdk.interfaces.aws_supportauthz"
9116
+ }
9117
+ }
9118
+ },
8932
9119
  "aws-cdk-lib.interfaces.aws_synthetics": {
8933
9120
  "targets": {
8934
9121
  "dotnet": {
@@ -8961,19 +9148,19 @@
8961
9148
  }
8962
9149
  }
8963
9150
  },
8964
- "aws-cdk-lib.interfaces.aws_thinclient": {
9151
+ "aws-cdk-lib.interfaces.aws_textract": {
8965
9152
  "targets": {
8966
9153
  "dotnet": {
8967
- "namespace": "Amazon.CDK.Interfaces.ThinClient"
9154
+ "namespace": "Amazon.CDK.Interfaces.Textract"
8968
9155
  },
8969
9156
  "go": {
8970
- "packageName": "interfacesawsthinclient"
9157
+ "packageName": "interfacesawstextract"
8971
9158
  },
8972
9159
  "java": {
8973
- "package": "software.amazon.awscdk.interfaces.thinclient"
9160
+ "package": "software.amazon.awscdk.interfaces.textract"
8974
9161
  },
8975
9162
  "python": {
8976
- "module": "aws_cdk.interfaces.aws_thinclient"
9163
+ "module": "aws_cdk.interfaces.aws_textract"
8977
9164
  }
8978
9165
  }
8979
9166
  },
@@ -9025,19 +9212,19 @@
9025
9212
  }
9026
9213
  }
9027
9214
  },
9028
- "aws-cdk-lib.interfaces.aws_usernotifications": {
9215
+ "aws-cdk-lib.interfaces.aws_translate": {
9029
9216
  "targets": {
9030
9217
  "dotnet": {
9031
- "namespace": "Amazon.CDK.Interfaces.UserNotifications"
9218
+ "namespace": "Amazon.CDK.Interfaces.Translate"
9032
9219
  },
9033
9220
  "go": {
9034
- "packageName": "interfacesawsusernotifications"
9221
+ "packageName": "interfacesawstranslate"
9035
9222
  },
9036
9223
  "java": {
9037
- "package": "software.amazon.awscdk.interfaces.usernotifications"
9224
+ "package": "software.amazon.awscdk.interfaces.translate"
9038
9225
  },
9039
9226
  "python": {
9040
- "module": "aws_cdk.interfaces.aws_usernotifications"
9227
+ "module": "aws_cdk.interfaces.aws_translate"
9041
9228
  }
9042
9229
  }
9043
9230
  },
@@ -9169,6 +9356,22 @@
9169
9356
  }
9170
9357
  }
9171
9358
  },
9359
+ "aws-cdk-lib.interfaces.aws_wickr": {
9360
+ "targets": {
9361
+ "dotnet": {
9362
+ "namespace": "Amazon.CDK.Interfaces.Wickr"
9363
+ },
9364
+ "go": {
9365
+ "packageName": "interfacesawswickr"
9366
+ },
9367
+ "java": {
9368
+ "package": "software.amazon.awscdk.interfaces.wickr"
9369
+ },
9370
+ "python": {
9371
+ "module": "aws_cdk.interfaces.aws_wickr"
9372
+ }
9373
+ }
9374
+ },
9172
9375
  "aws-cdk-lib.interfaces.aws_wisdom": {
9173
9376
  "targets": {
9174
9377
  "dotnet": {
@@ -9410,7 +9613,7 @@
9410
9613
  },
9411
9614
  "name": "@aws-cdk/aws-mediaconnect-alpha",
9412
9615
  "readme": {
9413
- "markdown": "# AWS::MediaConnect Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\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"
9616
+ "markdown": "# AWS::MediaConnect Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\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
9617
  },
9415
9618
  "repository": {
9416
9619
  "directory": "packages/@aws-cdk/aws-mediaconnect-alpha",
@@ -12586,7 +12789,7 @@
12586
12789
  "kind": "interface",
12587
12790
  "locationInModule": {
12588
12791
  "filename": "lib/router-input.ts",
12589
- "line": 724
12792
+ "line": 725
12590
12793
  },
12591
12794
  "name": "FailoverConfigurationProps",
12592
12795
  "properties": [
@@ -12599,7 +12802,7 @@
12599
12802
  "immutable": true,
12600
12803
  "locationInModule": {
12601
12804
  "filename": "lib/router-input.ts",
12602
- "line": 726
12805
+ "line": 727
12603
12806
  },
12604
12807
  "name": "networkInterface",
12605
12808
  "type": {
@@ -12615,7 +12818,7 @@
12615
12818
  "immutable": true,
12616
12819
  "locationInModule": {
12617
12820
  "filename": "lib/router-input.ts",
12618
- "line": 728
12821
+ "line": 729
12619
12822
  },
12620
12823
  "name": "protocols",
12621
12824
  "type": {
@@ -12637,7 +12840,7 @@
12637
12840
  "immutable": true,
12638
12841
  "locationInModule": {
12639
12842
  "filename": "lib/router-input.ts",
12640
- "line": 740
12843
+ "line": 741
12641
12844
  },
12642
12845
  "name": "availabilityZone",
12643
12846
  "optional": true,
@@ -12655,7 +12858,7 @@
12655
12858
  "immutable": true,
12656
12859
  "locationInModule": {
12657
12860
  "filename": "lib/router-input.ts",
12658
- "line": 734
12861
+ "line": 735
12659
12862
  },
12660
12863
  "name": "sourcePriority",
12661
12864
  "optional": true,
@@ -15275,7 +15478,7 @@
15275
15478
  "kind": "enum",
15276
15479
  "locationInModule": {
15277
15480
  "filename": "lib/router-input.ts",
15278
- "line": 330
15481
+ "line": 331
15279
15482
  },
15280
15483
  "members": [
15281
15484
  {
@@ -17414,7 +17617,7 @@
17414
17617
  "kind": "interface",
17415
17618
  "locationInModule": {
17416
17619
  "filename": "lib/router-input.ts",
17417
- "line": 71
17620
+ "line": 72
17418
17621
  },
17419
17622
  "methods": [
17420
17623
  {
@@ -17426,7 +17629,7 @@
17426
17629
  },
17427
17630
  "locationInModule": {
17428
17631
  "filename": "lib/router-input.ts",
17429
- "line": 148
17632
+ "line": 149
17430
17633
  },
17431
17634
  "name": "metric",
17432
17635
  "parameters": [
@@ -17459,7 +17662,7 @@
17459
17662
  },
17460
17663
  "locationInModule": {
17461
17664
  "filename": "lib/router-input.ts",
17462
- "line": 154
17665
+ "line": 155
17463
17666
  },
17464
17667
  "name": "metricBitrate",
17465
17668
  "parameters": [
@@ -17487,7 +17690,7 @@
17487
17690
  },
17488
17691
  "locationInModule": {
17489
17692
  "filename": "lib/router-input.ts",
17490
- "line": 172
17693
+ "line": 173
17491
17694
  },
17492
17695
  "name": "metricConnected",
17493
17696
  "parameters": [
@@ -17514,7 +17717,7 @@
17514
17717
  },
17515
17718
  "locationInModule": {
17516
17719
  "filename": "lib/router-input.ts",
17517
- "line": 178
17720
+ "line": 179
17518
17721
  },
17519
17722
  "name": "metricContinuityCounterErrors",
17520
17723
  "parameters": [
@@ -17541,7 +17744,7 @@
17541
17744
  },
17542
17745
  "locationInModule": {
17543
17746
  "filename": "lib/router-input.ts",
17544
- "line": 190
17747
+ "line": 191
17545
17748
  },
17546
17749
  "name": "metricFailoverSwitches",
17547
17750
  "parameters": [
@@ -17569,7 +17772,7 @@
17569
17772
  },
17570
17773
  "locationInModule": {
17571
17774
  "filename": "lib/router-input.ts",
17572
- "line": 184
17775
+ "line": 185
17573
17776
  },
17574
17777
  "name": "metricLatency",
17575
17778
  "parameters": [
@@ -17596,7 +17799,7 @@
17596
17799
  },
17597
17800
  "locationInModule": {
17598
17801
  "filename": "lib/router-input.ts",
17599
- "line": 160
17802
+ "line": 161
17600
17803
  },
17601
17804
  "name": "metricNotRecoveredPackets",
17602
17805
  "parameters": [
@@ -17623,7 +17826,7 @@
17623
17826
  },
17624
17827
  "locationInModule": {
17625
17828
  "filename": "lib/router-input.ts",
17626
- "line": 166
17829
+ "line": 167
17627
17830
  },
17628
17831
  "name": "metricTotalPackets",
17629
17832
  "parameters": [
@@ -17654,7 +17857,7 @@
17654
17857
  "immutable": true,
17655
17858
  "locationInModule": {
17656
17859
  "filename": "lib/router-input.ts",
17657
- "line": 125
17860
+ "line": 126
17658
17861
  },
17659
17862
  "name": "endpoints",
17660
17863
  "type": {
@@ -17675,7 +17878,7 @@
17675
17878
  "immutable": true,
17676
17879
  "locationInModule": {
17677
17880
  "filename": "lib/router-input.ts",
17678
- "line": 139
17881
+ "line": 140
17679
17882
  },
17680
17883
  "name": "grants",
17681
17884
  "type": {
@@ -17694,7 +17897,7 @@
17694
17897
  "immutable": true,
17695
17898
  "locationInModule": {
17696
17899
  "filename": "lib/router-input.ts",
17697
- "line": 91
17900
+ "line": 92
17698
17901
  },
17699
17902
  "name": "ipAddress",
17700
17903
  "type": {
@@ -17713,7 +17916,7 @@
17713
17916
  "immutable": true,
17714
17917
  "locationInModule": {
17715
17918
  "filename": "lib/router-input.ts",
17716
- "line": 77
17919
+ "line": 78
17717
17920
  },
17718
17921
  "name": "routerInputArn",
17719
17922
  "type": {
@@ -17732,7 +17935,7 @@
17732
17935
  "immutable": true,
17733
17936
  "locationInModule": {
17734
17937
  "filename": "lib/router-input.ts",
17735
- "line": 84
17938
+ "line": 85
17736
17939
  },
17737
17940
  "name": "routerInputId",
17738
17941
  "type": {
@@ -17751,7 +17954,7 @@
17751
17954
  "immutable": true,
17752
17955
  "locationInModule": {
17753
17956
  "filename": "lib/router-input.ts",
17754
- "line": 98
17957
+ "line": 99
17755
17958
  },
17756
17959
  "name": "createdAt",
17757
17960
  "optional": true,
@@ -17769,7 +17972,7 @@
17769
17972
  "immutable": true,
17770
17973
  "locationInModule": {
17771
17974
  "filename": "lib/router-input.ts",
17772
- "line": 134
17975
+ "line": 135
17773
17976
  },
17774
17977
  "name": "transitEncryptionSecret",
17775
17978
  "optional": true,
@@ -17789,7 +17992,7 @@
17789
17992
  "immutable": true,
17790
17993
  "locationInModule": {
17791
17994
  "filename": "lib/router-input.ts",
17792
- "line": 105
17995
+ "line": 106
17793
17996
  },
17794
17997
  "name": "updatedAt",
17795
17998
  "optional": true,
@@ -17913,7 +18116,7 @@
17913
18116
  "kind": "interface",
17914
18117
  "locationInModule": {
17915
18118
  "filename": "lib/router-output.ts",
17916
- "line": 79
18119
+ "line": 80
17917
18120
  },
17918
18121
  "methods": [
17919
18122
  {
@@ -17925,7 +18128,7 @@
17925
18128
  },
17926
18129
  "locationInModule": {
17927
18130
  "filename": "lib/router-output.ts",
17928
- "line": 129
18131
+ "line": 130
17929
18132
  },
17930
18133
  "name": "metric",
17931
18134
  "parameters": [
@@ -17959,7 +18162,7 @@
17959
18162
  },
17960
18163
  "locationInModule": {
17961
18164
  "filename": "lib/router-output.ts",
17962
- "line": 155
18165
+ "line": 156
17963
18166
  },
17964
18167
  "name": "metricArqRequests",
17965
18168
  "parameters": [
@@ -17986,7 +18189,7 @@
17986
18189
  },
17987
18190
  "locationInModule": {
17988
18191
  "filename": "lib/router-output.ts",
17989
- "line": 135
18192
+ "line": 136
17990
18193
  },
17991
18194
  "name": "metricBitrate",
17992
18195
  "parameters": [
@@ -18014,7 +18217,7 @@
18014
18217
  },
18015
18218
  "locationInModule": {
18016
18219
  "filename": "lib/router-output.ts",
18017
- "line": 147
18220
+ "line": 148
18018
18221
  },
18019
18222
  "name": "metricConnected",
18020
18223
  "parameters": [
@@ -18041,7 +18244,7 @@
18041
18244
  },
18042
18245
  "locationInModule": {
18043
18246
  "filename": "lib/router-output.ts",
18044
- "line": 141
18247
+ "line": 142
18045
18248
  },
18046
18249
  "name": "metricTotalPackets",
18047
18250
  "parameters": [
@@ -18074,7 +18277,7 @@
18074
18277
  "immutable": true,
18075
18278
  "locationInModule": {
18076
18279
  "filename": "lib/router-output.ts",
18077
- "line": 106
18280
+ "line": 107
18078
18281
  },
18079
18282
  "name": "ipAddress",
18080
18283
  "type": {
@@ -18093,7 +18296,7 @@
18093
18296
  "immutable": true,
18094
18297
  "locationInModule": {
18095
18298
  "filename": "lib/router-output.ts",
18096
- "line": 92
18299
+ "line": 93
18097
18300
  },
18098
18301
  "name": "routerOutputArn",
18099
18302
  "type": {
@@ -18112,7 +18315,7 @@
18112
18315
  "immutable": true,
18113
18316
  "locationInModule": {
18114
18317
  "filename": "lib/router-output.ts",
18115
- "line": 99
18318
+ "line": 100
18116
18319
  },
18117
18320
  "name": "routerOutputId",
18118
18321
  "type": {
@@ -18131,7 +18334,7 @@
18131
18334
  "immutable": true,
18132
18335
  "locationInModule": {
18133
18336
  "filename": "lib/router-output.ts",
18134
- "line": 85
18337
+ "line": 86
18135
18338
  },
18136
18339
  "name": "routerOutputName",
18137
18340
  "type": {
@@ -18150,7 +18353,7 @@
18150
18353
  "immutable": true,
18151
18354
  "locationInModule": {
18152
18355
  "filename": "lib/router-output.ts",
18153
- "line": 113
18356
+ "line": 114
18154
18357
  },
18155
18358
  "name": "createdAt",
18156
18359
  "optional": true,
@@ -18170,7 +18373,7 @@
18170
18373
  "immutable": true,
18171
18374
  "locationInModule": {
18172
18375
  "filename": "lib/router-output.ts",
18173
- "line": 120
18376
+ "line": 121
18174
18377
  },
18175
18378
  "name": "updatedAt",
18176
18379
  "optional": true,
@@ -18387,7 +18590,7 @@
18387
18590
  "kind": "interface",
18388
18591
  "locationInModule": {
18389
18592
  "filename": "lib/router-input.ts",
18390
- "line": 250
18593
+ "line": 251
18391
18594
  },
18392
18595
  "name": "MaintenanceConfiguration",
18393
18596
  "properties": [
@@ -18400,7 +18603,7 @@
18400
18603
  "immutable": true,
18401
18604
  "locationInModule": {
18402
18605
  "filename": "lib/router-input.ts",
18403
- "line": 252
18606
+ "line": 253
18404
18607
  },
18405
18608
  "name": "day",
18406
18609
  "type": {
@@ -18416,7 +18619,7 @@
18416
18619
  "immutable": true,
18417
18620
  "locationInModule": {
18418
18621
  "filename": "lib/router-input.ts",
18419
- "line": 254
18622
+ "line": 255
18420
18623
  },
18421
18624
  "name": "time",
18422
18625
  "type": {
@@ -18563,7 +18766,7 @@
18563
18766
  "kind": "interface",
18564
18767
  "locationInModule": {
18565
18768
  "filename": "lib/router-input.ts",
18566
- "line": 764
18769
+ "line": 765
18567
18770
  },
18568
18771
  "name": "MediaConnectFlowConfigurationProps",
18569
18772
  "properties": [
@@ -18576,7 +18779,7 @@
18576
18779
  "immutable": true,
18577
18780
  "locationInModule": {
18578
18781
  "filename": "lib/router-input.ts",
18579
- "line": 766
18782
+ "line": 767
18580
18783
  },
18581
18784
  "name": "flow",
18582
18785
  "type": {
@@ -18592,7 +18795,7 @@
18592
18795
  "immutable": true,
18593
18796
  "locationInModule": {
18594
18797
  "filename": "lib/router-input.ts",
18595
- "line": 768
18798
+ "line": 769
18596
18799
  },
18597
18800
  "name": "flowOutput",
18598
18801
  "type": {
@@ -18609,7 +18812,7 @@
18609
18812
  "immutable": true,
18610
18813
  "locationInModule": {
18611
18814
  "filename": "lib/router-input.ts",
18612
- "line": 773
18815
+ "line": 774
18613
18816
  },
18614
18817
  "name": "sourceTransitDecryption",
18615
18818
  "optional": true,
@@ -18635,7 +18838,7 @@
18635
18838
  "kind": "interface",
18636
18839
  "locationInModule": {
18637
18840
  "filename": "lib/router-input.ts",
18638
- "line": 779
18841
+ "line": 780
18639
18842
  },
18640
18843
  "name": "MediaConnectFlowConfigurationWithoutConnectionProps",
18641
18844
  "properties": [
@@ -18648,7 +18851,7 @@
18648
18851
  "immutable": true,
18649
18852
  "locationInModule": {
18650
18853
  "filename": "lib/router-input.ts",
18651
- "line": 783
18854
+ "line": 784
18652
18855
  },
18653
18856
  "name": "availabilityZone",
18654
18857
  "type": {
@@ -18665,7 +18868,7 @@
18665
18868
  "immutable": true,
18666
18869
  "locationInModule": {
18667
18870
  "filename": "lib/router-input.ts",
18668
- "line": 788
18871
+ "line": 789
18669
18872
  },
18670
18873
  "name": "sourceTransitDecryption",
18671
18874
  "optional": true,
@@ -18691,7 +18894,7 @@
18691
18894
  "kind": "interface",
18692
18895
  "locationInModule": {
18693
18896
  "filename": "lib/router-output.ts",
18694
- "line": 509
18897
+ "line": 508
18695
18898
  },
18696
18899
  "name": "MediaConnectFlowConnectionProps",
18697
18900
  "properties": [
@@ -18704,7 +18907,7 @@
18704
18907
  "immutable": true,
18705
18908
  "locationInModule": {
18706
18909
  "filename": "lib/router-output.ts",
18707
- "line": 511
18910
+ "line": 510
18708
18911
  },
18709
18912
  "name": "flow",
18710
18913
  "type": {
@@ -18721,7 +18924,7 @@
18721
18924
  "immutable": true,
18722
18925
  "locationInModule": {
18723
18926
  "filename": "lib/router-output.ts",
18724
- "line": 516
18927
+ "line": 515
18725
18928
  },
18726
18929
  "name": "destinationTransitEncryption",
18727
18930
  "optional": true,
@@ -18747,7 +18950,7 @@
18747
18950
  "kind": "interface",
18748
18951
  "locationInModule": {
18749
18952
  "filename": "lib/router-output.ts",
18750
- "line": 522
18953
+ "line": 521
18751
18954
  },
18752
18955
  "name": "MediaConnectFlowNoConnectionProps",
18753
18956
  "properties": [
@@ -18760,7 +18963,7 @@
18760
18963
  "immutable": true,
18761
18964
  "locationInModule": {
18762
18965
  "filename": "lib/router-output.ts",
18763
- "line": 524
18966
+ "line": 523
18764
18967
  },
18765
18968
  "name": "availabilityZone",
18766
18969
  "type": {
@@ -18777,7 +18980,7 @@
18777
18980
  "immutable": true,
18778
18981
  "locationInModule": {
18779
18982
  "filename": "lib/router-output.ts",
18780
- "line": 529
18983
+ "line": 528
18781
18984
  },
18782
18985
  "name": "destinationTransitEncryption",
18783
18986
  "optional": true,
@@ -18795,51 +18998,47 @@
18795
18998
  "remarks": "Use this when the MediaLive channel already exists and you want to ingest\nfrom one of its outputs immediately.",
18796
18999
  "stability": "experimental",
18797
19000
  "summary": "Properties for MediaLive Channel Router Input configuration.",
18798
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as mediaconnect_alpha from '@aws-cdk/aws-mediaconnect-alpha';\nimport { aws_iam as iam } from 'aws-cdk-lib';\nimport { aws_secretsmanager as secretsmanager } from 'aws-cdk-lib';\n\ndeclare const role: iam.Role;\ndeclare const secret: secretsmanager.Secret;\nconst mediaLiveChannelConfigurationProps: mediaconnect_alpha.MediaLiveChannelConfigurationProps = {\n mediaLiveChannelArn: 'mediaLiveChannelArn',\n mediaLiveChannelOutputName: 'mediaLiveChannelOutputName',\n mediaLivePipelineId: mediaconnect_alpha.MediaLivePipeline.PIPELINE_0,\n\n // the properties below are optional\n sourceTransitDecryption: {\n secret: secret,\n\n // the properties below are optional\n role: role,\n },\n};",
19001
+ "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
19002
  "custom": {
18800
- "exampleMetadata": "fixture=_generated"
19003
+ "exampleMetadata": "infused"
18801
19004
  }
18802
19005
  },
18803
19006
  "fqn": "@aws-cdk/aws-mediaconnect-alpha.MediaLiveChannelConfigurationProps",
18804
19007
  "kind": "interface",
18805
19008
  "locationInModule": {
18806
19009
  "filename": "lib/router-input.ts",
18807
- "line": 797
19010
+ "line": 798
18808
19011
  },
18809
19012
  "name": "MediaLiveChannelConfigurationProps",
18810
19013
  "properties": [
18811
19014
  {
18812
19015
  "abstract": true,
18813
19016
  "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
19017
  "stability": "experimental",
18819
- "summary": "ARN of the MediaLive channel to use as input."
19018
+ "summary": "The MediaLive channel to use as input."
18820
19019
  },
18821
19020
  "immutable": true,
18822
19021
  "locationInModule": {
18823
19022
  "filename": "lib/router-input.ts",
18824
- "line": 804
19023
+ "line": 802
18825
19024
  },
18826
- "name": "mediaLiveChannelArn",
19025
+ "name": "channel",
18827
19026
  "type": {
18828
- "primitive": "string"
19027
+ "fqn": "aws-cdk-lib.interfaces.aws_medialive.IChannelRef"
18829
19028
  }
18830
19029
  },
18831
19030
  {
18832
19031
  "abstract": true,
18833
19032
  "docs": {
18834
19033
  "stability": "experimental",
18835
- "summary": "The name of the MediaLive channel output to connect to this router input."
19034
+ "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
19035
  },
18837
19036
  "immutable": true,
18838
19037
  "locationInModule": {
18839
19038
  "filename": "lib/router-input.ts",
18840
- "line": 809
19039
+ "line": 808
18841
19040
  },
18842
- "name": "mediaLiveChannelOutputName",
19041
+ "name": "outputName",
18843
19042
  "type": {
18844
19043
  "primitive": "string"
18845
19044
  }
@@ -18853,9 +19052,9 @@
18853
19052
  "immutable": true,
18854
19053
  "locationInModule": {
18855
19054
  "filename": "lib/router-input.ts",
18856
- "line": 814
19055
+ "line": 813
18857
19056
  },
18858
- "name": "mediaLivePipelineId",
19057
+ "name": "pipeline",
18859
19058
  "type": {
18860
19059
  "fqn": "@aws-cdk/aws-mediaconnect-alpha.MediaLivePipeline"
18861
19060
  }
@@ -18863,7 +19062,8 @@
18863
19062
  {
18864
19063
  "abstract": true,
18865
19064
  "docs": {
18866
- "default": "- Automatic encryption will be used",
19065
+ "default": "- automatic encryption",
19066
+ "remarks": "Must match the encryption type configured on the\nMediaLive channel's MediaConnect Router output group.",
18867
19067
  "stability": "experimental",
18868
19068
  "summary": "Optional transit encryption configuration."
18869
19069
  },
@@ -18888,9 +19088,9 @@
18888
19088
  "remarks": "Use this when you want to set up the router input before the target MediaLive channel exists.",
18889
19089
  "stability": "experimental",
18890
19090
  "summary": "Properties for MediaLive Channel Router Input configuration without a specific channel connection.",
18891
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as mediaconnect_alpha from '@aws-cdk/aws-mediaconnect-alpha';\nimport { aws_iam as iam } from 'aws-cdk-lib';\nimport { aws_secretsmanager as secretsmanager } from 'aws-cdk-lib';\n\ndeclare const role: iam.Role;\ndeclare const secret: secretsmanager.Secret;\nconst mediaLiveChannelConfigurationWithoutConnectionProps: mediaconnect_alpha.MediaLiveChannelConfigurationWithoutConnectionProps = {\n availabilityZone: 'availabilityZone',\n\n // the properties below are optional\n sourceTransitDecryption: {\n secret: secret,\n\n // the properties below are optional\n role: role,\n },\n};",
19091
+ "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
19092
  "custom": {
18893
- "exampleMetadata": "fixture=_generated"
19093
+ "exampleMetadata": "infused"
18894
19094
  }
18895
19095
  },
18896
19096
  "fqn": "@aws-cdk/aws-mediaconnect-alpha.MediaLiveChannelConfigurationWithoutConnectionProps",
@@ -18944,7 +19144,7 @@
18944
19144
  "docs": {
18945
19145
  "stability": "experimental",
18946
19146
  "summary": "Properties for MediaLive Router Output configuration with specific input connection.",
18947
- "example": "declare 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});",
19147
+ "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
19148
  "custom": {
18949
19149
  "exampleMetadata": "infused"
18950
19150
  }
@@ -18953,42 +19153,38 @@
18953
19153
  "kind": "interface",
18954
19154
  "locationInModule": {
18955
19155
  "filename": "lib/router-output.ts",
18956
- "line": 476
19156
+ "line": 478
18957
19157
  },
18958
19158
  "name": "MediaLiveInputConnectionProps",
18959
19159
  "properties": [
18960
19160
  {
18961
19161
  "abstract": true,
18962
19162
  "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
19163
  "stability": "experimental",
18968
- "summary": "ARN of the MediaLive input to send output to."
19164
+ "summary": "The MediaLive input to send output to (must be of type `medialive.InputConfiguration.mediaConnectRouter()`)."
18969
19165
  },
18970
19166
  "immutable": true,
18971
19167
  "locationInModule": {
18972
19168
  "filename": "lib/router-output.ts",
18973
- "line": 483
19169
+ "line": 482
18974
19170
  },
18975
- "name": "mediaLiveInputArn",
19171
+ "name": "input",
18976
19172
  "type": {
18977
- "primitive": "string"
19173
+ "fqn": "aws-cdk-lib.interfaces.aws_medialive.IInputRef"
18978
19174
  }
18979
19175
  },
18980
19176
  {
18981
19177
  "abstract": true,
18982
19178
  "docs": {
18983
19179
  "stability": "experimental",
18984
- "summary": "Pipeline ID for MediaLive input."
19180
+ "summary": "MediaLive pipeline to send output to."
18985
19181
  },
18986
19182
  "immutable": true,
18987
19183
  "locationInModule": {
18988
19184
  "filename": "lib/router-output.ts",
18989
- "line": 485
19185
+ "line": 484
18990
19186
  },
18991
- "name": "mediaLivePipelineId",
19187
+ "name": "pipeline",
18992
19188
  "type": {
18993
19189
  "fqn": "@aws-cdk/aws-mediaconnect-alpha.MediaLivePipeline"
18994
19190
  }
@@ -19003,7 +19199,7 @@
19003
19199
  "immutable": true,
19004
19200
  "locationInModule": {
19005
19201
  "filename": "lib/router-output.ts",
19006
- "line": 490
19202
+ "line": 489
19007
19203
  },
19008
19204
  "name": "destinationTransitEncryption",
19009
19205
  "optional": true,
@@ -19029,7 +19225,7 @@
19029
19225
  "kind": "interface",
19030
19226
  "locationInModule": {
19031
19227
  "filename": "lib/router-output.ts",
19032
- "line": 496
19228
+ "line": 495
19033
19229
  },
19034
19230
  "name": "MediaLiveNoInputConnectionProps",
19035
19231
  "properties": [
@@ -19042,7 +19238,7 @@
19042
19238
  "immutable": true,
19043
19239
  "locationInModule": {
19044
19240
  "filename": "lib/router-output.ts",
19045
- "line": 498
19241
+ "line": 497
19046
19242
  },
19047
19243
  "name": "availabilityZone",
19048
19244
  "type": {
@@ -19059,7 +19255,7 @@
19059
19255
  "immutable": true,
19060
19256
  "locationInModule": {
19061
19257
  "filename": "lib/router-output.ts",
19062
- "line": 503
19258
+ "line": 502
19063
19259
  },
19064
19260
  "name": "destinationTransitEncryption",
19065
19261
  "optional": true,
@@ -19075,7 +19271,7 @@
19075
19271
  "docs": {
19076
19272
  "stability": "experimental",
19077
19273
  "summary": "MediaLive pipeline options.",
19078
- "example": "declare 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});",
19274
+ "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
19275
  "custom": {
19080
19276
  "exampleMetadata": "infused"
19081
19277
  }
@@ -19819,7 +20015,7 @@
19819
20015
  "kind": "interface",
19820
20016
  "locationInModule": {
19821
20017
  "filename": "lib/router-input.ts",
19822
- "line": 746
20018
+ "line": 747
19823
20019
  },
19824
20020
  "name": "MergeConfigurationProps",
19825
20021
  "properties": [
@@ -19832,7 +20028,7 @@
19832
20028
  "immutable": true,
19833
20029
  "locationInModule": {
19834
20030
  "filename": "lib/router-input.ts",
19835
- "line": 752
20031
+ "line": 753
19836
20032
  },
19837
20033
  "name": "mergeRecoveryWindow",
19838
20034
  "type": {
@@ -19848,7 +20044,7 @@
19848
20044
  "immutable": true,
19849
20045
  "locationInModule": {
19850
20046
  "filename": "lib/router-input.ts",
19851
- "line": 748
20047
+ "line": 749
19852
20048
  },
19853
20049
  "name": "networkInterface",
19854
20050
  "type": {
@@ -19864,7 +20060,7 @@
19864
20060
  "immutable": true,
19865
20061
  "locationInModule": {
19866
20062
  "filename": "lib/router-input.ts",
19867
- "line": 750
20063
+ "line": 751
19868
20064
  },
19869
20065
  "name": "protocols",
19870
20066
  "type": {
@@ -19886,7 +20082,7 @@
19886
20082
  "immutable": true,
19887
20083
  "locationInModule": {
19888
20084
  "filename": "lib/router-input.ts",
19889
- "line": 758
20085
+ "line": 759
19890
20086
  },
19891
20087
  "name": "availabilityZone",
19892
20088
  "optional": true,
@@ -20808,7 +21004,7 @@
20808
21004
  "kind": "enum",
20809
21005
  "locationInModule": {
20810
21006
  "filename": "lib/router-input.ts",
20811
- "line": 340
21007
+ "line": 341
20812
21008
  },
20813
21009
  "members": [
20814
21010
  {
@@ -20835,7 +21031,7 @@
20835
21031
  "docs": {
20836
21032
  "stability": "experimental",
20837
21033
  "summary": "Properties for public network configuration.",
20838
- "example": "declare 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});",
21034
+ "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
21035
  "custom": {
20840
21036
  "exampleMetadata": "infused"
20841
21037
  }
@@ -20912,7 +21108,7 @@
20912
21108
  "kind": "interface",
20913
21109
  "locationInModule": {
20914
21110
  "filename": "lib/router-output.ts",
20915
- "line": 240
21111
+ "line": 242
20916
21112
  },
20917
21113
  "name": "RistOutputProtocolProps",
20918
21114
  "properties": [
@@ -20925,7 +21121,7 @@
20925
21121
  "immutable": true,
20926
21122
  "locationInModule": {
20927
21123
  "filename": "lib/router-output.ts",
20928
- "line": 242
21124
+ "line": 244
20929
21125
  },
20930
21126
  "name": "destinationAddress",
20931
21127
  "type": {
@@ -20941,7 +21137,7 @@
20941
21137
  "immutable": true,
20942
21138
  "locationInModule": {
20943
21139
  "filename": "lib/router-output.ts",
20944
- "line": 244
21140
+ "line": 246
20945
21141
  },
20946
21142
  "name": "port",
20947
21143
  "type": {
@@ -20966,7 +21162,7 @@
20966
21162
  "kind": "interface",
20967
21163
  "locationInModule": {
20968
21164
  "filename": "lib/router-input.ts",
20969
- "line": 409
21165
+ "line": 410
20970
21166
  },
20971
21167
  "name": "RistProtocolProps",
20972
21168
  "properties": [
@@ -20979,7 +21175,7 @@
20979
21175
  "immutable": true,
20980
21176
  "locationInModule": {
20981
21177
  "filename": "lib/router-input.ts",
20982
- "line": 411
21178
+ "line": 412
20983
21179
  },
20984
21180
  "name": "port",
20985
21181
  "type": {
@@ -20995,7 +21191,7 @@
20995
21191
  "immutable": true,
20996
21192
  "locationInModule": {
20997
21193
  "filename": "lib/router-input.ts",
20998
- "line": 413
21194
+ "line": 414
20999
21195
  },
21000
21196
  "name": "recoveryLatency",
21001
21197
  "type": {
@@ -21011,7 +21207,7 @@
21011
21207
  "docs": {
21012
21208
  "stability": "experimental",
21013
21209
  "summary": "Defines an AWS Elemental MediaConnect Router Input.",
21014
- "example": "declare 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});",
21210
+ "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
21211
  "custom": {
21016
21212
  "exampleMetadata": "infused"
21017
21213
  }
@@ -21560,7 +21756,7 @@
21560
21756
  "kind": "interface",
21561
21757
  "locationInModule": {
21562
21758
  "filename": "lib/router-input.ts",
21563
- "line": 306
21759
+ "line": 307
21564
21760
  },
21565
21761
  "name": "RouterInputAttributes",
21566
21762
  "properties": [
@@ -21573,7 +21769,7 @@
21573
21769
  "immutable": true,
21574
21770
  "locationInModule": {
21575
21771
  "filename": "lib/router-input.ts",
21576
- "line": 310
21772
+ "line": 311
21577
21773
  },
21578
21774
  "name": "routerInputArn",
21579
21775
  "type": {
@@ -21590,7 +21786,7 @@
21590
21786
  "immutable": true,
21591
21787
  "locationInModule": {
21592
21788
  "filename": "lib/router-input.ts",
21593
- "line": 324
21789
+ "line": 325
21594
21790
  },
21595
21791
  "name": "ipAddress",
21596
21792
  "optional": true,
@@ -21608,7 +21804,7 @@
21608
21804
  "immutable": true,
21609
21805
  "locationInModule": {
21610
21806
  "filename": "lib/router-input.ts",
21611
- "line": 317
21807
+ "line": 318
21612
21808
  },
21613
21809
  "name": "routerInputId",
21614
21810
  "optional": true,
@@ -21625,7 +21821,7 @@
21625
21821
  "docs": {
21626
21822
  "stability": "experimental",
21627
21823
  "summary": "Factory class for creating Router Input configurations.",
21628
- "example": "declare 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});",
21824
+ "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
21825
  "custom": {
21630
21826
  "exampleMetadata": "infused"
21631
21827
  }
@@ -21874,7 +22070,7 @@
21874
22070
  "kind": "interface",
21875
22071
  "locationInModule": {
21876
22072
  "filename": "lib/router-input.ts",
21877
- "line": 55
22073
+ "line": 56
21878
22074
  },
21879
22075
  "name": "RouterInputEndpoint",
21880
22076
  "properties": [
@@ -21887,7 +22083,7 @@
21887
22083
  "immutable": true,
21888
22084
  "locationInModule": {
21889
22085
  "filename": "lib/router-input.ts",
21890
- "line": 65
22086
+ "line": 66
21891
22087
  },
21892
22088
  "name": "port",
21893
22089
  "type": {
@@ -21904,7 +22100,7 @@
21904
22100
  "immutable": true,
21905
22101
  "locationInModule": {
21906
22102
  "filename": "lib/router-input.ts",
21907
- "line": 60
22103
+ "line": 61
21908
22104
  },
21909
22105
  "name": "url",
21910
22106
  "type": {
@@ -22097,7 +22293,7 @@
22097
22293
  "docs": {
22098
22294
  "stability": "experimental",
22099
22295
  "summary": "Properties for creating a Router Input.",
22100
- "example": "declare 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});",
22296
+ "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
22297
  "custom": {
22102
22298
  "exampleMetadata": "infused"
22103
22299
  }
@@ -22106,7 +22302,7 @@
22106
22302
  "kind": "interface",
22107
22303
  "locationInModule": {
22108
22304
  "filename": "lib/router-input.ts",
22109
- "line": 260
22305
+ "line": 261
22110
22306
  },
22111
22307
  "name": "RouterInputProps",
22112
22308
  "properties": [
@@ -22119,7 +22315,7 @@
22119
22315
  "immutable": true,
22120
22316
  "locationInModule": {
22121
22317
  "filename": "lib/router-input.ts",
22122
- "line": 276
22318
+ "line": 277
22123
22319
  },
22124
22320
  "name": "configuration",
22125
22321
  "type": {
@@ -22135,7 +22331,7 @@
22135
22331
  "immutable": true,
22136
22332
  "locationInModule": {
22137
22333
  "filename": "lib/router-input.ts",
22138
- "line": 267
22334
+ "line": 268
22139
22335
  },
22140
22336
  "name": "maximumBitrate",
22141
22337
  "type": {
@@ -22151,7 +22347,7 @@
22151
22347
  "immutable": true,
22152
22348
  "locationInModule": {
22153
22349
  "filename": "lib/router-input.ts",
22154
- "line": 269
22350
+ "line": 270
22155
22351
  },
22156
22352
  "name": "routingScope",
22157
22353
  "type": {
@@ -22168,7 +22364,7 @@
22168
22364
  "immutable": true,
22169
22365
  "locationInModule": {
22170
22366
  "filename": "lib/router-input.ts",
22171
- "line": 281
22367
+ "line": 282
22172
22368
  },
22173
22369
  "name": "maintenanceConfiguration",
22174
22370
  "optional": true,
@@ -22186,7 +22382,7 @@
22186
22382
  "immutable": true,
22187
22383
  "locationInModule": {
22188
22384
  "filename": "lib/router-input.ts",
22189
- "line": 286
22385
+ "line": 287
22190
22386
  },
22191
22387
  "name": "regionName",
22192
22388
  "optional": true,
@@ -22204,7 +22400,7 @@
22204
22400
  "immutable": true,
22205
22401
  "locationInModule": {
22206
22402
  "filename": "lib/router-input.ts",
22207
- "line": 265
22403
+ "line": 266
22208
22404
  },
22209
22405
  "name": "routerInputName",
22210
22406
  "optional": true,
@@ -22222,7 +22418,7 @@
22222
22418
  "immutable": true,
22223
22419
  "locationInModule": {
22224
22420
  "filename": "lib/router-input.ts",
22225
- "line": 291
22421
+ "line": 292
22226
22422
  },
22227
22423
  "name": "tags",
22228
22424
  "optional": true,
@@ -22245,7 +22441,7 @@
22245
22441
  "immutable": true,
22246
22442
  "locationInModule": {
22247
22443
  "filename": "lib/router-input.ts",
22248
- "line": 274
22444
+ "line": 275
22249
22445
  },
22250
22446
  "name": "tier",
22251
22447
  "optional": true,
@@ -22264,7 +22460,7 @@
22264
22460
  "immutable": true,
22265
22461
  "locationInModule": {
22266
22462
  "filename": "lib/router-input.ts",
22267
- "line": 300
22463
+ "line": 301
22268
22464
  },
22269
22465
  "name": "transitEncryption",
22270
22466
  "optional": true,
@@ -22280,7 +22476,7 @@
22280
22476
  "docs": {
22281
22477
  "stability": "experimental",
22282
22478
  "summary": "Factory class for creating Router Input protocol configurations.",
22283
- "example": "declare 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});",
22479
+ "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
22480
  "custom": {
22285
22481
  "exampleMetadata": "infused"
22286
22482
  }
@@ -22289,7 +22485,7 @@
22289
22485
  "kind": "class",
22290
22486
  "locationInModule": {
22291
22487
  "filename": "lib/router-input.ts",
22292
- "line": 467
22488
+ "line": 468
22293
22489
  },
22294
22490
  "methods": [
22295
22491
  {
@@ -22300,7 +22496,7 @@
22300
22496
  },
22301
22497
  "locationInModule": {
22302
22498
  "filename": "lib/router-input.ts",
22303
- "line": 488
22499
+ "line": 489
22304
22500
  },
22305
22501
  "name": "rist",
22306
22502
  "parameters": [
@@ -22329,7 +22525,7 @@
22329
22525
  },
22330
22526
  "locationInModule": {
22331
22527
  "filename": "lib/router-input.ts",
22332
- "line": 473
22528
+ "line": 474
22333
22529
  },
22334
22530
  "name": "rtp",
22335
22531
  "parameters": [
@@ -22358,7 +22554,7 @@
22358
22554
  },
22359
22555
  "locationInModule": {
22360
22556
  "filename": "lib/router-input.ts",
22361
- "line": 518
22557
+ "line": 519
22362
22558
  },
22363
22559
  "name": "srtCaller",
22364
22560
  "parameters": [
@@ -22387,7 +22583,7 @@
22387
22583
  },
22388
22584
  "locationInModule": {
22389
22585
  "filename": "lib/router-input.ts",
22390
- "line": 503
22586
+ "line": 504
22391
22587
  },
22392
22588
  "name": "srtListener",
22393
22589
  "parameters": [
@@ -22426,7 +22622,7 @@
22426
22622
  "kind": "class",
22427
22623
  "locationInModule": {
22428
22624
  "filename": "lib/router-input.ts",
22429
- "line": 22
22625
+ "line": 23
22430
22626
  },
22431
22627
  "methods": [
22432
22628
  {
@@ -22436,7 +22632,7 @@
22436
22632
  },
22437
22633
  "locationInModule": {
22438
22634
  "filename": "lib/router-input.ts",
22439
- "line": 36
22635
+ "line": 37
22440
22636
  },
22441
22637
  "name": "of",
22442
22638
  "parameters": [
@@ -22464,7 +22660,7 @@
22464
22660
  },
22465
22661
  "locationInModule": {
22466
22662
  "filename": "lib/router-input.ts",
22467
- "line": 44
22663
+ "line": 45
22468
22664
  },
22469
22665
  "name": "toString",
22470
22666
  "returns": {
@@ -22485,7 +22681,7 @@
22485
22681
  "immutable": true,
22486
22682
  "locationInModule": {
22487
22683
  "filename": "lib/router-input.ts",
22488
- "line": 26
22684
+ "line": 27
22489
22685
  },
22490
22686
  "name": "RIST",
22491
22687
  "static": true,
@@ -22502,7 +22698,7 @@
22502
22698
  "immutable": true,
22503
22699
  "locationInModule": {
22504
22700
  "filename": "lib/router-input.ts",
22505
- "line": 24
22701
+ "line": 25
22506
22702
  },
22507
22703
  "name": "RTP",
22508
22704
  "static": true,
@@ -22519,7 +22715,7 @@
22519
22715
  "immutable": true,
22520
22716
  "locationInModule": {
22521
22717
  "filename": "lib/router-input.ts",
22522
- "line": 28
22718
+ "line": 29
22523
22719
  },
22524
22720
  "name": "SRT_CALLER",
22525
22721
  "static": true,
@@ -22536,7 +22732,7 @@
22536
22732
  "immutable": true,
22537
22733
  "locationInModule": {
22538
22734
  "filename": "lib/router-input.ts",
22539
- "line": 30
22735
+ "line": 31
22540
22736
  },
22541
22737
  "name": "SRT_LISTENER",
22542
22738
  "static": true,
@@ -22552,7 +22748,7 @@
22552
22748
  "immutable": true,
22553
22749
  "locationInModule": {
22554
22750
  "filename": "lib/router-input.ts",
22555
- "line": 41
22751
+ "line": 42
22556
22752
  },
22557
22753
  "name": "value",
22558
22754
  "type": {
@@ -22567,7 +22763,7 @@
22567
22763
  "docs": {
22568
22764
  "stability": "experimental",
22569
22765
  "summary": "Routing tier based on your maximum bitrate requirements.",
22570
- "example": "declare 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});",
22766
+ "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
22767
  "custom": {
22572
22768
  "exampleMetadata": "infused"
22573
22769
  }
@@ -22576,7 +22772,7 @@
22576
22772
  "kind": "class",
22577
22773
  "locationInModule": {
22578
22774
  "filename": "lib/router-input.ts",
22579
- "line": 222
22775
+ "line": 223
22580
22776
  },
22581
22777
  "methods": [
22582
22778
  {
@@ -22586,7 +22782,7 @@
22586
22782
  },
22587
22783
  "locationInModule": {
22588
22784
  "filename": "lib/router-input.ts",
22589
- "line": 234
22785
+ "line": 235
22590
22786
  },
22591
22787
  "name": "of",
22592
22788
  "parameters": [
@@ -22614,7 +22810,7 @@
22614
22810
  },
22615
22811
  "locationInModule": {
22616
22812
  "filename": "lib/router-input.ts",
22617
- "line": 242
22813
+ "line": 243
22618
22814
  },
22619
22815
  "name": "toString",
22620
22816
  "returns": {
@@ -22635,7 +22831,7 @@
22635
22831
  "immutable": true,
22636
22832
  "locationInModule": {
22637
22833
  "filename": "lib/router-input.ts",
22638
- "line": 224
22834
+ "line": 225
22639
22835
  },
22640
22836
  "name": "INPUT_100",
22641
22837
  "static": true,
@@ -22652,7 +22848,7 @@
22652
22848
  "immutable": true,
22653
22849
  "locationInModule": {
22654
22850
  "filename": "lib/router-input.ts",
22655
- "line": 228
22851
+ "line": 229
22656
22852
  },
22657
22853
  "name": "INPUT_20",
22658
22854
  "static": true,
@@ -22669,7 +22865,7 @@
22669
22865
  "immutable": true,
22670
22866
  "locationInModule": {
22671
22867
  "filename": "lib/router-input.ts",
22672
- "line": 226
22868
+ "line": 227
22673
22869
  },
22674
22870
  "name": "INPUT_50",
22675
22871
  "static": true,
@@ -22685,7 +22881,7 @@
22685
22881
  "immutable": true,
22686
22882
  "locationInModule": {
22687
22883
  "filename": "lib/router-input.ts",
22688
- "line": 239
22884
+ "line": 240
22689
22885
  },
22690
22886
  "name": "value",
22691
22887
  "type": {
@@ -23202,7 +23398,7 @@
23202
23398
  },
23203
23399
  "locationInModule": {
23204
23400
  "filename": "lib/router-output.ts",
23205
- "line": 919
23401
+ "line": 903
23206
23402
  },
23207
23403
  "parameters": [
23208
23404
  {
@@ -23231,7 +23427,7 @@
23231
23427
  "kind": "class",
23232
23428
  "locationInModule": {
23233
23429
  "filename": "lib/router-output.ts",
23234
- "line": 839
23430
+ "line": 823
23235
23431
  },
23236
23432
  "methods": [
23237
23433
  {
@@ -23243,7 +23439,7 @@
23243
23439
  },
23244
23440
  "locationInModule": {
23245
23441
  "filename": "lib/router-output.ts",
23246
- "line": 856
23442
+ "line": 840
23247
23443
  },
23248
23444
  "name": "fromRouterOutputArn",
23249
23445
  "parameters": [
@@ -23291,7 +23487,7 @@
23291
23487
  },
23292
23488
  "locationInModule": {
23293
23489
  "filename": "lib/router-output.ts",
23294
- "line": 870
23490
+ "line": 854
23295
23491
  },
23296
23492
  "name": "fromRouterOutputAttributes",
23297
23493
  "parameters": [
@@ -23337,7 +23533,7 @@
23337
23533
  },
23338
23534
  "locationInModule": {
23339
23535
  "filename": "lib/router-output.ts",
23340
- "line": 775
23536
+ "line": 759
23341
23537
  },
23342
23538
  "name": "metric",
23343
23539
  "overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
@@ -23370,7 +23566,7 @@
23370
23566
  },
23371
23567
  "locationInModule": {
23372
23568
  "filename": "lib/router-output.ts",
23373
- "line": 826
23569
+ "line": 810
23374
23570
  },
23375
23571
  "name": "metricArqRequests",
23376
23572
  "overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
@@ -23396,7 +23592,7 @@
23396
23592
  },
23397
23593
  "locationInModule": {
23398
23594
  "filename": "lib/router-output.ts",
23399
- "line": 790
23595
+ "line": 774
23400
23596
  },
23401
23597
  "name": "metricBitrate",
23402
23598
  "overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
@@ -23423,7 +23619,7 @@
23423
23619
  },
23424
23620
  "locationInModule": {
23425
23621
  "filename": "lib/router-output.ts",
23426
- "line": 814
23622
+ "line": 798
23427
23623
  },
23428
23624
  "name": "metricConnected",
23429
23625
  "overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
@@ -23449,7 +23645,7 @@
23449
23645
  },
23450
23646
  "locationInModule": {
23451
23647
  "filename": "lib/router-output.ts",
23452
- "line": 802
23648
+ "line": 786
23453
23649
  },
23454
23650
  "name": "metricTotalPackets",
23455
23651
  "overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
@@ -23480,7 +23676,7 @@
23480
23676
  "immutable": true,
23481
23677
  "locationInModule": {
23482
23678
  "filename": "lib/router-output.ts",
23483
- "line": 842
23679
+ "line": 826
23484
23680
  },
23485
23681
  "name": "PROPERTY_INJECTION_ID",
23486
23682
  "static": true,
@@ -23496,7 +23692,7 @@
23496
23692
  "immutable": true,
23497
23693
  "locationInModule": {
23498
23694
  "filename": "lib/router-output.ts",
23499
- "line": 915
23695
+ "line": 899
23500
23696
  },
23501
23697
  "name": "ipAddress",
23502
23698
  "overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
@@ -23512,7 +23708,7 @@
23512
23708
  "immutable": true,
23513
23709
  "locationInModule": {
23514
23710
  "filename": "lib/router-output.ts",
23515
- "line": 912
23711
+ "line": 896
23516
23712
  },
23517
23713
  "name": "routerOutputArn",
23518
23714
  "overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
@@ -23528,7 +23724,7 @@
23528
23724
  "immutable": true,
23529
23725
  "locationInModule": {
23530
23726
  "filename": "lib/router-output.ts",
23531
- "line": 914
23727
+ "line": 898
23532
23728
  },
23533
23729
  "name": "routerOutputId",
23534
23730
  "overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
@@ -23544,7 +23740,7 @@
23544
23740
  "immutable": true,
23545
23741
  "locationInModule": {
23546
23742
  "filename": "lib/router-output.ts",
23547
- "line": 913
23743
+ "line": 897
23548
23744
  },
23549
23745
  "name": "routerOutputName",
23550
23746
  "overrides": "@aws-cdk/aws-mediaconnect-alpha.IRouterOutput",
@@ -23561,7 +23757,7 @@
23561
23757
  "immutable": true,
23562
23758
  "locationInModule": {
23563
23759
  "filename": "lib/router-output.ts",
23564
- "line": 768
23760
+ "line": 752
23565
23761
  },
23566
23762
  "name": "routerOutputRef",
23567
23763
  "overrides": "aws-cdk-lib.interfaces.aws_mediaconnect.IRouterOutputRef",
@@ -23577,7 +23773,7 @@
23577
23773
  "immutable": true,
23578
23774
  "locationInModule": {
23579
23775
  "filename": "lib/router-output.ts",
23580
- "line": 916
23776
+ "line": 900
23581
23777
  },
23582
23778
  "name": "createdAt",
23583
23779
  "optional": true,
@@ -23594,7 +23790,7 @@
23594
23790
  "immutable": true,
23595
23791
  "locationInModule": {
23596
23792
  "filename": "lib/router-output.ts",
23597
- "line": 917
23793
+ "line": 901
23598
23794
  },
23599
23795
  "name": "updatedAt",
23600
23796
  "optional": true,
@@ -23621,7 +23817,7 @@
23621
23817
  "kind": "interface",
23622
23818
  "locationInModule": {
23623
23819
  "filename": "lib/router-output.ts",
23624
- "line": 198
23820
+ "line": 200
23625
23821
  },
23626
23822
  "name": "RouterOutputAttributes",
23627
23823
  "properties": [
@@ -23634,7 +23830,7 @@
23634
23830
  "immutable": true,
23635
23831
  "locationInModule": {
23636
23832
  "filename": "lib/router-output.ts",
23637
- "line": 202
23833
+ "line": 204
23638
23834
  },
23639
23835
  "name": "routerOutputArn",
23640
23836
  "type": {
@@ -23651,7 +23847,7 @@
23651
23847
  "immutable": true,
23652
23848
  "locationInModule": {
23653
23849
  "filename": "lib/router-output.ts",
23654
- "line": 219
23850
+ "line": 221
23655
23851
  },
23656
23852
  "name": "routerOutputId",
23657
23853
  "optional": true,
@@ -23670,7 +23866,7 @@
23670
23866
  "immutable": true,
23671
23867
  "locationInModule": {
23672
23868
  "filename": "lib/router-output.ts",
23673
- "line": 212
23869
+ "line": 214
23674
23870
  },
23675
23871
  "name": "routerOutputName",
23676
23872
  "optional": true,
@@ -23701,7 +23897,7 @@
23701
23897
  "kind": "class",
23702
23898
  "locationInModule": {
23703
23899
  "filename": "lib/router-output.ts",
23704
- "line": 535
23900
+ "line": 534
23705
23901
  },
23706
23902
  "methods": [
23707
23903
  {
@@ -23714,7 +23910,7 @@
23714
23910
  },
23715
23911
  "locationInModule": {
23716
23912
  "filename": "lib/router-output.ts",
23717
- "line": 618
23913
+ "line": 602
23718
23914
  },
23719
23915
  "name": "mediaConnectFlow",
23720
23916
  "parameters": [
@@ -23745,7 +23941,7 @@
23745
23941
  },
23746
23942
  "locationInModule": {
23747
23943
  "filename": "lib/router-output.ts",
23748
- "line": 639
23944
+ "line": 623
23749
23945
  },
23750
23946
  "name": "mediaConnectFlowWithoutConnection",
23751
23947
  "parameters": [
@@ -23768,15 +23964,13 @@
23768
23964
  },
23769
23965
  {
23770
23966
  "docs": {
23771
- "example": " RouterOutputConfiguration.mediaLiveInput({\n mediaLiveInputArn: 'arn:aws:medialive:us-east-1:123456789012:input:1234567',\n mediaLivePipelineId: MediaLivePipeline.PIPELINE_0,\n });",
23772
23967
  "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
23968
  "stability": "experimental",
23775
23969
  "summary": "Create a MediaLive Router Output configuration with a specific input connection."
23776
23970
  },
23777
23971
  "locationInModule": {
23778
23972
  "filename": "lib/router-output.ts",
23779
- "line": 573
23973
+ "line": 564
23780
23974
  },
23781
23975
  "name": "mediaLiveInput",
23782
23976
  "parameters": [
@@ -23799,15 +23993,13 @@
23799
23993
  },
23800
23994
  {
23801
23995
  "docs": {
23802
- "example": " RouterOutputConfiguration.mediaLiveInputWithoutConnection({\n availabilityZone: 'us-east-1a',\n });",
23803
23996
  "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
23997
  "stability": "experimental",
23806
23998
  "summary": "Create a MediaLive Router Output configuration without a specific input connection."
23807
23999
  },
23808
24000
  "locationInModule": {
23809
24001
  "filename": "lib/router-output.ts",
23810
- "line": 595
24002
+ "line": 579
23811
24003
  },
23812
24004
  "name": "mediaLiveInputWithoutConnection",
23813
24005
  "parameters": [
@@ -23837,7 +24029,7 @@
23837
24029
  },
23838
24030
  "locationInModule": {
23839
24031
  "filename": "lib/router-output.ts",
23840
- "line": 554
24032
+ "line": 553
23841
24033
  },
23842
24034
  "name": "standard",
23843
24035
  "parameters": [
@@ -23877,7 +24069,7 @@
23877
24069
  "kind": "interface",
23878
24070
  "locationInModule": {
23879
24071
  "filename": "lib/router-output.ts",
23880
- "line": 161
24072
+ "line": 162
23881
24073
  },
23882
24074
  "name": "RouterOutputProps",
23883
24075
  "properties": [
@@ -23890,7 +24082,7 @@
23890
24082
  "immutable": true,
23891
24083
  "locationInModule": {
23892
24084
  "filename": "lib/router-output.ts",
23893
- "line": 177
24085
+ "line": 179
23894
24086
  },
23895
24087
  "name": "configuration",
23896
24088
  "type": {
@@ -23906,7 +24098,7 @@
23906
24098
  "immutable": true,
23907
24099
  "locationInModule": {
23908
24100
  "filename": "lib/router-output.ts",
23909
- "line": 168
24101
+ "line": 169
23910
24102
  },
23911
24103
  "name": "maximumBitrate",
23912
24104
  "type": {
@@ -23922,7 +24114,7 @@
23922
24114
  "immutable": true,
23923
24115
  "locationInModule": {
23924
24116
  "filename": "lib/router-output.ts",
23925
- "line": 170
24117
+ "line": 171
23926
24118
  },
23927
24119
  "name": "routingScope",
23928
24120
  "type": {
@@ -23939,7 +24131,7 @@
23939
24131
  "immutable": true,
23940
24132
  "locationInModule": {
23941
24133
  "filename": "lib/router-output.ts",
23942
- "line": 182
24134
+ "line": 184
23943
24135
  },
23944
24136
  "name": "maintenanceConfiguration",
23945
24137
  "optional": true,
@@ -23957,7 +24149,7 @@
23957
24149
  "immutable": true,
23958
24150
  "locationInModule": {
23959
24151
  "filename": "lib/router-output.ts",
23960
- "line": 187
24152
+ "line": 189
23961
24153
  },
23962
24154
  "name": "regionName",
23963
24155
  "optional": true,
@@ -23975,7 +24167,7 @@
23975
24167
  "immutable": true,
23976
24168
  "locationInModule": {
23977
24169
  "filename": "lib/router-output.ts",
23978
- "line": 166
24170
+ "line": 167
23979
24171
  },
23980
24172
  "name": "routerOutputName",
23981
24173
  "optional": true,
@@ -23993,7 +24185,7 @@
23993
24185
  "immutable": true,
23994
24186
  "locationInModule": {
23995
24187
  "filename": "lib/router-output.ts",
23996
- "line": 192
24188
+ "line": 194
23997
24189
  },
23998
24190
  "name": "tags",
23999
24191
  "optional": true,
@@ -24011,12 +24203,12 @@
24011
24203
  "docs": {
24012
24204
  "default": "RouterOutputTier.OUTPUT_20",
24013
24205
  "stability": "experimental",
24014
- "summary": "Select a tier based on your maximum bitrate requirements."
24206
+ "summary": "Routing tier that determines the maximum bitrate (in Mbps) for this output."
24015
24207
  },
24016
24208
  "immutable": true,
24017
24209
  "locationInModule": {
24018
24210
  "filename": "lib/router-output.ts",
24019
- "line": 175
24211
+ "line": 177
24020
24212
  },
24021
24213
  "name": "tier",
24022
24214
  "optional": true,
@@ -24042,7 +24234,7 @@
24042
24234
  "kind": "class",
24043
24235
  "locationInModule": {
24044
24236
  "filename": "lib/router-output.ts",
24045
- "line": 289
24237
+ "line": 291
24046
24238
  },
24047
24239
  "methods": [
24048
24240
  {
@@ -24054,7 +24246,7 @@
24054
24246
  },
24055
24247
  "locationInModule": {
24056
24248
  "filename": "lib/router-output.ts",
24057
- "line": 327
24249
+ "line": 329
24058
24250
  },
24059
24251
  "name": "rist",
24060
24252
  "parameters": [
@@ -24084,7 +24276,7 @@
24084
24276
  },
24085
24277
  "locationInModule": {
24086
24278
  "filename": "lib/router-output.ts",
24087
- "line": 303
24279
+ "line": 305
24088
24280
  },
24089
24281
  "name": "rtp",
24090
24282
  "parameters": [
@@ -24114,7 +24306,7 @@
24114
24306
  },
24115
24307
  "locationInModule": {
24116
24308
  "filename": "lib/router-output.ts",
24117
- "line": 374
24309
+ "line": 376
24118
24310
  },
24119
24311
  "name": "srtCaller",
24120
24312
  "parameters": [
@@ -24144,7 +24336,7 @@
24144
24336
  },
24145
24337
  "locationInModule": {
24146
24338
  "filename": "lib/router-output.ts",
24147
- "line": 350
24339
+ "line": 352
24148
24340
  },
24149
24341
  "name": "srtListener",
24150
24342
  "parameters": [
@@ -24183,7 +24375,7 @@
24183
24375
  "kind": "class",
24184
24376
  "locationInModule": {
24185
24377
  "filename": "lib/router-output.ts",
24186
- "line": 21
24378
+ "line": 22
24187
24379
  },
24188
24380
  "methods": [
24189
24381
  {
@@ -24193,7 +24385,7 @@
24193
24385
  },
24194
24386
  "locationInModule": {
24195
24387
  "filename": "lib/router-output.ts",
24196
- "line": 35
24388
+ "line": 36
24197
24389
  },
24198
24390
  "name": "of",
24199
24391
  "parameters": [
@@ -24221,7 +24413,7 @@
24221
24413
  },
24222
24414
  "locationInModule": {
24223
24415
  "filename": "lib/router-output.ts",
24224
- "line": 43
24416
+ "line": 44
24225
24417
  },
24226
24418
  "name": "toString",
24227
24419
  "returns": {
@@ -24242,7 +24434,7 @@
24242
24434
  "immutable": true,
24243
24435
  "locationInModule": {
24244
24436
  "filename": "lib/router-output.ts",
24245
- "line": 25
24437
+ "line": 26
24246
24438
  },
24247
24439
  "name": "RIST",
24248
24440
  "static": true,
@@ -24259,7 +24451,7 @@
24259
24451
  "immutable": true,
24260
24452
  "locationInModule": {
24261
24453
  "filename": "lib/router-output.ts",
24262
- "line": 23
24454
+ "line": 24
24263
24455
  },
24264
24456
  "name": "RTP",
24265
24457
  "static": true,
@@ -24276,7 +24468,7 @@
24276
24468
  "immutable": true,
24277
24469
  "locationInModule": {
24278
24470
  "filename": "lib/router-output.ts",
24279
- "line": 27
24471
+ "line": 28
24280
24472
  },
24281
24473
  "name": "SRT_CALLER",
24282
24474
  "static": true,
@@ -24293,7 +24485,7 @@
24293
24485
  "immutable": true,
24294
24486
  "locationInModule": {
24295
24487
  "filename": "lib/router-output.ts",
24296
- "line": 29
24488
+ "line": 30
24297
24489
  },
24298
24490
  "name": "SRT_LISTENER",
24299
24491
  "static": true,
@@ -24309,7 +24501,7 @@
24309
24501
  "immutable": true,
24310
24502
  "locationInModule": {
24311
24503
  "filename": "lib/router-output.ts",
24312
- "line": 40
24504
+ "line": 41
24313
24505
  },
24314
24506
  "name": "value",
24315
24507
  "type": {
@@ -24324,7 +24516,7 @@
24324
24516
  "docs": {
24325
24517
  "stability": "experimental",
24326
24518
  "summary": "Routing tier that determines the maximum bitrate (in Mbps) for a Router Output.",
24327
- "example": "declare 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});",
24519
+ "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
24520
  "custom": {
24329
24521
  "exampleMetadata": "infused"
24330
24522
  }
@@ -24333,7 +24525,7 @@
24333
24525
  "kind": "class",
24334
24526
  "locationInModule": {
24335
24527
  "filename": "lib/router-output.ts",
24336
- "line": 51
24528
+ "line": 52
24337
24529
  },
24338
24530
  "methods": [
24339
24531
  {
@@ -24343,7 +24535,7 @@
24343
24535
  },
24344
24536
  "locationInModule": {
24345
24537
  "filename": "lib/router-output.ts",
24346
- "line": 63
24538
+ "line": 64
24347
24539
  },
24348
24540
  "name": "of",
24349
24541
  "parameters": [
@@ -24371,7 +24563,7 @@
24371
24563
  },
24372
24564
  "locationInModule": {
24373
24565
  "filename": "lib/router-output.ts",
24374
- "line": 71
24566
+ "line": 72
24375
24567
  },
24376
24568
  "name": "toString",
24377
24569
  "returns": {
@@ -24392,7 +24584,7 @@
24392
24584
  "immutable": true,
24393
24585
  "locationInModule": {
24394
24586
  "filename": "lib/router-output.ts",
24395
- "line": 53
24587
+ "line": 54
24396
24588
  },
24397
24589
  "name": "OUTPUT_100",
24398
24590
  "static": true,
@@ -24409,7 +24601,7 @@
24409
24601
  "immutable": true,
24410
24602
  "locationInModule": {
24411
24603
  "filename": "lib/router-output.ts",
24412
- "line": 57
24604
+ "line": 58
24413
24605
  },
24414
24606
  "name": "OUTPUT_20",
24415
24607
  "static": true,
@@ -24426,7 +24618,7 @@
24426
24618
  "immutable": true,
24427
24619
  "locationInModule": {
24428
24620
  "filename": "lib/router-output.ts",
24429
- "line": 55
24621
+ "line": 56
24430
24622
  },
24431
24623
  "name": "OUTPUT_50",
24432
24624
  "static": true,
@@ -24442,7 +24634,7 @@
24442
24634
  "immutable": true,
24443
24635
  "locationInModule": {
24444
24636
  "filename": "lib/router-output.ts",
24445
- "line": 68
24637
+ "line": 69
24446
24638
  },
24447
24639
  "name": "value",
24448
24640
  "type": {
@@ -24614,7 +24806,7 @@
24614
24806
  "docs": {
24615
24807
  "stability": "experimental",
24616
24808
  "summary": "Routing scope for the Router Input.",
24617
- "example": "declare 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});",
24809
+ "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
24810
  "custom": {
24619
24811
  "exampleMetadata": "infused"
24620
24812
  }
@@ -24623,7 +24815,7 @@
24623
24815
  "kind": "class",
24624
24816
  "locationInModule": {
24625
24817
  "filename": "lib/router-input.ts",
24626
- "line": 196
24818
+ "line": 197
24627
24819
  },
24628
24820
  "methods": [
24629
24821
  {
@@ -24633,7 +24825,7 @@
24633
24825
  },
24634
24826
  "locationInModule": {
24635
24827
  "filename": "lib/router-input.ts",
24636
- "line": 206
24828
+ "line": 207
24637
24829
  },
24638
24830
  "name": "of",
24639
24831
  "parameters": [
@@ -24661,7 +24853,7 @@
24661
24853
  },
24662
24854
  "locationInModule": {
24663
24855
  "filename": "lib/router-input.ts",
24664
- "line": 214
24856
+ "line": 215
24665
24857
  },
24666
24858
  "name": "toString",
24667
24859
  "returns": {
@@ -24682,7 +24874,7 @@
24682
24874
  "immutable": true,
24683
24875
  "locationInModule": {
24684
24876
  "filename": "lib/router-input.ts",
24685
- "line": 200
24877
+ "line": 201
24686
24878
  },
24687
24879
  "name": "GLOBAL",
24688
24880
  "static": true,
@@ -24699,7 +24891,7 @@
24699
24891
  "immutable": true,
24700
24892
  "locationInModule": {
24701
24893
  "filename": "lib/router-input.ts",
24702
- "line": 198
24894
+ "line": 199
24703
24895
  },
24704
24896
  "name": "REGIONAL",
24705
24897
  "static": true,
@@ -24715,7 +24907,7 @@
24715
24907
  "immutable": true,
24716
24908
  "locationInModule": {
24717
24909
  "filename": "lib/router-input.ts",
24718
- "line": 211
24910
+ "line": 212
24719
24911
  },
24720
24912
  "name": "value",
24721
24913
  "type": {
@@ -24853,7 +25045,7 @@
24853
25045
  "kind": "interface",
24854
25046
  "locationInModule": {
24855
25047
  "filename": "lib/router-output.ts",
24856
- "line": 225
25048
+ "line": 227
24857
25049
  },
24858
25050
  "name": "RtpOutputProtocolProps",
24859
25051
  "properties": [
@@ -24866,7 +25058,7 @@
24866
25058
  "immutable": true,
24867
25059
  "locationInModule": {
24868
25060
  "filename": "lib/router-output.ts",
24869
- "line": 227
25061
+ "line": 229
24870
25062
  },
24871
25063
  "name": "destinationAddress",
24872
25064
  "type": {
@@ -24882,7 +25074,7 @@
24882
25074
  "immutable": true,
24883
25075
  "locationInModule": {
24884
25076
  "filename": "lib/router-output.ts",
24885
- "line": 229
25077
+ "line": 231
24886
25078
  },
24887
25079
  "name": "port",
24888
25080
  "type": {
@@ -24899,7 +25091,7 @@
24899
25091
  "immutable": true,
24900
25092
  "locationInModule": {
24901
25093
  "filename": "lib/router-output.ts",
24902
- "line": 234
25094
+ "line": 236
24903
25095
  },
24904
25096
  "name": "forwardErrorCorrection",
24905
25097
  "optional": true,
@@ -24925,7 +25117,7 @@
24925
25117
  "kind": "interface",
24926
25118
  "locationInModule": {
24927
25119
  "filename": "lib/router-input.ts",
24928
- "line": 396
25120
+ "line": 397
24929
25121
  },
24930
25122
  "name": "RtpProtocolProps",
24931
25123
  "properties": [
@@ -24938,7 +25130,7 @@
24938
25130
  "immutable": true,
24939
25131
  "locationInModule": {
24940
25132
  "filename": "lib/router-input.ts",
24941
- "line": 398
25133
+ "line": 399
24942
25134
  },
24943
25135
  "name": "port",
24944
25136
  "type": {
@@ -24955,7 +25147,7 @@
24955
25147
  "immutable": true,
24956
25148
  "locationInModule": {
24957
25149
  "filename": "lib/router-input.ts",
24958
- "line": 403
25150
+ "line": 404
24959
25151
  },
24960
25152
  "name": "forwardErrorCorrection",
24961
25153
  "optional": true,
@@ -25917,7 +26109,7 @@
25917
26109
  "kind": "class",
25918
26110
  "locationInModule": {
25919
26111
  "filename": "lib/router-input.ts",
25920
- "line": 361
26112
+ "line": 362
25921
26113
  },
25922
26114
  "methods": [
25923
26115
  {
@@ -25927,7 +26119,7 @@
25927
26119
  },
25928
26120
  "locationInModule": {
25929
26121
  "filename": "lib/router-input.ts",
25930
- "line": 365
26122
+ "line": 366
25931
26123
  },
25932
26124
  "name": "none",
25933
26125
  "returns": {
@@ -25945,7 +26137,7 @@
25945
26137
  },
25946
26138
  "locationInModule": {
25947
26139
  "filename": "lib/router-input.ts",
25948
- "line": 372
26140
+ "line": 373
25949
26141
  },
25950
26142
  "name": "primarySecondary",
25951
26143
  "parameters": [
@@ -26891,7 +27083,7 @@
26891
27083
  "kind": "interface",
26892
27084
  "locationInModule": {
26893
27085
  "filename": "lib/router-output.ts",
26894
- "line": 265
27086
+ "line": 267
26895
27087
  },
26896
27088
  "name": "SrtCallerOutputProtocolProps",
26897
27089
  "properties": [
@@ -26904,7 +27096,7 @@
26904
27096
  "immutable": true,
26905
27097
  "locationInModule": {
26906
27098
  "filename": "lib/router-output.ts",
26907
- "line": 267
27099
+ "line": 269
26908
27100
  },
26909
27101
  "name": "destinationAddress",
26910
27102
  "type": {
@@ -26920,7 +27112,7 @@
26920
27112
  "immutable": true,
26921
27113
  "locationInModule": {
26922
27114
  "filename": "lib/router-output.ts",
26923
- "line": 269
27115
+ "line": 271
26924
27116
  },
26925
27117
  "name": "destinationPort",
26926
27118
  "type": {
@@ -26936,7 +27128,7 @@
26936
27128
  "immutable": true,
26937
27129
  "locationInModule": {
26938
27130
  "filename": "lib/router-output.ts",
26939
- "line": 271
27131
+ "line": 273
26940
27132
  },
26941
27133
  "name": "minimumLatency",
26942
27134
  "type": {
@@ -26953,7 +27145,7 @@
26953
27145
  "immutable": true,
26954
27146
  "locationInModule": {
26955
27147
  "filename": "lib/router-output.ts",
26956
- "line": 281
27148
+ "line": 283
26957
27149
  },
26958
27150
  "name": "encryptionConfiguration",
26959
27151
  "optional": true,
@@ -26971,7 +27163,7 @@
26971
27163
  "immutable": true,
26972
27164
  "locationInModule": {
26973
27165
  "filename": "lib/router-output.ts",
26974
- "line": 276
27166
+ "line": 278
26975
27167
  },
26976
27168
  "name": "streamId",
26977
27169
  "optional": true,
@@ -26997,7 +27189,7 @@
26997
27189
  "kind": "interface",
26998
27190
  "locationInModule": {
26999
27191
  "filename": "lib/router-input.ts",
27000
- "line": 434
27192
+ "line": 435
27001
27193
  },
27002
27194
  "name": "SrtCallerProtocolProps",
27003
27195
  "properties": [
@@ -27010,7 +27202,7 @@
27010
27202
  "immutable": true,
27011
27203
  "locationInModule": {
27012
27204
  "filename": "lib/router-input.ts",
27013
- "line": 440
27205
+ "line": 441
27014
27206
  },
27015
27207
  "name": "minimumLatency",
27016
27208
  "type": {
@@ -27026,7 +27218,7 @@
27026
27218
  "immutable": true,
27027
27219
  "locationInModule": {
27028
27220
  "filename": "lib/router-input.ts",
27029
- "line": 436
27221
+ "line": 437
27030
27222
  },
27031
27223
  "name": "sourceAddress",
27032
27224
  "type": {
@@ -27042,7 +27234,7 @@
27042
27234
  "immutable": true,
27043
27235
  "locationInModule": {
27044
27236
  "filename": "lib/router-input.ts",
27045
- "line": 438
27237
+ "line": 439
27046
27238
  },
27047
27239
  "name": "sourcePort",
27048
27240
  "type": {
@@ -27059,7 +27251,7 @@
27059
27251
  "immutable": true,
27060
27252
  "locationInModule": {
27061
27253
  "filename": "lib/router-input.ts",
27062
- "line": 450
27254
+ "line": 451
27063
27255
  },
27064
27256
  "name": "decryptionConfiguration",
27065
27257
  "optional": true,
@@ -27077,7 +27269,7 @@
27077
27269
  "immutable": true,
27078
27270
  "locationInModule": {
27079
27271
  "filename": "lib/router-input.ts",
27080
- "line": 445
27272
+ "line": 446
27081
27273
  },
27082
27274
  "name": "streamId",
27083
27275
  "optional": true,
@@ -27220,7 +27412,7 @@
27220
27412
  "kind": "interface",
27221
27413
  "locationInModule": {
27222
27414
  "filename": "lib/router-output.ts",
27223
- "line": 250
27415
+ "line": 252
27224
27416
  },
27225
27417
  "name": "SrtListenerOutputProtocolProps",
27226
27418
  "properties": [
@@ -27233,7 +27425,7 @@
27233
27425
  "immutable": true,
27234
27426
  "locationInModule": {
27235
27427
  "filename": "lib/router-output.ts",
27236
- "line": 254
27428
+ "line": 256
27237
27429
  },
27238
27430
  "name": "minimumLatency",
27239
27431
  "type": {
@@ -27249,7 +27441,7 @@
27249
27441
  "immutable": true,
27250
27442
  "locationInModule": {
27251
27443
  "filename": "lib/router-output.ts",
27252
- "line": 252
27444
+ "line": 254
27253
27445
  },
27254
27446
  "name": "port",
27255
27447
  "type": {
@@ -27266,7 +27458,7 @@
27266
27458
  "immutable": true,
27267
27459
  "locationInModule": {
27268
27460
  "filename": "lib/router-output.ts",
27269
- "line": 259
27461
+ "line": 261
27270
27462
  },
27271
27463
  "name": "encryptionConfiguration",
27272
27464
  "optional": true,
@@ -27283,7 +27475,7 @@
27283
27475
  "docs": {
27284
27476
  "stability": "experimental",
27285
27477
  "summary": "Properties for SRT Listener protocol configuration.",
27286
- "example": "declare 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});",
27478
+ "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
27479
  "custom": {
27288
27480
  "exampleMetadata": "infused"
27289
27481
  }
@@ -27292,7 +27484,7 @@
27292
27484
  "kind": "interface",
27293
27485
  "locationInModule": {
27294
27486
  "filename": "lib/router-input.ts",
27295
- "line": 419
27487
+ "line": 420
27296
27488
  },
27297
27489
  "name": "SrtListenerProtocolProps",
27298
27490
  "properties": [
@@ -27305,7 +27497,7 @@
27305
27497
  "immutable": true,
27306
27498
  "locationInModule": {
27307
27499
  "filename": "lib/router-input.ts",
27308
- "line": 423
27500
+ "line": 424
27309
27501
  },
27310
27502
  "name": "minimumLatency",
27311
27503
  "type": {
@@ -27321,7 +27513,7 @@
27321
27513
  "immutable": true,
27322
27514
  "locationInModule": {
27323
27515
  "filename": "lib/router-input.ts",
27324
- "line": 421
27516
+ "line": 422
27325
27517
  },
27326
27518
  "name": "port",
27327
27519
  "type": {
@@ -27338,7 +27530,7 @@
27338
27530
  "immutable": true,
27339
27531
  "locationInModule": {
27340
27532
  "filename": "lib/router-input.ts",
27341
- "line": 428
27533
+ "line": 429
27342
27534
  },
27343
27535
  "name": "decryptionConfiguration",
27344
27536
  "optional": true,
@@ -27414,7 +27606,7 @@
27414
27606
  "docs": {
27415
27607
  "stability": "experimental",
27416
27608
  "summary": "Properties for standard Router Input configuration.",
27417
- "example": "declare 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});",
27609
+ "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
27610
  "custom": {
27419
27611
  "exampleMetadata": "infused"
27420
27612
  }
@@ -27423,7 +27615,7 @@
27423
27615
  "kind": "interface",
27424
27616
  "locationInModule": {
27425
27617
  "filename": "lib/router-input.ts",
27426
- "line": 708
27618
+ "line": 709
27427
27619
  },
27428
27620
  "name": "StandardConfigurationProps",
27429
27621
  "properties": [
@@ -27436,7 +27628,7 @@
27436
27628
  "immutable": true,
27437
27629
  "locationInModule": {
27438
27630
  "filename": "lib/router-input.ts",
27439
- "line": 710
27631
+ "line": 711
27440
27632
  },
27441
27633
  "name": "networkInterface",
27442
27634
  "type": {
@@ -27452,7 +27644,7 @@
27452
27644
  "immutable": true,
27453
27645
  "locationInModule": {
27454
27646
  "filename": "lib/router-input.ts",
27455
- "line": 712
27647
+ "line": 713
27456
27648
  },
27457
27649
  "name": "protocol",
27458
27650
  "type": {
@@ -27469,7 +27661,7 @@
27469
27661
  "immutable": true,
27470
27662
  "locationInModule": {
27471
27663
  "filename": "lib/router-input.ts",
27472
- "line": 718
27664
+ "line": 719
27473
27665
  },
27474
27666
  "name": "availabilityZone",
27475
27667
  "optional": true,
@@ -27495,7 +27687,7 @@
27495
27687
  "kind": "interface",
27496
27688
  "locationInModule": {
27497
27689
  "filename": "lib/router-output.ts",
27498
- "line": 460
27690
+ "line": 462
27499
27691
  },
27500
27692
  "name": "StandardOutputConfigurationProps",
27501
27693
  "properties": [
@@ -27508,7 +27700,7 @@
27508
27700
  "immutable": true,
27509
27701
  "locationInModule": {
27510
27702
  "filename": "lib/router-output.ts",
27511
- "line": 462
27703
+ "line": 464
27512
27704
  },
27513
27705
  "name": "networkInterface",
27514
27706
  "type": {
@@ -27524,7 +27716,7 @@
27524
27716
  "immutable": true,
27525
27717
  "locationInModule": {
27526
27718
  "filename": "lib/router-output.ts",
27527
- "line": 464
27719
+ "line": 466
27528
27720
  },
27529
27721
  "name": "protocol",
27530
27722
  "type": {
@@ -27541,7 +27733,7 @@
27541
27733
  "immutable": true,
27542
27734
  "locationInModule": {
27543
27735
  "filename": "lib/router-output.ts",
27544
- "line": 470
27736
+ "line": 472
27545
27737
  },
27546
27738
  "name": "availabilityZone",
27547
27739
  "optional": true,
@@ -27902,7 +28094,7 @@
27902
28094
  "see": "https://docs.aws.amazon.com/mediaconnect/latest/ug/cross-service-confused-deputy-prevention.html",
27903
28095
  "stability": "experimental",
27904
28096
  "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 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});",
28097
+ "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
28098
  "custom": {
27907
28099
  "exampleMetadata": "infused"
27908
28100
  }
@@ -28864,6 +29056,6 @@
28864
29056
  "symbolId": "lib/flow-output:ZixiPushOutputConfig"
28865
29057
  }
28866
29058
  },
28867
- "version": "2.267.0-alpha.0",
29059
+ "version": "2.269.0-alpha.0",
28868
29060
  "fingerprint": "**********"
28869
29061
  }