@alicloud/ros-cdk-nlb 1.0.14 → 1.0.16

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.
@@ -0,0 +1,2 @@
1
+ export * from './loadbalancers';
2
+ export * from './nlb.generated';
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./loadbalancers"), exports);
14
+ // DATASOURCE::NLB Resources:
15
+ __exportStar(require("./nlb.generated"), exports);
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxrREFBZ0M7QUFFaEMsNkJBQTZCO0FBQzdCLGtEQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbG9hZGJhbGFuY2Vycyc7XG5cbi8vIERBVEFTT1VSQ0U6Ok5MQiBSZXNvdXJjZXM6XG5leHBvcnQgKiBmcm9tICcuL25sYi5nZW5lcmF0ZWQnO1xuIl19
@@ -0,0 +1,77 @@
1
+ import * as ros from '@alicloud/ros-cdk-core';
2
+ import { RosLoadBalancers } from './nlb.generated';
3
+ export { RosLoadBalancers as LoadBalancersProperty };
4
+ /**
5
+ * Properties for defining a `DATASOURCE::NLB::LoadBalancers`
6
+ */
7
+ export interface LoadBalancersProps {
8
+ /**
9
+ * Property addressIpVersion: IP version.
10
+ */
11
+ readonly addressIpVersion?: string | ros.IResolvable;
12
+ /**
13
+ * Property addressType: The address type of the load balancing instance.
14
+ */
15
+ readonly addressType?: string | ros.IResolvable;
16
+ /**
17
+ * Property ipv6AddressType: IPv6 address type of network load balancing
18
+ */
19
+ readonly ipv6AddressType?: string | ros.IResolvable;
20
+ /**
21
+ * Property loadBalancerBussinessStatus: Service status of application load balancing
22
+ */
23
+ readonly loadBalancerBussinessStatus?: string | ros.IResolvable;
24
+ /**
25
+ * Property loadBalancerIds: IDs of the load balancer instance.
26
+ */
27
+ readonly loadBalancerIds?: Array<string | ros.IResolvable> | ros.IResolvable;
28
+ /**
29
+ * Property loadBalancerNames: Names of the load balancing instance.
30
+ */
31
+ readonly loadBalancerNames?: Array<string | ros.IResolvable> | ros.IResolvable;
32
+ /**
33
+ * Property loadBalancerStatus: The status of SLB.
34
+ */
35
+ readonly loadBalancerStatus?: string | ros.IResolvable;
36
+ /**
37
+ * Property resourceGroupId: Resource group id
38
+ */
39
+ readonly resourceGroupId?: string | ros.IResolvable;
40
+ /**
41
+ * Property tags: Tags of Nlb.
42
+ */
43
+ readonly tags?: RosLoadBalancers.TagsProperty[];
44
+ /**
45
+ * Property vpcIds: VPC IDs
46
+ */
47
+ readonly vpcIds?: Array<string | ros.IResolvable> | ros.IResolvable;
48
+ /**
49
+ * Property zoneId: ID of the ready-to-use zone of the load balancing instance.
50
+ */
51
+ readonly zoneId?: string | ros.IResolvable;
52
+ }
53
+ /**
54
+ * A ROS resource type: `DATASOURCE::NLB::LoadBalancers`
55
+ */
56
+ export declare class LoadBalancers extends ros.Resource {
57
+ /**
58
+ * A factory method that creates a new instance of this class from an object
59
+ * containing the properties of this ROS resource, which will be assigned to ROS resource.
60
+ */
61
+ /**
62
+ * Attribute LoadBalancerIds: The list of load balancer IDs.
63
+ */
64
+ readonly attrLoadBalancerIds: ros.IResolvable;
65
+ /**
66
+ * Attribute LoadBalancers: The list of load balancers.
67
+ */
68
+ readonly attrLoadBalancers: ros.IResolvable;
69
+ /**
70
+ * Create a new `DATASOURCE::NLB::LoadBalancers`.
71
+ *
72
+ * Param scope - scope in which this resource is defined
73
+ * Param id - scoped id of the resource
74
+ * Param props - resource properties
75
+ */
76
+ constructor(scope: ros.Construct, id: string, props?: LoadBalancersProps, enableResourcePropertyConstraint?: boolean);
77
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoadBalancers = exports.LoadBalancersProperty = void 0;
4
+ const ros = require("@alicloud/ros-cdk-core");
5
+ const nlb_generated_1 = require("./nlb.generated");
6
+ Object.defineProperty(exports, "LoadBalancersProperty", { enumerable: true, get: function () { return nlb_generated_1.RosLoadBalancers; } });
7
+ /**
8
+ * A ROS resource type: `DATASOURCE::NLB::LoadBalancers`
9
+ */
10
+ class LoadBalancers extends ros.Resource {
11
+ /**
12
+ * Create a new `DATASOURCE::NLB::LoadBalancers`.
13
+ *
14
+ * Param scope - scope in which this resource is defined
15
+ * Param id - scoped id of the resource
16
+ * Param props - resource properties
17
+ */
18
+ constructor(scope, id, props = {}, enableResourcePropertyConstraint = true) {
19
+ super(scope, id);
20
+ const rosLoadBalancers = new nlb_generated_1.RosLoadBalancers(this, id, {
21
+ loadBalancerNames: props.loadBalancerNames,
22
+ addressIpVersion: props.addressIpVersion,
23
+ loadBalancerBussinessStatus: props.loadBalancerBussinessStatus,
24
+ zoneId: props.zoneId,
25
+ resourceGroupId: props.resourceGroupId,
26
+ vpcIds: props.vpcIds,
27
+ loadBalancerIds: props.loadBalancerIds,
28
+ addressType: props.addressType,
29
+ loadBalancerStatus: props.loadBalancerStatus,
30
+ tags: props.tags,
31
+ ipv6AddressType: props.ipv6AddressType,
32
+ }, enableResourcePropertyConstraint && this.stack.enableResourcePropertyConstraint);
33
+ this.resource = rosLoadBalancers;
34
+ this.attrLoadBalancerIds = rosLoadBalancers.attrLoadBalancerIds;
35
+ this.attrLoadBalancers = rosLoadBalancers.attrLoadBalancers;
36
+ }
37
+ }
38
+ exports.LoadBalancers = LoadBalancers;
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGJhbGFuY2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvYWRiYWxhbmNlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQThDO0FBQzlDLG1EQUFtRDtBQUV0QixzR0FGcEIsZ0NBQWdCLE9BRXlCO0FBK0RsRDs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLEdBQUcsQ0FBQyxRQUFRO0lBaUIzQzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLFFBQTRCLEVBQUUsRUFBRSxtQ0FBMkMsSUFBSTtRQUN6SCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxnQ0FBZ0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFHO1lBQ3JELGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7WUFDMUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QywyQkFBMkIsRUFBRSxLQUFLLENBQUMsMkJBQTJCO1lBQzlELE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtZQUM1QyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1NBQ3pDLEVBQUUsZ0NBQWdDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUM7UUFDakMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDO1FBQ2hFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQztJQUNoRSxDQUFDO0NBQ0o7QUE1Q0Qsc0NBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcm9zIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWNvcmUnO1xuaW1wb3J0IHsgUm9zTG9hZEJhbGFuY2VycyB9IGZyb20gJy4vbmxiLmdlbmVyYXRlZCc7XG4vLyBHZW5lcmF0ZWQgZnJvbSB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIFNwZWNpZmljYXRpb25cbmV4cG9ydCB7IFJvc0xvYWRCYWxhbmNlcnMgYXMgTG9hZEJhbGFuY2Vyc1Byb3BlcnR5IH07XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBgREFUQVNPVVJDRTo6TkxCOjpMb2FkQmFsYW5jZXJzYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlcnNQcm9wcyB7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhZGRyZXNzSXBWZXJzaW9uOiBJUCB2ZXJzaW9uLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFkZHJlc3NJcFZlcnNpb24/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhZGRyZXNzVHlwZTogVGhlIGFkZHJlc3MgdHlwZSBvZiB0aGUgbG9hZCBiYWxhbmNpbmcgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYWRkcmVzc1R5cGU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpcHY2QWRkcmVzc1R5cGU6IElQdjYgYWRkcmVzcyB0eXBlIG9mIG5ldHdvcmsgbG9hZCBiYWxhbmNpbmdcbiAgICAgKi9cbiAgICByZWFkb25seSBpcHY2QWRkcmVzc1R5cGU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBsb2FkQmFsYW5jZXJCdXNzaW5lc3NTdGF0dXM6IFNlcnZpY2Ugc3RhdHVzIG9mIGFwcGxpY2F0aW9uIGxvYWQgYmFsYW5jaW5nXG4gICAgICovXG4gICAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyQnVzc2luZXNzU3RhdHVzPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgbG9hZEJhbGFuY2VySWRzOiBJRHMgb2YgdGhlIGxvYWQgYmFsYW5jZXIgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbG9hZEJhbGFuY2VySWRzPzogQXJyYXk8c3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlPiB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGxvYWRCYWxhbmNlck5hbWVzOiBOYW1lcyBvZiB0aGUgbG9hZCBiYWxhbmNpbmcgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyTmFtZXM/OiBBcnJheTxzdHJpbmcgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgbG9hZEJhbGFuY2VyU3RhdHVzOiBUaGUgc3RhdHVzIG9mIFNMQi5cbiAgICAgKi9cbiAgICByZWFkb25seSBsb2FkQmFsYW5jZXJTdGF0dXM/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSByZXNvdXJjZUdyb3VwSWQ6IFJlc291cmNlIGdyb3VwIGlkXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdGFnczogVGFncyBvZiBObGIuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdGFncz86IFJvc0xvYWRCYWxhbmNlcnMuVGFnc1Byb3BlcnR5W107XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB2cGNJZHM6IFZQQyBJRHNcbiAgICAgKi9cbiAgICByZWFkb25seSB2cGNJZHM/OiBBcnJheTxzdHJpbmcgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgem9uZUlkOiBJRCBvZiB0aGUgcmVhZHktdG8tdXNlIHpvbmUgb2YgdGhlIGxvYWQgYmFsYW5jaW5nIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHpvbmVJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcbn1cblxuLyoqXG4gKiBBIFJPUyByZXNvdXJjZSB0eXBlOiAgYERBVEFTT1VSQ0U6Ok5MQjo6TG9hZEJhbGFuY2Vyc2BcbiAqL1xuZXhwb3J0IGNsYXNzIExvYWRCYWxhbmNlcnMgZXh0ZW5kcyByb3MuUmVzb3VyY2Uge1xuXG4gICAgLyoqXG4gICAgICogQSBmYWN0b3J5IG1ldGhvZCB0aGF0IGNyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyBmcm9tIGFuIG9iamVjdFxuICAgICAqIGNvbnRhaW5pbmcgdGhlIHByb3BlcnRpZXMgb2YgdGhpcyBST1MgcmVzb3VyY2UsIHdoaWNoIHdpbGwgYmUgYXNzaWduZWQgdG8gUk9TIHJlc291cmNlLlxuICAgICAqL1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIExvYWRCYWxhbmNlcklkczogVGhlIGxpc3Qgb2YgbG9hZCBiYWxhbmNlciBJRHMuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJMb2FkQmFsYW5jZXJJZHM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBMb2FkQmFsYW5jZXJzOiBUaGUgbGlzdCBvZiBsb2FkIGJhbGFuY2Vycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0ckxvYWRCYWxhbmNlcnM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyBgREFUQVNPVVJDRTo6TkxCOjpMb2FkQmFsYW5jZXJzYC5cbiAgICAgKlxuICAgICAqIFBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAgICogUGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlXG4gICAgICogUGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAgICovXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IHJvcy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBMb2FkQmFsYW5jZXJzUHJvcHMgPSB7fSwgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6Ym9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgICAgICBjb25zdCByb3NMb2FkQmFsYW5jZXJzID0gbmV3IFJvc0xvYWRCYWxhbmNlcnModGhpcywgaWQsICB7XG4gICAgICAgICAgICBsb2FkQmFsYW5jZXJOYW1lczogcHJvcHMubG9hZEJhbGFuY2VyTmFtZXMsXG4gICAgICAgICAgICBhZGRyZXNzSXBWZXJzaW9uOiBwcm9wcy5hZGRyZXNzSXBWZXJzaW9uLFxuICAgICAgICAgICAgbG9hZEJhbGFuY2VyQnVzc2luZXNzU3RhdHVzOiBwcm9wcy5sb2FkQmFsYW5jZXJCdXNzaW5lc3NTdGF0dXMsXG4gICAgICAgICAgICB6b25lSWQ6IHByb3BzLnpvbmVJZCxcbiAgICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogcHJvcHMucmVzb3VyY2VHcm91cElkLFxuICAgICAgICAgICAgdnBjSWRzOiBwcm9wcy52cGNJZHMsXG4gICAgICAgICAgICBsb2FkQmFsYW5jZXJJZHM6IHByb3BzLmxvYWRCYWxhbmNlcklkcyxcbiAgICAgICAgICAgIGFkZHJlc3NUeXBlOiBwcm9wcy5hZGRyZXNzVHlwZSxcbiAgICAgICAgICAgIGxvYWRCYWxhbmNlclN0YXR1czogcHJvcHMubG9hZEJhbGFuY2VyU3RhdHVzLFxuICAgICAgICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICAgICAgICAgIGlwdjZBZGRyZXNzVHlwZTogcHJvcHMuaXB2NkFkZHJlc3NUeXBlLFxuICAgICAgICB9LCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCAmJiB0aGlzLnN0YWNrLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50KTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJvc0xvYWRCYWxhbmNlcnM7XG4gICAgICAgIHRoaXMuYXR0ckxvYWRCYWxhbmNlcklkcyA9IHJvc0xvYWRCYWxhbmNlcnMuYXR0ckxvYWRCYWxhbmNlcklkcztcbiAgICAgICAgdGhpcy5hdHRyTG9hZEJhbGFuY2VycyA9IHJvc0xvYWRCYWxhbmNlcnMuYXR0ckxvYWRCYWxhbmNlcnM7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,147 @@
1
+ import * as ros from '@alicloud/ros-cdk-core';
2
+ /**
3
+ * Properties for defining a `DATASOURCE::NLB::LoadBalancers`
4
+ */
5
+ export interface RosLoadBalancersProps {
6
+ /**
7
+ * @Property addressIpVersion: IP version.
8
+ */
9
+ readonly addressIpVersion?: string | ros.IResolvable;
10
+ /**
11
+ * @Property addressType: The address type of the load balancing instance.
12
+ */
13
+ readonly addressType?: string | ros.IResolvable;
14
+ /**
15
+ * @Property ipv6AddressType: IPv6 address type of network load balancing
16
+ */
17
+ readonly ipv6AddressType?: string | ros.IResolvable;
18
+ /**
19
+ * @Property loadBalancerBussinessStatus: Service status of application load balancing
20
+ */
21
+ readonly loadBalancerBussinessStatus?: string | ros.IResolvable;
22
+ /**
23
+ * @Property loadBalancerIds: IDs of the load balancer instance.
24
+ */
25
+ readonly loadBalancerIds?: Array<string | ros.IResolvable> | ros.IResolvable;
26
+ /**
27
+ * @Property loadBalancerNames: Names of the load balancing instance.
28
+ */
29
+ readonly loadBalancerNames?: Array<string | ros.IResolvable> | ros.IResolvable;
30
+ /**
31
+ * @Property loadBalancerStatus: The status of SLB.
32
+ */
33
+ readonly loadBalancerStatus?: string | ros.IResolvable;
34
+ /**
35
+ * @Property resourceGroupId: Resource group id
36
+ */
37
+ readonly resourceGroupId?: string | ros.IResolvable;
38
+ /**
39
+ * @Property tags: Tags of Nlb.
40
+ */
41
+ readonly tags?: RosLoadBalancers.TagsProperty[];
42
+ /**
43
+ * @Property vpcIds: VPC IDs
44
+ */
45
+ readonly vpcIds?: Array<string | ros.IResolvable> | ros.IResolvable;
46
+ /**
47
+ * @Property zoneId: ID of the ready-to-use zone of the load balancing instance.
48
+ */
49
+ readonly zoneId?: string | ros.IResolvable;
50
+ }
51
+ /**
52
+ * A ROS template type: `DATASOURCE::NLB::LoadBalancers`
53
+ */
54
+ export declare class RosLoadBalancers extends ros.RosResource {
55
+ /**
56
+ * The resource type name for this resource class.
57
+ */
58
+ static readonly ROS_RESOURCE_TYPE_NAME = "DATASOURCE::NLB::LoadBalancers";
59
+ /**
60
+ * A factory method that creates a new instance of this class from an object
61
+ * containing the properties of this ROS resource.
62
+ */
63
+ /**
64
+ * @Attribute LoadBalancerIds: The list of load balancer IDs.
65
+ */
66
+ readonly attrLoadBalancerIds: ros.IResolvable;
67
+ /**
68
+ * @Attribute LoadBalancers: The list of load balancers.
69
+ */
70
+ readonly attrLoadBalancers: ros.IResolvable;
71
+ enableResourcePropertyConstraint: boolean;
72
+ /**
73
+ * @Property addressIpVersion: IP version.
74
+ */
75
+ addressIpVersion: string | ros.IResolvable | undefined;
76
+ /**
77
+ * @Property addressType: The address type of the load balancing instance.
78
+ */
79
+ addressType: string | ros.IResolvable | undefined;
80
+ /**
81
+ * @Property ipv6AddressType: IPv6 address type of network load balancing
82
+ */
83
+ ipv6AddressType: string | ros.IResolvable | undefined;
84
+ /**
85
+ * @Property loadBalancerBussinessStatus: Service status of application load balancing
86
+ */
87
+ loadBalancerBussinessStatus: string | ros.IResolvable | undefined;
88
+ /**
89
+ * @Property loadBalancerIds: IDs of the load balancer instance.
90
+ */
91
+ loadBalancerIds: Array<string | ros.IResolvable> | ros.IResolvable | undefined;
92
+ /**
93
+ * @Property loadBalancerNames: Names of the load balancing instance.
94
+ */
95
+ loadBalancerNames: Array<string | ros.IResolvable> | ros.IResolvable | undefined;
96
+ /**
97
+ * @Property loadBalancerStatus: The status of SLB.
98
+ */
99
+ loadBalancerStatus: string | ros.IResolvable | undefined;
100
+ /**
101
+ * @Property resourceGroupId: Resource group id
102
+ */
103
+ resourceGroupId: string | ros.IResolvable | undefined;
104
+ /**
105
+ * @Property tags: Tags of Nlb.
106
+ */
107
+ tags: RosLoadBalancers.TagsProperty[] | undefined;
108
+ /**
109
+ * @Property vpcIds: VPC IDs
110
+ */
111
+ vpcIds: Array<string | ros.IResolvable> | ros.IResolvable | undefined;
112
+ /**
113
+ * @Property zoneId: ID of the ready-to-use zone of the load balancing instance.
114
+ */
115
+ zoneId: string | ros.IResolvable | undefined;
116
+ /**
117
+ * Create a new `DATASOURCE::NLB::LoadBalancers`.
118
+ *
119
+ * @param scope - scope in which this resource is defined
120
+ * @param id - scoped id of the resource
121
+ * @param props - resource properties
122
+ */
123
+ constructor(scope: ros.Construct, id: string, props: RosLoadBalancersProps, enableResourcePropertyConstraint: boolean);
124
+ protected get rosProperties(): {
125
+ [key: string]: any;
126
+ };
127
+ protected renderProperties(props: {
128
+ [key: string]: any;
129
+ }): {
130
+ [key: string]: any;
131
+ };
132
+ }
133
+ export declare namespace RosLoadBalancers {
134
+ /**
135
+ * @stability external
136
+ */
137
+ interface TagsProperty {
138
+ /**
139
+ * @Property value: undefined
140
+ */
141
+ readonly value?: string | ros.IResolvable;
142
+ /**
143
+ * @Property key: undefined
144
+ */
145
+ readonly key: string | ros.IResolvable;
146
+ }
147
+ }
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ // Generated from the AliCloud ROS Resource Specification
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.RosLoadBalancers = void 0;
5
+ const ros = require("@alicloud/ros-cdk-core");
6
+ /**
7
+ * Determine whether the given properties match those of a `RosLoadBalancersProps`
8
+ *
9
+ * @param properties - the TypeScript properties of a `RosLoadBalancersProps`
10
+ *
11
+ * @returns the result of the validation.
12
+ */
13
+ function RosLoadBalancersPropsValidator(properties) {
14
+ if (!ros.canInspect(properties)) {
15
+ return ros.VALIDATION_SUCCESS;
16
+ }
17
+ const errors = new ros.ValidationResults();
18
+ if (properties.loadBalancerNames && (Array.isArray(properties.loadBalancerNames) || (typeof properties.loadBalancerNames) === 'string')) {
19
+ errors.collect(ros.propertyValidator('loadBalancerNames', ros.validateLength)({
20
+ data: properties.loadBalancerNames.length,
21
+ min: 0,
22
+ max: 10,
23
+ }));
24
+ }
25
+ errors.collect(ros.propertyValidator('loadBalancerNames', ros.listValidator(ros.validateString))(properties.loadBalancerNames));
26
+ errors.collect(ros.propertyValidator('addressIpVersion', ros.validateString)(properties.addressIpVersion));
27
+ if (properties.loadBalancerBussinessStatus && (typeof properties.loadBalancerBussinessStatus) !== 'object') {
28
+ errors.collect(ros.propertyValidator('loadBalancerBussinessStatus', ros.validateAllowedValues)({
29
+ data: properties.loadBalancerBussinessStatus,
30
+ allowedValues: ["Abnormal", "Normal"],
31
+ }));
32
+ }
33
+ errors.collect(ros.propertyValidator('loadBalancerBussinessStatus', ros.validateString)(properties.loadBalancerBussinessStatus));
34
+ errors.collect(ros.propertyValidator('zoneId', ros.validateString)(properties.zoneId));
35
+ errors.collect(ros.propertyValidator('resourceGroupId', ros.validateString)(properties.resourceGroupId));
36
+ if (properties.vpcIds && (Array.isArray(properties.vpcIds) || (typeof properties.vpcIds) === 'string')) {
37
+ errors.collect(ros.propertyValidator('vpcIds', ros.validateLength)({
38
+ data: properties.vpcIds.length,
39
+ min: 0,
40
+ max: 10,
41
+ }));
42
+ }
43
+ errors.collect(ros.propertyValidator('vpcIds', ros.listValidator(ros.validateString))(properties.vpcIds));
44
+ if (properties.loadBalancerIds && (Array.isArray(properties.loadBalancerIds) || (typeof properties.loadBalancerIds) === 'string')) {
45
+ errors.collect(ros.propertyValidator('loadBalancerIds', ros.validateLength)({
46
+ data: properties.loadBalancerIds.length,
47
+ min: 0,
48
+ max: 20,
49
+ }));
50
+ }
51
+ errors.collect(ros.propertyValidator('loadBalancerIds', ros.listValidator(ros.validateString))(properties.loadBalancerIds));
52
+ if (properties.addressType && (typeof properties.addressType) !== 'object') {
53
+ errors.collect(ros.propertyValidator('addressType', ros.validateAllowedValues)({
54
+ data: properties.addressType,
55
+ allowedValues: ["Internet", "Intranet"],
56
+ }));
57
+ }
58
+ errors.collect(ros.propertyValidator('addressType', ros.validateString)(properties.addressType));
59
+ if (properties.loadBalancerStatus && (typeof properties.loadBalancerStatus) !== 'object') {
60
+ errors.collect(ros.propertyValidator('loadBalancerStatus', ros.validateAllowedValues)({
61
+ data: properties.loadBalancerStatus,
62
+ allowedValues: ["Inactive", "Active", "Provisioning", "Configuring", "Deleting", "Deleted"],
63
+ }));
64
+ }
65
+ errors.collect(ros.propertyValidator('loadBalancerStatus', ros.validateString)(properties.loadBalancerStatus));
66
+ if (properties.tags && (Array.isArray(properties.tags) || (typeof properties.tags) === 'string')) {
67
+ errors.collect(ros.propertyValidator('tags', ros.validateLength)({
68
+ data: properties.tags.length,
69
+ min: undefined,
70
+ max: 20,
71
+ }));
72
+ }
73
+ errors.collect(ros.propertyValidator('tags', ros.listValidator(RosLoadBalancers_TagsPropertyValidator))(properties.tags));
74
+ errors.collect(ros.propertyValidator('ipv6AddressType', ros.validateString)(properties.ipv6AddressType));
75
+ return errors.wrap('supplied properties not correct for "RosLoadBalancersProps"');
76
+ }
77
+ /**
78
+ * Renders the AliCloud ROS Resource properties of an `DATASOURCE::NLB::LoadBalancers` resource
79
+ *
80
+ * @param properties - the TypeScript properties of a `RosLoadBalancersProps`
81
+ *
82
+ * @returns the AliCloud ROS Resource properties of an `DATASOURCE::NLB::LoadBalancers` resource.
83
+ */
84
+ // @ts-ignore TS6133
85
+ function rosLoadBalancersPropsToRosTemplate(properties, enableResourcePropertyConstraint) {
86
+ if (!ros.canInspect(properties)) {
87
+ return properties;
88
+ }
89
+ if (enableResourcePropertyConstraint) {
90
+ RosLoadBalancersPropsValidator(properties).assertSuccess();
91
+ }
92
+ return {
93
+ AddressIpVersion: ros.stringToRosTemplate(properties.addressIpVersion),
94
+ AddressType: ros.stringToRosTemplate(properties.addressType),
95
+ Ipv6AddressType: ros.stringToRosTemplate(properties.ipv6AddressType),
96
+ LoadBalancerBussinessStatus: ros.stringToRosTemplate(properties.loadBalancerBussinessStatus),
97
+ LoadBalancerIds: ros.listMapper(ros.stringToRosTemplate)(properties.loadBalancerIds),
98
+ LoadBalancerNames: ros.listMapper(ros.stringToRosTemplate)(properties.loadBalancerNames),
99
+ LoadBalancerStatus: ros.stringToRosTemplate(properties.loadBalancerStatus),
100
+ ResourceGroupId: ros.stringToRosTemplate(properties.resourceGroupId),
101
+ Tags: ros.listMapper(rosLoadBalancersTagsPropertyToRosTemplate)(properties.tags),
102
+ VpcIds: ros.listMapper(ros.stringToRosTemplate)(properties.vpcIds),
103
+ ZoneId: ros.stringToRosTemplate(properties.zoneId),
104
+ };
105
+ }
106
+ /**
107
+ * A ROS template type: `DATASOURCE::NLB::LoadBalancers`
108
+ */
109
+ class RosLoadBalancers extends ros.RosResource {
110
+ /**
111
+ * Create a new `DATASOURCE::NLB::LoadBalancers`.
112
+ *
113
+ * @param scope - scope in which this resource is defined
114
+ * @param id - scoped id of the resource
115
+ * @param props - resource properties
116
+ */
117
+ constructor(scope, id, props, enableResourcePropertyConstraint) {
118
+ super(scope, id, { type: RosLoadBalancers.ROS_RESOURCE_TYPE_NAME, properties: props });
119
+ this.attrLoadBalancerIds = this.getAtt('LoadBalancerIds');
120
+ this.attrLoadBalancers = this.getAtt('LoadBalancers');
121
+ this.enableResourcePropertyConstraint = enableResourcePropertyConstraint;
122
+ this.addressIpVersion = props.addressIpVersion;
123
+ this.addressType = props.addressType;
124
+ this.ipv6AddressType = props.ipv6AddressType;
125
+ this.loadBalancerBussinessStatus = props.loadBalancerBussinessStatus;
126
+ this.loadBalancerIds = props.loadBalancerIds;
127
+ this.loadBalancerNames = props.loadBalancerNames;
128
+ this.loadBalancerStatus = props.loadBalancerStatus;
129
+ this.resourceGroupId = props.resourceGroupId;
130
+ this.tags = props.tags;
131
+ this.vpcIds = props.vpcIds;
132
+ this.zoneId = props.zoneId;
133
+ }
134
+ get rosProperties() {
135
+ return {
136
+ addressIpVersion: this.addressIpVersion,
137
+ addressType: this.addressType,
138
+ ipv6AddressType: this.ipv6AddressType,
139
+ loadBalancerBussinessStatus: this.loadBalancerBussinessStatus,
140
+ loadBalancerIds: this.loadBalancerIds,
141
+ loadBalancerNames: this.loadBalancerNames,
142
+ loadBalancerStatus: this.loadBalancerStatus,
143
+ resourceGroupId: this.resourceGroupId,
144
+ tags: this.tags,
145
+ vpcIds: this.vpcIds,
146
+ zoneId: this.zoneId,
147
+ };
148
+ }
149
+ renderProperties(props) {
150
+ return rosLoadBalancersPropsToRosTemplate(props, this.enableResourcePropertyConstraint);
151
+ }
152
+ }
153
+ exports.RosLoadBalancers = RosLoadBalancers;
154
+ /**
155
+ * The resource type name for this resource class.
156
+ */
157
+ RosLoadBalancers.ROS_RESOURCE_TYPE_NAME = "DATASOURCE::NLB::LoadBalancers";
158
+ /**
159
+ * Determine whether the given properties match those of a `TagsProperty`
160
+ *
161
+ * @param properties - the TypeScript properties of a `TagsProperty`
162
+ *
163
+ * @returns the result of the validation.
164
+ */
165
+ function RosLoadBalancers_TagsPropertyValidator(properties) {
166
+ if (!ros.canInspect(properties)) {
167
+ return ros.VALIDATION_SUCCESS;
168
+ }
169
+ const errors = new ros.ValidationResults();
170
+ errors.collect(ros.propertyValidator('value', ros.validateString)(properties.value));
171
+ errors.collect(ros.propertyValidator('key', ros.requiredValidator)(properties.key));
172
+ errors.collect(ros.propertyValidator('key', ros.validateString)(properties.key));
173
+ return errors.wrap('supplied properties not correct for "TagsProperty"');
174
+ }
175
+ /**
176
+ * Renders the AliCloud ROS Resource properties of an `DATASOURCE::NLB::LoadBalancers.Tags` resource
177
+ *
178
+ * @param properties - the TypeScript properties of a `TagsProperty`
179
+ *
180
+ * @returns the AliCloud ROS Resource properties of an `DATASOURCE::NLB::LoadBalancers.Tags` resource.
181
+ */
182
+ // @ts-ignore TS6133
183
+ function rosLoadBalancersTagsPropertyToRosTemplate(properties) {
184
+ if (!ros.canInspect(properties)) {
185
+ return properties;
186
+ }
187
+ RosLoadBalancers_TagsPropertyValidator(properties).assertSuccess();
188
+ return {
189
+ Value: ros.stringToRosTemplate(properties.value),
190
+ Key: ros.stringToRosTemplate(properties.key),
191
+ };
192
+ }
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmxiLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm5sYi5nZW5lcmF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlEQUF5RDs7O0FBRXpELDhDQUE4QztBQStEOUM7Ozs7OztHQU1HO0FBQ0gsU0FBUyw4QkFBOEIsQ0FBQyxVQUFlO0lBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxHQUFHLENBQUMsa0JBQWtCLENBQUM7S0FBRTtJQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNDLElBQUcsVUFBVSxDQUFDLGlCQUFpQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssUUFBUSxDQUFDLEVBQUU7UUFDcEksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFFLElBQUksRUFBRSxVQUFVLENBQUMsaUJBQWlCLENBQUMsTUFBTTtZQUN6QyxHQUFHLEVBQUUsQ0FBQztZQUNOLEdBQUcsRUFBRSxFQUFFO1NBQ1IsQ0FBQyxDQUFDLENBQUM7S0FDVDtJQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUNoSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFD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LENBQUMsR0FBRyxDQUFDO0tBQzdDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGZyb20gdGhlIEFsaUNsb3VkIFJPUyBSZXNvdXJjZSBTcGVjaWZpY2F0aW9uXG5cbmltcG9ydCAqIGFzIHJvcyBmcm9tICdAYWxpY2xvdWQvcm9zLWNkay1jb3JlJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIGBEQVRBU09VUkNFOjpOTEI6OkxvYWRCYWxhbmNlcnNgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9zTG9hZEJhbGFuY2Vyc1Byb3BzIHtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBhZGRyZXNzSXBWZXJzaW9uOiBJUCB2ZXJzaW9uLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFkZHJlc3NJcFZlcnNpb24/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgYWRkcmVzc1R5cGU6IFRoZSBhZGRyZXNzIHR5cGUgb2YgdGhlIGxvYWQgYmFsYW5jaW5nIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFkZHJlc3NUeXBlPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGlwdjZBZGRyZXNzVHlwZTogSVB2NiBhZGRyZXNzIHR5cGUgb2YgbmV0d29yayBsb2FkIGJhbGFuY2luZ1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGlwdjZBZGRyZXNzVHlwZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBsb2FkQmFsYW5jZXJCdXNzaW5lc3NTdGF0dXM6IFNlcnZpY2Ugc3RhdHVzIG9mIGFwcGxpY2F0aW9uIGxvYWQgYmFsYW5jaW5nXG4gICAgICovXG4gICAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyQnVzc2luZXNzU3RhdHVzPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGxvYWRCYWxhbmNlcklkczogSURzIG9mIHRoZSBsb2FkIGJhbGFuY2VyIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGxvYWRCYWxhbmNlcklkcz86IEFycmF5PHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZT4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgbG9hZEJhbGFuY2VyTmFtZXM6IE5hbWVzIG9mIHRoZSBsb2FkIGJhbGFuY2luZyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBsb2FkQmFsYW5jZXJOYW1lcz86IEFycmF5PHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZT4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgbG9hZEJhbGFuY2VyU3RhdHVzOiBUaGUgc3RhdHVzIG9mIFNMQi5cbiAgICAgKi9cbiAgICByZWFkb25seSBsb2FkQmFsYW5jZXJTdGF0dXM/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgcmVzb3VyY2VHcm91cElkOiBSZXNvdXJjZSBncm91cCBpZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlc291cmNlR3JvdXBJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSB0YWdzOiBUYWdzIG9mIE5sYi5cbiAgICAgKi9cbiAgICByZWFkb25seSB0YWdzPzogUm9zTG9hZEJhbGFuY2Vycy5UYWdzUHJvcGVydHlbXTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSB2cGNJZHM6IFZQQyBJRHNcbiAgICAgKi9cbiAgICByZWFkb25seSB2cGNJZHM/OiBBcnJheTxzdHJpbmcgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHpvbmVJZDogSUQgb2YgdGhlIHJlYWR5LXRvLXVzZSB6b25lIG9mIHRoZSBsb2FkIGJhbGFuY2luZyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICByZWFkb25seSB6b25lSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGdpdmVuIHByb3BlcnRpZXMgbWF0Y2ggdGhvc2Ugb2YgYSBgUm9zTG9hZEJhbGFuY2Vyc1Byb3BzYFxuICpcbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIC0gdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBSb3NMb2FkQmFsYW5jZXJzUHJvcHNgXG4gKlxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAqL1xuZnVuY3Rpb24gUm9zTG9hZEJhbGFuY2Vyc1Byb3BzVmFsaWRhdG9yKHByb3BlcnRpZXM6IGFueSk6IHJvcy5WYWxpZGF0aW9uUmVzdWx0IHtcbiAgICBpZiAoIXJvcy5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiByb3MuVkFMSURBVElPTl9TVUNDRVNTOyB9XG4gICAgY29uc3QgZXJyb3JzID0gbmV3IHJvcy5WYWxpZGF0aW9uUmVzdWx0cygpO1xuICAgIGlmKHByb3BlcnRpZXMubG9hZEJhbGFuY2VyTmFtZXMgJiYgKEFycmF5LmlzQXJyYXkocHJvcGVydGllcy5sb2FkQmFsYW5jZXJOYW1lcykgfHwgKHR5cGVvZiBwcm9wZXJ0aWVzLmxvYWRCYWxhbmNlck5hbWVzKSA9PT0gJ3N0cmluZycpKSB7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignbG9hZEJhbGFuY2VyTmFtZXMnLCByb3MudmFsaWRhdGVMZW5ndGgpKHtcbiAgICAgICAgICAgIGRhdGE6IHByb3BlcnRpZXMubG9hZEJhbGFuY2VyTmFtZXMubGVuZ3RoLFxuICAgICAgICAgICAgbWluOiAwLFxuICAgICAgICAgICAgbWF4OiAxMCxcbiAgICAgICAgICB9KSk7XG4gICAgfVxuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignbG9hZEJhbGFuY2VyTmFtZXMnLCByb3MubGlzdFZhbGlkYXRvcihyb3MudmFsaWRhdGVTdHJpbmcpKShwcm9wZXJ0aWVzLmxvYWRCYWxhbmNlck5hbWVzKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdhZGRyZXNzSXBWZXJzaW9uJywgcm9zLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLmFkZHJlc3NJcFZlcnNpb24pKTtcbiAgICBpZihwcm9wZXJ0aWVzLmxvYWRCYWxhbmNlckJ1c3NpbmVzc1N0YXR1cyAmJiAodHlwZW9mIHByb3BlcnRpZXMubG9hZEJhbGFuY2VyQnVzc2luZXNzU3RhdHVzKSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdsb2FkQmFsYW5jZXJCdXNzaW5lc3NTdGF0dXMnLCByb3MudmFsaWRhdGVBbGxvd2VkVmFsdWVzKSh7XG4gICAgICAgICAgZGF0YTogcHJvcGVydGllcy5sb2FkQmFsYW5jZXJCdXNzaW5lc3NTdGF0dXMsXG4gICAgICAgICAgYWxsb3dlZFZhbHVlczogW1wiQWJub3JtYWxcIixcIk5vcm1hbFwiXSxcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2xvYWRCYWxhbmNlckJ1c3NpbmVzc1N0YXR1cycsIHJvcy52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5sb2FkQmFsYW5jZXJCdXNzaW5lc3NTdGF0dXMpKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3pvbmVJZCcsIHJvcy52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy56b25lSWQpKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3Jlc291cmNlR3JvdXBJZCcsIHJvcy52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5yZXNvdXJjZUdyb3VwSWQpKTtcbiAgICBpZihwcm9wZXJ0aWVzLnZwY0lkcyAmJiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzLnZwY0lkcykgfHwgKHR5cGVvZiBwcm9wZXJ0aWVzLnZwY0lkcykgPT09ICdzdHJpbmcnKSkge1xuICAgICAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3ZwY0lkcycsIHJvcy52YWxpZGF0ZUxlbmd0aCkoe1xuICAgICAgICAgICAgZGF0YTogcHJvcGVydGllcy52cGNJZHMubGVuZ3RoLFxuICAgICAgICAgICAgbWluOiAwLFxuICAgICAgICAgICAgbWF4OiAxMCxcbiAgICAgICAgICB9KSk7XG4gICAgfVxuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcigndnBjSWRzJywgcm9zLmxpc3RWYWxpZGF0b3Iocm9zLnZhbGlkYXRlU3RyaW5nKSkocHJvcGVydGllcy52cGNJZHMpKTtcbiAgICBpZihwcm9wZXJ0aWVzLmxvYWRCYWxhbmNlcklkcyAmJiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzLmxvYWRCYWxhbmNlcklkcykgfHwgKHR5cGVvZiBwcm9wZXJ0aWVzLmxvYWRCYWxhbmNlcklkcykgPT09ICdzdHJpbmcnKSkge1xuICAgICAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2xvYWRCYWxhbmNlcklkcycsIHJvcy52YWxpZGF0ZUxlbmd0aCkoe1xuICAgICAgICAgICAgZGF0YTogcHJvcGVydGllcy5sb2FkQmFsYW5jZXJJZHMubGVuZ3RoLFxuICAgICAgICAgICAgbWluOiAwLFxuICAgICAgICAgICAgbWF4OiAyMCxcbiAgICAgICAgICB9KSk7XG4gICAgfVxuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignbG9hZEJhbGFuY2VySWRzJywgcm9zLmxpc3RWYWxpZGF0b3Iocm9zLnZhbGlkYXRlU3RyaW5nKSkocHJvcGVydGllcy5sb2FkQmFsYW5jZXJJZHMpKTtcbiAgICBpZihwcm9wZXJ0aWVzLmFkZHJlc3NUeXBlICYmICh0eXBlb2YgcHJvcGVydGllcy5hZGRyZXNzVHlwZSkgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignYWRkcmVzc1R5cGUnLCByb3MudmFsaWRhdGVBbGxvd2VkVmFsdWVzKSh7XG4gICAgICAgICAgZGF0YTogcHJvcGVydGllcy5hZGRyZXNzVHlwZSxcbiAgICAgICAgICBhbGxvd2VkVmFsdWVzOiBbXCJJbnRlcm5ldFwiLFwiSW50cmFuZXRcIl0sXG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdhZGRyZXNzVHlwZScsIHJvcy52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5hZGRyZXNzVHlwZSkpO1xuICAgIGlmKHByb3BlcnRpZXMubG9hZEJhbGFuY2VyU3RhdHVzICYmICh0eXBlb2YgcHJvcGVydGllcy5sb2FkQmFsYW5jZXJTdGF0dXMpICE9PSAnb2JqZWN0Jykge1xuICAgICAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2xvYWRCYWxhbmNlclN0YXR1cycsIHJvcy52YWxpZGF0ZUFsbG93ZWRWYWx1ZXMpKHtcbiAgICAgICAgICBkYXRhOiBwcm9wZXJ0aWVzLmxvYWRCYWxhbmNlclN0YXR1cyxcbiAgICAgICAgICBhbGxvd2VkVmFsdWVzOiBbXCJJbmFjdGl2ZVwiLFwiQWN0aXZlXCIsXCJQcm92aXNpb25pbmdcIixcIkNvbmZpZ3VyaW5nXCIsXCJEZWxldGluZ1wiLFwiRGVsZXRlZFwiXSxcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2xvYWRCYWxhbmNlclN0YXR1cycsIHJvcy52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5sb2FkQmFsYW5jZXJTdGF0dXMpKTtcbiAgICBpZihwcm9wZXJ0aWVzLnRhZ3MgJiYgKEFycmF5LmlzQXJyYXkocHJvcGVydGllcy50YWdzKSB8fCAodHlwZW9mIHByb3BlcnRpZXMudGFncykgPT09ICdzdHJpbmcnKSkge1xuICAgICAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3RhZ3MnLCByb3MudmFsaWRhdGVMZW5ndGgpKHtcbiAgICAgICAgICAgIGRhdGE6IHByb3BlcnRpZXMudGFncy5sZW5ndGgsXG4gICAgICAgICAgICBtaW46IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG1heDogMjAsXG4gICAgICAgICAgfSkpO1xuICAgIH1cbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3RhZ3MnLCByb3MubGlzdFZhbGlkYXRvcihSb3NMb2FkQmFsYW5jZXJzX1RhZ3NQcm9wZXJ0eVZhbGlkYXRvcikpKHByb3BlcnRpZXMudGFncykpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignaXB2NkFkZHJlc3NUeXBlJywgcm9zLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLmlwdjZBZGRyZXNzVHlwZSkpO1xuICAgIHJldHVybiBlcnJvcnMud3JhcCgnc3VwcGxpZWQgcHJvcGVydGllcyBub3QgY29ycmVjdCBmb3IgXCJSb3NMb2FkQmFsYW5jZXJzUHJvcHNcIicpO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgdGhlIEFsaUNsb3VkIFJPUyBSZXNvdXJjZSBwcm9wZXJ0aWVzIG9mIGFuIGBEQVRBU09VUkNFOjpOTEI6OkxvYWRCYWxhbmNlcnNgIHJlc291cmNlXG4gKlxuICogQHBhcmFtIHByb3BlcnRpZXMgLSB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYFJvc0xvYWRCYWxhbmNlcnNQcm9wc2BcbiAqXG4gKiBAcmV0dXJucyB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIHByb3BlcnRpZXMgb2YgYW4gYERBVEFTT1VSQ0U6Ok5MQjo6TG9hZEJhbGFuY2Vyc2AgcmVzb3VyY2UuXG4gKi9cbi8vIEB0cy1pZ25vcmUgVFM2MTMzXG5mdW5jdGlvbiByb3NMb2FkQmFsYW5jZXJzUHJvcHNUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXM6IGFueSwgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW4pOiBhbnkge1xuICAgIGlmICghcm9zLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHByb3BlcnRpZXM7IH1cbiAgICBpZihlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCkge1xuICAgICAgICBSb3NMb2FkQmFsYW5jZXJzUHJvcHNWYWxpZGF0b3IocHJvcGVydGllcykuYXNzZXJ0U3VjY2VzcygpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgQWRkcmVzc0lwVmVyc2lvbjogcm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUocHJvcGVydGllcy5hZGRyZXNzSXBWZXJzaW9uKSxcbiAgICAgIEFkZHJlc3NUeXBlOiByb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLmFkZHJlc3NUeXBlKSxcbiAgICAgIElwdjZBZGRyZXNzVHlwZTogcm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUocHJvcGVydGllcy5pcHY2QWRkcmVzc1R5cGUpLFxuICAgICAgTG9hZEJhbGFuY2VyQnVzc2luZXNzU3RhdHVzOiByb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLmxvYWRCYWxhbmNlckJ1c3NpbmVzc1N0YXR1cyksXG4gICAgICBMb2FkQmFsYW5jZXJJZHM6IHJvcy5saXN0TWFwcGVyKHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKShwcm9wZXJ0aWVzLmxvYWRCYWxhbmNlcklkcyksXG4gICAgICBMb2FkQmFsYW5jZXJOYW1lczogcm9zLmxpc3RNYXBwZXIocm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUpKHByb3BlcnRpZXMubG9hZEJhbGFuY2VyTmFtZXMpLFxuICAgICAgTG9hZEJhbGFuY2VyU3RhdHVzOiByb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLmxvYWRCYWxhbmNlclN0YXR1cyksXG4gICAgICBSZXNvdXJjZUdyb3VwSWQ6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMucmVzb3VyY2VHcm91cElkKSxcbiAgICAgIFRhZ3M6IHJvcy5saXN0TWFwcGVyKHJvc0xvYWRCYWxhbmNlcnNUYWdzUHJvcGVydHlUb1Jvc1RlbXBsYXRlKShwcm9wZXJ0aWVzLnRhZ3MpLFxuICAgICAgVnBjSWRzOiByb3MubGlzdE1hcHBlcihyb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZSkocHJvcGVydGllcy52cGNJZHMpLFxuICAgICAgWm9uZUlkOiByb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLnpvbmVJZCksXG4gICAgfTtcbn1cblxuLyoqXG4gKiBBIFJPUyB0ZW1wbGF0ZSB0eXBlOiAgYERBVEFTT1VSQ0U6Ok5MQjo6TG9hZEJhbGFuY2Vyc2BcbiAqL1xuZXhwb3J0IGNsYXNzIFJvc0xvYWRCYWxhbmNlcnMgZXh0ZW5kcyByb3MuUm9zUmVzb3VyY2Uge1xuICAgIC8qKlxuICAgICAqIFRoZSByZXNvdXJjZSB0eXBlIG5hbWUgZm9yIHRoaXMgcmVzb3VyY2UgY2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBST1NfUkVTT1VSQ0VfVFlQRV9OQU1FID0gXCJEQVRBU09VUkNFOjpOTEI6OkxvYWRCYWxhbmNlcnNcIjtcblxuICAgIC8qKlxuICAgICAqIEEgZmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgZnJvbSBhbiBvYmplY3RcbiAgICAgKiBjb250YWluaW5nIHRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgUk9TIHJlc291cmNlLlxuICAgICAqL1xuXG4gICAgLyoqXG4gICAgICogQEF0dHJpYnV0ZSBMb2FkQmFsYW5jZXJJZHM6IFRoZSBsaXN0IG9mIGxvYWQgYmFsYW5jZXIgSURzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyTG9hZEJhbGFuY2VySWRzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAQXR0cmlidXRlIExvYWRCYWxhbmNlcnM6IFRoZSBsaXN0IG9mIGxvYWQgYmFsYW5jZXJzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyTG9hZEJhbGFuY2Vyczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgcHVibGljIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OiBib29sZWFuO1xuXG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgYWRkcmVzc0lwVmVyc2lvbjogSVAgdmVyc2lvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkcmVzc0lwVmVyc2lvbjogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGFkZHJlc3NUeXBlOiBUaGUgYWRkcmVzcyB0eXBlIG9mIHRoZSBsb2FkIGJhbGFuY2luZyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkcmVzc1R5cGU6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBpcHY2QWRkcmVzc1R5cGU6IElQdjYgYWRkcmVzcyB0eXBlIG9mIG5ldHdvcmsgbG9hZCBiYWxhbmNpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgaXB2NkFkZHJlc3NUeXBlOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgbG9hZEJhbGFuY2VyQnVzc2luZXNzU3RhdHVzOiBTZXJ2aWNlIHN0YXR1cyBvZiBhcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2luZ1xuICAgICAqL1xuICAgIHB1YmxpYyBsb2FkQmFsYW5jZXJCdXNzaW5lc3NTdGF0dXM6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBsb2FkQmFsYW5jZXJJZHM6IElEcyBvZiB0aGUgbG9hZCBiYWxhbmNlciBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZEJhbGFuY2VySWRzOiBBcnJheTxzdHJpbmcgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGxvYWRCYWxhbmNlck5hbWVzOiBOYW1lcyBvZiB0aGUgbG9hZCBiYWxhbmNpbmcgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIGxvYWRCYWxhbmNlck5hbWVzOiBBcnJheTxzdHJpbmcgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGxvYWRCYWxhbmNlclN0YXR1czogVGhlIHN0YXR1cyBvZiBTTEIuXG4gICAgICovXG4gICAgcHVibGljIGxvYWRCYWxhbmNlclN0YXR1czogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHJlc291cmNlR3JvdXBJZDogUmVzb3VyY2UgZ3JvdXAgaWRcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzb3VyY2VHcm91cElkOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgdGFnczogVGFncyBvZiBObGIuXG4gICAgICovXG4gICAgcHVibGljIHRhZ3M6IFJvc0xvYWRCYWxhbmNlcnMuVGFnc1Byb3BlcnR5W10gfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgdnBjSWRzOiBWUEMgSURzXG4gICAgICovXG4gICAgcHVibGljIHZwY0lkczogQXJyYXk8c3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlPiB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSB6b25lSWQ6IElEIG9mIHRoZSByZWFkeS10by11c2Ugem9uZSBvZiB0aGUgbG9hZCBiYWxhbmNpbmcgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIHpvbmVJZDogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGBEQVRBU09VUkNFOjpOTEI6OkxvYWRCYWxhbmNlcnNgLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAgICogQHBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgICAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogcm9zLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJvc0xvYWRCYWxhbmNlcnNQcm9wcywgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW4pIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkLCB7IHR5cGU6IFJvc0xvYWRCYWxhbmNlcnMuUk9TX1JFU09VUkNFX1RZUEVfTkFNRSwgcHJvcGVydGllczogcHJvcHMgfSk7XG4gICAgICAgIHRoaXMuYXR0ckxvYWRCYWxhbmNlcklkcyA9IHRoaXMuZ2V0QXR0KCdMb2FkQmFsYW5jZXJJZHMnKTtcbiAgICAgICAgdGhpcy5hdHRyTG9hZEJhbGFuY2VycyA9IHRoaXMuZ2V0QXR0KCdMb2FkQmFsYW5jZXJzJyk7XG5cbiAgICAgICAgdGhpcy5lbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCA9IGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50O1xuICAgICAgICB0aGlzLmFkZHJlc3NJcFZlcnNpb24gPSBwcm9wcy5hZGRyZXNzSXBWZXJzaW9uO1xuICAgICAgICB0aGlzLmFkZHJlc3NUeXBlID0gcHJvcHMuYWRkcmVzc1R5cGU7XG4gICAgICAgIHRoaXMuaXB2NkFkZHJlc3NUeXBlID0gcHJvcHMuaXB2NkFkZHJlc3NUeXBlO1xuICAgICAgICB0aGlzLmxvYWRCYWxhbmNlckJ1c3NpbmVzc1N0YXR1cyA9IHByb3BzLmxvYWRCYWxhbmNlckJ1c3NpbmVzc1N0YXR1cztcbiAgICAgICAgdGhpcy5sb2FkQmFsYW5jZXJJZHMgPSBwcm9wcy5sb2FkQmFsYW5jZXJJZHM7XG4gICAgICAgIHRoaXMubG9hZEJhbGFuY2VyTmFtZXMgPSBwcm9wcy5sb2FkQmFsYW5jZXJOYW1lcztcbiAgICAgICAgdGhpcy5sb2FkQmFsYW5jZXJTdGF0dXMgPSBwcm9wcy5sb2FkQmFsYW5jZXJTdGF0dXM7XG4gICAgICAgIHRoaXMucmVzb3VyY2VHcm91cElkID0gcHJvcHMucmVzb3VyY2VHcm91cElkO1xuICAgICAgICB0aGlzLnRhZ3MgPSBwcm9wcy50YWdzO1xuICAgICAgICB0aGlzLnZwY0lkcyA9IHByb3BzLnZwY0lkcztcbiAgICAgICAgdGhpcy56b25lSWQgPSBwcm9wcy56b25lSWQ7XG4gICAgfVxuXG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHJvc1Byb3BlcnRpZXMoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSAge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWRkcmVzc0lwVmVyc2lvbjogdGhpcy5hZGRyZXNzSXBWZXJzaW9uLFxuICAgICAgICAgICAgYWRkcmVzc1R5cGU6IHRoaXMuYWRkcmVzc1R5cGUsXG4gICAgICAgICAgICBpcHY2QWRkcmVzc1R5cGU6IHRoaXMuaXB2NkFkZHJlc3NUeXBlLFxuICAgICAgICAgICAgbG9hZEJhbGFuY2VyQnVzc2luZXNzU3RhdHVzOiB0aGlzLmxvYWRCYWxhbmNlckJ1c3NpbmVzc1N0YXR1cyxcbiAgICAgICAgICAgIGxvYWRCYWxhbmNlcklkczogdGhpcy5sb2FkQmFsYW5jZXJJZHMsXG4gICAgICAgICAgICBsb2FkQmFsYW5jZXJOYW1lczogdGhpcy5sb2FkQmFsYW5jZXJOYW1lcyxcbiAgICAgICAgICAgIGxvYWRCYWxhbmNlclN0YXR1czogdGhpcy5sb2FkQmFsYW5jZXJTdGF0dXMsXG4gICAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHRoaXMucmVzb3VyY2VHcm91cElkLFxuICAgICAgICAgICAgdGFnczogdGhpcy50YWdzLFxuICAgICAgICAgICAgdnBjSWRzOiB0aGlzLnZwY0lkcyxcbiAgICAgICAgICAgIHpvbmVJZDogdGhpcy56b25lSWQsXG4gICAgICAgIH07XG4gICAgfVxuICAgIHByb3RlY3RlZCByZW5kZXJQcm9wZXJ0aWVzKHByb3BzOiB7W2tleTogc3RyaW5nXTogYW55fSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gIHtcbiAgICAgICAgcmV0dXJuIHJvc0xvYWRCYWxhbmNlcnNQcm9wc1RvUm9zVGVtcGxhdGUocHJvcHMsIHRoaXMuZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQpO1xuICAgIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBSb3NMb2FkQmFsYW5jZXJzIHtcbiAgICAvKipcbiAgICAgKiBAc3RhYmlsaXR5IGV4dGVybmFsXG4gICAgICovXG4gICAgZXhwb3J0IGludGVyZmFjZSBUYWdzUHJvcGVydHkge1xuICAgICAgICAvKipcbiAgICAgICAgICogQFByb3BlcnR5IHZhbHVlOiB1bmRlZmluZWRcbiAgICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuICAgICAgICAvKipcbiAgICAgICAgICogQFByb3BlcnR5IGtleTogdW5kZWZpbmVkXG4gICAgICAgICAqL1xuICAgICAgICByZWFkb25seSBrZXk6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcbiAgICB9XG59XG4vKipcbiAqIERldGVybWluZSB3aGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIG1hdGNoIHRob3NlIG9mIGEgYFRhZ3NQcm9wZXJ0eWBcbiAqXG4gKiBAcGFyYW0gcHJvcGVydGllcyAtIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgVGFnc1Byb3BlcnR5YFxuICpcbiAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHZhbGlkYXRpb24uXG4gKi9cbmZ1bmN0aW9uIFJvc0xvYWRCYWxhbmNlcnNfVGFnc1Byb3BlcnR5VmFsaWRhdG9yKHByb3BlcnRpZXM6IGFueSk6IHJvcy5WYWxpZGF0aW9uUmVzdWx0IHtcbiAgICBpZiAoIXJvcy5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiByb3MuVkFMSURBVElPTl9TVUNDRVNTOyB9XG4gICAgY29uc3QgZXJyb3JzID0gbmV3IHJvcy5WYWxpZGF0aW9uUmVzdWx0cygpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcigndmFsdWUnLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMudmFsdWUpKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2tleScsIHJvcy5yZXF1aXJlZFZhbGlkYXRvcikocHJvcGVydGllcy5rZXkpKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2tleScsIHJvcy52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5rZXkpKTtcbiAgICByZXR1cm4gZXJyb3JzLndyYXAoJ3N1cHBsaWVkIHByb3BlcnRpZXMgbm90IGNvcnJlY3QgZm9yIFwiVGFnc1Byb3BlcnR5XCInKTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgcHJvcGVydGllcyBvZiBhbiBgREFUQVNPVVJDRTo6TkxCOjpMb2FkQmFsYW5jZXJzLlRhZ3NgIHJlc291cmNlXG4gKlxuICogQHBhcmFtIHByb3BlcnRpZXMgLSB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYFRhZ3NQcm9wZXJ0eWBcbiAqXG4gKiBAcmV0dXJucyB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIHByb3BlcnRpZXMgb2YgYW4gYERBVEFTT1VSQ0U6Ok5MQjo6TG9hZEJhbGFuY2Vycy5UYWdzYCByZXNvdXJjZS5cbiAqL1xuLy8gQHRzLWlnbm9yZSBUUzYxMzNcbmZ1bmN0aW9uIHJvc0xvYWRCYWxhbmNlcnNUYWdzUHJvcGVydHlUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXM6IGFueSk6IGFueSB7XG4gICAgaWYgKCFyb3MuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgIFJvc0xvYWRCYWxhbmNlcnNfVGFnc1Byb3BlcnR5VmFsaWRhdG9yKHByb3BlcnRpZXMpLmFzc2VydFN1Y2Nlc3MoKTtcbiAgICByZXR1cm4ge1xuICAgICAgVmFsdWU6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMudmFsdWUpLFxuICAgICAgS2V5OiByb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLmtleSksXG4gICAgfTtcbn1cbiJdfQ==
package/lib/index.d.ts CHANGED
@@ -2,3 +2,5 @@ export * from './listener';
2
2
  export * from './loadbalancer';
3
3
  export * from './servergroup';
4
4
  export * from './nlb.generated';
5
+ import * as datasource from './datasource';
6
+ export { datasource };
package/lib/index.js CHANGED
@@ -10,9 +10,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.datasource = void 0;
13
14
  __exportStar(require("./listener"), exports);
14
15
  __exportStar(require("./loadbalancer"), exports);
15
16
  __exportStar(require("./servergroup"), exports);
16
17
  // ALIYUN::NLB Resources:
17
18
  __exportStar(require("./nlb.generated"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLGdEQUE4QjtBQUU5Qix5QkFBeUI7QUFDekIsa0RBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saXN0ZW5lcic7XG5leHBvcnQgKiBmcm9tICcuL2xvYWRiYWxhbmNlcic7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZlcmdyb3VwJztcblxuLy8gQUxJWVVOOjpOTEIgUmVzb3VyY2VzOlxuZXhwb3J0ICogZnJvbSAnLi9ubGIuZ2VuZXJhdGVkJztcbiJdfQ==
19
+ const datasource = require("./datasource");
20
+ exports.datasource = datasource;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJCO0FBQzNCLGlEQUErQjtBQUMvQixnREFBOEI7QUFFOUIseUJBQXlCO0FBQ3pCLGtEQUFnQztBQUNoQywyQ0FBMkM7QUFDbEMsZ0NBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpc3RlbmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGJhbGFuY2VyJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmVyZ3JvdXAnO1xuXG4vLyBBTElZVU46Ok5MQiBSZXNvdXJjZXM6XG5leHBvcnQgKiBmcm9tICcuL25sYi5nZW5lcmF0ZWQnO1xuaW1wb3J0ICogYXMgZGF0YXNvdXJjZSBmcm9tICcuL2RhdGFzb3VyY2UnO1xuZXhwb3J0IHsgZGF0YXNvdXJjZSB9O1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alicloud/ros-cdk-nlb",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "description": "Aliyun SDK Copyright (C) Alibaba Cloud Computing All rights reserved. http://www.aliyun.com",
5
5
  "author": "ROS Development Team",
6
6
  "license": "Apache-2.0",