@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/awslint.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "exclude": [
3
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.TransitEncryption.role",
4
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.TransitEncryption.secret",
5
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.StaticKeyEncryption.role",
6
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.StaticKeyEncryption.secret",
7
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.SrtPasswordEncryption.role",
8
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.SrtPasswordEncryption.secret",
9
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.RouterSrtEncryption.role",
10
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.RouterSrtEncryption.secret",
11
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.BridgeProps.gateway",
12
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.BridgeOutputProps.bridge",
13
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.BridgeSourceProps.bridge",
14
+ "from-method:@aws-cdk/aws-mediaconnect-alpha.BridgeOutput",
15
+ "from-method:@aws-cdk/aws-mediaconnect-alpha.BridgeSource",
16
+ "props-physical-name:@aws-cdk/aws-mediaconnect-alpha.FlowSourceProps",
17
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.FlowEntitlementProps.flow",
18
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.FlowOutputProps.flow",
19
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.FlowSourceProps.flow",
20
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.VpcInterfaceConfig.role",
21
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.VpcInterfaceConfig.securityGroups",
22
+ "prefer-ref-interface:@aws-cdk/aws-mediaconnect-alpha.VpcInterfaceConfig.subnet",
23
+ "no-unused-type:@aws-cdk/aws-mediaconnect-alpha.SourceProtocol",
24
+ "prefer-ref-interface:aws-cdk-lib.aws_secretsmanager.RotationScheduleOptions.rotationLambda",
25
+ "prefer-ref-interface:aws-cdk-lib.aws_lambda.IEventSource.bind.target",
26
+ "prefer-ref-interface:aws-cdk-lib.aws_lambda.EventSourceMappingOptions.filterEncryption",
27
+ "prefer-ref-interface:aws-cdk-lib.aws_lambda.IEventSourceDlq.bind.target",
28
+ "prefer-ref-interface:aws-cdk-lib.aws_lambda.IEventSourceDlq.bind.targetHandler",
29
+ "prefer-ref-interface:aws-cdk-lib.aws_lambda.ISchemaRegistry.bind.target",
30
+ "prefer-ref-interface:aws-cdk-lib.aws_lambda.ISchemaRegistry.bind.targetHandler",
31
+ "prefer-ref-interface:aws-cdk-lib.aws_lambda.IDestination.bind.fn",
32
+ "prefer-ref-interface:aws-cdk-lib.aws_lambda.IFunction.grantInvokeVersion.version",
33
+ "prefer-ref-interface:aws-cdk-lib.aws_lambda.IVersion.grantInvokeVersion.version",
34
+ "prefer-ref-interface:aws-cdk-lib.aws_lambda.VersionWeight.version",
35
+ "prefer-ref-interface:aws-cdk-lib.aws_ec2.ISubnet.associateNetworkAcl.acl",
36
+ "duration-prop-type:@aws-cdk/aws-mediaconnect-alpha.BridgeNetworkOutputProps.ttl",
37
+ "duration-prop-type:@aws-cdk/aws-mediaconnect-alpha.MergeRouterInputConfig.mergeRecoveryWindowMilliseconds",
38
+ "duration-prop-name:@aws-cdk/aws-mediaconnect-alpha.MergeRouterInputConfig.mergeRecoveryWindowMilliseconds",
39
+ "duration-prop-type:@aws-cdk/aws-mediaconnect-alpha.RistInputProtocolConfig.recoveryLatencyMilliseconds",
40
+ "duration-prop-name:@aws-cdk/aws-mediaconnect-alpha.RistInputProtocolConfig.recoveryLatencyMilliseconds",
41
+ "duration-prop-type:@aws-cdk/aws-mediaconnect-alpha.SrtCallerInputProtocolConfig.minimumLatencyMilliseconds",
42
+ "duration-prop-name:@aws-cdk/aws-mediaconnect-alpha.SrtCallerInputProtocolConfig.minimumLatencyMilliseconds",
43
+ "duration-prop-type:@aws-cdk/aws-mediaconnect-alpha.SrtCallerOutputProtocolConfig.minimumLatencyMilliseconds",
44
+ "duration-prop-name:@aws-cdk/aws-mediaconnect-alpha.SrtCallerOutputProtocolConfig.minimumLatencyMilliseconds",
45
+ "duration-prop-type:@aws-cdk/aws-mediaconnect-alpha.SrtListenerInputProtocolConfig.minimumLatencyMilliseconds",
46
+ "duration-prop-name:@aws-cdk/aws-mediaconnect-alpha.SrtListenerInputProtocolConfig.minimumLatencyMilliseconds",
47
+ "duration-prop-type:@aws-cdk/aws-mediaconnect-alpha.SrtListenerOutputProtocolConfig.minimumLatencyMilliseconds",
48
+ "duration-prop-name:@aws-cdk/aws-mediaconnect-alpha.SrtListenerOutputProtocolConfig.minimumLatencyMilliseconds"
49
+ ]
50
+ }
package/grants.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "resources": {
3
+ "Flow": {
4
+ "grants": {
5
+ "start": {
6
+ "actions": [
7
+ "mediaconnect:StartFlow"
8
+ ],
9
+ "docSummary": "Grant permissions to start this flow"
10
+ },
11
+ "stop": {
12
+ "actions": [
13
+ "mediaconnect:StopFlow"
14
+ ],
15
+ "docSummary": "Grant permissions to stop this flow"
16
+ }
17
+ }
18
+ },
19
+ "RouterInput": {
20
+ "grants": {
21
+ "start": {
22
+ "actions": [
23
+ "mediaconnect:StartRouterInput"
24
+ ],
25
+ "docSummary": "Grant permissions to start this router input"
26
+ },
27
+ "stop": {
28
+ "actions": [
29
+ "mediaconnect:StopRouterInput"
30
+ ],
31
+ "docSummary": "Grant permissions to stop this router input"
32
+ },
33
+ "restart": {
34
+ "actions": [
35
+ "mediaconnect:RestartRouterInput"
36
+ ],
37
+ "docSummary": "Grant permissions to restart this router input"
38
+ }
39
+ }
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,54 @@
1
+ import type { IResource } from 'aws-cdk-lib';
2
+ import { Resource } from 'aws-cdk-lib';
3
+ import type { IBridgeOutputRef, BridgeOutputReference } from 'aws-cdk-lib/aws-mediaconnect';
4
+ import type { Construct } from 'constructs';
5
+ import type { IBridge, BridgeOutputConfiguration } from './bridge';
6
+ /**
7
+ * Interface Bridge output
8
+ */
9
+ export interface IBridgeOutput extends IResource, IBridgeOutputRef {
10
+ /**
11
+ * The Amazon Resource Name (ARN) of the bridge that owns this output.
12
+ */
13
+ readonly bridgeArn: string;
14
+ /**
15
+ * The name of the bridge output.
16
+ *
17
+ * @attribute
18
+ */
19
+ readonly bridgeOutputName: string;
20
+ }
21
+ /**
22
+ * Properties for the bridge output
23
+ */
24
+ export interface BridgeOutputProps {
25
+ /**
26
+ * Bridge output name.
27
+ *
28
+ * @default - autogenerated
29
+ */
30
+ readonly bridgeOutputName?: string;
31
+ /**
32
+ * The bridge that you want to update.
33
+ */
34
+ readonly bridge: IBridge;
35
+ /**
36
+ * The network output configuration.
37
+ */
38
+ readonly output: BridgeOutputConfiguration;
39
+ }
40
+ /**
41
+ * Adds outputs to an existing bridge.
42
+ */
43
+ export declare class BridgeOutput extends Resource implements IBridgeOutput {
44
+ /** Uniquely identifies this class. */
45
+ static readonly PROPERTY_INJECTION_ID: string;
46
+ readonly bridgeArn: string;
47
+ /**
48
+ * The name of the bridge output.
49
+ */
50
+ readonly bridgeOutputName: string;
51
+ /** A reference to this BridgeOutput resource. */
52
+ get bridgeOutputRef(): BridgeOutputReference;
53
+ constructor(scope: Construct, id: string, props: BridgeOutputProps);
54
+ }
@@ -0,0 +1,122 @@
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.BridgeOutput = 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 bridge_1 = require("./bridge");
46
+ /**
47
+ * Adds outputs to an existing bridge.
48
+ */
49
+ let BridgeOutput = (() => {
50
+ let _classDecorators = [prop_injectable_1.propertyInjectable];
51
+ let _classDescriptor;
52
+ let _classExtraInitializers = [];
53
+ let _classThis;
54
+ let _classSuper = aws_cdk_lib_1.Resource;
55
+ var BridgeOutput = class extends _classSuper {
56
+ static { _classThis = this; }
57
+ static {
58
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
59
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
60
+ BridgeOutput = _classThis = _classDescriptor.value;
61
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
62
+ }
63
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.BridgeOutput", version: "2.263.0-alpha.0" };
64
+ /** Uniquely identifies this class. */
65
+ static PROPERTY_INJECTION_ID = '@aws-cdk.aws-mediaconnect-alpha.BridgeOutput';
66
+ bridgeArn;
67
+ /**
68
+ * The name of the bridge output.
69
+ */
70
+ bridgeOutputName;
71
+ /** A reference to this BridgeOutput resource. */
72
+ get bridgeOutputRef() {
73
+ return {
74
+ bridgeArn: this.bridgeArn,
75
+ bridgeOutputName: this.bridgeOutputName,
76
+ };
77
+ }
78
+ constructor(scope, id, props) {
79
+ super(scope, id, {
80
+ physicalName: props.bridgeOutputName ?? aws_cdk_lib_1.Lazy.string({ produce: () => aws_cdk_lib_1.Names.uniqueResourceName(this, { maxLength: 64 }) }),
81
+ });
82
+ try {
83
+ jsiiDeprecationWarnings._aws_cdk_aws_mediaconnect_alpha_BridgeOutputProps(props);
84
+ }
85
+ catch (error) {
86
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
87
+ Error.captureStackTrace(error, BridgeOutput);
88
+ }
89
+ throw error;
90
+ }
91
+ // Validate bridge output name if provided
92
+ if (props.bridgeOutputName != null && props.bridgeOutputName !== '' && !aws_cdk_lib_1.Token.isUnresolved(props.bridgeOutputName)) {
93
+ if (props.bridgeOutputName.length > 64) {
94
+ throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `BridgeOutputNameLength`, `Bridge output name must be between 1 and 64 characters, got ${props.bridgeOutputName.length}`, this);
95
+ }
96
+ if (!/^[a-zA-Z0-9-]+$/.test(props.bridgeOutputName)) {
97
+ throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `BridgeOutputNameFormat`, `Bridge output name must contain only alphanumeric characters and hyphens, got '${props.bridgeOutputName}'`, this);
98
+ }
99
+ }
100
+ // BridgeOutput can only be attached to an egress bridge. `Bridge.addOutput()`
101
+ // enforces the same check — replicate here so direct construction is safe.
102
+ if (props.bridge.bridgeType.value !== bridge_1.BridgeType.EGRESS_BRIDGE.value) {
103
+ throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `BridgeOutputEgressOnly`, `BridgeOutput can only be attached to an egress bridge, got '${props.bridge.bridgeType.value}'`, this);
104
+ }
105
+ // Enhanced CDK Analytics Telemetry
106
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
107
+ new aws_mediaconnect_1.CfnBridgeOutput(this, 'Resource', {
108
+ name: this.physicalName,
109
+ bridgeArn: props.bridge.bridgeArn,
110
+ networkOutput: props.output._bind(),
111
+ });
112
+ this.bridgeArn = props.bridge.bridgeArn;
113
+ this.bridgeOutputName = this.physicalName;
114
+ }
115
+ static {
116
+ __runInitializers(_classThis, _classExtraInitializers);
117
+ }
118
+ };
119
+ return BridgeOutput = _classThis;
120
+ })();
121
+ exports.BridgeOutput = BridgeOutput;
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLW91dHB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJyaWRnZS1vdXRwdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQTRFO0FBQzVFLG1FQUErRDtBQUUvRCw0RUFBNEQ7QUFDNUQsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUcxRSxxQ0FBc0M7QUF3Q3RDOztHQUVHO0lBRVUsWUFBWTs0QkFEeEIsb0NBQWtCOzs7O3NCQUNlLHNCQUFROzRCQUFoQixTQUFRLFdBQVE7Ozs7WUFBMUMsNktBd0RDOzs7OztRQXZEQyxzQ0FBc0M7UUFDL0IsTUFBTSxDQUFVLHFCQUFxQixHQUFXLDhDQUE4QyxDQUFDO1FBRXRGLFNBQVMsQ0FBUztRQUVsQzs7V0FFRztRQUNhLGdCQUFnQixDQUFTO1FBRXpDLGlEQUFpRDtRQUNqRCxJQUFXLGVBQWU7WUFDeEIsT0FBTztnQkFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7YUFDeEMsQ0FBQztTQUNIO1FBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtZQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtnQkFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixJQUFJLGtCQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLG1CQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQzthQUMxSCxDQUFDLENBQUM7Ozs7OzttREF0Qk0sWUFBWTs7OztZQXdCckIsMENBQTBDO1lBQzFDLElBQUksS0FBSyxDQUFDLGdCQUFnQixJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEtBQUssRUFBRSxJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztnQkFDbkgsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO29CQUN2QyxNQUFNLElBQUksNkJBQWUsQ0FBQyxJQUFBLHNCQUFHLEVBQUEsd0JBQXdCLEVBQUUsK0RBQStELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0osQ0FBQztnQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7b0JBQ3BELE1BQU0sSUFBSSw2QkFBZSxDQUFDLElBQUEsc0JBQUcsRUFBQSx3QkFBd0IsRUFBRSxrRkFBa0YsS0FBSyxDQUFDLGdCQUFnQixHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzVLLENBQUM7WUFDSCxDQUFDO1lBRUQsOEVBQThFO1lBQzlFLDJFQUEyRTtZQUMzRSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxtQkFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDckUsTUFBTSxJQUFJLDZCQUFlLENBQ3ZCLElBQUEsc0JBQUcsRUFBQSx3QkFBd0IsRUFDM0IsK0RBQStELEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxFQUMvRixJQUFJLENBQ0wsQ0FBQztZQUNKLENBQUM7WUFFRCxtQ0FBbUM7WUFDbkMsSUFBQSx3Q0FBb0IsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFbEMsSUFBSSxrQ0FBZSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ3BDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDdkIsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztnQkFDakMsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO2FBQ3BDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDeEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDM0M7O1lBdkRVLHVEQUFZOzs7OztBQUFaLG9DQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBSZXNvdXJjZSwgTGF6eSwgTmFtZXMsIFRva2VuLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDZm5CcmlkZ2VPdXRwdXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbWVkaWFjb25uZWN0JztcbmltcG9ydCB0eXBlIHsgSUJyaWRnZU91dHB1dFJlZiwgQnJpZGdlT3V0cHV0UmVmZXJlbmNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLW1lZGlhY29ubmVjdCc7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElCcmlkZ2UsIEJyaWRnZU91dHB1dENvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2JyaWRnZSc7XG5pbXBvcnQgeyBCcmlkZ2VUeXBlIH0gZnJvbSAnLi9icmlkZ2UnO1xuXG4vKipcbiAqIEludGVyZmFjZSBCcmlkZ2Ugb3V0cHV0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUJyaWRnZU91dHB1dCBleHRlbmRzIElSZXNvdXJjZSwgSUJyaWRnZU91dHB1dFJlZiB7XG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGJyaWRnZSB0aGF0IG93bnMgdGhpcyBvdXRwdXQuXG4gICAqL1xuICByZWFkb25seSBicmlkZ2VBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGJyaWRnZSBvdXRwdXQuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGJyaWRnZU91dHB1dE5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgYnJpZGdlIG91dHB1dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJyaWRnZU91dHB1dFByb3BzIHtcbiAgLyoqXG4gICAqIEJyaWRnZSBvdXRwdXQgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBicmlkZ2VPdXRwdXROYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGJyaWRnZSB0aGF0IHlvdSB3YW50IHRvIHVwZGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGJyaWRnZTogSUJyaWRnZTtcblxuICAvKipcbiAgICogVGhlIG5ldHdvcmsgb3V0cHV0IGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBvdXRwdXQ6IEJyaWRnZU91dHB1dENvbmZpZ3VyYXRpb247XG59XG5cbi8qKlxuICogQWRkcyBvdXRwdXRzIHRvIGFuIGV4aXN0aW5nIGJyaWRnZS5cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIEJyaWRnZU91dHB1dCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUJyaWRnZU91dHB1dCB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLW1lZGlhY29ubmVjdC1hbHBoYS5CcmlkZ2VPdXRwdXQnO1xuXG4gIHB1YmxpYyByZWFkb25seSBicmlkZ2VBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGJyaWRnZSBvdXRwdXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnJpZGdlT3V0cHV0TmFtZTogc3RyaW5nO1xuXG4gIC8qKiBBIHJlZmVyZW5jZSB0byB0aGlzIEJyaWRnZU91dHB1dCByZXNvdXJjZS4gKi9cbiAgcHVibGljIGdldCBicmlkZ2VPdXRwdXRSZWYoKTogQnJpZGdlT3V0cHV0UmVmZXJlbmNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgYnJpZGdlQXJuOiB0aGlzLmJyaWRnZUFybixcbiAgICAgIGJyaWRnZU91dHB1dE5hbWU6IHRoaXMuYnJpZGdlT3V0cHV0TmFtZSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEJyaWRnZU91dHB1dFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLmJyaWRnZU91dHB1dE5hbWUgPz8gTGF6eS5zdHJpbmcoeyBwcm9kdWNlOiAoKSA9PiBOYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywgeyBtYXhMZW5ndGg6IDY0IH0pIH0pLFxuICAgIH0pO1xuXG4gICAgLy8gVmFsaWRhdGUgYnJpZGdlIG91dHB1dCBuYW1lIGlmIHByb3ZpZGVkXG4gICAgaWYgKHByb3BzLmJyaWRnZU91dHB1dE5hbWUgIT0gbnVsbCAmJiBwcm9wcy5icmlkZ2VPdXRwdXROYW1lICE9PSAnJyAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmJyaWRnZU91dHB1dE5hbWUpKSB7XG4gICAgICBpZiAocHJvcHMuYnJpZGdlT3V0cHV0TmFtZS5sZW5ndGggPiA2NCkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBCcmlkZ2VPdXRwdXROYW1lTGVuZ3RoYCwgYEJyaWRnZSBvdXRwdXQgbmFtZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNjQgY2hhcmFjdGVycywgZ290ICR7cHJvcHMuYnJpZGdlT3V0cHV0TmFtZS5sZW5ndGh9YCwgdGhpcyk7XG4gICAgICB9XG4gICAgICBpZiAoIS9eW2EtekEtWjAtOS1dKyQvLnRlc3QocHJvcHMuYnJpZGdlT3V0cHV0TmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgQnJpZGdlT3V0cHV0TmFtZUZvcm1hdGAsIGBCcmlkZ2Ugb3V0cHV0IG5hbWUgbXVzdCBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIGh5cGhlbnMsIGdvdCAnJHtwcm9wcy5icmlkZ2VPdXRwdXROYW1lfSdgLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCcmlkZ2VPdXRwdXQgY2FuIG9ubHkgYmUgYXR0YWNoZWQgdG8gYW4gZWdyZXNzIGJyaWRnZS4gYEJyaWRnZS5hZGRPdXRwdXQoKWBcbiAgICAvLyBlbmZvcmNlcyB0aGUgc2FtZSBjaGVjayDigJQgcmVwbGljYXRlIGhlcmUgc28gZGlyZWN0IGNvbnN0cnVjdGlvbiBpcyBzYWZlLlxuICAgIGlmIChwcm9wcy5icmlkZ2UuYnJpZGdlVHlwZS52YWx1ZSAhPT0gQnJpZGdlVHlwZS5FR1JFU1NfQlJJREdFLnZhbHVlKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgQnJpZGdlT3V0cHV0RWdyZXNzT25seWAsXG4gICAgICAgIGBCcmlkZ2VPdXRwdXQgY2FuIG9ubHkgYmUgYXR0YWNoZWQgdG8gYW4gZWdyZXNzIGJyaWRnZSwgZ290ICcke3Byb3BzLmJyaWRnZS5icmlkZ2VUeXBlLnZhbHVlfSdgLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIG5ldyBDZm5CcmlkZ2VPdXRwdXQodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgICBicmlkZ2VBcm46IHByb3BzLmJyaWRnZS5icmlkZ2VBcm4sXG4gICAgICBuZXR3b3JrT3V0cHV0OiBwcm9wcy5vdXRwdXQuX2JpbmQoKSxcbiAgICB9KTtcblxuICAgIHRoaXMuYnJpZGdlQXJuID0gcHJvcHMuYnJpZGdlLmJyaWRnZUFybjtcbiAgICB0aGlzLmJyaWRnZU91dHB1dE5hbWUgPSB0aGlzLnBoeXNpY2FsTmFtZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,79 @@
1
+ import type { IResource } from 'aws-cdk-lib';
2
+ import { Resource } from 'aws-cdk-lib';
3
+ import type { IBridgeSourceRef, BridgeSourceReference } from 'aws-cdk-lib/aws-mediaconnect';
4
+ import type { Construct } from 'constructs';
5
+ import type { IBridge, BridgeFlowSource } from './bridge';
6
+ import type { BridgeNetworkSource } from './shared';
7
+ /**
8
+ * Interface Bridge source
9
+ */
10
+ export interface IBridgeSource extends IResource, IBridgeSourceRef {
11
+ /**
12
+ * The Amazon Resource Name (ARN) of the bridge that owns this source.
13
+ */
14
+ readonly bridgeArn: string;
15
+ /**
16
+ * The name of the bridge source.
17
+ *
18
+ * @attribute
19
+ */
20
+ readonly bridgeSourceName: string;
21
+ }
22
+ /**
23
+ * Properties for the bridge source
24
+ */
25
+ export interface BridgeSourceProps {
26
+ /**
27
+ * Name of the bridge source.
28
+ *
29
+ * @default - autogenerated
30
+ */
31
+ readonly bridgeSourceName?: string;
32
+ /**
33
+ * The bridge to add this source to.
34
+ */
35
+ readonly bridge: IBridge;
36
+ /**
37
+ * Configuration for Bridge Source Input
38
+ */
39
+ readonly source: BridgeSourceConfiguration;
40
+ }
41
+ /**
42
+ * Factory class for creating bridge source configurations
43
+ */
44
+ export declare class BridgeSourceConfiguration {
45
+ private readonly flowConfig?;
46
+ private readonly networkConfig?;
47
+ /**
48
+ * Create a flow source configuration for a bridge source
49
+ * @param source Flow source configuration
50
+ * @returns Bridge source configuration with flow source
51
+ */
52
+ static flow(source: BridgeFlowSource): BridgeSourceConfiguration;
53
+ /**
54
+ * Create a network source configuration for a bridge source
55
+ * @param source Network source configuration
56
+ * @returns Bridge source configuration with network source
57
+ */
58
+ static network(source: BridgeNetworkSource): BridgeSourceConfiguration;
59
+ /**
60
+ * @param flowConfig flow source configuration
61
+ * @param networkConfig network source configuration
62
+ */
63
+ protected constructor(flowConfig?: BridgeFlowSource | undefined, networkConfig?: BridgeNetworkSource | undefined);
64
+ }
65
+ /**
66
+ * Adds sources to an existing bridge.
67
+ */
68
+ export declare class BridgeSource extends Resource implements IBridgeSource {
69
+ /** Uniquely identifies this class. */
70
+ static readonly PROPERTY_INJECTION_ID: string;
71
+ readonly bridgeArn: string;
72
+ /**
73
+ * The name of the bridge source.
74
+ */
75
+ readonly bridgeSourceName: string;
76
+ /** A reference to this BridgeSource resource. */
77
+ get bridgeSourceRef(): BridgeSourceReference;
78
+ constructor(scope: Construct, id: string, props: BridgeSourceProps);
79
+ }
@@ -0,0 +1,217 @@
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.BridgeSource = exports.BridgeSourceConfiguration = 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 bridge_1 = require("./bridge");
46
+ /**
47
+ * Factory class for creating bridge source configurations
48
+ */
49
+ class BridgeSourceConfiguration {
50
+ flowConfig;
51
+ networkConfig;
52
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.BridgeSourceConfiguration", version: "2.263.0-alpha.0" };
53
+ /**
54
+ * Create a flow source configuration for a bridge source
55
+ * @param source Flow source configuration
56
+ * @returns Bridge source configuration with flow source
57
+ */
58
+ static flow(source) {
59
+ try {
60
+ jsiiDeprecationWarnings._aws_cdk_aws_mediaconnect_alpha_BridgeFlowSource(source);
61
+ }
62
+ catch (error) {
63
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
64
+ Error.captureStackTrace(error, this.flow);
65
+ }
66
+ throw error;
67
+ }
68
+ return new BridgeSourceConfiguration(source, undefined);
69
+ }
70
+ /**
71
+ * Create a network source configuration for a bridge source
72
+ * @param source Network source configuration
73
+ * @returns Bridge source configuration with network source
74
+ */
75
+ static network(source) {
76
+ try {
77
+ jsiiDeprecationWarnings._aws_cdk_aws_mediaconnect_alpha_BridgeNetworkSource(source);
78
+ }
79
+ catch (error) {
80
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
81
+ Error.captureStackTrace(error, this.network);
82
+ }
83
+ throw error;
84
+ }
85
+ return new BridgeSourceConfiguration(undefined, source);
86
+ }
87
+ /**
88
+ * @param flowConfig flow source configuration
89
+ * @param networkConfig network source configuration
90
+ */
91
+ constructor(flowConfig, networkConfig) {
92
+ this.flowConfig = flowConfig;
93
+ this.networkConfig = networkConfig;
94
+ try {
95
+ jsiiDeprecationWarnings._aws_cdk_aws_mediaconnect_alpha_BridgeFlowSource(flowConfig);
96
+ jsiiDeprecationWarnings._aws_cdk_aws_mediaconnect_alpha_BridgeNetworkSource(networkConfig);
97
+ }
98
+ catch (error) {
99
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
100
+ Error.captureStackTrace(error, BridgeSourceConfiguration);
101
+ }
102
+ throw error;
103
+ }
104
+ }
105
+ /**
106
+ * Called when the bridge source configuration is bound to a BridgeSource.
107
+ * @internal
108
+ */
109
+ _bind() {
110
+ return {
111
+ flowConfig: this.flowConfig,
112
+ networkConfig: this.networkConfig,
113
+ };
114
+ }
115
+ }
116
+ exports.BridgeSourceConfiguration = BridgeSourceConfiguration;
117
+ /**
118
+ * Adds sources to an existing bridge.
119
+ */
120
+ let BridgeSource = (() => {
121
+ let _classDecorators = [prop_injectable_1.propertyInjectable];
122
+ let _classDescriptor;
123
+ let _classExtraInitializers = [];
124
+ let _classThis;
125
+ let _classSuper = aws_cdk_lib_1.Resource;
126
+ var BridgeSource = class extends _classSuper {
127
+ static { _classThis = this; }
128
+ static {
129
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
130
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
131
+ BridgeSource = _classThis = _classDescriptor.value;
132
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
133
+ }
134
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.BridgeSource", version: "2.263.0-alpha.0" };
135
+ /** Uniquely identifies this class. */
136
+ static PROPERTY_INJECTION_ID = '@aws-cdk.aws-mediaconnect-alpha.BridgeSource';
137
+ bridgeArn;
138
+ /**
139
+ * The name of the bridge source.
140
+ */
141
+ bridgeSourceName;
142
+ /** A reference to this BridgeSource resource. */
143
+ get bridgeSourceRef() {
144
+ return {
145
+ bridgeArn: this.bridgeArn,
146
+ bridgeSourceName: this.bridgeSourceName,
147
+ };
148
+ }
149
+ constructor(scope, id, props) {
150
+ super(scope, id, {
151
+ physicalName: props?.bridgeSourceName ?? aws_cdk_lib_1.Lazy.string({ produce: () => aws_cdk_lib_1.Names.uniqueResourceName(this, { maxLength: 64 }) }),
152
+ });
153
+ try {
154
+ jsiiDeprecationWarnings._aws_cdk_aws_mediaconnect_alpha_BridgeSourceProps(props);
155
+ }
156
+ catch (error) {
157
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
158
+ Error.captureStackTrace(error, BridgeSource);
159
+ }
160
+ throw error;
161
+ }
162
+ // Validate bridge source name if provided
163
+ if (props.bridgeSourceName != null && props.bridgeSourceName !== '' && !aws_cdk_lib_1.Token.isUnresolved(props.bridgeSourceName)) {
164
+ if (props.bridgeSourceName.length > 64) {
165
+ throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `BridgeSourceNameLength`, `Bridge source name must be between 1 and 64 characters, got ${props.bridgeSourceName.length}`, this);
166
+ }
167
+ if (!/^[a-zA-Z0-9-]+$/.test(props.bridgeSourceName)) {
168
+ throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `BridgeSourceNameFormat`, `Bridge source name must contain only alphanumeric characters and hyphens, got '${props.bridgeSourceName}'`, this);
169
+ }
170
+ }
171
+ // Enhanced CDK Analytics Telemetry
172
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
173
+ // Egress bridges should only use flow sources
174
+ const sourceConfig = props.source._bind();
175
+ if (props.bridge.bridgeType.value === bridge_1.BridgeType.EGRESS_BRIDGE.value && !sourceConfig.flowConfig) {
176
+ throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `BridgeSourceEgressFlowOnly`, 'Egress bridges must use flow sources', this);
177
+ }
178
+ // Ingress bridges should only use network sources
179
+ if (props.bridge.bridgeType.value === bridge_1.BridgeType.INGRESS_BRIDGE.value && !sourceConfig.networkConfig) {
180
+ throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `BridgeSourceIngressNetworkOnly`, 'Ingress bridges must use network sources', this);
181
+ }
182
+ if (!props.bridge.isFailoverEnabled) {
183
+ throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `BridgeSourceFailoverRequired`, 'Failover configuration needs to be configured and enabled to add an additional Bridge source. ' +
184
+ 'If the Bridge is imported via fromBridgeAttributes(), set isFailoverEnabled: true', this);
185
+ }
186
+ const flowInput = sourceConfig.flowConfig ? {
187
+ flowArn: sourceConfig.flowConfig.flow.flowArn,
188
+ flowVpcInterfaceAttachment: sourceConfig.flowConfig.vpcInterface ? {
189
+ vpcInterfaceName: sourceConfig.flowConfig.vpcInterface.name,
190
+ } : undefined,
191
+ } : undefined;
192
+ const networkInput = sourceConfig.networkConfig ? {
193
+ multicastIp: sourceConfig.networkConfig.multicastIp,
194
+ networkName: sourceConfig.networkConfig.network.name,
195
+ port: sourceConfig.networkConfig.port,
196
+ protocol: sourceConfig.networkConfig.protocol.value,
197
+ multicastSourceSettings: {
198
+ multicastSourceIp: sourceConfig.networkConfig.multicastSourceIp,
199
+ },
200
+ } : undefined;
201
+ new aws_mediaconnect_1.CfnBridgeSource(this, 'Resource', {
202
+ name: this.physicalName,
203
+ bridgeArn: props.bridge.bridgeArn,
204
+ flowSource: flowInput,
205
+ networkSource: networkInput,
206
+ });
207
+ this.bridgeArn = props.bridge.bridgeArn;
208
+ this.bridgeSourceName = this.physicalName;
209
+ }
210
+ static {
211
+ __runInitializers(_classThis, _classExtraInitializers);
212
+ }
213
+ };
214
+ return BridgeSource = _classThis;
215
+ })();
216
+ exports.BridgeSource = BridgeSource;
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJyaWRnZS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQTRFO0FBQzVFLG1FQUErRDtBQUUvRCw0RUFBNEQ7QUFDNUQsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUcxRSxxQ0FBc0M7QUF5Q3RDOztHQUVHO0FBQ0gsTUFBYSx5QkFBeUI7SUF3QmpCO0lBQ0E7O0lBeEJuQjs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUF3Qjs7Ozs7Ozs7OztRQUN6QyxPQUFPLElBQUkseUJBQXlCLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0tBQ3pEO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBMkI7Ozs7Ozs7Ozs7UUFDL0MsT0FBTyxJQUFJLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztLQUN6RDtJQUVEOzs7T0FHRztJQUNILFlBQ21CLFVBQTZCLEVBQzdCLGFBQW1DO1FBRG5DLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjs7Ozs7OzsrQ0F6QjNDLHlCQUF5Qjs7OztLQTBCaEM7SUFFSjs7O09BR0c7SUFDSSxLQUFLO1FBQ1YsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDbEMsQ0FBQztLQUNIOztBQXJDSCw4REFzQ0M7QUFFRDs7R0FFRztJQUVVLFlBQVk7NEJBRHhCLG9DQUFrQjs7OztzQkFDZSxzQkFBUTs0QkFBaEIsU0FBUSxXQUFROzs7O1lBQTFDLDZLQW1GQzs7Ozs7UUFsRkMsc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyw4Q0FBOEMsQ0FBQztRQUV0RixTQUFTLENBQVM7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QUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztvQkFDakUsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSTtpQkFDNUQsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUNkLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNkLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2dCQUNoRCxXQUFXLEVBQUUsWUFBWSxDQUFDLGFBQWEsQ0FBQyxXQUFXO2dCQUNuRCxXQUFXLEVBQUUsWUFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSTtnQkFDcEQsSUFBSSxFQUFFLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSTtnQkFDckMsUUFBUSxFQUFFLFlBQVksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUs7Z0JBQ25ELHVCQUF1QixFQUFFO29CQUN2QixpQkFBaUIsRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLGlCQUFpQjtpQkFDaEU7YUFDRixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFFZCxJQUFJLGtDQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDcEMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUN2QixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO2dCQUNqQyxVQUFVLEVBQUUsU0FBUztnQkFDckIsYUFBYSxFQUFFLFlBQVk7YUFDNUIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUN4QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUMzQzs7WUFsRlUsdURBQVk7Ozs7O0FBQVosb0NBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElSZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFJlc291cmNlLCBMYXp5LCBOYW1lcywgVG9rZW4sIFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENmbkJyaWRnZVNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYWNvbm5lY3QnO1xuaW1wb3J0IHR5cGUgeyBJQnJpZGdlU291cmNlUmVmLCBCcmlkZ2VTb3VyY2VSZWZlcmVuY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbWVkaWFjb25uZWN0JztcbmltcG9ydCB7IGxpdCB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSUJyaWRnZSwgQnJpZGdlRmxvd1NvdXJjZSB9IGZyb20gJy4vYnJpZGdlJztcbmltcG9ydCB7IEJyaWRnZVR5cGUgfSBmcm9tICcuL2JyaWRnZSc7XG5pbXBvcnQgdHlwZSB7IEJyaWRnZU5ldHdvcmtTb3VyY2UgfSBmcm9tICcuL3NoYXJlZCc7XG5cbi8qKlxuICogSW50ZXJmYWNlIEJyaWRnZSBzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQnJpZGdlU291cmNlIGV4dGVuZHMgSVJlc291cmNlLCBJQnJpZGdlU291cmNlUmVmIHtcbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgYnJpZGdlIHRoYXQgb3ducyB0aGlzIHNvdXJjZS5cbiAgICovXG4gIHJlYWRvbmx5IGJyaWRnZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYnJpZGdlIHNvdXJjZS5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYnJpZGdlU291cmNlTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBicmlkZ2Ugc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJpZGdlU291cmNlUHJvcHMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgYnJpZGdlIHNvdXJjZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBicmlkZ2VTb3VyY2VOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGJyaWRnZSB0byBhZGQgdGhpcyBzb3VyY2UgdG8uXG4gICAqL1xuICByZWFkb25seSBicmlkZ2U6IElCcmlkZ2U7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIEJyaWRnZSBTb3VyY2UgSW5wdXRcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZTogQnJpZGdlU291cmNlQ29uZmlndXJhdGlvbjtcbn1cblxuLyoqXG4gKiBGYWN0b3J5IGNsYXNzIGZvciBjcmVhdGluZyBicmlkZ2Ugc291cmNlIGNvbmZpZ3VyYXRpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBCcmlkZ2VTb3VyY2VDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIGZsb3cgc291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIGEgYnJpZGdlIHNvdXJjZVxuICAgKiBAcGFyYW0gc291cmNlIEZsb3cgc291cmNlIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybnMgQnJpZGdlIHNvdXJjZSBjb25maWd1cmF0aW9uIHdpdGggZmxvdyBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZmxvdyhzb3VyY2U6IEJyaWRnZUZsb3dTb3VyY2UpOiBCcmlkZ2VTb3VyY2VDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IEJyaWRnZVNvdXJjZUNvbmZpZ3VyYXRpb24oc291cmNlLCB1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldHdvcmsgc291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIGEgYnJpZGdlIHNvdXJjZVxuICAgKiBAcGFyYW0gc291cmNlIE5ldHdvcmsgc291cmNlIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybnMgQnJpZGdlIHNvdXJjZSBjb25maWd1cmF0aW9uIHdpdGggbmV0d29yayBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbmV0d29yayhzb3VyY2U6IEJyaWRnZU5ldHdvcmtTb3VyY2UpOiBCcmlkZ2VTb3VyY2VDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IEJyaWRnZVNvdXJjZUNvbmZpZ3VyYXRpb24odW5kZWZpbmVkLCBzb3VyY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBmbG93Q29uZmlnIGZsb3cgc291cmNlIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIG5ldHdvcmtDb25maWcgbmV0d29yayBzb3VyY2UgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmxvd0NvbmZpZz86IEJyaWRnZUZsb3dTb3VyY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXR3b3JrQ29uZmlnPzogQnJpZGdlTmV0d29ya1NvdXJjZSxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgYnJpZGdlIHNvdXJjZSBjb25maWd1cmF0aW9uIGlzIGJvdW5kIHRvIGEgQnJpZGdlU291cmNlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfYmluZCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZmxvd0NvbmZpZzogdGhpcy5mbG93Q29uZmlnLFxuICAgICAgbmV0d29ya0NvbmZpZzogdGhpcy5uZXR3b3JrQ29uZmlnLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBBZGRzIHNvdXJjZXMgdG8gYW4gZXhpc3RpbmcgYnJpZGdlLlxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgQnJpZGdlU291cmNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJQnJpZGdlU291cmNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtbWVkaWFjb25uZWN0LWFscGhhLkJyaWRnZVNvdXJjZSc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGJyaWRnZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYnJpZGdlIHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBicmlkZ2VTb3VyY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqIEEgcmVmZXJlbmNlIHRvIHRoaXMgQnJpZGdlU291cmNlIHJlc291cmNlLiAqL1xuICBwdWJsaWMgZ2V0IGJyaWRnZVNvdXJjZVJlZigpOiBCcmlkZ2VTb3VyY2VSZWZlcmVuY2Uge1xuICAgIHJldHVybiB7XG4gICAgICBicmlkZ2VBcm46IHRoaXMuYnJpZGdlQXJuLFxuICAgICAgYnJpZGdlU291cmNlTmFtZTogdGhpcy5icmlkZ2VTb3VyY2VOYW1lLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQnJpZGdlU291cmNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHM/LmJyaWRnZVNvdXJjZU5hbWUgPz8gTGF6eS5zdHJpbmcoeyBwcm9kdWNlOiAoKSA9PiBOYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywgeyBtYXhMZW5ndGg6IDY0IH0pIH0pLFxuICAgIH0pO1xuXG4gICAgLy8gVmFsaWRhdGUgYnJpZGdlIHNvdXJjZSBuYW1lIGlmIHByb3ZpZGVkXG4gICAgaWYgKHByb3BzLmJyaWRnZVNvdXJjZU5hbWUgIT0gbnVsbCAmJiBwcm9wcy5icmlkZ2VTb3VyY2VOYW1lICE9PSAnJyAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmJyaWRnZVNvdXJjZU5hbWUpKSB7XG4gICAgICBpZiAocHJvcHMuYnJpZGdlU291cmNlTmFtZS5sZW5ndGggPiA2NCkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBCcmlkZ2VTb3VyY2VOYW1lTGVuZ3RoYCwgYEJyaWRnZSBzb3VyY2UgbmFtZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNjQgY2hhcmFjdGVycywgZ290ICR7cHJvcHMuYnJpZGdlU291cmNlTmFtZS5sZW5ndGh9YCwgdGhpcyk7XG4gICAgICB9XG4gICAgICBpZiAoIS9eW2EtekEtWjAtOS1dKyQvLnRlc3QocHJvcHMuYnJpZGdlU291cmNlTmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgQnJpZGdlU291cmNlTmFtZUZvcm1hdGAsIGBCcmlkZ2Ugc291cmNlIG5hbWUgbXVzdCBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIGh5cGhlbnMsIGdvdCAnJHtwcm9wcy5icmlkZ2VTb3VyY2VOYW1lfSdgLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIC8vIEVncmVzcyBicmlkZ2VzIHNob3VsZCBvbmx5IHVzZSBmbG93IHNvdXJjZXNcbiAgICBjb25zdCBzb3VyY2VDb25maWcgPSBwcm9wcy5zb3VyY2UuX2JpbmQoKTtcbiAgICBpZiAocHJvcHMuYnJpZGdlLmJyaWRnZVR5cGUudmFsdWUgPT09IEJyaWRnZVR5cGUuRUdSRVNTX0JSSURHRS52YWx1ZSAmJiAhc291cmNlQ29uZmlnLmZsb3dDb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YEJyaWRnZVNvdXJjZUVncmVzc0Zsb3dPbmx5YCwgJ0VncmVzcyBicmlkZ2VzIG11c3QgdXNlIGZsb3cgc291cmNlcycsIHRoaXMpO1xuICAgIH1cblxuICAgIC8vIEluZ3Jlc3MgYnJpZGdlcyBzaG91bGQgb25seSB1c2UgbmV0d29yayBzb3VyY2VzXG4gICAgaWYgKHByb3BzLmJyaWRnZS5icmlkZ2VUeXBlLnZhbHVlID09PSBCcmlkZ2VUeXBlLklOR1JFU1NfQlJJREdFLnZhbHVlICYmICFzb3VyY2VDb25maWcubmV0d29ya0NvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgQnJpZGdlU291cmNlSW5ncmVzc05ldHdvcmtPbmx5YCwgJ0luZ3Jlc3MgYnJpZGdlcyBtdXN0IHVzZSBuZXR3b3JrIHNvdXJjZXMnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAoIXByb3BzLmJyaWRnZS5pc0ZhaWxvdmVyRW5hYmxlZCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YEJyaWRnZVNvdXJjZUZhaWxvdmVyUmVxdWlyZWRgLFxuICAgICAgICAnRmFpbG92ZXIgY29uZmlndXJhdGlvbiBuZWVkcyB0byBiZSBjb25maWd1cmVkIGFuZCBlbmFibGVkIHRvIGFkZCBhbiBhZGRpdGlvbmFsIEJyaWRnZSBzb3VyY2UuICcgK1xuICAgICAgICAnSWYgdGhlIEJyaWRnZSBpcyBpbXBvcnRlZCB2aWEgZnJvbUJyaWRnZUF0dHJpYnV0ZXMoKSwgc2V0IGlzRmFpbG92ZXJFbmFibGVkOiB0cnVlJyxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgZmxvd0lucHV0ID0gc291cmNlQ29uZmlnLmZsb3dDb25maWcgPyB7XG4gICAgICBmbG93QXJuOiBzb3VyY2VDb25maWcuZmxvd0NvbmZpZy5mbG93LmZsb3dBcm4sXG4gICAgICBmbG93VnBjSW50ZXJmYWNlQXR0YWNobWVudDogc291cmNlQ29uZmlnLmZsb3dDb25maWcudnBjSW50ZXJmYWNlID8ge1xuICAgICAgICB2cGNJbnRlcmZhY2VOYW1lOiBzb3VyY2VDb25maWcuZmxvd0NvbmZpZy52cGNJbnRlcmZhY2UubmFtZSxcbiAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgfSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBuZXR3b3JrSW5wdXQgPSBzb3VyY2VDb25maWcubmV0d29ya0NvbmZpZyA/IHtcbiAgICAgIG11bHRpY2FzdElwOiBzb3VyY2VDb25maWcubmV0d29ya0NvbmZpZy5tdWx0aWNhc3RJcCxcbiAgICAgIG5ldHdvcmtOYW1lOiBzb3VyY2VDb25maWcubmV0d29ya0NvbmZpZy5uZXR3b3JrLm5hbWUsXG4gICAgICBwb3J0OiBzb3VyY2VDb25maWcubmV0d29ya0NvbmZpZy5wb3J0LFxuICAgICAgcHJvdG9jb2w6IHNvdXJjZUNvbmZpZy5uZXR3b3JrQ29uZmlnLnByb3RvY29sLnZhbHVlLFxuICAgICAgbXVsdGljYXN0U291cmNlU2V0dGluZ3M6IHtcbiAgICAgICAgbXVsdGljYXN0U291cmNlSXA6IHNvdXJjZUNvbmZpZy5uZXR3b3JrQ29uZmlnLm11bHRpY2FzdFNvdXJjZUlwLFxuICAgICAgfSxcbiAgICB9IDogdW5kZWZpbmVkO1xuXG4gICAgbmV3IENmbkJyaWRnZVNvdXJjZSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBuYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIGJyaWRnZUFybjogcHJvcHMuYnJpZGdlLmJyaWRnZUFybixcbiAgICAgIGZsb3dTb3VyY2U6IGZsb3dJbnB1dCxcbiAgICAgIG5ldHdvcmtTb3VyY2U6IG5ldHdvcmtJbnB1dCxcbiAgICB9KTtcblxuICAgIHRoaXMuYnJpZGdlQXJuID0gcHJvcHMuYnJpZGdlLmJyaWRnZUFybjtcbiAgICB0aGlzLmJyaWRnZVNvdXJjZU5hbWUgPSB0aGlzLnBoeXNpY2FsTmFtZTtcbiAgfVxufVxuIl19