{"_id":"@aws-cdk/aws-mediaconnect-alpha","_rev":"10-bb74b82f363903931272c399a9474d8e","name":"@aws-cdk/aws-mediaconnect-alpha","dist-tags":{"latest":"2.272.0-alpha.0"},"versions":{"2.263.0-alpha.0":{"name":"@aws-cdk/aws-mediaconnect-alpha","version":"2.263.0-alpha.0","keywords":["aws","cdk","constructs","AWS::MediaConnect","aws-mediaconnect"],"author":{"url":"https://aws.amazon.com","name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-cdk/aws-mediaconnect-alpha@2.263.0-alpha.0","maintainers":[{"name":"amzn-oss","email":"osa-3p@amazon.com"},{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"}],"homepage":"https://github.com/aws/aws-cdk","bugs":{"url":"https://github.com/aws/aws-cdk/issues"},"dist":{"shasum":"a0e0eba0c8f97261575a0a3ab05978c73373bde2","tarball":"https://registry.npmjs.org/@aws-cdk/aws-mediaconnect-alpha/-/aws-mediaconnect-alpha-2.263.0-alpha.0.tgz","fileCount":41,"integrity":"sha512-jiEgWlP+hAVBxti1n0rn8fxO1/tpTGXf5T4KyLB7E7/Kyrj5dSwyRR8vlA9o9eg5Sc9d3QEgzapDLxALgZwKhA==","signatures":[{"sig":"MEQCIHT4ghXXuG7SLRmqnbEBu6TxuYqKp8ZbbJQyf5cap5dmAiBF90uOrE+MeggiPf1sl0uPThtd/Ej/ldByOr+Z46kvHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2216706},"jsii":{"outdir":"dist","targets":{"go":{"moduleName":"github.com/aws/aws-cdk-go","packageName":"awsmediaconnectalpha"},"java":{"maven":{"groupId":"software.amazon.awscdk","artifactId":"mediaconnect-alpha"},"package":"software.amazon.awscdk.services.mediaconnect.alpha"},"dotnet":{"iconUrl":"https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png","namespace":"Amazon.CDK.AWS.MediaConnect.Alpha","packageId":"Amazon.CDK.AWS.MediaConnect.Alpha"},"python":{"module":"aws_cdk.aws_mediaconnect_alpha","distName":"aws-cdk.aws-mediaconnect-alpha","classifiers":["Framework :: AWS CDK","Framework :: AWS CDK :: 2"]}},"metadata":{"jsii":{"rosetta":{"strict":true}}},"tsconfig":"tsconfig.json","validateTsconfig":"minimal"},"main":"lib/index.js","_from":"file:/codebuild/output/src368304025/src/js/aws-mediaconnect-alpha@2.263.0-alpha.0.jsii.tgz","types":"lib/index.d.ts","engines":{"node":">= 20.0.0"},"pkglint":{"exclude":["naming/package-matches-directory","assert/assert-dependency"]},"private":false,"scripts":{"gen":"gen-cdk","lint":"cdk-lint","test":"cdk-test","build":"cdk-build","integ":"integ-runner --unstable=toolkit-lib-engine --language javascript","watch":"cdk-watch","compat":"cdk-compat","awslint":"cdk-awslint","package":"cdk-package","pkglint":"pkglint -f","build+test":"yarn build && yarn test","build+extract":"yarn build && yarn rosetta:extract","rosetta:extract":"yarn --silent jsii-rosetta extract","build+test+extract":"yarn build+test && yarn rosetta:extract","build+test+package":"yarn build+test && yarn package"},"_npmUser":{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"},"awscdkio":{"announce":false},"maturity":"experimental","_resolved":"/codebuild/output/src368304025/src/js/aws-mediaconnect-alpha@2.263.0-alpha.0.jsii.tgz","cdk-build":{"env":{"AWSLINT_BASE_CONSTRUCT":true}},"stability":"experimental","_integrity":"sha512-jiEgWlP+hAVBxti1n0rn8fxO1/tpTGXf5T4KyLB7E7/Kyrj5dSwyRR8vlA9o9eg5Sc9d3QEgzapDLxALgZwKhA==","repository":{"url":"git+https://github.com/aws/aws-cdk.git","type":"git","directory":"packages/@aws-cdk/aws-mediaconnect-alpha"},"_npmVersion":"10.8.2","description":"The CDK construct library for AWS Elemental MediaConnect","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"tag":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@types/jest":"^29.5.14","aws-cdk-lib":"2.263.0","@aws-cdk/pkglint":"2.263.0-alpha.0","@aws-cdk/integ-runner":"^2.202.3","@aws-cdk/cdk-build-tools":"2.263.0-alpha.0","@aws-cdk/integ-tests-alpha":"^2.263.0-alpha.0"},"separate-module":false,"peerDependencies":{"constructs":"^10.5.0","aws-cdk-lib":"^2.263.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-mediaconnect-alpha_2.263.0-alpha.0_1785516417982_0.4534371907304324","host":"s3://npm-registry-packages-npm-production"}},"2.264.0-alpha.0":{"name":"@aws-cdk/aws-mediaconnect-alpha","version":"2.264.0-alpha.0","keywords":["aws","cdk","constructs","AWS::MediaConnect","aws-mediaconnect"],"author":{"url":"https://aws.amazon.com","name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-cdk/aws-mediaconnect-alpha@2.264.0-alpha.0","maintainers":[{"name":"amzn-oss","email":"osa-3p@amazon.com"},{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"}],"homepage":"https://github.com/aws/aws-cdk","bugs":{"url":"https://github.com/aws/aws-cdk/issues"},"dist":{"shasum":"fa3930b0261891b1ed01d56e3de37904d1952e3a","tarball":"https://registry.npmjs.org/@aws-cdk/aws-mediaconnect-alpha/-/aws-mediaconnect-alpha-2.264.0-alpha.0.tgz","fileCount":41,"integrity":"sha512-bTnGu5hTdOAm2IR+UZCUfIYSpzpFfLTYE/Dl23HFdnbn2C6laY4IJZajEyG7fLHAGLKGC7N2AmdOBFiNFn5BQA==","signatures":[{"sig":"MEYCIQC+9HHNDODQVK0XjS3isjWN9jbhlDGtK/LKExJlOFxQGAIhAPp5G+SH+HehrwIxmhI+Hp4BYGBqV6cyAOFIpIbbOCbI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2229774},"jsii":{"outdir":"dist","targets":{"go":{"moduleName":"github.com/aws/aws-cdk-go","packageName":"awsmediaconnectalpha"},"java":{"maven":{"groupId":"software.amazon.awscdk","artifactId":"mediaconnect-alpha"},"package":"software.amazon.awscdk.services.mediaconnect.alpha"},"dotnet":{"iconUrl":"https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png","namespace":"Amazon.CDK.AWS.MediaConnect.Alpha","packageId":"Amazon.CDK.AWS.MediaConnect.Alpha"},"python":{"module":"aws_cdk.aws_mediaconnect_alpha","distName":"aws-cdk.aws-mediaconnect-alpha","classifiers":["Framework :: AWS CDK","Framework :: AWS CDK :: 2"]}},"metadata":{"jsii":{"rosetta":{"strict":true}}},"tsconfig":"tsconfig.json","validateTsconfig":"minimal"},"main":"lib/index.js","_from":"file:/codebuild/output/src179877389/src/js/aws-mediaconnect-alpha@2.264.0-alpha.0.jsii.tgz","types":"lib/index.d.ts","engines":{"node":">= 20.0.0"},"pkglint":{"exclude":["naming/package-matches-directory","assert/assert-dependency"]},"private":false,"scripts":{"gen":"gen-cdk","lint":"cdk-lint","test":"cdk-test","build":"cdk-build","integ":"integ-runner --unstable=toolkit-lib-engine --language javascript","watch":"cdk-watch","compat":"cdk-compat","awslint":"cdk-awslint","package":"cdk-package","pkglint":"pkglint -f","build+test":"yarn build && yarn test","build+extract":"yarn build && yarn rosetta:extract","rosetta:extract":"yarn --silent jsii-rosetta extract","build+test+extract":"yarn build+test && yarn rosetta:extract","build+test+package":"yarn build+test && yarn package"},"_npmUser":{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"},"awscdkio":{"announce":false},"maturity":"experimental","_resolved":"/codebuild/output/src179877389/src/js/aws-mediaconnect-alpha@2.264.0-alpha.0.jsii.tgz","cdk-build":{"env":{"AWSLINT_BASE_CONSTRUCT":true}},"stability":"experimental","_integrity":"sha512-bTnGu5hTdOAm2IR+UZCUfIYSpzpFfLTYE/Dl23HFdnbn2C6laY4IJZajEyG7fLHAGLKGC7N2AmdOBFiNFn5BQA==","repository":{"url":"git+https://github.com/aws/aws-cdk.git","type":"git","directory":"packages/@aws-cdk/aws-mediaconnect-alpha"},"_npmVersion":"10.8.2","description":"The CDK construct library for AWS Elemental MediaConnect","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"tag":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@types/jest":"^29.5.14","aws-cdk-lib":"2.264.0","@aws-cdk/pkglint":"2.264.0-alpha.0","@aws-cdk/integ-runner":"^2.202.3","@aws-cdk/cdk-build-tools":"2.264.0-alpha.0","@aws-cdk/integ-tests-alpha":"^2.264.0-alpha.0"},"separate-module":false,"peerDependencies":{"constructs":"^10.5.0","aws-cdk-lib":"^2.264.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-mediaconnect-alpha_2.264.0-alpha.0_1786384193921_0.0316403372673284","host":"s3://npm-registry-packages-npm-production"}},"2.265.0-alpha.0":{"name":"@aws-cdk/aws-mediaconnect-alpha","version":"2.265.0-alpha.0","keywords":["aws","cdk","constructs","AWS::MediaConnect","aws-mediaconnect"],"author":{"url":"https://aws.amazon.com","name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-cdk/aws-mediaconnect-alpha@2.265.0-alpha.0","maintainers":[{"name":"amzn-oss","email":"osa-3p@amazon.com"},{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"}],"homepage":"https://github.com/aws/aws-cdk","bugs":{"url":"https://github.com/aws/aws-cdk/issues"},"dist":{"shasum":"cffc73bef325c4baafbde36854f4ef9d0f15d29c","tarball":"https://registry.npmjs.org/@aws-cdk/aws-mediaconnect-alpha/-/aws-mediaconnect-alpha-2.265.0-alpha.0.tgz","fileCount":41,"integrity":"sha512-Ywc1kdki9ZNmIWUOFIC43M/LOX1kydMuKGr2BUtPpwzu9XN/4yO2lUf0zA8oETBYBZYaJ/wZgX0iQmr4JRt6Xg==","signatures":[{"sig":"MEYCIQCmCQRZ7xoDq9sQELCWntvMjtuivWAdGaswINooWNvQEAIhAPUdmVgpf2QaGNAgLK4wU68nR9eZt+7Mp+ZTU5qQNQTL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2230064},"jsii":{"outdir":"dist","targets":{"go":{"moduleName":"github.com/aws/aws-cdk-go","packageName":"awsmediaconnectalpha"},"java":{"maven":{"groupId":"software.amazon.awscdk","artifactId":"mediaconnect-alpha"},"package":"software.amazon.awscdk.services.mediaconnect.alpha"},"dotnet":{"iconUrl":"https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png","namespace":"Amazon.CDK.AWS.MediaConnect.Alpha","packageId":"Amazon.CDK.AWS.MediaConnect.Alpha"},"python":{"module":"aws_cdk.aws_mediaconnect_alpha","distName":"aws-cdk.aws-mediaconnect-alpha","classifiers":["Framework :: AWS CDK","Framework :: AWS CDK :: 2"]}},"metadata":{"jsii":{"rosetta":{"strict":true}}},"tsconfig":"tsconfig.json","validateTsconfig":"minimal"},"main":"lib/index.js","_from":"file:/codebuild/output/src1428494708/src/js/aws-mediaconnect-alpha@2.265.0-alpha.0.jsii.tgz","types":"lib/index.d.ts","engines":{"node":">= 20.0.0"},"pkglint":{"exclude":["naming/package-matches-directory","assert/assert-dependency"]},"private":false,"scripts":{"gen":"gen-cdk","lint":"cdk-lint","test":"cdk-test","build":"cdk-build","integ":"integ-runner --unstable=toolkit-lib-engine --language javascript","watch":"cdk-watch","compat":"cdk-compat","awslint":"cdk-awslint","package":"cdk-package","pkglint":"pkglint -f","build+test":"yarn build && yarn test","build+extract":"yarn build && yarn rosetta:extract","rosetta:extract":"yarn --silent jsii-rosetta extract","build+test+extract":"yarn build+test && yarn rosetta:extract","build+test+package":"yarn build+test && yarn package"},"_npmUser":{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"},"awscdkio":{"announce":false},"maturity":"experimental","_resolved":"/codebuild/output/src1428494708/src/js/aws-mediaconnect-alpha@2.265.0-alpha.0.jsii.tgz","cdk-build":{"env":{"AWSLINT_BASE_CONSTRUCT":true}},"stability":"experimental","_integrity":"sha512-Ywc1kdki9ZNmIWUOFIC43M/LOX1kydMuKGr2BUtPpwzu9XN/4yO2lUf0zA8oETBYBZYaJ/wZgX0iQmr4JRt6Xg==","repository":{"url":"git+https://github.com/aws/aws-cdk.git","type":"git","directory":"packages/@aws-cdk/aws-mediaconnect-alpha"},"_npmVersion":"10.8.2","description":"The CDK construct library for AWS Elemental MediaConnect","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"tag":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@types/jest":"^29.5.14","aws-cdk-lib":"2.265.0","@aws-cdk/pkglint":"2.265.0-alpha.0","@aws-cdk/integ-runner":"^2.202.3","@aws-cdk/cdk-build-tools":"2.265.0-alpha.0","@aws-cdk/integ-tests-alpha":"^2.265.0-alpha.0"},"separate-module":false,"peerDependencies":{"constructs":"^10.5.0","aws-cdk-lib":"^2.265.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-mediaconnect-alpha_2.265.0-alpha.0_1786649899282_0.47758144496920396","host":"s3://npm-registry-packages-npm-production"}},"2.266.0-alpha.0":{"name":"@aws-cdk/aws-mediaconnect-alpha","version":"2.266.0-alpha.0","keywords":["aws","cdk","constructs","AWS::MediaConnect","aws-mediaconnect"],"author":{"url":"https://aws.amazon.com","name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-cdk/aws-mediaconnect-alpha@2.266.0-alpha.0","maintainers":[{"name":"amzn-oss","email":"osa-3p@amazon.com"},{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"}],"homepage":"https://github.com/aws/aws-cdk","bugs":{"url":"https://github.com/aws/aws-cdk/issues"},"dist":{"shasum":"111bf1051b60ee2433d16a51e134af8925fae208","tarball":"https://registry.npmjs.org/@aws-cdk/aws-mediaconnect-alpha/-/aws-mediaconnect-alpha-2.266.0-alpha.0.tgz","fileCount":41,"integrity":"sha512-mkTVo68JHQKeUYFPV05z5ImzOr3Qqy4V06M37FRkx2hFudHuDvKF28Kki3ZJarqVt0g7xO8xxJtdgfPSiP3fPw==","signatures":[{"sig":"MEQCIGl/HeBbUv5IWpLNjKykjTvvSYBxROKWA/u+RwTS231dAiA7N26aQLXYxgpfM1vnPAePs7F4Qk4o8ebgpbqR6ozuBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2230064},"jsii":{"outdir":"dist","targets":{"go":{"moduleName":"github.com/aws/aws-cdk-go","packageName":"awsmediaconnectalpha"},"java":{"maven":{"groupId":"software.amazon.awscdk","artifactId":"mediaconnect-alpha"},"package":"software.amazon.awscdk.services.mediaconnect.alpha"},"dotnet":{"iconUrl":"https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png","namespace":"Amazon.CDK.AWS.MediaConnect.Alpha","packageId":"Amazon.CDK.AWS.MediaConnect.Alpha"},"python":{"module":"aws_cdk.aws_mediaconnect_alpha","distName":"aws-cdk.aws-mediaconnect-alpha","classifiers":["Framework :: AWS CDK","Framework :: AWS CDK :: 2"]}},"metadata":{"jsii":{"rosetta":{"strict":true}}},"tsconfig":"tsconfig.json","validateTsconfig":"minimal"},"main":"lib/index.js","_from":"file:/codebuild/output/src4061728311/src/js/aws-mediaconnect-alpha@2.266.0-alpha.0.jsii.tgz","types":"lib/index.d.ts","engines":{"node":">= 20.0.0"},"pkglint":{"exclude":["naming/package-matches-directory","assert/assert-dependency"]},"private":false,"scripts":{"gen":"gen-cdk","lint":"cdk-lint","test":"cdk-test","build":"cdk-build","integ":"integ-runner --unstable=toolkit-lib-engine --language javascript","watch":"cdk-watch","compat":"cdk-compat","awslint":"cdk-awslint","package":"cdk-package","pkglint":"pkglint -f","build+test":"yarn build && yarn test","build+extract":"yarn build && yarn rosetta:extract","rosetta:extract":"yarn --silent jsii-rosetta extract","build+test+extract":"yarn build+test && yarn rosetta:extract","build+test+package":"yarn build+test && yarn package"},"_npmUser":{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"},"awscdkio":{"announce":false},"maturity":"experimental","_resolved":"/codebuild/output/src4061728311/src/js/aws-mediaconnect-alpha@2.266.0-alpha.0.jsii.tgz","cdk-build":{"env":{"AWSLINT_BASE_CONSTRUCT":true}},"stability":"experimental","_integrity":"sha512-mkTVo68JHQKeUYFPV05z5ImzOr3Qqy4V06M37FRkx2hFudHuDvKF28Kki3ZJarqVt0g7xO8xxJtdgfPSiP3fPw==","repository":{"url":"git+https://github.com/aws/aws-cdk.git","type":"git","directory":"packages/@aws-cdk/aws-mediaconnect-alpha"},"_npmVersion":"10.8.2","description":"The CDK construct library for AWS Elemental MediaConnect","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"tag":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@types/jest":"^29.5.14","aws-cdk-lib":"2.266.0","@aws-cdk/pkglint":"2.266.0-alpha.0","@aws-cdk/integ-runner":"^2.202.3","@aws-cdk/cdk-build-tools":"2.266.0-alpha.0","@aws-cdk/integ-tests-alpha":"^2.266.0-alpha.0"},"separate-module":false,"peerDependencies":{"constructs":"^10.5.0","aws-cdk-lib":"^2.266.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-mediaconnect-alpha_2.266.0-alpha.0_1787165517087_0.8946569075163386","host":"s3://npm-registry-packages-npm-production"}},"2.267.0-alpha.0":{"name":"@aws-cdk/aws-mediaconnect-alpha","version":"2.267.0-alpha.0","keywords":["aws","cdk","constructs","AWS::MediaConnect","aws-mediaconnect"],"author":{"url":"https://aws.amazon.com","name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-cdk/aws-mediaconnect-alpha@2.267.0-alpha.0","maintainers":[{"name":"amzn-oss","email":"osa-3p@amazon.com"},{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"}],"homepage":"https://github.com/aws/aws-cdk","bugs":{"url":"https://github.com/aws/aws-cdk/issues"},"dist":{"shasum":"4814929bc4384501f15a5eb2058d7cecab66ac30","tarball":"https://registry.npmjs.org/@aws-cdk/aws-mediaconnect-alpha/-/aws-mediaconnect-alpha-2.267.0-alpha.0.tgz","fileCount":41,"integrity":"sha512-mva+79P8vRhq8vgdTLKrsHFab+dbdxKhIh2HAQhylc5U/7zDxYPKl6ByQSpPTlgBeI/s6GPQw+REvVUcU9nyNA==","signatures":[{"sig":"MEUCIQCWdm9+/gSCPPXfxcM8M8O7k/wIPNLNd35POFKqxVl5vAIgI1xga37+VgrRXnA2sgPC7/olqHo4ojvEkGSzb3aTe74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2230064},"jsii":{"outdir":"dist","targets":{"go":{"moduleName":"github.com/aws/aws-cdk-go","packageName":"awsmediaconnectalpha"},"java":{"maven":{"groupId":"software.amazon.awscdk","artifactId":"mediaconnect-alpha"},"package":"software.amazon.awscdk.services.mediaconnect.alpha"},"dotnet":{"iconUrl":"https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png","namespace":"Amazon.CDK.AWS.MediaConnect.Alpha","packageId":"Amazon.CDK.AWS.MediaConnect.Alpha"},"python":{"module":"aws_cdk.aws_mediaconnect_alpha","distName":"aws-cdk.aws-mediaconnect-alpha","classifiers":["Framework :: AWS CDK","Framework :: AWS CDK :: 2"]}},"metadata":{"jsii":{"rosetta":{"strict":true}}},"tsconfig":"tsconfig.json","validateTsconfig":"minimal"},"main":"lib/index.js","_from":"file:/codebuild/output/src3234168637/src/js/aws-mediaconnect-alpha@2.267.0-alpha.0.jsii.tgz","types":"lib/index.d.ts","engines":{"node":">= 20.0.0"},"pkglint":{"exclude":["naming/package-matches-directory","assert/assert-dependency"]},"private":false,"scripts":{"gen":"gen-cdk","lint":"cdk-lint","test":"cdk-test","build":"cdk-build","integ":"integ-runner --unstable=toolkit-lib-engine --language javascript","watch":"cdk-watch","compat":"cdk-compat","awslint":"cdk-awslint","package":"cdk-package","pkglint":"pkglint -f","build+test":"yarn build && yarn test","build+extract":"yarn build && yarn rosetta:extract","rosetta:extract":"yarn --silent jsii-rosetta extract","build+test+extract":"yarn build+test && yarn rosetta:extract","build+test+package":"yarn build+test && yarn package"},"_npmUser":{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"},"awscdkio":{"announce":false},"maturity":"experimental","_resolved":"/codebuild/output/src3234168637/src/js/aws-mediaconnect-alpha@2.267.0-alpha.0.jsii.tgz","cdk-build":{"env":{"AWSLINT_BASE_CONSTRUCT":true}},"stability":"experimental","_integrity":"sha512-mva+79P8vRhq8vgdTLKrsHFab+dbdxKhIh2HAQhylc5U/7zDxYPKl6ByQSpPTlgBeI/s6GPQw+REvVUcU9nyNA==","repository":{"url":"git+https://github.com/aws/aws-cdk.git","type":"git","directory":"packages/@aws-cdk/aws-mediaconnect-alpha"},"_npmVersion":"10.8.2","description":"The CDK construct library for AWS Elemental MediaConnect","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"tag":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@types/jest":"^29.5.14","aws-cdk-lib":"2.267.0","@aws-cdk/pkglint":"2.267.0-alpha.0","@aws-cdk/integ-runner":"^2.202.3","@aws-cdk/cdk-build-tools":"2.267.0-alpha.0","@aws-cdk/integ-tests-alpha":"^2.267.0-alpha.0"},"separate-module":false,"peerDependencies":{"constructs":"^10.5.0","aws-cdk-lib":"^2.267.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-mediaconnect-alpha_2.267.0-alpha.0_1787855150654_0.7998977461378043","host":"s3://npm-registry-packages-npm-production"}},"2.268.0-alpha.0":{"name":"@aws-cdk/aws-mediaconnect-alpha","version":"2.268.0-alpha.0","keywords":["aws","cdk","constructs","AWS::MediaConnect","aws-mediaconnect"],"author":{"url":"https://aws.amazon.com","name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-cdk/aws-mediaconnect-alpha@2.268.0-alpha.0","maintainers":[{"name":"amzn-oss","email":"osa-3p@amazon.com"},{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"}],"homepage":"https://github.com/aws/aws-cdk","bugs":{"url":"https://github.com/aws/aws-cdk/issues"},"dist":{"shasum":"ba2d1d1dd00eb4358c582cc3591b2250f860e34d","tarball":"https://registry.npmjs.org/@aws-cdk/aws-mediaconnect-alpha/-/aws-mediaconnect-alpha-2.268.0-alpha.0.tgz","fileCount":41,"integrity":"sha512-gL5uO+RXyczJ4ZZ8bGnSZE8vEdoDkt2zZjB34CXja0LvVD7XS/2pUaerhyQdQltMxNgmZ9us2siPR9RYRydEQQ==","signatures":[{"sig":"MEUCIQDvA+dtpcVYF9qKCWjRRkIpqPHnge8JqcN70SLfXyJjZwIgJHUm7lvZlGUTNDiKqnkk8SLXa5z/5/aqmEvVmKM6dZk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2237204},"jsii":{"outdir":"dist","targets":{"go":{"moduleName":"github.com/aws/aws-cdk-go","packageName":"awsmediaconnectalpha"},"java":{"maven":{"groupId":"software.amazon.awscdk","artifactId":"mediaconnect-alpha"},"package":"software.amazon.awscdk.services.mediaconnect.alpha"},"dotnet":{"iconUrl":"https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png","namespace":"Amazon.CDK.AWS.MediaConnect.Alpha","packageId":"Amazon.CDK.AWS.MediaConnect.Alpha"},"python":{"module":"aws_cdk.aws_mediaconnect_alpha","distName":"aws-cdk.aws-mediaconnect-alpha","classifiers":["Framework :: AWS CDK","Framework :: AWS CDK :: 2"]}},"metadata":{"jsii":{"rosetta":{"strict":true}}},"tsconfig":"tsconfig.json","validateTsconfig":"minimal"},"main":"lib/index.js","_from":"file:/codebuild/output/src1352539524/src/js/aws-mediaconnect-alpha@2.268.0-alpha.0.jsii.tgz","types":"lib/index.d.ts","engines":{"node":">= 20.0.0"},"pkglint":{"exclude":["naming/package-matches-directory","assert/assert-dependency"]},"private":false,"scripts":{"gen":"gen-cdk","lint":"cdk-lint","test":"cdk-test","build":"cdk-build","integ":"integ-runner --unstable=toolkit-lib-engine --language javascript","watch":"cdk-watch","compat":"cdk-compat","awslint":"cdk-awslint","package":"cdk-package","pkglint":"pkglint -f","build+test":"yarn build && yarn test","build+extract":"yarn build && yarn rosetta:extract","rosetta:extract":"yarn --silent jsii-rosetta extract","build+test+extract":"yarn build+test && yarn rosetta:extract","build+test+package":"yarn build+test && yarn package"},"_npmUser":{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"},"awscdkio":{"announce":false},"maturity":"experimental","_resolved":"/codebuild/output/src1352539524/src/js/aws-mediaconnect-alpha@2.268.0-alpha.0.jsii.tgz","cdk-build":{"env":{"AWSLINT_BASE_CONSTRUCT":true}},"stability":"experimental","_integrity":"sha512-gL5uO+RXyczJ4ZZ8bGnSZE8vEdoDkt2zZjB34CXja0LvVD7XS/2pUaerhyQdQltMxNgmZ9us2siPR9RYRydEQQ==","repository":{"url":"git+https://github.com/aws/aws-cdk.git","type":"git","directory":"packages/@aws-cdk/aws-mediaconnect-alpha"},"_npmVersion":"10.8.2","description":"The CDK construct library for AWS Elemental MediaConnect","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"tag":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@types/jest":"^29.5.14","aws-cdk-lib":"2.268.0","@aws-cdk/pkglint":"2.268.0-alpha.0","@aws-cdk/integ-runner":"^2.202.3","@aws-cdk/cdk-build-tools":"2.268.0-alpha.0","@aws-cdk/integ-tests-alpha":"^2.268.0-alpha.0"},"separate-module":false,"peerDependencies":{"constructs":"^10.5.0","aws-cdk-lib":"^2.268.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-mediaconnect-alpha_2.268.0-alpha.0_1788377553504_0.8408144977752514","host":"s3://npm-registry-packages-npm-production"}},"2.269.0-alpha.0":{"name":"@aws-cdk/aws-mediaconnect-alpha","version":"2.269.0-alpha.0","keywords":["aws","cdk","constructs","AWS::MediaConnect","aws-mediaconnect"],"author":{"url":"https://aws.amazon.com","name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-cdk/aws-mediaconnect-alpha@2.269.0-alpha.0","maintainers":[{"name":"amzn-oss","email":"osa-3p@amazon.com"},{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"}],"homepage":"https://github.com/aws/aws-cdk","bugs":{"url":"https://github.com/aws/aws-cdk/issues"},"dist":{"shasum":"5a38f0f09065f1d9deda4028a44b0eb6fbb9846f","tarball":"https://registry.npmjs.org/@aws-cdk/aws-mediaconnect-alpha/-/aws-mediaconnect-alpha-2.269.0-alpha.0.tgz","fileCount":41,"integrity":"sha512-dPnxyyjLpt7bvQAoCiEAiYKkHVEAUv1soN6ccw+sMfw+vU0b5xD9REBO10oSwRyhUF7VlL21yH9/AwrIQcSrrQ==","signatures":[{"sig":"MEYCIQDId/MLYb3RsN1Ni/X6wKUGJdAt7oa8cy7VwMzLsch0UwIhALhX5RPfUpWUcPJEwDK0YiLN6mLke4RUupD+JTTAZr3X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGbo43cGv3JE5Ub59yib6HT7dLtWxesURgyDTtSkRkdMAiBebcpO2YeG916vYW3Vi8Y4JvZW5h3cmrTVkaipLXQ3dA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2238145},"jsii":{"outdir":"dist","targets":{"go":{"moduleName":"github.com/aws/aws-cdk-go","packageName":"awsmediaconnectalpha"},"java":{"maven":{"groupId":"software.amazon.awscdk","artifactId":"mediaconnect-alpha"},"package":"software.amazon.awscdk.services.mediaconnect.alpha"},"dotnet":{"iconUrl":"https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png","namespace":"Amazon.CDK.AWS.MediaConnect.Alpha","packageId":"Amazon.CDK.AWS.MediaConnect.Alpha"},"python":{"module":"aws_cdk.aws_mediaconnect_alpha","distName":"aws-cdk.aws-mediaconnect-alpha","classifiers":["Framework :: AWS CDK","Framework :: AWS CDK :: 2"]}},"metadata":{"jsii":{"rosetta":{"strict":true}}},"tsconfig":"tsconfig.json","validateTsconfig":"minimal"},"main":"lib/index.js","_from":"file:/codebuild/output/src4196559369/src/js/aws-mediaconnect-alpha@2.269.0-alpha.0.jsii.tgz","types":"lib/index.d.ts","engines":{"node":">= 20.0.0"},"pkglint":{"exclude":["naming/package-matches-directory","assert/assert-dependency"]},"private":false,"scripts":{"gen":"gen-cdk","lint":"cdk-lint","test":"cdk-test","build":"cdk-build","integ":"integ-runner --unstable=toolkit-lib-engine --language javascript","watch":"cdk-watch","compat":"cdk-compat","awslint":"cdk-awslint","package":"cdk-package","pkglint":"pkglint -f","build+test":"yarn build && yarn test","build+extract":"yarn build && yarn rosetta:extract","rosetta:extract":"yarn --silent jsii-rosetta extract","build+test+extract":"yarn build+test && yarn rosetta:extract","build+test+package":"yarn build+test && yarn package"},"_npmUser":{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"},"awscdkio":{"announce":false},"maturity":"experimental","_resolved":"/codebuild/output/src4196559369/src/js/aws-mediaconnect-alpha@2.269.0-alpha.0.jsii.tgz","cdk-build":{"env":{"AWSLINT_BASE_CONSTRUCT":true}},"stability":"experimental","_integrity":"sha512-dPnxyyjLpt7bvQAoCiEAiYKkHVEAUv1soN6ccw+sMfw+vU0b5xD9REBO10oSwRyhUF7VlL21yH9/AwrIQcSrrQ==","repository":{"url":"git+https://github.com/aws/aws-cdk.git","type":"git","directory":"packages/@aws-cdk/aws-mediaconnect-alpha"},"_npmVersion":"10.8.2","description":"The CDK construct library for AWS Elemental MediaConnect","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"tag":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@types/jest":"^29.5.14","aws-cdk-lib":"2.269.0","@aws-cdk/pkglint":"2.269.0-alpha.0","@aws-cdk/integ-runner":"^2.202.3","@aws-cdk/cdk-build-tools":"2.269.0-alpha.0","@aws-cdk/integ-tests-alpha":"^2.269.0-alpha.0"},"separate-module":false,"peerDependencies":{"constructs":"^10.5.0","aws-cdk-lib":"^2.269.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-mediaconnect-alpha_2.269.0-alpha.0_1789074123083_0.5646657269600688","host":"s3://npm-registry-packages-npm-production"}},"2.270.0-alpha.0":{"name":"@aws-cdk/aws-mediaconnect-alpha","version":"2.270.0-alpha.0","keywords":["aws","cdk","constructs","AWS::MediaConnect","aws-mediaconnect"],"author":{"url":"https://aws.amazon.com","name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-cdk/aws-mediaconnect-alpha@2.270.0-alpha.0","maintainers":[{"name":"amzn-oss","email":"osa-3p@amazon.com"},{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"}],"homepage":"https://github.com/aws/aws-cdk","bugs":{"url":"https://github.com/aws/aws-cdk/issues"},"dist":{"shasum":"12ad48457c4588aa8865124e5f2aaf77364c2bea","tarball":"https://registry.npmjs.org/@aws-cdk/aws-mediaconnect-alpha/-/aws-mediaconnect-alpha-2.270.0-alpha.0.tgz","fileCount":41,"integrity":"sha512-h5YMs6mAgTJt+1YZ1ZvZs9MeZOTvJE5m4pVTFOzgOi0ULmlePQAid5UAkyFxad9cpomQiTLBF3/w8BxrMF/ifQ==","signatures":[{"sig":"MEYCIQDLLpCv5DEgisUZ0jNZUvnckL42Ri4x5kH/0mmKuOUtEgIhAI7j/HWfLlGepgB205U/e/YwiD76+klMfjOCpzaPadv5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD4CDPsQ8xpc7FQ0PmSOu6wk5c0ydzvQytyT0k7j1FwwAIgWY2AhAPiAwejuOMchA54qzyUkxWNxj711S1l8Bj6hmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2238145},"jsii":{"outdir":"dist","targets":{"go":{"moduleName":"github.com/aws/aws-cdk-go","packageName":"awsmediaconnectalpha"},"java":{"maven":{"groupId":"software.amazon.awscdk","artifactId":"mediaconnect-alpha"},"package":"software.amazon.awscdk.services.mediaconnect.alpha"},"dotnet":{"iconUrl":"https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png","namespace":"Amazon.CDK.AWS.MediaConnect.Alpha","packageId":"Amazon.CDK.AWS.MediaConnect.Alpha"},"python":{"module":"aws_cdk.aws_mediaconnect_alpha","distName":"aws-cdk.aws-mediaconnect-alpha","classifiers":["Framework :: AWS CDK","Framework :: AWS CDK :: 2"]}},"metadata":{"jsii":{"rosetta":{"strict":true}}},"tsconfig":"tsconfig.json","validateTsconfig":"minimal"},"main":"lib/index.js","_from":"file:/codebuild/output/src2145135899/src/js/aws-mediaconnect-alpha@2.270.0-alpha.0.jsii.tgz","types":"lib/index.d.ts","engines":{"node":">= 20.0.0"},"pkglint":{"exclude":["naming/package-matches-directory","assert/assert-dependency"]},"private":false,"scripts":{"gen":"gen-cdk","lint":"cdk-lint","test":"cdk-test","build":"cdk-build","integ":"integ-runner --unstable=toolkit-lib-engine --language javascript","watch":"cdk-watch","compat":"cdk-compat","awslint":"cdk-awslint","package":"cdk-package","pkglint":"pkglint -f","build+test":"yarn build && yarn test","build+extract":"yarn build && yarn rosetta:extract","rosetta:extract":"yarn --silent jsii-rosetta extract","build+test+extract":"yarn build+test && yarn rosetta:extract","build+test+package":"yarn build+test && yarn package"},"_npmUser":{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"},"awscdkio":{"announce":false},"maturity":"experimental","_resolved":"/codebuild/output/src2145135899/src/js/aws-mediaconnect-alpha@2.270.0-alpha.0.jsii.tgz","cdk-build":{"env":{"AWSLINT_BASE_CONSTRUCT":true}},"stability":"experimental","_integrity":"sha512-h5YMs6mAgTJt+1YZ1ZvZs9MeZOTvJE5m4pVTFOzgOi0ULmlePQAid5UAkyFxad9cpomQiTLBF3/w8BxrMF/ifQ==","repository":{"url":"git+https://github.com/aws/aws-cdk.git","type":"git","directory":"packages/@aws-cdk/aws-mediaconnect-alpha"},"_npmVersion":"10.8.2","description":"The CDK construct library for AWS Elemental MediaConnect","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"tag":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@types/jest":"^29.5.14","aws-cdk-lib":"2.270.0","@aws-cdk/pkglint":"2.270.0-alpha.0","@aws-cdk/integ-runner":"^2.202.3","@aws-cdk/cdk-build-tools":"2.270.0-alpha.0","@aws-cdk/integ-tests-alpha":"^2.270.0-alpha.0"},"separate-module":false,"peerDependencies":{"constructs":"^10.5.0","aws-cdk-lib":"^2.270.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-mediaconnect-alpha_2.270.0-alpha.0_1789669669683_0.8458133139924258","host":"s3://npm-registry-packages-npm-production"}},"2.271.0-alpha.0":{"name":"@aws-cdk/aws-mediaconnect-alpha","version":"2.271.0-alpha.0","keywords":["aws","cdk","constructs","AWS::MediaConnect","aws-mediaconnect"],"author":{"url":"https://aws.amazon.com","name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-cdk/aws-mediaconnect-alpha@2.271.0-alpha.0","maintainers":[{"name":"amzn-oss","email":"osa-3p@amazon.com"},{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"}],"homepage":"https://github.com/aws/aws-cdk","bugs":{"url":"https://github.com/aws/aws-cdk/issues"},"dist":{"shasum":"4c142145e44a686ffd90f7d3f398fc92005ff4ca","tarball":"https://registry.npmjs.org/@aws-cdk/aws-mediaconnect-alpha/-/aws-mediaconnect-alpha-2.271.0-alpha.0.tgz","fileCount":41,"integrity":"sha512-G6lgpHRnch69TbDQhBnSVOC9bb0A4gLtMivwoEcar/izCi/2IniDKT5queZOkUh2H8TtSwyoWCq0ui9mgESw6Q==","signatures":[{"sig":"MEQCIAnkHXCVcngNL+0wAhCH/D5rQzsurvs5VvRoWafK9bJiAiBLda0nk/rpd+iXOyqwbd99YkRu0dl4bfTu7v2wa0i+0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFg1gy81jCO06pMpF/Tvc4jIg35ORsbTp5hhush3DbPqAiAWTpHQmrz3cDGn18TjAzijaHd8tDfwjsSh8jCVKWpIiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2240260},"jsii":{"outdir":"dist","targets":{"go":{"moduleName":"github.com/aws/aws-cdk-go","packageName":"awsmediaconnectalpha"},"java":{"maven":{"groupId":"software.amazon.awscdk","artifactId":"mediaconnect-alpha"},"package":"software.amazon.awscdk.services.mediaconnect.alpha"},"dotnet":{"iconUrl":"https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png","namespace":"Amazon.CDK.AWS.MediaConnect.Alpha","packageId":"Amazon.CDK.AWS.MediaConnect.Alpha"},"python":{"module":"aws_cdk.aws_mediaconnect_alpha","distName":"aws-cdk.aws-mediaconnect-alpha","classifiers":["Framework :: AWS CDK","Framework :: AWS CDK :: 2"]}},"metadata":{"jsii":{"rosetta":{"strict":true}}},"tsconfig":"tsconfig.json","validateTsconfig":"minimal"},"main":"lib/index.js","_from":"file:/codebuild/output/src2522094598/src/js/aws-mediaconnect-alpha@2.271.0-alpha.0.jsii.tgz","types":"lib/index.d.ts","engines":{"node":">= 20.0.0"},"pkglint":{"exclude":["naming/package-matches-directory","assert/assert-dependency"]},"private":false,"scripts":{"gen":"gen-cdk","lint":"cdk-lint","test":"cdk-test","build":"cdk-build","integ":"integ-runner --unstable=toolkit-lib-engine --language javascript","watch":"cdk-watch","compat":"cdk-compat","awslint":"cdk-awslint","package":"cdk-package","pkglint":"pkglint -f","build+test":"yarn build && yarn test","build+extract":"yarn build && yarn rosetta:extract","rosetta:extract":"yarn --silent jsii-rosetta extract","build+test+extract":"yarn build+test && yarn rosetta:extract","build+test+package":"yarn build+test && yarn package"},"_npmUser":{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"},"awscdkio":{"announce":false},"maturity":"experimental","_resolved":"/codebuild/output/src2522094598/src/js/aws-mediaconnect-alpha@2.271.0-alpha.0.jsii.tgz","cdk-build":{"env":{"AWSLINT_BASE_CONSTRUCT":true}},"stability":"experimental","_integrity":"sha512-G6lgpHRnch69TbDQhBnSVOC9bb0A4gLtMivwoEcar/izCi/2IniDKT5queZOkUh2H8TtSwyoWCq0ui9mgESw6Q==","repository":{"url":"git+https://github.com/aws/aws-cdk.git","type":"git","directory":"packages/@aws-cdk/aws-mediaconnect-alpha"},"_npmVersion":"10.8.2","description":"The CDK construct library for AWS Elemental MediaConnect","directories":{},"jsiiRosetta":{"exampleDependencies":{"@aws-cdk/aws-medialive-alpha":"^2.271.0-alpha.0"}},"_nodeVersion":"18.20.8","publishConfig":{"tag":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@types/jest":"^29.5.14","aws-cdk-lib":"2.271.0","@aws-cdk/pkglint":"2.271.0-alpha.0","@aws-cdk/integ-runner":"^2.202.3","@aws-cdk/cdk-build-tools":"2.271.0-alpha.0","@aws-cdk/integ-tests-alpha":"^2.271.0-alpha.0"},"separate-module":false,"peerDependencies":{"constructs":"^10.5.0","aws-cdk-lib":"^2.271.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-mediaconnect-alpha_2.271.0-alpha.0_1790361752852_0.4240159587980268","host":"s3://npm-registry-packages-npm-production"}},"2.272.0-alpha.0":{"_id":"@aws-cdk/aws-mediaconnect-alpha@2.272.0-alpha.0","bugs":{"url":"https://github.com/aws/aws-cdk/issues"},"dist":{"shasum":"0c204c92963d7bb96101bb9767aea13637bf6c7e","tarball":"https://registry.npmjs.org/@aws-cdk/aws-mediaconnect-alpha/-/aws-mediaconnect-alpha-2.272.0-alpha.0.tgz","fileCount":41,"integrity":"sha512-gQpbZ8K7vYLj08ZpBcQk3KF5PPaHVKbkNrxBWsuHTlY8Z9h/F8CFnZh8A4NE67/jmHisb9bF3jPKAWCstfh7oA==","signatures":[{"sig":"MEUCIDEcPc45CYKX1H2f5/S4ZxseVx7uxRkJnQoWjUFDFs6kAiEAr1Ob5FDcC/LRKSKz1qhS48LNgIe9DtspW48mXZfvyzk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCLHxDrLdHy8V+RNYRbgf148C9aXqYrKaUqu8DK9NXPdQIhAJBCf831rc8CdvkFBUyUQg8rna9XNtX2O49rgABS/Bg6"}],"unpackedSize":2243349},"jsii":{"outdir":"dist","targets":{"go":{"moduleName":"github.com/aws/aws-cdk-go","packageName":"awsmediaconnectalpha"},"java":{"maven":{"groupId":"software.amazon.awscdk","artifactId":"mediaconnect-alpha"},"package":"software.amazon.awscdk.services.mediaconnect.alpha"},"dotnet":{"iconUrl":"https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png","namespace":"Amazon.CDK.AWS.MediaConnect.Alpha","packageId":"Amazon.CDK.AWS.MediaConnect.Alpha"},"python":{"module":"aws_cdk.aws_mediaconnect_alpha","distName":"aws-cdk.aws-mediaconnect-alpha","classifiers":["Framework :: AWS CDK","Framework :: AWS CDK :: 2"]}},"metadata":{"jsii":{"rosetta":{"strict":true}}},"tsconfig":"tsconfig.json","validateTsconfig":"minimal"},"main":"lib/index.js","name":"@aws-cdk/aws-mediaconnect-alpha","_from":"file:/codebuild/output/src367649872/src/js/aws-mediaconnect-alpha@2.272.0-alpha.0.jsii.tgz","types":"lib/index.d.ts","author":{"url":"https://aws.amazon.com","name":"Amazon Web Services"},"engines":{"node":">= 20.0.0"},"license":"Apache-2.0","pkglint":{"exclude":["naming/package-matches-directory","assert/assert-dependency"]},"private":false,"scripts":{"gen":"gen-cdk","lint":"cdk-lint","test":"cdk-test","build":"cdk-build","integ":"integ-runner --unstable=toolkit-lib-engine --language javascript","watch":"cdk-watch","compat":"cdk-compat","awslint":"cdk-awslint","package":"cdk-package","pkglint":"pkglint -f","build+test":"yarn build && yarn test","build+extract":"yarn build && yarn rosetta:extract","rosetta:extract":"yarn --silent jsii-rosetta extract","build+test+extract":"yarn build+test && yarn rosetta:extract","build+test+package":"yarn build+test && yarn package"},"version":"2.272.0-alpha.0","_npmUser":{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"},"awscdkio":{"announce":false},"homepage":"https://github.com/aws/aws-cdk","keywords":["aws","cdk","constructs","AWS::MediaConnect","aws-mediaconnect"],"maturity":"experimental","_resolved":"/codebuild/output/src367649872/src/js/aws-mediaconnect-alpha@2.272.0-alpha.0.jsii.tgz","cdk-build":{"env":{"AWSLINT_BASE_CONSTRUCT":true}},"stability":"experimental","_integrity":"sha512-gQpbZ8K7vYLj08ZpBcQk3KF5PPaHVKbkNrxBWsuHTlY8Z9h/F8CFnZh8A4NE67/jmHisb9bF3jPKAWCstfh7oA==","repository":{"url":"git+https://github.com/aws/aws-cdk.git","type":"git","directory":"packages/@aws-cdk/aws-mediaconnect-alpha"},"_npmVersion":"10.8.2","description":"The CDK construct library for AWS Elemental MediaConnect","directories":{},"jsiiRosetta":{"exampleDependencies":{"@aws-cdk/aws-medialive-alpha":"^2.272.0-alpha.0"}},"maintainers":[{"name":"amzn-oss","email":"osa-3p@amazon.com"},{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"}],"_nodeVersion":"18.20.8","publishConfig":{"tag":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@types/jest":"^29.5.14","aws-cdk-lib":"2.272.0","@aws-cdk/pkglint":"2.272.0-alpha.0","@aws-cdk/integ-runner":"^2.202.3","@aws-cdk/cdk-build-tools":"2.272.0-alpha.0","@aws-cdk/integ-tests-alpha":"^2.272.0-alpha.0"},"separate-module":false,"peerDependencies":{"constructs":"^10.5.0","aws-cdk-lib":"^2.272.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aws-mediaconnect-alpha_2.272.0-alpha.0_1790777608514_0.9792774763117948"}}},"time":{"created":"2026-07-31T16:46:57.830Z","modified":"2026-09-30T14:13:29.232Z","2.263.0-alpha.0":"2026-07-31T16:46:58.128Z","2.264.0-alpha.0":"2026-08-10T17:49:54.089Z","2.265.0-alpha.0":"2026-08-13T19:38:19.526Z","2.266.0-alpha.0":"2026-08-19T18:51:57.267Z","2.267.0-alpha.0":"2026-08-27T18:25:50.831Z","2.268.0-alpha.0":"2026-09-02T19:32:33.662Z","2.269.0-alpha.0":"2026-09-10T21:02:03.283Z","2.270.0-alpha.0":"2026-09-17T18:27:49.794Z","2.271.0-alpha.0":"2026-09-25T18:42:32.955Z","2.272.0-alpha.0":"2026-09-30T14:13:28.606Z"},"bugs":{"url":"https://github.com/aws/aws-cdk/issues"},"author":{"url":"https://aws.amazon.com","name":"Amazon Web Services"},"license":"Apache-2.0","homepage":"https://github.com/aws/aws-cdk","keywords":["aws","cdk","constructs","AWS::MediaConnect","aws-mediaconnect"],"repository":{"url":"git+https://github.com/aws/aws-cdk.git","type":"git","directory":"packages/@aws-cdk/aws-mediaconnect-alpha"},"description":"The CDK construct library for AWS Elemental MediaConnect","maintainers":[{"name":"amzn-oss","email":"osa-3p@amazon.com"},{"name":"aws-cdk-team","email":"aws-cdk-dev@amazon.com"}],"readme":"# 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_20,\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_20,\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_20,\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_20,\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_20,\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_20,\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_20,\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_20,\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_20,\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_20,\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_20,\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_20,\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","readmeFilename":"README.md"}