@aws-cdk/aws-mediaconnect-alpha 2.263.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +28415 -0
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +592 -0
- package/LICENSE +201 -0
- package/NOTICE +2 -0
- package/README.md +1280 -0
- package/awslint.json +50 -0
- package/grants.json +42 -0
- package/lib/bridge-output.d.ts +54 -0
- package/lib/bridge-output.js +122 -0
- package/lib/bridge-source.d.ts +79 -0
- package/lib/bridge-source.js +217 -0
- package/lib/bridge.d.ts +419 -0
- package/lib/bridge.js +490 -0
- package/lib/flow-entitlement.d.ts +86 -0
- package/lib/flow-entitlement.js +152 -0
- package/lib/flow-output.d.ts +329 -0
- package/lib/flow-output.js +415 -0
- package/lib/flow-source-configuration.d.ts +558 -0
- package/lib/flow-source-configuration.js +595 -0
- package/lib/flow-source.d.ts +116 -0
- package/lib/flow-source.js +190 -0
- package/lib/flow.d.ts +975 -0
- package/lib/flow.js +1065 -0
- package/lib/gateway.d.ts +142 -0
- package/lib/gateway.js +236 -0
- package/lib/index.d.ts +14 -0
- package/lib/index.js +31 -0
- package/lib/mediaconnect-grants.generated.d.ts +53 -0
- package/lib/mediaconnect-grants.generated.js +136 -0
- package/lib/router-input.d.ts +686 -0
- package/lib/router-input.js +1095 -0
- package/lib/router-network-interface.d.ts +153 -0
- package/lib/router-network-interface.js +245 -0
- package/lib/router-output.d.ts +557 -0
- package/lib/router-output.js +789 -0
- package/lib/shared.d.ts +548 -0
- package/lib/shared.js +668 -0
- package/package.json +118 -0
- package/rosetta/_generated.ts-fixture +6 -0
- package/rosetta/default.ts-fixture +68 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { IResource } from 'aws-cdk-lib';
|
|
2
|
+
import type { IFlowEntitlementRef } from 'aws-cdk-lib/aws-mediaconnect';
|
|
3
|
+
import type { Construct } from 'constructs';
|
|
4
|
+
import type { IFlow } from './flow';
|
|
5
|
+
import type { StaticKeyEncryption } from './shared';
|
|
6
|
+
/**
|
|
7
|
+
* Interface for FlowEntitlement
|
|
8
|
+
*/
|
|
9
|
+
export interface IFlowEntitlement extends IResource, IFlowEntitlementRef {
|
|
10
|
+
/**
|
|
11
|
+
* The Amazon Resource Name (ARN) of the entitlement.
|
|
12
|
+
*
|
|
13
|
+
* @attribute
|
|
14
|
+
*/
|
|
15
|
+
readonly entitlementArn: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Options for entitlement status
|
|
19
|
+
*/
|
|
20
|
+
export declare enum EntitlementStatus {
|
|
21
|
+
/**
|
|
22
|
+
* Option for enabled
|
|
23
|
+
*/
|
|
24
|
+
ENABLED = "ENABLED",
|
|
25
|
+
/**
|
|
26
|
+
* Option for disabled
|
|
27
|
+
*/
|
|
28
|
+
DISABLED = "DISABLED"
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Properties for the Flow entitlement
|
|
32
|
+
*/
|
|
33
|
+
export interface FlowEntitlementProps {
|
|
34
|
+
/**
|
|
35
|
+
* The name of the entitlement. This value must be unique within the current flow.
|
|
36
|
+
*
|
|
37
|
+
* @default autogenerated
|
|
38
|
+
*/
|
|
39
|
+
readonly flowEntitlementName?: string;
|
|
40
|
+
/**
|
|
41
|
+
* The percentage of the entitlement data transfer fee that you want the subscriber to be responsible for.
|
|
42
|
+
*
|
|
43
|
+
* @default - the MediaConnect service default
|
|
44
|
+
*/
|
|
45
|
+
readonly dataTransferSubscriberFeePercent?: number;
|
|
46
|
+
/**
|
|
47
|
+
* A description of the entitlement. This description appears only on the MediaConnect console
|
|
48
|
+
* and is not visible outside of the current AWS account.
|
|
49
|
+
*/
|
|
50
|
+
readonly description: string;
|
|
51
|
+
/**
|
|
52
|
+
* Options for encrypting the entitlement.
|
|
53
|
+
* Only static key encryption is supported for entitlements.
|
|
54
|
+
*
|
|
55
|
+
* @default - no encryption
|
|
56
|
+
*/
|
|
57
|
+
readonly encryption?: StaticKeyEncryption;
|
|
58
|
+
/**
|
|
59
|
+
* The flow to set the entitlement from.
|
|
60
|
+
*/
|
|
61
|
+
readonly flow: IFlow;
|
|
62
|
+
/**
|
|
63
|
+
* The AWS account IDs that you want to share your content with. The receiving accounts (subscribers)
|
|
64
|
+
* will be allowed to create their own flows using your content as the source.
|
|
65
|
+
*/
|
|
66
|
+
readonly subscribers: string[];
|
|
67
|
+
/**
|
|
68
|
+
* An indication of whether the new entitlement should be enabled or disabled as soon as it is created.
|
|
69
|
+
*
|
|
70
|
+
* @default - undefined; when omitted, MediaConnect enables the entitlement (ENABLED) at deploy time
|
|
71
|
+
*/
|
|
72
|
+
readonly entitlementStatus?: EntitlementStatus;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Resource defines the permission that an AWS account grants to another AWS account to allow access to the content in a specific AWS Elemental MediaConnect flow.
|
|
76
|
+
*/
|
|
77
|
+
export declare class FlowEntitlement extends FlowEntitlementBase {
|
|
78
|
+
/** Uniquely identifies this class. */
|
|
79
|
+
static readonly PROPERTY_INJECTION_ID: string;
|
|
80
|
+
/**
|
|
81
|
+
* Creates a FlowEntitlement construct that represents an external (imported) FlowEntitlement.
|
|
82
|
+
*/
|
|
83
|
+
static fromFlowEntitlementArn(scope: Construct, id: string, flowEntitlementArn: string): IFlowEntitlement;
|
|
84
|
+
readonly entitlementArn: string;
|
|
85
|
+
constructor(scope: Construct, id: string, props: FlowEntitlementProps);
|
|
86
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
3
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
4
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
5
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
6
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
7
|
+
var _, done = false;
|
|
8
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
9
|
+
var context = {};
|
|
10
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
11
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
12
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
13
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
14
|
+
if (kind === "accessor") {
|
|
15
|
+
if (result === void 0) continue;
|
|
16
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
17
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
18
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
19
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
20
|
+
}
|
|
21
|
+
else if (_ = accept(result)) {
|
|
22
|
+
if (kind === "field") initializers.unshift(_);
|
|
23
|
+
else descriptor[key] = _;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
27
|
+
done = true;
|
|
28
|
+
};
|
|
29
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
30
|
+
var useValue = arguments.length > 2;
|
|
31
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
32
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
33
|
+
}
|
|
34
|
+
return useValue ? value : void 0;
|
|
35
|
+
};
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.FlowEntitlement = exports.EntitlementStatus = void 0;
|
|
38
|
+
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
39
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
40
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
41
|
+
const aws_mediaconnect_1 = require("aws-cdk-lib/aws-mediaconnect");
|
|
42
|
+
const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
|
|
43
|
+
const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
|
|
44
|
+
const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
|
|
45
|
+
const shared_1 = require("./shared");
|
|
46
|
+
/**
|
|
47
|
+
* Options for entitlement status
|
|
48
|
+
*/
|
|
49
|
+
var EntitlementStatus;
|
|
50
|
+
(function (EntitlementStatus) {
|
|
51
|
+
/**
|
|
52
|
+
* Option for enabled
|
|
53
|
+
*/
|
|
54
|
+
EntitlementStatus["ENABLED"] = "ENABLED";
|
|
55
|
+
/**
|
|
56
|
+
* Option for disabled
|
|
57
|
+
*/
|
|
58
|
+
EntitlementStatus["DISABLED"] = "DISABLED";
|
|
59
|
+
})(EntitlementStatus || (exports.EntitlementStatus = EntitlementStatus = {}));
|
|
60
|
+
/**
|
|
61
|
+
* Shared base for both real and imported flow entitlements.
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
64
|
+
class FlowEntitlementBase extends aws_cdk_lib_1.Resource {
|
|
65
|
+
get flowEntitlementRef() {
|
|
66
|
+
return { entitlementArn: this.entitlementArn };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Resource defines the permission that an AWS account grants to another AWS account to allow access to the content in a specific AWS Elemental MediaConnect flow.
|
|
71
|
+
*/
|
|
72
|
+
let FlowEntitlement = (() => {
|
|
73
|
+
let _classDecorators = [prop_injectable_1.propertyInjectable];
|
|
74
|
+
let _classDescriptor;
|
|
75
|
+
let _classExtraInitializers = [];
|
|
76
|
+
let _classThis;
|
|
77
|
+
let _classSuper = FlowEntitlementBase;
|
|
78
|
+
var FlowEntitlement = class extends _classSuper {
|
|
79
|
+
static { _classThis = this; }
|
|
80
|
+
static {
|
|
81
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
82
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
83
|
+
FlowEntitlement = _classThis = _classDescriptor.value;
|
|
84
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
85
|
+
}
|
|
86
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.FlowEntitlement", version: "2.263.0-alpha.0" };
|
|
87
|
+
/** Uniquely identifies this class. */
|
|
88
|
+
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-mediaconnect-alpha.FlowEntitlement';
|
|
89
|
+
/**
|
|
90
|
+
* Creates a FlowEntitlement construct that represents an external (imported) FlowEntitlement.
|
|
91
|
+
*/
|
|
92
|
+
static fromFlowEntitlementArn(scope, id, flowEntitlementArn) {
|
|
93
|
+
class Import extends FlowEntitlementBase {
|
|
94
|
+
entitlementArn = flowEntitlementArn;
|
|
95
|
+
}
|
|
96
|
+
return new Import(scope, id);
|
|
97
|
+
}
|
|
98
|
+
entitlementArn;
|
|
99
|
+
constructor(scope, id, props) {
|
|
100
|
+
super(scope, id, {
|
|
101
|
+
physicalName: props?.flowEntitlementName ?? aws_cdk_lib_1.Lazy.string({ produce: () => aws_cdk_lib_1.Names.uniqueResourceName(this, { maxLength: 64 }) }),
|
|
102
|
+
});
|
|
103
|
+
try {
|
|
104
|
+
jsiiDeprecationWarnings._aws_cdk_aws_mediaconnect_alpha_FlowEntitlementProps(props);
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
108
|
+
Error.captureStackTrace(error, FlowEntitlement);
|
|
109
|
+
}
|
|
110
|
+
throw error;
|
|
111
|
+
}
|
|
112
|
+
// Validate flow entitlement name if provided
|
|
113
|
+
if (props.flowEntitlementName != null && props.flowEntitlementName !== '' && !aws_cdk_lib_1.Token.isUnresolved(props.flowEntitlementName)) {
|
|
114
|
+
if (props.flowEntitlementName.length > 64) {
|
|
115
|
+
throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `FlowEntitlementNameLength`, `Flow entitlement name must be between 1 and 64 characters, got ${props.flowEntitlementName.length}`, this);
|
|
116
|
+
}
|
|
117
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(props.flowEntitlementName)) {
|
|
118
|
+
throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `FlowEntitlementNameFormat`, `Flow entitlement name must contain only alphanumeric characters, hyphens, and underscores, got '${props.flowEntitlementName}'`, this);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Validate description length if provided
|
|
122
|
+
if (props.description != null && !aws_cdk_lib_1.Token.isUnresolved(props.description) && props.description.length > 1024) {
|
|
123
|
+
throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `FlowEntitlementDescriptionLength`, `Flow entitlement description must not exceed 1024 characters, got ${props.description.length}`, this);
|
|
124
|
+
}
|
|
125
|
+
// Validate dataTransferSubscriberFeePercent range — service rejects values outside 0-100 at deploy time
|
|
126
|
+
if (props.dataTransferSubscriberFeePercent !== undefined && !aws_cdk_lib_1.Token.isUnresolved(props.dataTransferSubscriberFeePercent)) {
|
|
127
|
+
const pct = props.dataTransferSubscriberFeePercent;
|
|
128
|
+
if (!Number.isInteger(pct) || pct < 0 || pct > 100) {
|
|
129
|
+
throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `FlowEntitlementSubscriberFeePercentRange`, `dataTransferSubscriberFeePercent must be an integer between 0 and 100, got ${pct}`, this);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Enhanced CDK Analytics Telemetry
|
|
133
|
+
(0, metadata_resource_1.addConstructMetadata)(this, props);
|
|
134
|
+
const resource = new aws_mediaconnect_1.CfnFlowEntitlement(this, 'Resource', {
|
|
135
|
+
name: this.physicalName,
|
|
136
|
+
flowArn: props.flow.flowArn,
|
|
137
|
+
description: props.description,
|
|
138
|
+
subscribers: props.subscribers,
|
|
139
|
+
dataTransferSubscriberFeePercent: props.dataTransferSubscriberFeePercent,
|
|
140
|
+
entitlementStatus: props.entitlementStatus,
|
|
141
|
+
encryption: props.encryption ? (0, shared_1.renderStaticKeyEncryption)(this, props.encryption, props.flow.flowArn) : undefined,
|
|
142
|
+
});
|
|
143
|
+
this.entitlementArn = resource.attrEntitlementArn;
|
|
144
|
+
}
|
|
145
|
+
static {
|
|
146
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
return FlowEntitlement = _classThis;
|
|
150
|
+
})();
|
|
151
|
+
exports.FlowEntitlement = FlowEntitlement;
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1lbnRpdGxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZsb3ctZW50aXRsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQTRFO0FBQzVFLG1FQUFrRTtBQUVsRSw0RUFBNEQ7QUFDNUQsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUkxRSxxQ0FBcUQ7QUFjckQ7O0dBRUc7QUFDSCxJQUFZLGlCQVNYO0FBVEQsV0FBWSxpQkFBaUI7SUFDM0I7O09BRUc7SUFDSCx3Q0FBaUIsQ0FBQTtJQUNqQjs7T0FFRztJQUNILDBDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFUVyxpQkFBaUIsaUNBQWpCLGlCQUFpQixRQVM1QjtBQXFERDs7O0dBR0c7QUFDSCxNQUFlLG1CQUFvQixTQUFRLHNCQUFRO0lBR2pELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0tBQ2hEO0NBQ0Y7QUFFRDs7R0FFRztJQUVVLGVBQWU7NEJBRDNCLG9DQUFrQjs7OztzQkFDa0IsbUJBQW1COytCQUEzQixTQUFRLFdBQW1COzs7O1lBQXhELDZLQWdFQzs7Ozs7UUEvREMsc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyxpREFBaUQsQ0FBQztRQUV6Rzs7V0FFRztRQUNJLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxrQkFBMEI7WUFDM0YsTUFBTSxNQUFPLFNBQVEsbUJBQW1CO2dCQUN0QixjQUFjLEdBQUcsa0JBQWtCLENBQUM7YUFDckQ7WUFFRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztTQUM5QjtRQUVlLGNBQWMsQ0FBUztRQUV2QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1lBQ25FLEtBQUssQ0FBQyxLQUFL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VUFBVSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDakgsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUM7U0FDbkQ7O1lBL0RVLHVEQUFlOzs7OztBQUFmLDBDQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBSZXNvdXJjZSwgTGF6eSwgTmFtZXMsIFRva2VuLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDZm5GbG93RW50aXRsZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbWVkaWFjb25uZWN0JztcbmltcG9ydCB0eXBlIHsgSUZsb3dFbnRpdGxlbWVudFJlZiwgRmxvd0VudGl0bGVtZW50UmVmZXJlbmNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLW1lZGlhY29ubmVjdCc7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElGbG93IH0gZnJvbSAnLi9mbG93JztcbmltcG9ydCB0eXBlIHsgU3RhdGljS2V5RW5jcnlwdGlvbiB9IGZyb20gJy4vc2hhcmVkJztcbmltcG9ydCB7IHJlbmRlclN0YXRpY0tleUVuY3J5cHRpb24gfSBmcm9tICcuL3NoYXJlZCc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBGbG93RW50aXRsZW1lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRmxvd0VudGl0bGVtZW50IGV4dGVuZHMgSVJlc291cmNlLCBJRmxvd0VudGl0bGVtZW50UmVmIHtcbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgZW50aXRsZW1lbnQuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGVudGl0bGVtZW50QXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZW50aXRsZW1lbnQgc3RhdHVzXG4gKi9cbmV4cG9ydCBlbnVtIEVudGl0bGVtZW50U3RhdHVzIHtcbiAgLyoqXG4gICAqIE9wdGlvbiBmb3IgZW5hYmxlZFxuICAgKi9cbiAgRU5BQkxFRD0nRU5BQkxFRCcsXG4gIC8qKlxuICAgKiBPcHRpb24gZm9yIGRpc2FibGVkXG4gICAqL1xuICBESVNBQkxFRD0nRElTQUJMRUQnLFxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBGbG93IGVudGl0bGVtZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0VudGl0bGVtZW50UHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGVudGl0bGVtZW50LiBUaGlzIHZhbHVlIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgY3VycmVudCBmbG93LlxuICAgKlxuICAgKiBAZGVmYXVsdCBhdXRvZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBmbG93RW50aXRsZW1lbnROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyY2VudGFnZSBvZiB0aGUgZW50aXRsZW1lbnQgZGF0YSB0cmFuc2ZlciBmZWUgdGhhdCB5b3Ugd2FudCB0aGUgc3Vic2NyaWJlciB0byBiZSByZXNwb25zaWJsZSBmb3IuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIE1lZGlhQ29ubmVjdCBzZXJ2aWNlIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFUcmFuc2ZlclN1YnNjcmliZXJGZWVQZXJjZW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBlbnRpdGxlbWVudC4gVGhpcyBkZXNjcmlwdGlvbiBhcHBlYXJzIG9ubHkgb24gdGhlIE1lZGlhQ29ubmVjdCBjb25zb2xlXG4gICAqIGFuZCBpcyBub3QgdmlzaWJsZSBvdXRzaWRlIG9mIHRoZSBjdXJyZW50IEFXUyBhY2NvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgZW5jcnlwdGluZyB0aGUgZW50aXRsZW1lbnQuXG4gICAqIE9ubHkgc3RhdGljIGtleSBlbmNyeXB0aW9uIGlzIHN1cHBvcnRlZCBmb3IgZW50aXRsZW1lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGVuY3J5cHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBTdGF0aWNLZXlFbmNyeXB0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgZmxvdyB0byBzZXQgdGhlIGVudGl0bGVtZW50IGZyb20uXG4gICAqL1xuICByZWFkb25seSBmbG93OiBJRmxvdztcblxuICAvKipcbiAgICogVGhlIEFXUyBhY2NvdW50IElEcyB0aGF0IHlvdSB3YW50IHRvIHNoYXJlIHlvdXIgY29udGVudCB3aXRoLiBUaGUgcmVjZWl2aW5nIGFjY291bnRzIChzdWJzY3JpYmVycylcbiAgICogd2lsbCBiZSBhbGxvd2VkIHRvIGNyZWF0ZSB0aGVpciBvd24gZmxvd3MgdXNpbmcgeW91ciBjb250ZW50IGFzIHRoZSBzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSBzdWJzY3JpYmVyczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFuIGluZGljYXRpb24gb2Ygd2hldGhlciB0aGUgbmV3IGVudGl0bGVtZW50IHNob3VsZCBiZSBlbmFibGVkIG9yIGRpc2FibGVkIGFzIHNvb24gYXMgaXQgaXMgY3JlYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWQ7IHdoZW4gb21pdHRlZCwgTWVkaWFDb25uZWN0IGVuYWJsZXMgdGhlIGVudGl0bGVtZW50IChFTkFCTEVEKSBhdCBkZXBsb3kgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgZW50aXRsZW1lbnRTdGF0dXM/OiBFbnRpdGxlbWVudFN0YXR1cztcbn1cblxuLyoqXG4gKiBTaGFyZWQgYmFzZSBmb3IgYm90aCByZWFsIGFuZCBpbXBvcnRlZCBmbG93IGVudGl0bGVtZW50cy5cbiAqIEBpbnRlcm5hbFxuICovXG5hYnN0cmFjdCBjbGFzcyBGbG93RW50aXRsZW1lbnRCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJRmxvd0VudGl0bGVtZW50IHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGVudGl0bGVtZW50QXJuOiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBmbG93RW50aXRsZW1lbnRSZWYoKTogRmxvd0VudGl0bGVtZW50UmVmZXJlbmNlIHtcbiAgICByZXR1cm4geyBlbnRpdGxlbWVudEFybjogdGhpcy5lbnRpdGxlbWVudEFybiB9O1xuICB9XG59XG5cbi8qKlxuICogUmVzb3VyY2UgZGVmaW5lcyB0aGUgcGVybWlzc2lvbiB0aGF0IGFuIEFXUyBhY2NvdW50IGdyYW50cyB0byBhbm90aGVyIEFXUyBhY2NvdW50IHRvIGFsbG93IGFjY2VzcyB0byB0aGUgY29udGVudCBpbiBhIHNwZWNpZmljIEFXUyBFbGVtZW50YWwgTWVkaWFDb25uZWN0IGZsb3cuXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBGbG93RW50aXRsZW1lbnQgZXh0ZW5kcyBGbG93RW50aXRsZW1lbnRCYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtbWVkaWFjb25uZWN0LWFscGhhLkZsb3dFbnRpdGxlbWVudCc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBGbG93RW50aXRsZW1lbnQgY29uc3RydWN0IHRoYXQgcmVwcmVzZW50cyBhbiBleHRlcm5hbCAoaW1wb3J0ZWQpIEZsb3dFbnRpdGxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUZsb3dFbnRpdGxlbWVudEFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBmbG93RW50aXRsZW1lbnRBcm46IHN0cmluZyk6IElGbG93RW50aXRsZW1lbnQge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIEZsb3dFbnRpdGxlbWVudEJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGVudGl0bGVtZW50QXJuID0gZmxvd0VudGl0bGVtZW50QXJuO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXRsZW1lbnRBcm46IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRmxvd0VudGl0bGVtZW50UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHM/LmZsb3dFbnRpdGxlbWVudE5hbWUgPz8gTGF6eS5zdHJpbmcoeyBwcm9kdWNlOiAoKSA9PiBOYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywgeyBtYXhMZW5ndGg6IDY0IH0pIH0pLFxuICAgIH0pO1xuXG4gICAgLy8gVmFsaWRhdGUgZmxvdyBlbnRpdGxlbWVudCBuYW1lIGlmIHByb3ZpZGVkXG4gICAgaWYgKHByb3BzLmZsb3dFbnRpdGxlbWVudE5hbWUgIT0gbnVsbCAmJiBwcm9wcy5mbG93RW50aXRsZW1lbnROYW1lICE9PSAnJyAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmZsb3dFbnRpdGxlbWVudE5hbWUpKSB7XG4gICAgICBpZiAocHJvcHMuZmxvd0VudGl0bGVtZW50TmFtZS5sZW5ndGggPiA2NCkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBGbG93RW50aXRsZW1lbnROYW1lTGVuZ3RoYCwgYEZsb3cgZW50aXRsZW1lbnQgbmFtZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNjQgY2hhcmFjdGVycywgZ290ICR7cHJvcHMuZmxvd0VudGl0bGVtZW50TmFtZS5sZW5ndGh9YCwgdGhpcyk7XG4gICAgICB9XG4gICAgICBpZiAoIS9eW2EtekEtWjAtOV8tXSskLy50ZXN0KHByb3BzLmZsb3dFbnRpdGxlbWVudE5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YEZsb3dFbnRpdGxlbWVudE5hbWVGb3JtYXRgLCBgRmxvdyBlbnRpdGxlbWVudCBuYW1lIG11c3QgY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBoeXBoZW5zLCBhbmQgdW5kZXJzY29yZXMsIGdvdCAnJHtwcm9wcy5mbG93RW50aXRsZW1lbnROYW1lfSdgLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBkZXNjcmlwdGlvbiBsZW5ndGggaWYgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMuZGVzY3JpcHRpb24gIT0gbnVsbCAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmRlc2NyaXB0aW9uKSAmJiBwcm9wcy5kZXNjcmlwdGlvbi5sZW5ndGggPiAxMDI0KSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBGbG93RW50aXRsZW1lbnREZXNjcmlwdGlvbkxlbmd0aGAsIGBGbG93IGVudGl0bGVtZW50IGRlc2NyaXB0aW9uIG11c3Qgbm90IGV4Y2VlZCAxMDI0IGNoYXJhY3RlcnMsIGdvdCAke3Byb3BzLmRlc2NyaXB0aW9uLmxlbmd0aH1gLCB0aGlzKTtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBkYXRhVHJhbnNmZXJTdWJzY3JpYmVyRmVlUGVyY2VudCByYW5nZSDigJQgc2VydmljZSByZWplY3RzIHZhbHVlcyBvdXRzaWRlIDAtMTAwIGF0IGRlcGxveSB0aW1lXG4gICAgaWYgKHByb3BzLmRhdGFUcmFuc2ZlclN1YnNjcmliZXJGZWVQZXJjZW50ICE9PSB1bmRlZmluZWQgJiYgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5kYXRhVHJhbnNmZXJTdWJzY3JpYmVyRmVlUGVyY2VudCkpIHtcbiAgICAgIGNvbnN0IHBjdCA9IHByb3BzLmRhdGFUcmFuc2ZlclN1YnNjcmliZXJGZWVQZXJjZW50O1xuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHBjdCkgfHwgcGN0IDwgMCB8fCBwY3QgPiAxMDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICBsaXRgRmxvd0VudGl0bGVtZW50U3Vic2NyaWJlckZlZVBlcmNlbnRSYW5nZWAsXG4gICAgICAgICAgYGRhdGFUcmFuc2ZlclN1YnNjcmliZXJGZWVQZXJjZW50IG11c3QgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDEwMCwgZ290ICR7cGN0fWAsXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmbkZsb3dFbnRpdGxlbWVudCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBuYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIGZsb3dBcm46IHByb3BzLmZsb3cuZmxvd0FybixcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIHN1YnNjcmliZXJzOiBwcm9wcy5zdWJzY3JpYmVycyxcbiAgICAgIGRhdGFUcmFuc2ZlclN1YnNjcmliZXJGZWVQZXJjZW50OiBwcm9wcy5kYXRhVHJhbnNmZXJTdWJzY3JpYmVyRmVlUGVyY2VudCxcbiAgICAgIGVudGl0bGVtZW50U3RhdHVzOiBwcm9wcy5lbnRpdGxlbWVudFN0YXR1cyxcbiAgICAgIGVuY3J5cHRpb246IHByb3BzLmVuY3J5cHRpb24gPyByZW5kZXJTdGF0aWNLZXlFbmNyeXB0aW9uKHRoaXMsIHByb3BzLmVuY3J5cHRpb24sIHByb3BzLmZsb3cuZmxvd0FybikgOiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICB0aGlzLmVudGl0bGVtZW50QXJuID0gcmVzb3VyY2UuYXR0ckVudGl0bGVtZW50QXJuO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
import type { Duration, IResource } from 'aws-cdk-lib';
|
|
2
|
+
import type { IFlowOutputRef } from 'aws-cdk-lib/aws-mediaconnect';
|
|
3
|
+
import type { Construct } from 'constructs';
|
|
4
|
+
import type { IFlow } from './flow';
|
|
5
|
+
import type { SrtPasswordEncryption, StaticKeyEncryption, TransitEncryption, VpcInterfaceConfig } from './shared';
|
|
6
|
+
import { State } from './shared';
|
|
7
|
+
/**
|
|
8
|
+
* Interface for Flow Output
|
|
9
|
+
*/
|
|
10
|
+
export interface IFlowOutput extends IResource, IFlowOutputRef {
|
|
11
|
+
/**
|
|
12
|
+
* The Amazon Resource Name (ARN) of the flow output.
|
|
13
|
+
*
|
|
14
|
+
* @attribute
|
|
15
|
+
*/
|
|
16
|
+
readonly flowOutputArn: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Properties for flow output
|
|
20
|
+
*/
|
|
21
|
+
export interface FlowOutputProps {
|
|
22
|
+
/**
|
|
23
|
+
* The name of the output.
|
|
24
|
+
*
|
|
25
|
+
* @default - auto-generated
|
|
26
|
+
*/
|
|
27
|
+
readonly flowOutputName?: string;
|
|
28
|
+
/**
|
|
29
|
+
* A description of the output.
|
|
30
|
+
*
|
|
31
|
+
* This description appears only on the MediaConnect console and will not be seen by the end user.
|
|
32
|
+
*
|
|
33
|
+
* @default - no description
|
|
34
|
+
*/
|
|
35
|
+
readonly description?: string;
|
|
36
|
+
/**
|
|
37
|
+
* An indication of whether the output should transmit data or not.
|
|
38
|
+
*
|
|
39
|
+
* @default - undefined; when omitted, MediaConnect enables the output (ENABLED) at deploy time
|
|
40
|
+
*/
|
|
41
|
+
readonly outputStatus?: State;
|
|
42
|
+
/**
|
|
43
|
+
* The flow this output is attached to.
|
|
44
|
+
*/
|
|
45
|
+
readonly flow: IFlow;
|
|
46
|
+
/**
|
|
47
|
+
* Output configuration
|
|
48
|
+
*/
|
|
49
|
+
readonly output: OutputConfiguration;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Configuration options for RTP outputs.
|
|
53
|
+
*/
|
|
54
|
+
export interface RtpOutputConfig {
|
|
55
|
+
/**
|
|
56
|
+
* The smoothing latency for RIST, RTP, and RTP-FEC streams.
|
|
57
|
+
*
|
|
58
|
+
* @default - no smoothing latency
|
|
59
|
+
*/
|
|
60
|
+
readonly smoothingLatency?: Duration;
|
|
61
|
+
/**
|
|
62
|
+
* The IP address where you want to send the output.
|
|
63
|
+
*/
|
|
64
|
+
readonly destination: string;
|
|
65
|
+
/**
|
|
66
|
+
* The port to use when content is distributed to this output.
|
|
67
|
+
*/
|
|
68
|
+
readonly port: number;
|
|
69
|
+
/**
|
|
70
|
+
* The name of the VPC interface attachment to use for this output.
|
|
71
|
+
*
|
|
72
|
+
* @default - no VPC interface attachment
|
|
73
|
+
*/
|
|
74
|
+
readonly vpcInterfaceAttachment?: VpcInterfaceConfig;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Configuration options for RTP-FEC outputs.
|
|
78
|
+
*/
|
|
79
|
+
export interface RtpFecOutputConfig extends RtpOutputConfig {
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Configuration options for RIST outputs.
|
|
83
|
+
*/
|
|
84
|
+
export interface RistOutputConfig extends RtpOutputConfig {
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Configuration options for Zixi Pull outputs.
|
|
88
|
+
*/
|
|
89
|
+
export interface ZixiPullOutputConfig {
|
|
90
|
+
/**
|
|
91
|
+
* The stream ID that you want to use for this transport.
|
|
92
|
+
*/
|
|
93
|
+
readonly streamId: string;
|
|
94
|
+
/**
|
|
95
|
+
* The remote ID for the Zixi-pull stream.
|
|
96
|
+
*/
|
|
97
|
+
readonly remoteId: string;
|
|
98
|
+
/**
|
|
99
|
+
* The maximum latency for Zixi-based streams.
|
|
100
|
+
*/
|
|
101
|
+
readonly maxLatency: Duration;
|
|
102
|
+
/**
|
|
103
|
+
* The range of IP addresses that should be allowed to initiate output requests to this flow.
|
|
104
|
+
* These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
|
|
105
|
+
*
|
|
106
|
+
* Required by the MediaConnect service for Zixi Pull outputs.
|
|
107
|
+
*/
|
|
108
|
+
readonly cidrAllowList: string[];
|
|
109
|
+
/**
|
|
110
|
+
* Static key encryption for this output.
|
|
111
|
+
*
|
|
112
|
+
* @default - no encryption
|
|
113
|
+
*/
|
|
114
|
+
readonly encryption?: StaticKeyEncryption;
|
|
115
|
+
/**
|
|
116
|
+
* The VPC interface attachment to use for this output.
|
|
117
|
+
*
|
|
118
|
+
* @default - no VPC interface attachment
|
|
119
|
+
*/
|
|
120
|
+
readonly vpcInterfaceAttachment?: VpcInterfaceConfig;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Configuration options for Zixi Push outputs.
|
|
124
|
+
*/
|
|
125
|
+
export interface ZixiPushOutputConfig {
|
|
126
|
+
/**
|
|
127
|
+
* The stream ID that you want to use for this transport.
|
|
128
|
+
*/
|
|
129
|
+
readonly streamId: string;
|
|
130
|
+
/**
|
|
131
|
+
* The maximum latency for Zixi-based streams.
|
|
132
|
+
*/
|
|
133
|
+
readonly maxLatency: Duration;
|
|
134
|
+
/**
|
|
135
|
+
* The range of IP addresses that should be allowed to initiate output requests to this flow.
|
|
136
|
+
* These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
|
|
137
|
+
*
|
|
138
|
+
* @default - no CIDR allow list
|
|
139
|
+
*/
|
|
140
|
+
readonly cidrAllowList?: string[];
|
|
141
|
+
/**
|
|
142
|
+
* Static key encryption for this output.
|
|
143
|
+
*
|
|
144
|
+
* @default - no encryption
|
|
145
|
+
*/
|
|
146
|
+
readonly encryption?: StaticKeyEncryption;
|
|
147
|
+
/**
|
|
148
|
+
* The IP address where you want to send the output.
|
|
149
|
+
*/
|
|
150
|
+
readonly destination: string;
|
|
151
|
+
/**
|
|
152
|
+
* The port to use when content is distributed to this output.
|
|
153
|
+
*/
|
|
154
|
+
readonly port: number;
|
|
155
|
+
/**
|
|
156
|
+
* The VPC interface attachment to use for this output.
|
|
157
|
+
*
|
|
158
|
+
* @default - no VPC interface attachment
|
|
159
|
+
*/
|
|
160
|
+
readonly vpcInterfaceAttachment?: VpcInterfaceConfig;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Configuration options for SRT Caller outputs.
|
|
164
|
+
*/
|
|
165
|
+
export interface SrtCallerOutputConfig {
|
|
166
|
+
/**
|
|
167
|
+
* The minimum latency in milliseconds for SRT-based streams. The value you set on your
|
|
168
|
+
* MediaConnect output represents the minimal potential latency of that connection. The
|
|
169
|
+
* latency of the stream is set to the higher of the sender's minimum latency and the
|
|
170
|
+
* receiver's minimum latency.
|
|
171
|
+
*
|
|
172
|
+
* @default - no minimum latency
|
|
173
|
+
*/
|
|
174
|
+
readonly minLatency?: Duration;
|
|
175
|
+
/**
|
|
176
|
+
* The stream ID that you want to use for this transport.
|
|
177
|
+
*
|
|
178
|
+
* @default - no stream ID
|
|
179
|
+
*/
|
|
180
|
+
readonly streamId?: string;
|
|
181
|
+
/**
|
|
182
|
+
* The IP address where you want to send the output.
|
|
183
|
+
*/
|
|
184
|
+
readonly destination: string;
|
|
185
|
+
/**
|
|
186
|
+
* The port to use when content is distributed to this output.
|
|
187
|
+
*/
|
|
188
|
+
readonly port: number;
|
|
189
|
+
/**
|
|
190
|
+
* SRT password encryption for this output.
|
|
191
|
+
*
|
|
192
|
+
* @default - no encryption
|
|
193
|
+
*/
|
|
194
|
+
readonly encryption?: SrtPasswordEncryption;
|
|
195
|
+
/**
|
|
196
|
+
* The VPC interface attachment to use for this output.
|
|
197
|
+
*
|
|
198
|
+
* @default - no VPC interface attachment
|
|
199
|
+
*/
|
|
200
|
+
readonly vpcInterfaceAttachment?: VpcInterfaceConfig;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Configuration options for SRT Listener outputs.
|
|
204
|
+
*/
|
|
205
|
+
export interface SrtListenerOutputConfig {
|
|
206
|
+
/**
|
|
207
|
+
* The minimum latency in milliseconds for SRT-based streams. The value you set on your
|
|
208
|
+
* MediaConnect output represents the minimal potential latency of that connection. The
|
|
209
|
+
* latency of the stream is set to the higher of the sender's minimum latency and the
|
|
210
|
+
* receiver's minimum latency.
|
|
211
|
+
*
|
|
212
|
+
* @default - no minimum latency
|
|
213
|
+
*/
|
|
214
|
+
readonly minLatency?: Duration;
|
|
215
|
+
/**
|
|
216
|
+
* The port to use when content is distributed to this output.
|
|
217
|
+
*/
|
|
218
|
+
readonly port: number;
|
|
219
|
+
/**
|
|
220
|
+
* The range of IP addresses that should be allowed to initiate output requests to this flow.
|
|
221
|
+
* These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
|
|
222
|
+
*
|
|
223
|
+
* @default - no CIDR allow list
|
|
224
|
+
*/
|
|
225
|
+
readonly cidrAllowList?: string[];
|
|
226
|
+
/**
|
|
227
|
+
* SRT password encryption for this output.
|
|
228
|
+
*
|
|
229
|
+
* @default - no encryption
|
|
230
|
+
*/
|
|
231
|
+
readonly encryption?: SrtPasswordEncryption;
|
|
232
|
+
/**
|
|
233
|
+
* The VPC interface attachment to use for this output.
|
|
234
|
+
*
|
|
235
|
+
* @default - no VPC interface attachment
|
|
236
|
+
*/
|
|
237
|
+
readonly vpcInterfaceAttachment?: VpcInterfaceConfig;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Configuration options for NDI outputs.
|
|
241
|
+
*/
|
|
242
|
+
export interface NdiOutputConfig {
|
|
243
|
+
/**
|
|
244
|
+
* A suffix for the names of the NDI sources that the flow creates.
|
|
245
|
+
*
|
|
246
|
+
* @default - the output name is used
|
|
247
|
+
*/
|
|
248
|
+
readonly ndiProgramName?: string;
|
|
249
|
+
/**
|
|
250
|
+
* A quality setting for the NDI Speed HQ encoder, expressed as a percentage.
|
|
251
|
+
*
|
|
252
|
+
* Valid range: 100-200. Higher values produce higher quality and larger bitrate.
|
|
253
|
+
*
|
|
254
|
+
* @see https://aws.amazon.com/about-aws/whats-new/2025/03/aws-elemental-mediaconnect-support-ndi-outputs/
|
|
255
|
+
* @default - the MediaConnect service default
|
|
256
|
+
*/
|
|
257
|
+
readonly ndiSpeedHqQuality?: number;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Output configuration to Router
|
|
261
|
+
*/
|
|
262
|
+
export interface RouterTransitConfig {
|
|
263
|
+
/**
|
|
264
|
+
* Specifies whether encryption is to be used.
|
|
265
|
+
*
|
|
266
|
+
* @default no encryption
|
|
267
|
+
*/
|
|
268
|
+
readonly encryption?: TransitEncryption;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Configuration options to define a FlowOutput by protocol.
|
|
272
|
+
*/
|
|
273
|
+
export declare class OutputConfiguration {
|
|
274
|
+
private readonly _output;
|
|
275
|
+
/**
|
|
276
|
+
* The source configuration for flows receiving a stream from router.
|
|
277
|
+
*/
|
|
278
|
+
static router(input?: RouterTransitConfig): OutputConfiguration;
|
|
279
|
+
/**
|
|
280
|
+
* Option for RTP configuration
|
|
281
|
+
*/
|
|
282
|
+
static rtp(input: RtpOutputConfig): OutputConfiguration;
|
|
283
|
+
/**
|
|
284
|
+
* Option for RTP-FEC configuration
|
|
285
|
+
*/
|
|
286
|
+
static rtpFec(input: RtpFecOutputConfig): OutputConfiguration;
|
|
287
|
+
/**
|
|
288
|
+
* Option for RIST configuration
|
|
289
|
+
*/
|
|
290
|
+
static rist(input: RistOutputConfig): OutputConfiguration;
|
|
291
|
+
/**
|
|
292
|
+
* Option for Zixi Push configuration
|
|
293
|
+
*/
|
|
294
|
+
static zixiPush(input: ZixiPushOutputConfig): OutputConfiguration;
|
|
295
|
+
/**
|
|
296
|
+
* Option for Zixi Pull configuration
|
|
297
|
+
*/
|
|
298
|
+
static zixiPull(input: ZixiPullOutputConfig): OutputConfiguration;
|
|
299
|
+
/**
|
|
300
|
+
* Option for SRT Caller configuration
|
|
301
|
+
*/
|
|
302
|
+
static srtCaller(input: SrtCallerOutputConfig): OutputConfiguration;
|
|
303
|
+
/**
|
|
304
|
+
* Option for SRT Listener configuration
|
|
305
|
+
*/
|
|
306
|
+
static srtListener(input: SrtListenerOutputConfig): OutputConfiguration;
|
|
307
|
+
/**
|
|
308
|
+
* Option for NDI configuration
|
|
309
|
+
*/
|
|
310
|
+
static ndi(input?: NdiOutputConfig): OutputConfiguration;
|
|
311
|
+
/**
|
|
312
|
+
* @param output - Configuration for outputs in output
|
|
313
|
+
*/
|
|
314
|
+
private constructor();
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Resource defines the destination address, protocol, and port that
|
|
318
|
+
* AWS Elemental MediaConnect sends the ingested video to.
|
|
319
|
+
*/
|
|
320
|
+
export declare class FlowOutput extends FlowOutputBase {
|
|
321
|
+
/** Uniquely identifies this class. */
|
|
322
|
+
static readonly PROPERTY_INJECTION_ID: string;
|
|
323
|
+
/**
|
|
324
|
+
* Creates a Flow Ouput construct that represents an external (imported) Flow Output.
|
|
325
|
+
*/
|
|
326
|
+
static fromFlowOutputArn(scope: Construct, id: string, flowOutputArn: string): IFlowOutput;
|
|
327
|
+
readonly flowOutputArn: string;
|
|
328
|
+
constructor(scope: Construct, id: string, props: FlowOutputProps);
|
|
329
|
+
}
|