@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
package/lib/gateway.d.ts
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import type { IResource } from 'aws-cdk-lib';
|
|
2
|
+
import { Resource } from 'aws-cdk-lib';
|
|
3
|
+
import type { MetricOptions } from 'aws-cdk-lib/aws-cloudwatch';
|
|
4
|
+
import { Metric } from 'aws-cdk-lib/aws-cloudwatch';
|
|
5
|
+
import type { IGatewayRef, GatewayReference } from 'aws-cdk-lib/aws-mediaconnect';
|
|
6
|
+
import type { Construct } from 'constructs';
|
|
7
|
+
import type { GatewayNetwork } from './shared';
|
|
8
|
+
/**
|
|
9
|
+
* Interface for Gateway
|
|
10
|
+
*/
|
|
11
|
+
export interface IGateway extends IResource, IGatewayRef {
|
|
12
|
+
/**
|
|
13
|
+
* The Amazon Resource Name (ARN) of the gateway.
|
|
14
|
+
*
|
|
15
|
+
* @attribute
|
|
16
|
+
*/
|
|
17
|
+
readonly gatewayArn: string;
|
|
18
|
+
/**
|
|
19
|
+
* The current state of the gateway.
|
|
20
|
+
*
|
|
21
|
+
* @attribute
|
|
22
|
+
*/
|
|
23
|
+
readonly gatewayState?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Create a CloudWatch metric for this gateway.
|
|
26
|
+
*
|
|
27
|
+
* The gateway ARN is set as the `GatewayARN` dimension automatically. For
|
|
28
|
+
* metrics that require additional dimensions (such as `NetworkName`,
|
|
29
|
+
* `InstanceId` for a specific appliance, or `BridgeSourceName`), pass them
|
|
30
|
+
* via `props.dimensionsMap`.
|
|
31
|
+
*
|
|
32
|
+
* See the MediaConnect documentation for available metric names (for example
|
|
33
|
+
* `IngressBridgeBitRate`, `EgressBridgeBitRate`, `IngressBridgeSourcePacketLossPercent`).
|
|
34
|
+
*
|
|
35
|
+
* @see https://docs.aws.amazon.com/mediaconnect/latest/ug/monitor-with-cloudwatch-metrics-gateway-health.html
|
|
36
|
+
*/
|
|
37
|
+
metric(metricName: string, props?: MetricOptions): Metric;
|
|
38
|
+
/**
|
|
39
|
+
* Metric for the total number of packets sent from egress bridges hosted on this gateway.
|
|
40
|
+
*
|
|
41
|
+
* Pair with {@link metricEgressBridgeDroppedPackets} to chart an egress dropped-packet
|
|
42
|
+
* percentage. For per-bridge data, pass `dimensionsMap: { BridgeSourceName: '...' }`.
|
|
43
|
+
*
|
|
44
|
+
* @default - sum over 60 seconds
|
|
45
|
+
*/
|
|
46
|
+
metricEgressBridgeTotalPackets(props?: MetricOptions): Metric;
|
|
47
|
+
/**
|
|
48
|
+
* Metric for the number of packets dropped by egress bridges hosted on this gateway.
|
|
49
|
+
*
|
|
50
|
+
* Pair with {@link metricEgressBridgeTotalPackets} to chart a dropped-packet percentage.
|
|
51
|
+
* For per-bridge data, pass `dimensionsMap: { BridgeSourceName: '...' }`.
|
|
52
|
+
*
|
|
53
|
+
* @default - sum over 60 seconds
|
|
54
|
+
*/
|
|
55
|
+
metricEgressBridgeDroppedPackets(props?: MetricOptions): Metric;
|
|
56
|
+
/**
|
|
57
|
+
* Metric for the total number of packets received by ingress bridges hosted on this gateway.
|
|
58
|
+
*
|
|
59
|
+
* Pair with {@link metricIngressBridgeDroppedPackets} to chart an ingress dropped-packet
|
|
60
|
+
* percentage. For per-bridge data, pass `dimensionsMap: { BridgeSourceName: '...' }`.
|
|
61
|
+
*
|
|
62
|
+
* @default - sum over 60 seconds
|
|
63
|
+
*/
|
|
64
|
+
metricIngressBridgeTotalPackets(props?: MetricOptions): Metric;
|
|
65
|
+
/**
|
|
66
|
+
* Metric for the number of packets dropped by ingress bridges hosted on this gateway.
|
|
67
|
+
*
|
|
68
|
+
* Pair with {@link metricIngressBridgeTotalPackets} to chart a dropped-packet percentage.
|
|
69
|
+
* For per-bridge data, pass `dimensionsMap: { BridgeSourceName: '...' }`.
|
|
70
|
+
*
|
|
71
|
+
* @default - sum over 60 seconds
|
|
72
|
+
*/
|
|
73
|
+
metricIngressBridgeDroppedPackets(props?: MetricOptions): Metric;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Properties for the MediaConnect Gateway.
|
|
77
|
+
*/
|
|
78
|
+
export interface GatewayProps {
|
|
79
|
+
/**
|
|
80
|
+
* The name of the gateway. This name can not be modified after the gateway is created.
|
|
81
|
+
*
|
|
82
|
+
* @default - autogenerated
|
|
83
|
+
*/
|
|
84
|
+
readonly gatewayName?: string;
|
|
85
|
+
/**
|
|
86
|
+
* The range of IP addresses that are allowed to contribute content or initiate output requests for flows communicating with this gateway.
|
|
87
|
+
* These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
|
|
88
|
+
*/
|
|
89
|
+
readonly egressCidrBlocks: string[];
|
|
90
|
+
/**
|
|
91
|
+
* The list of networks in the gateway. A gateway must have between 1 and 4 networks.
|
|
92
|
+
* Provide the initial set here; use `addNetwork()` to add more (up to 4 total).
|
|
93
|
+
*/
|
|
94
|
+
readonly networks: GatewayNetwork[];
|
|
95
|
+
}
|
|
96
|
+
declare abstract class GatewayBase extends Resource implements IGateway {
|
|
97
|
+
abstract readonly gatewayArn: string;
|
|
98
|
+
abstract readonly gatewayState?: string;
|
|
99
|
+
get gatewayRef(): GatewayReference;
|
|
100
|
+
/**
|
|
101
|
+
* Create a CloudWatch metric for this gateway.
|
|
102
|
+
*/
|
|
103
|
+
metric(metricName: string, props?: MetricOptions): Metric;
|
|
104
|
+
/**
|
|
105
|
+
* Metric for the total number of packets sent from egress bridges hosted on this gateway.
|
|
106
|
+
*/
|
|
107
|
+
metricEgressBridgeTotalPackets(props?: MetricOptions): Metric;
|
|
108
|
+
/**
|
|
109
|
+
* Metric for the number of packets dropped by egress bridges hosted on this gateway.
|
|
110
|
+
*/
|
|
111
|
+
metricEgressBridgeDroppedPackets(props?: MetricOptions): Metric;
|
|
112
|
+
/**
|
|
113
|
+
* Metric for the total number of packets received by ingress bridges hosted on this gateway.
|
|
114
|
+
*/
|
|
115
|
+
metricIngressBridgeTotalPackets(props?: MetricOptions): Metric;
|
|
116
|
+
/**
|
|
117
|
+
* Metric for the number of packets dropped by ingress bridges hosted on this gateway.
|
|
118
|
+
*/
|
|
119
|
+
metricIngressBridgeDroppedPackets(props?: MetricOptions): Metric;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* AWS Elemental MediaConnect Gateway is a feature of MediaConnect that allows the deployment of on-premises resources for transporting live
|
|
123
|
+
* video to and from the AWS Cloud. MediaConnect Gateway allows you to contribute live video to the AWS Cloud from on-premises hardware,
|
|
124
|
+
* as well as distribute live video from the AWS Cloud to your local data center.
|
|
125
|
+
*/
|
|
126
|
+
export declare class Gateway extends GatewayBase implements IGateway {
|
|
127
|
+
/** Uniquely identifies this class. */
|
|
128
|
+
static readonly PROPERTY_INJECTION_ID: string;
|
|
129
|
+
/**
|
|
130
|
+
* Creates a MediaConnect Gateway construct that represents an external (imported) MediaConnect Gateway.
|
|
131
|
+
*/
|
|
132
|
+
static fromGatewayArn(scope: Construct, id: string, gatewayArn: string): IGateway;
|
|
133
|
+
readonly gatewayArn: string;
|
|
134
|
+
readonly gatewayState?: string;
|
|
135
|
+
private networks;
|
|
136
|
+
constructor(scope: Construct, id: string, props: GatewayProps);
|
|
137
|
+
/**
|
|
138
|
+
* Add a network to this gateway.
|
|
139
|
+
*/
|
|
140
|
+
addNetwork(network: GatewayNetwork): GatewayNetwork;
|
|
141
|
+
}
|
|
142
|
+
export {};
|
package/lib/gateway.js
ADDED
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
3
|
+
var useValue = arguments.length > 2;
|
|
4
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
5
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
6
|
+
}
|
|
7
|
+
return useValue ? value : void 0;
|
|
8
|
+
};
|
|
9
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
10
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
11
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
12
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
13
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
14
|
+
var _, done = false;
|
|
15
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
16
|
+
var context = {};
|
|
17
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
18
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
19
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
20
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
21
|
+
if (kind === "accessor") {
|
|
22
|
+
if (result === void 0) continue;
|
|
23
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
24
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
25
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
26
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
27
|
+
}
|
|
28
|
+
else if (_ = accept(result)) {
|
|
29
|
+
if (kind === "field") initializers.unshift(_);
|
|
30
|
+
else descriptor[key] = _;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
34
|
+
done = true;
|
|
35
|
+
};
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.Gateway = 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_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
|
|
42
|
+
const aws_mediaconnect_1 = require("aws-cdk-lib/aws-mediaconnect");
|
|
43
|
+
const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
|
|
44
|
+
const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
|
|
45
|
+
const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
|
|
46
|
+
const shared_1 = require("./shared");
|
|
47
|
+
class GatewayBase extends aws_cdk_lib_1.Resource {
|
|
48
|
+
get gatewayRef() {
|
|
49
|
+
return {
|
|
50
|
+
gatewayArn: this.gatewayArn,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Create a CloudWatch metric for this gateway.
|
|
55
|
+
*/
|
|
56
|
+
metric(metricName, props) {
|
|
57
|
+
return new aws_cloudwatch_1.Metric({
|
|
58
|
+
metricName,
|
|
59
|
+
namespace: 'AWS/MediaConnect',
|
|
60
|
+
...props,
|
|
61
|
+
dimensionsMap: {
|
|
62
|
+
GatewayARN: this.gatewayArn,
|
|
63
|
+
...props?.dimensionsMap,
|
|
64
|
+
},
|
|
65
|
+
}).attachTo(this);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Metric for the total number of packets sent from egress bridges hosted on this gateway.
|
|
69
|
+
*/
|
|
70
|
+
metricEgressBridgeTotalPackets(props) {
|
|
71
|
+
return this.metric('EgressBridgeTotalPackets', {
|
|
72
|
+
statistic: 'sum',
|
|
73
|
+
period: aws_cdk_lib_1.Duration.seconds(60),
|
|
74
|
+
unit: aws_cloudwatch_1.Unit.COUNT,
|
|
75
|
+
...props,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Metric for the number of packets dropped by egress bridges hosted on this gateway.
|
|
80
|
+
*/
|
|
81
|
+
metricEgressBridgeDroppedPackets(props) {
|
|
82
|
+
return this.metric('EgressBridgeDroppedPackets', {
|
|
83
|
+
statistic: 'sum',
|
|
84
|
+
period: aws_cdk_lib_1.Duration.seconds(60),
|
|
85
|
+
unit: aws_cloudwatch_1.Unit.COUNT,
|
|
86
|
+
...props,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Metric for the total number of packets received by ingress bridges hosted on this gateway.
|
|
91
|
+
*/
|
|
92
|
+
metricIngressBridgeTotalPackets(props) {
|
|
93
|
+
return this.metric('IngressBridgeTotalPackets', {
|
|
94
|
+
statistic: 'sum',
|
|
95
|
+
period: aws_cdk_lib_1.Duration.seconds(60),
|
|
96
|
+
unit: aws_cloudwatch_1.Unit.COUNT,
|
|
97
|
+
...props,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Metric for the number of packets dropped by ingress bridges hosted on this gateway.
|
|
102
|
+
*/
|
|
103
|
+
metricIngressBridgeDroppedPackets(props) {
|
|
104
|
+
return this.metric('IngressBridgeDroppedPackets', {
|
|
105
|
+
statistic: 'sum',
|
|
106
|
+
period: aws_cdk_lib_1.Duration.seconds(60),
|
|
107
|
+
unit: aws_cloudwatch_1.Unit.COUNT,
|
|
108
|
+
...props,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* AWS Elemental MediaConnect Gateway is a feature of MediaConnect that allows the deployment of on-premises resources for transporting live
|
|
114
|
+
* video to and from the AWS Cloud. MediaConnect Gateway allows you to contribute live video to the AWS Cloud from on-premises hardware,
|
|
115
|
+
* as well as distribute live video from the AWS Cloud to your local data center.
|
|
116
|
+
*/
|
|
117
|
+
let Gateway = (() => {
|
|
118
|
+
let _classDecorators = [prop_injectable_1.propertyInjectable];
|
|
119
|
+
let _classDescriptor;
|
|
120
|
+
let _classExtraInitializers = [];
|
|
121
|
+
let _classThis;
|
|
122
|
+
let _classSuper = GatewayBase;
|
|
123
|
+
let _instanceExtraInitializers = [];
|
|
124
|
+
let _addNetwork_decorators;
|
|
125
|
+
var Gateway = class extends _classSuper {
|
|
126
|
+
static { _classThis = this; }
|
|
127
|
+
static {
|
|
128
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
129
|
+
_addNetwork_decorators = [(0, metadata_resource_1.MethodMetadata)()];
|
|
130
|
+
__esDecorate(this, null, _addNetwork_decorators, { kind: "method", name: "addNetwork", static: false, private: false, access: { has: obj => "addNetwork" in obj, get: obj => obj.addNetwork }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
131
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
132
|
+
Gateway = _classThis = _classDescriptor.value;
|
|
133
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
134
|
+
}
|
|
135
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.Gateway", version: "2.263.0-alpha.0" };
|
|
136
|
+
/** Uniquely identifies this class. */
|
|
137
|
+
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-mediaconnect-alpha.Gateway';
|
|
138
|
+
/**
|
|
139
|
+
* Creates a MediaConnect Gateway construct that represents an external (imported) MediaConnect Gateway.
|
|
140
|
+
*/
|
|
141
|
+
static fromGatewayArn(scope, id, gatewayArn) {
|
|
142
|
+
class Import extends GatewayBase {
|
|
143
|
+
gatewayArn = gatewayArn;
|
|
144
|
+
gatewayState = undefined;
|
|
145
|
+
}
|
|
146
|
+
return new Import(scope, id);
|
|
147
|
+
}
|
|
148
|
+
gatewayArn = __runInitializers(this, _instanceExtraInitializers);
|
|
149
|
+
gatewayState;
|
|
150
|
+
networks = [];
|
|
151
|
+
constructor(scope, id, props) {
|
|
152
|
+
super(scope, id, {
|
|
153
|
+
physicalName: props?.gatewayName ?? aws_cdk_lib_1.Lazy.string({ produce: () => aws_cdk_lib_1.Names.uniqueResourceName(this, { maxLength: 32 }) }),
|
|
154
|
+
});
|
|
155
|
+
try {
|
|
156
|
+
jsiiDeprecationWarnings._aws_cdk_aws_mediaconnect_alpha_GatewayProps(props);
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
160
|
+
Error.captureStackTrace(error, Gateway);
|
|
161
|
+
}
|
|
162
|
+
throw error;
|
|
163
|
+
}
|
|
164
|
+
// Validate gateway name if provided
|
|
165
|
+
if (props.gatewayName != null && props.gatewayName !== '' && !aws_cdk_lib_1.Token.isUnresolved(props.gatewayName)) {
|
|
166
|
+
if (props.gatewayName.length > 32) {
|
|
167
|
+
throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `GatewayNameLength`, `Gateway name must be between 1 and 32 characters, got ${props.gatewayName.length}`, this);
|
|
168
|
+
}
|
|
169
|
+
if (!/^[a-zA-Z0-9-]+$/.test(props.gatewayName)) {
|
|
170
|
+
throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `GatewayNameFormat`, `Gateway name must contain only alphanumeric characters and hyphens, got '${props.gatewayName}'`, this);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Enhanced CDK Analytics Telemetry
|
|
174
|
+
(0, metadata_resource_1.addConstructMetadata)(this, props);
|
|
175
|
+
// Warn on fully-open egress CIDR blocks (0.0.0.0/0 or any /0 prefix).
|
|
176
|
+
if (!aws_cdk_lib_1.Token.isUnresolved(props.egressCidrBlocks)) {
|
|
177
|
+
for (const cidr of props.egressCidrBlocks) {
|
|
178
|
+
if (!aws_cdk_lib_1.Token.isUnresolved(cidr) && (0, shared_1.isOpenCidr)(cidr)) {
|
|
179
|
+
aws_cdk_lib_1.Annotations.of(this).addWarningV2('@aws-cdk/aws-mediaconnect-alpha:openEgressCidr', `Gateway egress CIDR '${cidr}' allows traffic from any IP. Restrict to the narrowest range your flows need.`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
props.networks.forEach(network => {
|
|
184
|
+
this.networks.push(network);
|
|
185
|
+
});
|
|
186
|
+
const resource = new aws_mediaconnect_1.CfnGateway(this, 'Resource', {
|
|
187
|
+
name: this.physicalName,
|
|
188
|
+
egressCidrBlocks: props.egressCidrBlocks,
|
|
189
|
+
networks: aws_cdk_lib_1.Lazy.any({
|
|
190
|
+
produce: () => {
|
|
191
|
+
if (this.networks.length === 0)
|
|
192
|
+
throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `GatewayMinNetworks`, 'At least 1 network must be specified on the gateway', this);
|
|
193
|
+
if (this.networks.length > 4)
|
|
194
|
+
throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `GatewayMaxNetworks`, `A gateway supports a maximum of 4 networks, got ${this.networks.length}`, this);
|
|
195
|
+
return this.networks;
|
|
196
|
+
},
|
|
197
|
+
}, { omitEmptyArray: true }),
|
|
198
|
+
});
|
|
199
|
+
this.gatewayArn = resource.attrGatewayArn;
|
|
200
|
+
this.gatewayState = resource.attrGatewayState;
|
|
201
|
+
// Validate gateway network name uniqueness at synth time. Names must be unique
|
|
202
|
+
// within a gateway; the service rejects duplicates at deploy time.
|
|
203
|
+
this.node.addValidation({
|
|
204
|
+
validate: () => {
|
|
205
|
+
const names = this.networks.map(n => n.name).filter(n => !aws_cdk_lib_1.Token.isUnresolved(n));
|
|
206
|
+
const duplicates = [...new Set(names.filter((n, i) => names.indexOf(n) !== i))];
|
|
207
|
+
return duplicates.length > 0
|
|
208
|
+
? [`Gateway network names must be unique within a gateway. Duplicate name(s): ${duplicates.join(', ')}`]
|
|
209
|
+
: [];
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Add a network to this gateway.
|
|
215
|
+
*/
|
|
216
|
+
addNetwork(network) {
|
|
217
|
+
try {
|
|
218
|
+
jsiiDeprecationWarnings._aws_cdk_aws_mediaconnect_alpha_GatewayNetwork(network);
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
222
|
+
Error.captureStackTrace(error, this.addNetwork);
|
|
223
|
+
}
|
|
224
|
+
throw error;
|
|
225
|
+
}
|
|
226
|
+
this.networks.push(network);
|
|
227
|
+
return network;
|
|
228
|
+
}
|
|
229
|
+
static {
|
|
230
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
return Gateway = _classThis;
|
|
234
|
+
})();
|
|
235
|
+
exports.Gateway = Gateway;
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F0ZXdheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImdhdGV3YXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQW1HO0FBRW5HLCtEQUEwRDtBQUMxRCxtRUFBMEQ7QUFFMUQsNEVBQTREO0FBQzVELDhFQUE4RjtBQUM5RiwwRUFBMEU7QUFHMUUscUNBQXNDO0FBb0d0QyxNQUFlLFdBQVksU0FBUSxzQkFBUTtJQUl6QyxJQUFXLFVBQVU7UUFDbkIsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUM1QixDQUFDO0tBQ0g7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxVQUFrQixFQUFFLEtBQXFCO1FBQ3JELE9BQU8sSUFBSSx1QkFBTSxDQUFDO1lBQ2hCLFVBQVU7WUFDVixTQUFTLEVBQUUsa0JBQWtCO1lBQzdCLEdBQUcsS0FBSztZQUNSLGFBQWEsRUFBRTtnQkFDYixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzNCLEdBQUcsS0FBSyxFQUFFLGFBQWE7YUFDeEI7U0FDRixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ25CO0lBRUQ7O09BRUc7SUFDSSw4QkFBOEIsQ0FBQyxLQUFxQjtRQUN6RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsMEJBQTBCLEVBQUU7WUFDN0MsU0FBUyxFQUFFLEtBQUs7WUFDaEIsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUFJLEVBQUUscUJBQUksQ0FBQyxLQUFLO1lBQ2hCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztLQUNKO0lBRUQ7O09BRUc7SUFDSSxnQ0FBZ0MsQ0FBQyxLQUFxQjtRQUMzRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsNEJBQTRCLEVBQUU7WUFDL0MsU0FBUyxFQUFFLEtBQUs7WUFDaEIsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUFJLEVBQUUscUJBQUksQ0FBQyxLQUFLO1lBQ2hCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztLQUNKO0lBRUQ7O09BRUc7SUFDSSwrQkFBK0IsQ0FBQyxLQUFxQjtRQUMxRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsMkJBQTJCLEVBQUU7WUFDOUMsU0FBUyxFQUFFLEtBQUs7WUFDaEIsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUFJLEVBQUUscUJBQUksQ0FBQyxLQUFLO1lBQ2hCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztLQUNKO0lBRUQ7O09BRUc7SUFDSSxpQ0FBaUMsQ0FBQyxLQUFxQjtRQUM1RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsNkJBQTZCLEVBQUU7WUFDaEQsU0FBUyxFQUFFLEtBQUs7WUFDaEIsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUFJLEVBQUUscUJBQUksQ0FBQyxLQUFLO1lBQ2hCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztLQUNKO0NBQ0Y7QUFFRDs7OztHQUlHO0lBRVUsT0FBTzs0QkFEbkIsb0NBQWtCOzs7O3NCQUNVLFdBQVc7Ozt1QkFBbkIsU0FBUSxXQUFXOzs7O3NDQXFGckMsSUFBQSxrQ0FBYyxHQUFFO1lBQ2pCLGlMQUFPLFVBQVUsNkRBR2hCO1lBekZILDZLQTBGQzs7Ozs7UUF6RkMsc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyx5Q0FBeUMsQ0FBQztRQUVqRzs7V0FFRztRQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsVUFBa0I7WUFDM0UsTUFBTSxNQUFPLFNBQVEsV0FBVztnQkFDZCxVQUFVLEdBQUcsVUFBVSxDQUFDO2dCQUN4QixZQUFZLEdBQUcsU0FBUyxDQUFDO2FBQzFDO1lBRUQsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDOUI7UUFFZSxVQUFVLEdBaEJmLG1EQUFPLENBZ0JpQjtRQUNuQixZQUFZLENBQVU7UUFDOUIsUUFBUSxHQUFxQixFQUFFLENBQUM7UUFFeEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQjtZQUMzRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtnQkFDZixZQUFZLEVBQUUsS0FBSyxFQUFFLFdBQVcsSUFBSSxrQkFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxtQkFBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDdEgsQ0FBQyxDQUFDOzs7Ozs7bURBdkJNLE9BQU87Ozs7WUF5QmhCLG9DQUFvQztZQUNwQyxJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssRUFBRSxJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BHLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7b0JBQ2xDLE1BQU0sSUFBSSw2QkFBZSxDQUFDLElBQUEsc0JBQUcsRUFBQSxtQkFBbUIsRUFBRSx5REFBeUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0ksQ0FBQztnQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO29CQUMvQyxNQUFNLElBQUksNkJBQWUsQ0FBQyxJQUFBLHNCQUFHLEVBQUEsbUJBQW1CLEVBQUUsNEVBQTRFLEtBQUssQ0FBQyxXQUFXLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDNUosQ0FBQztZQUNILENBQUM7WUFFRCxtQ0FBbUM7WUFDbkMsSUFBQSx3Q0FBb0IsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFbEMsc0VBQXNFO1lBQ3RFLElBQUksQ0FBQyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO2dCQUNoRCxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUMxQyxJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksSUFBQSxtQkFBVSxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ2xELHlCQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FDL0IsZ0RBQWdELEVBQ2hELHdCQUF3QixJQUFJLGdGQUFnRixDQUM3RyxDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUM7WUFFSCxNQUFNLFFBQVEsR0FBRyxJQUFJLDZCQUFVLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDaEQsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUN2QixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO2dCQUN4QyxRQUFRLEVBQUUsa0JBQUksQ0FBQyxHQUFHLENBQUM7b0JBQ2pCLE9BQU8sRUFBRSxHQUFHLEVBQUU7d0JBQ1osSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDOzRCQUFFLE1BQU0sSUFBSSw2QkFBZSxDQUFDLElBQUEsc0JBQUcsRUFBQSxvQkFBb0IsRUFBRSxxREFBcUQsRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDaEosSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDOzRCQUFFLE1BQU0sSUFBSSw2QkFBZSxDQUFDLElBQUEsc0JBQUcsRUFBQSxvQkFBb0IsRUFBRSxtREFBbUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDbEssT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUN2QixDQUFDO2lCQUNGLEVBQUUsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDN0IsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1lBRTlDLCtFQUErRTtZQUMvRSxtRUFBbUU7WUFDbkUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7Z0JBQ3RCLFFBQVEsRUFBRSxHQUFHLEVBQUU7b0JBQ2IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNqRixNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNoRixPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQzt3QkFDMUIsQ0FBQyxDQUFDLENBQUMsNkVBQTZFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDeEcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDVCxDQUFDO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7UUFFRDs7V0FFRztRQUVJLFVBQVUsQ0FBQyxPQUF1Qjs7Ozs7Ozs7OztZQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QixPQUFPLE9BQU8sQ0FBQztTQUNoQjs7WUF6RlUsdURBQU87Ozs7O0FBQVAsMEJBQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElSZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEFubm90YXRpb25zLCBEdXJhdGlvbiwgUmVzb3VyY2UsIExhenksIE5hbWVzLCBUb2tlbiwgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBNZXRyaWNPcHRpb25zIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgTWV0cmljLCBVbml0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQ2ZuR2F0ZXdheSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYWNvbm5lY3QnO1xuaW1wb3J0IHR5cGUgeyBJR2F0ZXdheVJlZiwgR2F0ZXdheVJlZmVyZW5jZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYWNvbm5lY3QnO1xuaW1wb3J0IHsgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSwgTWV0aG9kTWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgR2F0ZXdheU5ldHdvcmsgfSBmcm9tICcuL3NoYXJlZCc7XG5pbXBvcnQgeyBpc09wZW5DaWRyIH0gZnJvbSAnLi9zaGFyZWQnO1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgR2F0ZXdheVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElHYXRld2F5IGV4dGVuZHMgSVJlc291cmNlLCBJR2F0ZXdheVJlZiB7XG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGdhdGV3YXkuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXlBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGdhdGV3YXkuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXlTdGF0ZT86IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBtZXRyaWMgZm9yIHRoaXMgZ2F0ZXdheS5cbiAgICpcbiAgICogVGhlIGdhdGV3YXkgQVJOIGlzIHNldCBhcyB0aGUgYEdhdGV3YXlBUk5gIGRpbWVuc2lvbiBhdXRvbWF0aWNhbGx5LiBGb3JcbiAgICogbWV0cmljcyB0aGF0IHJlcXVpcmUgYWRkaXRpb25hbCBkaW1lbnNpb25zIChzdWNoIGFzIGBOZXR3b3JrTmFtZWAsXG4gICAqIGBJbnN0YW5jZUlkYCBmb3IgYSBzcGVjaWZpYyBhcHBsaWFuY2UsIG9yIGBCcmlkZ2VTb3VyY2VOYW1lYCksIHBhc3MgdGhlbVxuICAgKiB2aWEgYHByb3BzLmRpbWVuc2lvbnNNYXBgLlxuICAgKlxuICAgKiBTZWUgdGhlIE1lZGlhQ29ubmVjdCBkb2N1bWVudGF0aW9uIGZvciBhdmFpbGFibGUgbWV0cmljIG5hbWVzIChmb3IgZXhhbXBsZVxuICAgKiBgSW5ncmVzc0JyaWRnZUJpdFJhdGVgLCBgRWdyZXNzQnJpZGdlQml0UmF0ZWAsIGBJbmdyZXNzQnJpZGdlU291cmNlUGFja2V0TG9zc1BlcmNlbnRgKS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbWVkaWFjb25uZWN0L2xhdGVzdC91Zy9tb25pdG9yLXdpdGgtY2xvdWR3YXRjaC1tZXRyaWNzLWdhdGV3YXktaGVhbHRoLmh0bWxcbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogTWV0cmljIGZvciB0aGUgdG90YWwgbnVtYmVyIG9mIHBhY2tldHMgc2VudCBmcm9tIGVncmVzcyBicmlkZ2VzIGhvc3RlZCBvbiB0aGlzIGdhdGV3YXkuXG4gICAqXG4gICAqIFBhaXIgd2l0aCB7QGxpbmsgbWV0cmljRWdyZXNzQnJpZGdlRHJvcHBlZFBhY2tldHN9IHRvIGNoYXJ0IGFuIGVncmVzcyBkcm9wcGVkLXBhY2tldFxuICAgKiBwZXJjZW50YWdlLiBGb3IgcGVyLWJyaWRnZSBkYXRhLCBwYXNzIGBkaW1lbnNpb25zTWFwOiB7IEJyaWRnZVNvdXJjZU5hbWU6ICcuLi4nIH1gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHN1bSBvdmVyIDYwIHNlY29uZHNcbiAgICovXG4gIG1ldHJpY0VncmVzc0JyaWRnZVRvdGFsUGFja2V0cyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIE1ldHJpYyBmb3IgdGhlIG51bWJlciBvZiBwYWNrZXRzIGRyb3BwZWQgYnkgZWdyZXNzIGJyaWRnZXMgaG9zdGVkIG9uIHRoaXMgZ2F0ZXdheS5cbiAgICpcbiAgICogUGFpciB3aXRoIHtAbGluayBtZXRyaWNFZ3Jlc3NCcmlkZ2VUb3RhbFBhY2tldHN9IHRvIGNoYXJ0IGEgZHJvcHBlZC1wYWNrZXQgcGVyY2VudGFnZS5cbiAgICogRm9yIHBlci1icmlkZ2UgZGF0YSwgcGFzcyBgZGltZW5zaW9uc01hcDogeyBCcmlkZ2VTb3VyY2VOYW1lOiAnLi4uJyB9YC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBzdW0gb3ZlciA2MCBzZWNvbmRzXG4gICAqL1xuICBtZXRyaWNFZ3Jlc3NCcmlkZ2VEcm9wcGVkUGFja2V0cyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIE1ldHJpYyBmb3IgdGhlIHRvdGFsIG51bWJlciBvZiBwYWNrZXRzIHJlY2VpdmVkIGJ5IGluZ3Jlc3MgYnJpZGdlcyBob3N0ZWQgb24gdGhpcyBnYXRld2F5LlxuICAgKlxuICAgKiBQYWlyIHdpdGgge0BsaW5rIG1ldHJpY0luZ3Jlc3NCcmlkZ2VEcm9wcGVkUGFja2V0c30gdG8gY2hhcnQgYW4gaW5ncmVzcyBkcm9wcGVkLXBhY2tldFxuICAgKiBwZXJjZW50YWdlLiBGb3IgcGVyLWJyaWRnZSBkYXRhLCBwYXNzIGBkaW1lbnNpb25zTWFwOiB7IEJyaWRnZVNvdXJjZU5hbWU6ICcuLi4nIH1gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHN1bSBvdmVyIDYwIHNlY29uZHNcbiAgICovXG4gIG1ldHJpY0luZ3Jlc3NCcmlkZ2VUb3RhbFBhY2tldHMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIHRoZSBudW1iZXIgb2YgcGFja2V0cyBkcm9wcGVkIGJ5IGluZ3Jlc3MgYnJpZGdlcyBob3N0ZWQgb24gdGhpcyBnYXRld2F5LlxuICAgKlxuICAgKiBQYWlyIHdpdGgge0BsaW5rIG1ldHJpY0luZ3Jlc3NCcmlkZ2VUb3RhbFBhY2tldHN9IHRvIGNoYXJ0IGEgZHJvcHBlZC1wYWNrZXQgcGVyY2VudGFnZS5cbiAgICogRm9yIHBlci1icmlkZ2UgZGF0YSwgcGFzcyBgZGltZW5zaW9uc01hcDogeyBCcmlkZ2VTb3VyY2VOYW1lOiAnLi4uJyB9YC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBzdW0gb3ZlciA2MCBzZWNvbmRzXG4gICAqL1xuICBtZXRyaWNJbmdyZXNzQnJpZGdlRHJvcHBlZFBhY2tldHMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBNZWRpYUNvbm5lY3QgR2F0ZXdheS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5UHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGdhdGV3YXkuIFRoaXMgbmFtZSBjYW4gbm90IGJlIG1vZGlmaWVkIGFmdGVyIHRoZSBnYXRld2F5IGlzIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYXV0b2dlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheU5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmFuZ2Ugb2YgSVAgYWRkcmVzc2VzIHRoYXQgYXJlIGFsbG93ZWQgdG8gY29udHJpYnV0ZSBjb250ZW50IG9yIGluaXRpYXRlIG91dHB1dCByZXF1ZXN0cyBmb3IgZmxvd3MgY29tbXVuaWNhdGluZyB3aXRoIHRoaXMgZ2F0ZXdheS5cbiAgICogVGhlc2UgSVAgYWRkcmVzc2VzIHNob3VsZCBiZSBpbiB0aGUgZm9ybSBvZiBhIENsYXNzbGVzcyBJbnRlci1Eb21haW4gUm91dGluZyAoQ0lEUikgYmxvY2s7IGZvciBleGFtcGxlLCAxMC4wLjAuMC8xNi5cbiAgICovXG4gIHJlYWRvbmx5IGVncmVzc0NpZHJCbG9ja3M6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBuZXR3b3JrcyBpbiB0aGUgZ2F0ZXdheS4gQSBnYXRld2F5IG11c3QgaGF2ZSBiZXR3ZWVuIDEgYW5kIDQgbmV0d29ya3MuXG4gICAqIFByb3ZpZGUgdGhlIGluaXRpYWwgc2V0IGhlcmU7IHVzZSBgYWRkTmV0d29yaygpYCB0byBhZGQgbW9yZSAodXAgdG8gNCB0b3RhbCkuXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrczogR2F0ZXdheU5ldHdvcmtbXTtcblxufVxuXG5hYnN0cmFjdCBjbGFzcyBHYXRld2F5QmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUdhdGV3YXkge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ2F0ZXdheUFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ2F0ZXdheVN0YXRlPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXQgZ2F0ZXdheVJlZigpOiBHYXRld2F5UmVmZXJlbmNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgZ2F0ZXdheUFybjogdGhpcy5nYXRld2F5QXJuLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBtZXRyaWMgZm9yIHRoaXMgZ2F0ZXdheS5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWUsXG4gICAgICBuYW1lc3BhY2U6ICdBV1MvTWVkaWFDb25uZWN0JyxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBHYXRld2F5QVJOOiB0aGlzLmdhdGV3YXlBcm4sXG4gICAgICAgIC4uLnByb3BzPy5kaW1lbnNpb25zTWFwLFxuICAgICAgfSxcbiAgICB9KS5hdHRhY2hUbyh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIHRoZSB0b3RhbCBudW1iZXIgb2YgcGFja2V0cyBzZW50IGZyb20gZWdyZXNzIGJyaWRnZXMgaG9zdGVkIG9uIHRoaXMgZ2F0ZXdheS5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNFZ3Jlc3NCcmlkZ2VUb3RhbFBhY2tldHMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0VncmVzc0JyaWRnZVRvdGFsUGFja2V0cycsIHtcbiAgICAgIHN0YXRpc3RpYzogJ3N1bScsXG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgdW5pdDogVW5pdC5DT1VOVCxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldHJpYyBmb3IgdGhlIG51bWJlciBvZiBwYWNrZXRzIGRyb3BwZWQgYnkgZWdyZXNzIGJyaWRnZXMgaG9zdGVkIG9uIHRoaXMgZ2F0ZXdheS5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNFZ3Jlc3NCcmlkZ2VEcm9wcGVkUGFja2V0cyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnRWdyZXNzQnJpZGdlRHJvcHBlZFBhY2tldHMnLCB7XG4gICAgICBzdGF0aXN0aWM6ICdzdW0nLFxuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIHVuaXQ6IFVuaXQuQ09VTlQsXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIHRoZSB0b3RhbCBudW1iZXIgb2YgcGFja2V0cyByZWNlaXZlZCBieSBpbmdyZXNzIGJyaWRnZXMgaG9zdGVkIG9uIHRoaXMgZ2F0ZXdheS5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNJbmdyZXNzQnJpZGdlVG90YWxQYWNrZXRzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdJbmdyZXNzQnJpZGdlVG90YWxQYWNrZXRzJywge1xuICAgICAgc3RhdGlzdGljOiAnc3VtJyxcbiAgICAgIHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICB1bml0OiBVbml0LkNPVU5ULFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0cmljIGZvciB0aGUgbnVtYmVyIG9mIHBhY2tldHMgZHJvcHBlZCBieSBpbmdyZXNzIGJyaWRnZXMgaG9zdGVkIG9uIHRoaXMgZ2F0ZXdheS5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNJbmdyZXNzQnJpZGdlRHJvcHBlZFBhY2tldHMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0luZ3Jlc3NCcmlkZ2VEcm9wcGVkUGFja2V0cycsIHtcbiAgICAgIHN0YXRpc3RpYzogJ3N1bScsXG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgdW5pdDogVW5pdC5DT1VOVCxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQVdTIEVsZW1lbnRhbCBNZWRpYUNvbm5lY3QgR2F0ZXdheSBpcyBhIGZlYXR1cmUgb2YgTWVkaWFDb25uZWN0IHRoYXQgYWxsb3dzIHRoZSBkZXBsb3ltZW50IG9mIG9uLXByZW1pc2VzIHJlc291cmNlcyBmb3IgdHJhbnNwb3J0aW5nIGxpdmVcbiAqIHZpZGVvIHRvIGFuZCBmcm9tIHRoZSBBV1MgQ2xvdWQuIE1lZGlhQ29ubmVjdCBHYXRld2F5IGFsbG93cyB5b3UgdG8gY29udHJpYnV0ZSBsaXZlIHZpZGVvIHRvIHRoZSBBV1MgQ2xvdWQgZnJvbSBvbi1wcmVtaXNlcyBoYXJkd2FyZSxcbiAqIGFzIHdlbGwgYXMgZGlzdHJpYnV0ZSBsaXZlIHZpZGVvIGZyb20gdGhlIEFXUyBDbG91ZCB0byB5b3VyIGxvY2FsIGRhdGEgY2VudGVyLlxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgR2F0ZXdheSBleHRlbmRzIEdhdGV3YXlCYXNlIGltcGxlbWVudHMgSUdhdGV3YXkge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1tZWRpYWNvbm5lY3QtYWxwaGEuR2F0ZXdheSc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBNZWRpYUNvbm5lY3QgR2F0ZXdheSBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIChpbXBvcnRlZCkgTWVkaWFDb25uZWN0IEdhdGV3YXkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21HYXRld2F5QXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGdhdGV3YXlBcm46IHN0cmluZyk6IElHYXRld2F5IHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBHYXRld2F5QmFzZSBpbXBsZW1lbnRzIElHYXRld2F5IHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBnYXRld2F5QXJuID0gZ2F0ZXdheUFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBnYXRld2F5U3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBnYXRld2F5QXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBnYXRld2F5U3RhdGU/OiBzdHJpbmc7XG4gIHByaXZhdGUgbmV0d29ya3M6IEdhdGV3YXlOZXR3b3JrW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogR2F0ZXdheVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzPy5nYXRld2F5TmFtZSA/PyBMYXp5LnN0cmluZyh7IHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogMzIgfSkgfSksXG4gICAgfSk7XG5cbiAgICAvLyBWYWxpZGF0ZSBnYXRld2F5IG5hbWUgaWYgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMuZ2F0ZXdheU5hbWUgIT0gbnVsbCAmJiBwcm9wcy5nYXRld2F5TmFtZSAhPT0gJycgJiYgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5nYXRld2F5TmFtZSkpIHtcbiAgICAgIGlmIChwcm9wcy5nYXRld2F5TmFtZS5sZW5ndGggPiAzMikge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBHYXRld2F5TmFtZUxlbmd0aGAsIGBHYXRld2F5IG5hbWUgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDMyIGNoYXJhY3RlcnMsIGdvdCAke3Byb3BzLmdhdGV3YXlOYW1lLmxlbmd0aH1gLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIGlmICghL15bYS16QS1aMC05LV0rJC8udGVzdChwcm9wcy5nYXRld2F5TmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgR2F0ZXdheU5hbWVGb3JtYXRgLCBgR2F0ZXdheSBuYW1lIG11c3QgY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCBoeXBoZW5zLCBnb3QgJyR7cHJvcHMuZ2F0ZXdheU5hbWV9J2AsIHRoaXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgLy8gV2FybiBvbiBmdWxseS1vcGVuIGVncmVzcyBDSURSIGJsb2NrcyAoMC4wLjAuMC8wIG9yIGFueSAvMCBwcmVmaXgpLlxuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmVncmVzc0NpZHJCbG9ja3MpKSB7XG4gICAgICBmb3IgKGNvbnN0IGNpZHIgb2YgcHJvcHMuZWdyZXNzQ2lkckJsb2Nrcykge1xuICAgICAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZChjaWRyKSAmJiBpc09wZW5DaWRyKGNpZHIpKSB7XG4gICAgICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZ1YyKFxuICAgICAgICAgICAgJ0Bhd3MtY2RrL2F3cy1tZWRpYWNvbm5lY3QtYWxwaGE6b3BlbkVncmVzc0NpZHInLFxuICAgICAgICAgICAgYEdhdGV3YXkgZWdyZXNzIENJRFIgJyR7Y2lkcn0nIGFsbG93cyB0cmFmZmljIGZyb20gYW55IElQLiBSZXN0cmljdCB0byB0aGUgbmFycm93ZXN0IHJhbmdlIHlvdXIgZmxvd3MgbmVlZC5gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9wcy5uZXR3b3Jrcy5mb3JFYWNoKG5ldHdvcmsgPT4ge1xuICAgICAgdGhpcy5uZXR3b3Jrcy5wdXNoKG5ldHdvcmspO1xuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ2ZuR2F0ZXdheSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBuYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIGVncmVzc0NpZHJCbG9ja3M6IHByb3BzLmVncmVzc0NpZHJCbG9ja3MsXG4gICAgICBuZXR3b3JrczogTGF6eS5hbnkoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMubmV0d29ya3MubGVuZ3RoID09PSAwKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBHYXRld2F5TWluTmV0d29ya3NgLCAnQXQgbGVhc3QgMSBuZXR3b3JrIG11c3QgYmUgc3BlY2lmaWVkIG9uIHRoZSBnYXRld2F5JywgdGhpcyk7XG4gICAgICAgICAgaWYgKHRoaXMubmV0d29ya3MubGVuZ3RoID4gNCkgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgR2F0ZXdheU1heE5ldHdvcmtzYCwgYEEgZ2F0ZXdheSBzdXBwb3J0cyBhIG1heGltdW0gb2YgNCBuZXR3b3JrcywgZ290ICR7dGhpcy5uZXR3b3Jrcy5sZW5ndGh9YCwgdGhpcyk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubmV0d29ya3M7XG4gICAgICAgIH0sXG4gICAgICB9LCB7IG9taXRFbXB0eUFycmF5OiB0cnVlIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5nYXRld2F5QXJuID0gcmVzb3VyY2UuYXR0ckdhdGV3YXlBcm47XG4gICAgdGhpcy5nYXRld2F5U3RhdGUgPSByZXNvdXJjZS5hdHRyR2F0ZXdheVN0YXRlO1xuXG4gICAgLy8gVmFsaWRhdGUgZ2F0ZXdheSBuZXR3b3JrIG5hbWUgdW5pcXVlbmVzcyBhdCBzeW50aCB0aW1lLiBOYW1lcyBtdXN0IGJlIHVuaXF1ZVxuICAgIC8vIHdpdGhpbiBhIGdhdGV3YXk7IHRoZSBzZXJ2aWNlIHJlamVjdHMgZHVwbGljYXRlcyBhdCBkZXBsb3kgdGltZS5cbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih7XG4gICAgICB2YWxpZGF0ZTogKCkgPT4ge1xuICAgICAgICBjb25zdCBuYW1lcyA9IHRoaXMubmV0d29ya3MubWFwKG4gPT4gbi5uYW1lKS5maWx0ZXIobiA9PiAhVG9rZW4uaXNVbnJlc29sdmVkKG4pKTtcbiAgICAgICAgY29uc3QgZHVwbGljYXRlcyA9IFsuLi5uZXcgU2V0KG5hbWVzLmZpbHRlcigobiwgaSkgPT4gbmFtZXMuaW5kZXhPZihuKSAhPT0gaSkpXTtcbiAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZXMubGVuZ3RoID4gMFxuICAgICAgICAgID8gW2BHYXRld2F5IG5ldHdvcmsgbmFtZXMgbXVzdCBiZSB1bmlxdWUgd2l0aGluIGEgZ2F0ZXdheS4gRHVwbGljYXRlIG5hbWUocyk6ICR7ZHVwbGljYXRlcy5qb2luKCcsICcpfWBdXG4gICAgICAgICAgOiBbXTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV0d29yayB0byB0aGlzIGdhdGV3YXkuXG4gICAqL1xuICBATWV0aG9kTWV0YWRhdGEoKVxuICBwdWJsaWMgYWRkTmV0d29yayhuZXR3b3JrOiBHYXRld2F5TmV0d29yayk6IEdhdGV3YXlOZXR3b3JrIHtcbiAgICB0aGlzLm5ldHdvcmtzLnB1c2gobmV0d29yayk7XG4gICAgcmV0dXJuIG5ldHdvcms7XG4gIH1cbn1cbiJdfQ==
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './flow';
|
|
2
|
+
export * from './flow-source-configuration';
|
|
3
|
+
export * from './gateway';
|
|
4
|
+
export * from './bridge';
|
|
5
|
+
export * from './flow-entitlement';
|
|
6
|
+
export * from './bridge-output';
|
|
7
|
+
export * from './bridge-source';
|
|
8
|
+
export * from './flow-output';
|
|
9
|
+
export * from './flow-source';
|
|
10
|
+
export * from './shared';
|
|
11
|
+
export * from './router-input';
|
|
12
|
+
export * from './router-network-interface';
|
|
13
|
+
export * from './router-output';
|
|
14
|
+
export * from './mediaconnect-grants.generated';
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./flow"), exports);
|
|
18
|
+
__exportStar(require("./flow-source-configuration"), exports);
|
|
19
|
+
__exportStar(require("./gateway"), exports);
|
|
20
|
+
__exportStar(require("./bridge"), exports);
|
|
21
|
+
__exportStar(require("./flow-entitlement"), exports);
|
|
22
|
+
__exportStar(require("./bridge-output"), exports);
|
|
23
|
+
__exportStar(require("./bridge-source"), exports);
|
|
24
|
+
__exportStar(require("./flow-output"), exports);
|
|
25
|
+
__exportStar(require("./flow-source"), exports);
|
|
26
|
+
__exportStar(require("./shared"), exports);
|
|
27
|
+
__exportStar(require("./router-input"), exports);
|
|
28
|
+
__exportStar(require("./router-network-interface"), exports);
|
|
29
|
+
__exportStar(require("./router-output"), exports);
|
|
30
|
+
__exportStar(require("./mediaconnect-grants.generated"), exports);
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCO0FBQ3ZCLDhEQUE0QztBQUM1Qyw0Q0FBMEI7QUFDMUIsMkNBQXlCO0FBQ3pCLHFEQUFtQztBQUNuQyxrREFBZ0M7QUFDaEMsa0RBQWdDO0FBQ2hDLGdEQUE4QjtBQUM5QixnREFBOEI7QUFDOUIsMkNBQXlCO0FBQ3pCLGlEQUErQjtBQUMvQiw2REFBMkM7QUFDM0Msa0RBQWdDO0FBRWhDLGtFQUFnRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmxvdyc7XG5leHBvcnQgKiBmcm9tICcuL2Zsb3ctc291cmNlLWNvbmZpZ3VyYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9nYXRld2F5JztcbmV4cG9ydCAqIGZyb20gJy4vYnJpZGdlJztcbmV4cG9ydCAqIGZyb20gJy4vZmxvdy1lbnRpdGxlbWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2JyaWRnZS1vdXRwdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9icmlkZ2Utc291cmNlJztcbmV4cG9ydCAqIGZyb20gJy4vZmxvdy1vdXRwdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9mbG93LXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZCc7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRlci1pbnB1dCc7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRlci1uZXR3b3JrLWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRlci1vdXRwdXQnO1xuXG5leHBvcnQgKiBmcm9tICcuL21lZGlhY29ubmVjdC1ncmFudHMuZ2VuZXJhdGVkJztcbiJdfQ==
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as mediaconnect from "aws-cdk-lib/aws-mediaconnect";
|
|
2
|
+
import * as iam from "aws-cdk-lib/aws-iam";
|
|
3
|
+
import * as cdk from "aws-cdk-lib/core";
|
|
4
|
+
/**
|
|
5
|
+
* Collection of grant methods for a IFlowRef
|
|
6
|
+
*/
|
|
7
|
+
export declare class FlowGrants {
|
|
8
|
+
/**
|
|
9
|
+
* Creates grants for FlowGrants
|
|
10
|
+
*/
|
|
11
|
+
static fromFlow(resource: mediaconnect.IFlowRef): FlowGrants;
|
|
12
|
+
protected readonly resource: mediaconnect.IFlowRef;
|
|
13
|
+
private constructor();
|
|
14
|
+
/**
|
|
15
|
+
* Grant the given identity custom permissions
|
|
16
|
+
*/
|
|
17
|
+
actions(grantee: iam.IGrantable, actions: Array<string>, options?: cdk.PermissionsOptions): iam.Grant;
|
|
18
|
+
/**
|
|
19
|
+
* Grant permissions to start this flow
|
|
20
|
+
*/
|
|
21
|
+
start(grantee: iam.IGrantable): iam.Grant;
|
|
22
|
+
/**
|
|
23
|
+
* Grant permissions to stop this flow
|
|
24
|
+
*/
|
|
25
|
+
stop(grantee: iam.IGrantable): iam.Grant;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Collection of grant methods for a IRouterInputRef
|
|
29
|
+
*/
|
|
30
|
+
export declare class RouterInputGrants {
|
|
31
|
+
/**
|
|
32
|
+
* Creates grants for RouterInputGrants
|
|
33
|
+
*/
|
|
34
|
+
static fromRouterInput(resource: mediaconnect.IRouterInputRef): RouterInputGrants;
|
|
35
|
+
protected readonly resource: mediaconnect.IRouterInputRef;
|
|
36
|
+
private constructor();
|
|
37
|
+
/**
|
|
38
|
+
* Grant the given identity custom permissions
|
|
39
|
+
*/
|
|
40
|
+
actions(grantee: iam.IGrantable, actions: Array<string>, options?: cdk.PermissionsOptions): iam.Grant;
|
|
41
|
+
/**
|
|
42
|
+
* Grant permissions to start this router input
|
|
43
|
+
*/
|
|
44
|
+
start(grantee: iam.IGrantable): iam.Grant;
|
|
45
|
+
/**
|
|
46
|
+
* Grant permissions to stop this router input
|
|
47
|
+
*/
|
|
48
|
+
stop(grantee: iam.IGrantable): iam.Grant;
|
|
49
|
+
/**
|
|
50
|
+
* Grant permissions to restart this router input
|
|
51
|
+
*/
|
|
52
|
+
restart(grantee: iam.IGrantable): iam.Grant;
|
|
53
|
+
}
|