truemark-cdk-lib 1.2.4-alpha.2 → 1.2.4-alpha.20
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/aws-apigatewayv2/lib/index.d.ts +2 -0
- package/aws-apigatewayv2/lib/index.js +3 -1
- package/aws-apigatewayv2/lib/standard-domain-name.d.ts +17 -13
- package/aws-apigatewayv2/lib/standard-domain-name.js +22 -22
- package/aws-apigatewayv2/lib/standard-http-api.d.ts +60 -0
- package/aws-apigatewayv2/lib/standard-http-api.js +50 -0
- package/aws-apigatewayv2/lib/standard-web-socket-api.d.ts +61 -0
- package/aws-apigatewayv2/lib/standard-web-socket-api.js +55 -0
- package/aws-cdk/lib/extended-app.d.ts +18 -0
- package/aws-cdk/lib/extended-app.js +27 -0
- package/aws-cdk/lib/extended-stack.d.ts +4 -6
- package/aws-cdk/lib/extended-stack.js +11 -9
- package/aws-cdk/lib/index.d.ts +1 -3
- package/aws-cdk/lib/index.js +2 -4
- package/aws-cdk/lib/single-env-app.d.ts +28 -0
- package/aws-cdk/lib/single-env-app.js +44 -0
- package/aws-cdk/lib/standard-tags.d.ts +37 -33
- package/aws-cdk/lib/standard-tags.js +93 -10
- package/aws-centergauge/lib/alerts-topic.d.ts +3 -1
- package/aws-centergauge/lib/alerts-topic.js +2 -8
- package/aws-codepipeline/lib/cdk-pipeline.d.ts +4 -0
- package/aws-codepipeline/lib/cdk-pipeline.js +3 -2
- package/aws-dynamodb/lib/standard-table.d.ts +3 -1
- package/aws-dynamodb/lib/standard-table.js +2 -8
- package/aws-ecs/lib/standard-fargate-cluster.d.ts +3 -1
- package/aws-ecs/lib/standard-fargate-cluster.js +2 -8
- package/aws-ecs/lib/standard-fargate-service.d.ts +3 -1
- package/aws-ecs/lib/standard-fargate-service.js +2 -8
- package/aws-route53/lib/domain-name.d.ts +7 -14
- package/aws-route53/lib/domain-name.js +27 -28
- package/aws-route53/lib/extended-record-target.d.ts +14 -0
- package/aws-route53/lib/extended-record-target.js +35 -0
- package/aws-route53/lib/index.d.ts +3 -3
- package/aws-route53/lib/index.js +2 -2
- package/aws-route53/lib/latency-a-record.d.ts +4 -0
- package/aws-route53/lib/latency-a-record.js +2 -1
- package/aws-route53/lib/weighted-a-record.d.ts +4 -0
- package/aws-route53/lib/weighted-a-record.js +2 -1
- package/aws-s3/lib/cloud-front-bucket.d.ts +14 -3
- package/aws-s3/lib/cloud-front-bucket.js +25 -3
- package/aws-s3/lib/extended-bucket.d.ts +1 -0
- package/aws-s3/lib/extended-bucket.js +3 -0
- package/aws-s3/lib/website-bucket.d.ts +2 -2
- package/aws-s3/lib/website-bucket.js +5 -7
- package/aws-sqs/lib/standard-queue.d.ts +3 -1
- package/aws-sqs/lib/standard-queue.js +2 -8
- package/aws-vpc/lib/network-parameters.d.ts +3 -1
- package/aws-vpc/lib/network-parameters.js +2 -8
- package/helpers/lib/index.d.ts +0 -1
- package/helpers/lib/index.js +1 -2
- package/package.json +2 -2
- package/test/aws-cdk/standard-tags.test.d.ts +1 -0
- package/test/aws-cdk/standard-tags.test.js +9 -0
- package/test/aws-route53/extended-record-target.test.d.ts +1 -0
- package/test/aws-route53/extended-record-target.test.js +52 -0
- package/test/test-helper.d.ts +4 -0
- package/test/test-helper.js +11 -3
- package/aws-cdk/lib/standard-app.d.ts +0 -19
- package/aws-cdk/lib/standard-app.js +0 -27
- package/aws-cdk/lib/standard-environment.d.ts +0 -10
- package/aws-cdk/lib/standard-environment.js +0 -3
- package/aws-cdk/lib/standard-stack.d.ts +0 -25
- package/aws-cdk/lib/standard-stack.js +0 -35
- package/aws-cdk/lib/standard-stage.d.ts +0 -20
- package/aws-cdk/lib/standard-stage.js +0 -21
- package/aws-route53/lib/weighted-latency-a-record.d.ts +0 -30
- package/aws-route53/lib/weighted-latency-a-record.js +0 -34
- package/helpers/lib/constants.d.ts +0 -3
- package/helpers/lib/constants.js +0 -7
|
@@ -11,4 +11,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./standard-domain-name"), exports);
|
|
14
|
-
|
|
14
|
+
__exportStar(require("./standard-http-api"), exports);
|
|
15
|
+
__exportStar(require("./standard-web-socket-api"), exports);
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx5REFBdUM7QUFDdkMsc0RBQW9DO0FBQ3BDLDREQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3N0YW5kYXJkLWRvbWFpbi1uYW1lXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGFuZGFyZC1odHRwLWFwaVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhbmRhcmQtd2ViLXNvY2tldC1hcGlcIjtcbiJdfQ==
|
|
@@ -3,18 +3,19 @@ import * as tmroute53 from "../../aws-route53";
|
|
|
3
3
|
import { ICertificate } from "aws-cdk-lib/aws-certificatemanager";
|
|
4
4
|
import { DomainName, SecurityPolicy } from "@aws-cdk/aws-apigatewayv2-alpha";
|
|
5
5
|
import { ARecord, RecordTarget } from "aws-cdk-lib/aws-route53";
|
|
6
|
-
import {
|
|
6
|
+
import { IAutomationComponent } from "../../aws-cdk";
|
|
7
|
+
import { ARecordOptions } from "../../aws-route53";
|
|
7
8
|
export interface StandardDomainNameProps extends tmroute53.DomainNameProps {
|
|
8
9
|
/**
|
|
9
10
|
* The optional ACM certificate for this domain name.
|
|
10
11
|
*
|
|
11
|
-
* @default one is generated
|
|
12
|
+
* @default - one is generated
|
|
12
13
|
*/
|
|
13
14
|
readonly certificate?: ICertificate;
|
|
14
15
|
/**
|
|
15
16
|
* The Transport Layer Security (TLS) version + cipher suite for this domain name.
|
|
16
17
|
*
|
|
17
|
-
* @default SecurityPolicy.TLS_1_2
|
|
18
|
+
* @default - SecurityPolicy.TLS_1_2
|
|
18
19
|
*/
|
|
19
20
|
readonly securityPolicy?: SecurityPolicy;
|
|
20
21
|
/**
|
|
@@ -28,32 +29,35 @@ export interface StandardDomainNameProps extends tmroute53.DomainNameProps {
|
|
|
28
29
|
/**
|
|
29
30
|
* Standard construct used to create an API Gateway V2 Domain Name.
|
|
30
31
|
*/
|
|
31
|
-
export declare class StandardDomainName extends Construct {
|
|
32
|
+
export declare class StandardDomainName extends Construct implements IAutomationComponent {
|
|
33
|
+
readonly automationComponentTags: import("../../aws-cdk").AutomationComponentTagsProps;
|
|
32
34
|
readonly domainName: tmroute53.DomainName;
|
|
33
35
|
readonly certificate: ICertificate;
|
|
34
|
-
readonly recordTarget: RecordTarget;
|
|
35
36
|
readonly gatewayDomainName: DomainName;
|
|
36
37
|
constructor(scope: Construct, id: string, props: StandardDomainNameProps);
|
|
38
|
+
toRecordTarget(evaluateTargetHealth?: boolean): RecordTarget;
|
|
37
39
|
/**
|
|
38
40
|
* Creates a route53 ARecord pointing to this domain name.
|
|
41
|
+
*
|
|
42
|
+
* @param evaluateTargetHealth Determines if route53 evaluates the target's health. Defaults to true.
|
|
43
|
+
* @param options additional options for creating the record
|
|
39
44
|
*/
|
|
40
|
-
createARecord(): ARecord;
|
|
45
|
+
createARecord(evaluateTargetHealth?: boolean, options?: ARecordOptions): ARecord;
|
|
41
46
|
/**
|
|
42
47
|
* Creates a route53 weighted record pointing to this domain name.
|
|
43
48
|
*
|
|
44
49
|
* @param weight the initial weight; defaults to 0
|
|
50
|
+
* @param evaluateTargetHealth Determines if route53 evaluates the target's health. Defaults to true.
|
|
51
|
+
* @param options additional options for creating the record
|
|
45
52
|
*/
|
|
46
|
-
createWeightedARecord(weight?:
|
|
53
|
+
createWeightedARecord(weight: number, evaluateTargetHealth?: boolean, options?: ARecordOptions): ARecord;
|
|
47
54
|
/**
|
|
48
55
|
* Creates a route53 latency record pointing to this domain name.
|
|
49
|
-
*/
|
|
50
|
-
createLatencyARecord(): ARecord;
|
|
51
|
-
/**
|
|
52
|
-
* Creates a route53 weighted latency record pointing to this domain name.
|
|
53
56
|
*
|
|
54
|
-
* @param
|
|
57
|
+
* @param evaluateTargetHealth Determines if route53 evaluates the target's health. Defaults to true.
|
|
58
|
+
* @param options additional options for creating the record
|
|
55
59
|
*/
|
|
56
|
-
|
|
60
|
+
createLatencyARecord(evaluateTargetHealth?: boolean, options?: ARecordOptions): ARecord;
|
|
57
61
|
/**
|
|
58
62
|
* Returns the FQDN of this domain name.
|
|
59
63
|
*/
|
|
@@ -6,8 +6,8 @@ const tmroute53 = require("../../aws-route53");
|
|
|
6
6
|
const targets = require("aws-cdk-lib/aws-route53-targets");
|
|
7
7
|
const aws_apigatewayv2_alpha_1 = require("@aws-cdk/aws-apigatewayv2-alpha");
|
|
8
8
|
const aws_route53_1 = require("aws-cdk-lib/aws-route53");
|
|
9
|
-
const helpers_1 = require("../../helpers");
|
|
10
9
|
const aws_cdk_1 = require("../../aws-cdk");
|
|
10
|
+
const aws_route53_2 = require("../../aws-route53");
|
|
11
11
|
/**
|
|
12
12
|
* Standard construct used to create an API Gateway V2 Domain Name.
|
|
13
13
|
*/
|
|
@@ -15,6 +15,7 @@ class StandardDomainName extends constructs_1.Construct {
|
|
|
15
15
|
constructor(scope, id, props) {
|
|
16
16
|
var _a;
|
|
17
17
|
super(scope, id);
|
|
18
|
+
this.automationComponentTags = aws_cdk_1.InternalAutomationComponentTags;
|
|
18
19
|
this.domainName = new tmroute53.DomainName(props);
|
|
19
20
|
this.certificate = (_a = props.certificate) !== null && _a !== void 0 ? _a : this.domainName.createCertificate(scope);
|
|
20
21
|
this.gatewayDomainName = new aws_apigatewayv2_alpha_1.DomainName(this, "Default", {
|
|
@@ -22,41 +23,40 @@ class StandardDomainName extends constructs_1.Construct {
|
|
|
22
23
|
certificate: this.certificate,
|
|
23
24
|
securityPolicy: props.securityPolicy
|
|
24
25
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
});
|
|
26
|
+
}
|
|
27
|
+
toRecordTarget(evaluateTargetHealth) {
|
|
28
|
+
const domainProperties = new targets.ApiGatewayv2DomainProperties(this.gatewayDomainName.regionalDomainName, this.gatewayDomainName.regionalHostedZoneId);
|
|
29
|
+
return evaluateTargetHealth
|
|
30
|
+
? aws_route53_2.ExtendedRecordTarget.fromAlias(domainProperties, evaluateTargetHealth)
|
|
31
|
+
: aws_route53_1.RecordTarget.fromAlias(domainProperties);
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Creates a route53 ARecord pointing to this domain name.
|
|
35
|
+
*
|
|
36
|
+
* @param evaluateTargetHealth Determines if route53 evaluates the target's health. Defaults to true.
|
|
37
|
+
* @param options additional options for creating the record
|
|
35
38
|
*/
|
|
36
|
-
createARecord() {
|
|
37
|
-
return this.domainName.createARecord(this, this.
|
|
39
|
+
createARecord(evaluateTargetHealth, options) {
|
|
40
|
+
return this.domainName.createARecord(this, this.toRecordTarget(evaluateTargetHealth !== null && evaluateTargetHealth !== void 0 ? evaluateTargetHealth : true), options);
|
|
38
41
|
}
|
|
39
42
|
/**
|
|
40
43
|
* Creates a route53 weighted record pointing to this domain name.
|
|
41
44
|
*
|
|
42
45
|
* @param weight the initial weight; defaults to 0
|
|
46
|
+
* @param evaluateTargetHealth Determines if route53 evaluates the target's health. Defaults to true.
|
|
47
|
+
* @param options additional options for creating the record
|
|
43
48
|
*/
|
|
44
|
-
createWeightedARecord(weight) {
|
|
45
|
-
return this.domainName.createWeightedARecord(this, this.
|
|
49
|
+
createWeightedARecord(weight, evaluateTargetHealth, options) {
|
|
50
|
+
return this.domainName.createWeightedARecord(this, this.toRecordTarget(evaluateTargetHealth !== null && evaluateTargetHealth !== void 0 ? evaluateTargetHealth : true), weight, options);
|
|
46
51
|
}
|
|
47
52
|
/**
|
|
48
53
|
* Creates a route53 latency record pointing to this domain name.
|
|
49
|
-
*/
|
|
50
|
-
createLatencyARecord() {
|
|
51
|
-
return this.domainName.createLatencyARecord(this, this.recordTarget);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Creates a route53 weighted latency record pointing to this domain name.
|
|
55
54
|
*
|
|
56
|
-
* @param
|
|
55
|
+
* @param evaluateTargetHealth Determines if route53 evaluates the target's health. Defaults to true.
|
|
56
|
+
* @param options additional options for creating the record
|
|
57
57
|
*/
|
|
58
|
-
|
|
59
|
-
return this.domainName.
|
|
58
|
+
createLatencyARecord(evaluateTargetHealth, options) {
|
|
59
|
+
return this.domainName.createLatencyARecord(this, this.toRecordTarget(evaluateTargetHealth !== null && evaluateTargetHealth !== void 0 ? evaluateTargetHealth : true), options);
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
62
|
* Returns the FQDN of this domain name.
|
|
@@ -66,4 +66,4 @@ class StandardDomainName extends constructs_1.Construct {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
exports.StandardDomainName = StandardDomainName;
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtZG9tYWluLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFuZGFyZC1kb21haW4tbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUM7QUFDckMsK0NBQStDO0FBQy9DLDJEQUEyRDtBQUUzRCw0RUFBMkU7QUFDM0UseURBQThEO0FBQzlELDJDQUFvRjtBQUNwRixtREFBdUU7QUEyQnZFOztHQUVHO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxzQkFBUztJQVEvQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCOztRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBUFYsNEJBQXVCLEdBQUcseUNBQStCLENBQUM7UUFRakUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFdBQVcsU0FBRyxLQUFLLENBQUMsV0FBVyxtQ0FBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLG1DQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUN2RCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDdEMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYztTQUNyQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLG9CQUE4QjtRQUMzQyxNQUFNLGdCQUFnQixHQUFHLElBQUksT0FBTyxDQUFDLDRCQUE0QixDQUMvRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDMUYsT0FBTyxvQkFBb0I7WUFDekIsQ0FBQyxDQUFDLGtDQUFvQixDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxvQkFBb0IsQ0FBQztZQUN4RSxDQUFDLENBQUMsMEJBQVksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUMsb0JBQThCLEVBQUUsT0FBd0I7UUFDcEUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsYUFBcEIsb0JBQW9CLGNBQXBCLG9CQUFvQixHQUFJLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxxQkFBcUIsQ0FBQyxNQUFjLEVBQUUsb0JBQThCLEVBQUUsT0FBd0I7UUFDNUYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixhQUFwQixvQkFBb0IsY0FBcEIsb0JBQW9CLEdBQUksSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG9CQUFvQixDQUFDLG9CQUE4QixFQUFFLE9BQXdCO1FBQzNFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsYUFBcEIsb0JBQW9CLGNBQXBCLG9CQUFvQixHQUFJLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBaEVELGdEQWdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgdG1yb3V0ZTUzIGZyb20gXCIuLi8uLi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0ICogYXMgdGFyZ2V0cyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTMtdGFyZ2V0c1wiO1xuaW1wb3J0IHtJQ2VydGlmaWNhdGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQge0RvbWFpbk5hbWUsIFNlY3VyaXR5UG9saWN5fSBmcm9tIFwiQGF3cy1jZGsvYXdzLWFwaWdhdGV3YXl2Mi1hbHBoYVwiO1xuaW1wb3J0IHtBUmVjb3JkLCBSZWNvcmRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtJQXV0b21hdGlvbkNvbXBvbmVudCwgSW50ZXJuYWxBdXRvbWF0aW9uQ29tcG9uZW50VGFnc30gZnJvbSBcIi4uLy4uL2F3cy1jZGtcIjtcbmltcG9ydCB7QVJlY29yZE9wdGlvbnMsIEV4dGVuZGVkUmVjb3JkVGFyZ2V0fSBmcm9tIFwiLi4vLi4vYXdzLXJvdXRlNTNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdGFuZGFyZERvbWFpbk5hbWVQcm9wcyBleHRlbmRzIHRtcm91dGU1My5Eb21haW5OYW1lUHJvcHMge1xuXG4gIC8qKlxuICAgKiBUaGUgb3B0aW9uYWwgQUNNIGNlcnRpZmljYXRlIGZvciB0aGlzIGRvbWFpbiBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG9uZSBpcyBnZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGNlcnRpZmljYXRlPzogSUNlcnRpZmljYXRlO1xuXG4gIC8qKlxuICAgKiBUaGUgVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IChUTFMpIHZlcnNpb24gKyBjaXBoZXIgc3VpdGUgZm9yIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gU2VjdXJpdHlQb2xpY3kuVExTXzFfMlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlQb2xpY3k/OiBTZWN1cml0eVBvbGljeTtcblxuICAvKipcbiAgICogU2V0dGluZyB0aGlzIHRvIHRydWUgd2lsbCBzdXBwcmVzcyB0aGUgY3JlYXRpb24gb2YgZGVmYXVsdCB0YWdzIG9uIHJlc291cmNlc1xuICAgKiBjcmVhdGVkIGJ5IHRoaXMgY29uc3RydWN0LiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc1RhZ2dpbmc/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFN0YW5kYXJkIGNvbnN0cnVjdCB1c2VkIHRvIGNyZWF0ZSBhbiBBUEkgR2F0ZXdheSBWMiBEb21haW4gTmFtZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YW5kYXJkRG9tYWluTmFtZSBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElBdXRvbWF0aW9uQ29tcG9uZW50IHtcblxuICByZWFkb25seSBhdXRvbWF0aW9uQ29tcG9uZW50VGFncyA9IEludGVybmFsQXV0b21hdGlvbkNvbXBvbmVudFRhZ3M7XG5cbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogdG1yb3V0ZTUzLkRvbWFpbk5hbWU7XG4gIHJlYWRvbmx5IGNlcnRpZmljYXRlOiBJQ2VydGlmaWNhdGU7XG4gIHJlYWRvbmx5IGdhdGV3YXlEb21haW5OYW1lOiBEb21haW5OYW1lO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFuZGFyZERvbWFpbk5hbWVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5kb21haW5OYW1lID0gbmV3IHRtcm91dGU1My5Eb21haW5OYW1lKHByb3BzKTtcbiAgICB0aGlzLmNlcnRpZmljYXRlID0gcHJvcHMuY2VydGlmaWNhdGUgPz8gdGhpcy5kb21haW5OYW1lLmNyZWF0ZUNlcnRpZmljYXRlKHNjb3BlKTtcbiAgICB0aGlzLmdhdGV3YXlEb21haW5OYW1lID0gbmV3IERvbWFpbk5hbWUodGhpcywgXCJEZWZhdWx0XCIsIHtcbiAgICAgIGRvbWFpbk5hbWU6IHRoaXMuZG9tYWluTmFtZS50b1N0cmluZygpLFxuICAgICAgY2VydGlmaWNhdGU6IHRoaXMuY2VydGlmaWNhdGUsXG4gICAgICBzZWN1cml0eVBvbGljeTogcHJvcHMuc2VjdXJpdHlQb2xpY3lcbiAgICB9KTtcbiAgfVxuXG4gIHRvUmVjb3JkVGFyZ2V0KGV2YWx1YXRlVGFyZ2V0SGVhbHRoPzogYm9vbGVhbik6IFJlY29yZFRhcmdldCB7XG4gICAgY29uc3QgZG9tYWluUHJvcGVydGllcyA9IG5ldyB0YXJnZXRzLkFwaUdhdGV3YXl2MkRvbWFpblByb3BlcnRpZXMoXG4gICAgICB0aGlzLmdhdGV3YXlEb21haW5OYW1lLnJlZ2lvbmFsRG9tYWluTmFtZSwgdGhpcy5nYXRld2F5RG9tYWluTmFtZS5yZWdpb25hbEhvc3RlZFpvbmVJZCk7XG4gICAgcmV0dXJuIGV2YWx1YXRlVGFyZ2V0SGVhbHRoXG4gICAgICA/IEV4dGVuZGVkUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhkb21haW5Qcm9wZXJ0aWVzLCBldmFsdWF0ZVRhcmdldEhlYWx0aClcbiAgICAgIDogUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhkb21haW5Qcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcm91dGU1MyBBUmVjb3JkIHBvaW50aW5nIHRvIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBldmFsdWF0ZVRhcmdldEhlYWx0aCBEZXRlcm1pbmVzIGlmIHJvdXRlNTMgZXZhbHVhdGVzIHRoZSB0YXJnZXQncyBoZWFsdGguIERlZmF1bHRzIHRvIHRydWUuXG4gICAqIEBwYXJhbSBvcHRpb25zIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgY3JlYXRpbmcgdGhlIHJlY29yZFxuICAgKi9cbiAgY3JlYXRlQVJlY29yZChldmFsdWF0ZVRhcmdldEhlYWx0aD86IGJvb2xlYW4sIG9wdGlvbnM/OiBBUmVjb3JkT3B0aW9ucyk6IEFSZWNvcmQge1xuICAgIHJldHVybiB0aGlzLmRvbWFpbk5hbWUuY3JlYXRlQVJlY29yZCh0aGlzLCB0aGlzLnRvUmVjb3JkVGFyZ2V0KGV2YWx1YXRlVGFyZ2V0SGVhbHRoID8/IHRydWUpLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcm91dGU1MyB3ZWlnaHRlZCByZWNvcmQgcG9pbnRpbmcgdG8gdGhpcyBkb21haW4gbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIHdlaWdodCB0aGUgaW5pdGlhbCB3ZWlnaHQ7IGRlZmF1bHRzIHRvIDBcbiAgICogQHBhcmFtIGV2YWx1YXRlVGFyZ2V0SGVhbHRoIERldGVybWluZXMgaWYgcm91dGU1MyBldmFsdWF0ZXMgdGhlIHRhcmdldCdzIGhlYWx0aC4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgYWRkaXRpb25hbCBvcHRpb25zIGZvciBjcmVhdGluZyB0aGUgcmVjb3JkXG4gICAqL1xuICBjcmVhdGVXZWlnaHRlZEFSZWNvcmQod2VpZ2h0OiBudW1iZXIsIGV2YWx1YXRlVGFyZ2V0SGVhbHRoPzogYm9vbGVhbiwgb3B0aW9ucz86IEFSZWNvcmRPcHRpb25zKTogQVJlY29yZCB7XG4gICAgcmV0dXJuIHRoaXMuZG9tYWluTmFtZS5jcmVhdGVXZWlnaHRlZEFSZWNvcmQodGhpcywgdGhpcy50b1JlY29yZFRhcmdldChldmFsdWF0ZVRhcmdldEhlYWx0aCA/PyB0cnVlKSwgd2VpZ2h0LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcm91dGU1MyBsYXRlbmN5IHJlY29yZCBwb2ludGluZyB0byB0aGlzIGRvbWFpbiBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gZXZhbHVhdGVUYXJnZXRIZWFsdGggRGV0ZXJtaW5lcyBpZiByb3V0ZTUzIGV2YWx1YXRlcyB0aGUgdGFyZ2V0J3MgaGVhbHRoLiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSByZWNvcmRcbiAgICovXG4gIGNyZWF0ZUxhdGVuY3lBUmVjb3JkKGV2YWx1YXRlVGFyZ2V0SGVhbHRoPzogYm9vbGVhbiwgb3B0aW9ucz86IEFSZWNvcmRPcHRpb25zKTogQVJlY29yZCB7XG4gICAgcmV0dXJuIHRoaXMuZG9tYWluTmFtZS5jcmVhdGVMYXRlbmN5QVJlY29yZCh0aGlzLCB0aGlzLnRvUmVjb3JkVGFyZ2V0KGV2YWx1YXRlVGFyZ2V0SGVhbHRoID8/IHRydWUpLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBGUUROIG9mIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqL1xuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRvbWFpbk5hbWUudG9TdHJpbmcoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { LatencyARecord, WeightedARecord } from "../../aws-route53";
|
|
3
|
+
import { StandardDomainName } from "./standard-domain-name";
|
|
4
|
+
import { HttpApi } from "@aws-cdk/aws-apigatewayv2-alpha";
|
|
5
|
+
import { ARecord } from "aws-cdk-lib/aws-route53";
|
|
6
|
+
import { IAutomationComponent } from "../../aws-cdk";
|
|
7
|
+
/**
|
|
8
|
+
* Properties for StandardHttpApi.
|
|
9
|
+
*/
|
|
10
|
+
export interface StandardHttpApiProps {
|
|
11
|
+
/**
|
|
12
|
+
* The prefix of the domain to create the certificate and DNS record for.
|
|
13
|
+
*/
|
|
14
|
+
readonly domainPrefix: string;
|
|
15
|
+
/**
|
|
16
|
+
* The zone of the domain to create the certificate and DNS record for.
|
|
17
|
+
*/
|
|
18
|
+
readonly domainZone: string;
|
|
19
|
+
/**
|
|
20
|
+
* Name of the API Gateway. One will be generated if not provided.
|
|
21
|
+
*/
|
|
22
|
+
readonly apiName?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Determines if a route53 record is created for the API gateway. Defaults to true.
|
|
25
|
+
*
|
|
26
|
+
* @default - true
|
|
27
|
+
*/
|
|
28
|
+
readonly createRecord?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a weighted route53 record. May not be used with recordLatency.
|
|
31
|
+
*/
|
|
32
|
+
readonly recordWeight?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Creates a latency route53 record. May not be used with recordWeight.
|
|
35
|
+
*/
|
|
36
|
+
readonly recordLatency?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Evaluates target health on the created route53 record if it's a latency or weighted record. Defaults to true.
|
|
39
|
+
*
|
|
40
|
+
* @default - true
|
|
41
|
+
*/
|
|
42
|
+
readonly evaluateTargetHealth?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Setting this to true will suppress the creation of default tags on resources
|
|
45
|
+
* created by this construct. Default is false.
|
|
46
|
+
*
|
|
47
|
+
* @default - false
|
|
48
|
+
*/
|
|
49
|
+
readonly suppressTagging?: boolean;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Abstraction that creates an HttpApi with support infrastructure.
|
|
53
|
+
*/
|
|
54
|
+
export declare class StandardHttpApi extends Construct implements IAutomationComponent {
|
|
55
|
+
readonly automationComponentTags: import("../../aws-cdk").AutomationComponentTagsProps;
|
|
56
|
+
readonly domainName: StandardDomainName;
|
|
57
|
+
readonly record: ARecord | LatencyARecord | WeightedARecord | undefined;
|
|
58
|
+
readonly httpApi: HttpApi;
|
|
59
|
+
constructor(scope: Construct, id: string, props: StandardHttpApiProps);
|
|
60
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StandardHttpApi = void 0;
|
|
4
|
+
const constructs_1 = require("constructs");
|
|
5
|
+
const standard_domain_name_1 = require("./standard-domain-name");
|
|
6
|
+
const aws_apigatewayv2_alpha_1 = require("@aws-cdk/aws-apigatewayv2-alpha");
|
|
7
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
8
|
+
const aws_cdk_1 = require("../../aws-cdk");
|
|
9
|
+
/**
|
|
10
|
+
* Abstraction that creates an HttpApi with support infrastructure.
|
|
11
|
+
*/
|
|
12
|
+
class StandardHttpApi extends constructs_1.Construct {
|
|
13
|
+
constructor(scope, id, props) {
|
|
14
|
+
var _a, _b, _c;
|
|
15
|
+
super(scope, id);
|
|
16
|
+
this.automationComponentTags = aws_cdk_1.InternalAutomationComponentTags;
|
|
17
|
+
const domainName = new standard_domain_name_1.StandardDomainName(this, "DomainName", {
|
|
18
|
+
prefix: props.domainPrefix,
|
|
19
|
+
zone: props.domainZone,
|
|
20
|
+
securityPolicy: aws_apigatewayv2_alpha_1.SecurityPolicy.TLS_1_2 // TODO Should be an option
|
|
21
|
+
});
|
|
22
|
+
// TODO Need to add RecordOptions
|
|
23
|
+
if ((_a = props.createRecord) !== null && _a !== void 0 ? _a : true) {
|
|
24
|
+
if (props.recordWeight) {
|
|
25
|
+
domainName.createWeightedARecord(props.recordWeight, (_b = props.evaluateTargetHealth) !== null && _b !== void 0 ? _b : true);
|
|
26
|
+
}
|
|
27
|
+
else if (props.recordLatency) {
|
|
28
|
+
domainName.createLatencyARecord(true);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
domainName.createARecord();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.record = undefined;
|
|
36
|
+
}
|
|
37
|
+
const stage = aws_cdk_lib_1.Stage.of(this);
|
|
38
|
+
const stack = aws_cdk_lib_1.Stack.of(this);
|
|
39
|
+
const httpApi = new aws_apigatewayv2_alpha_1.HttpApi(this, "Default", {
|
|
40
|
+
apiName: (_c = props.apiName) !== null && _c !== void 0 ? _c : `${stage === null || stage === void 0 ? void 0 : stage.stageName}${stack === null || stack === void 0 ? void 0 : stack.stackName}Gateway`,
|
|
41
|
+
defaultDomainMapping: {
|
|
42
|
+
domainName: domainName.gatewayDomainName
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
this.domainName = domainName;
|
|
46
|
+
this.httpApi = httpApi;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.StandardHttpApi = StandardHttpApi;
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtaHR0cC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFuZGFyZC1odHRwLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUM7QUFFckMsaUVBQTBEO0FBQzFELDRFQUF3RTtBQUN4RSw2Q0FBeUM7QUFFekMsMkNBQW9GO0FBdURwRjs7R0FFRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxzQkFBUztJQVE1QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCOztRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBUFYsNEJBQXVCLEdBQUcseUNBQStCLENBQUM7UUFTakUsTUFBTSxVQUFVLEdBQUcsSUFBSSx5Q0FBa0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQzVELE1BQU0sRUFBRSxLQUFLLENBQUMsWUFBWTtZQUMxQixJQUFJLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDdEIsY0FBYyxFQUFFLHVDQUFjLENBQUMsT0FBTyxDQUFDLDJCQUEyQjtTQUNuRSxDQUFDLENBQUM7UUFFSCxpQ0FBaUM7UUFDakMsVUFBSSxLQUFLLENBQUMsWUFBWSxtQ0FBSSxJQUFJLEVBQUU7WUFDOUIsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFO2dCQUN0QixVQUFVLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFlBQVksUUFBRSxLQUFLLENBQUMsb0JBQW9CLG1DQUFJLElBQUksQ0FBQyxDQUFBO2FBQ3pGO2lCQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtnQkFDOUIsVUFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFBO2FBQ3RDO2lCQUFNO2dCQUNMLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQTthQUMzQjtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztTQUN6QjtRQUVELE1BQU0sS0FBSyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLE1BQU0sS0FBSyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdCLE1BQU0sT0FBTyxHQUFHLElBQUksZ0NBQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQzNDLE9BQU8sUUFBRSxLQUFLLENBQUMsT0FBTyxtQ0FBSSxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxTQUFTLEdBQUcsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVMsU0FBUztZQUN6RSxvQkFBb0IsRUFBRTtnQkFDcEIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxpQkFBaUI7YUFDekM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUEzQ0QsMENBMkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0RvbWFpbk5hbWUsIExhdGVuY3lBUmVjb3JkLCBXZWlnaHRlZEFSZWNvcmR9IGZyb20gXCIuLi8uLi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtTdGFuZGFyZERvbWFpbk5hbWV9IGZyb20gXCIuL3N0YW5kYXJkLWRvbWFpbi1uYW1lXCI7XG5pbXBvcnQge0h0dHBBcGksIFNlY3VyaXR5UG9saWN5fSBmcm9tIFwiQGF3cy1jZGsvYXdzLWFwaWdhdGV3YXl2Mi1hbHBoYVwiO1xuaW1wb3J0IHtTdGFjaywgU3RhZ2V9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtBUmVjb3JkfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7SUF1dG9tYXRpb25Db21wb25lbnQsIEludGVybmFsQXV0b21hdGlvbkNvbXBvbmVudFRhZ3N9IGZyb20gXCIuLi8uLi9hd3MtY2RrXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgU3RhbmRhcmRIdHRwQXBpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYXJkSHR0cEFwaVByb3BzIHtcblxuICAvKipcbiAgICogVGhlIHByZWZpeCBvZiB0aGUgZG9tYWluIHRvIGNyZWF0ZSB0aGUgY2VydGlmaWNhdGUgYW5kIEROUyByZWNvcmQgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluUHJlZml4OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB6b25lIG9mIHRoZSBkb21haW4gdG8gY3JlYXRlIHRoZSBjZXJ0aWZpY2F0ZSBhbmQgRE5TIHJlY29yZCBmb3IuXG4gICAqL1xuICByZWFkb25seSBkb21haW5ab25lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIEFQSSBHYXRld2F5LiBPbmUgd2lsbCBiZSBnZW5lcmF0ZWQgaWYgbm90IHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIHJvdXRlNTMgcmVjb3JkIGlzIGNyZWF0ZWQgZm9yIHRoZSBBUEkgZ2F0ZXdheS4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVSZWNvcmQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgd2VpZ2h0ZWQgcm91dGU1MyByZWNvcmQuIE1heSBub3QgYmUgdXNlZCB3aXRoIHJlY29yZExhdGVuY3kuXG4gICAqL1xuICByZWFkb25seSByZWNvcmRXZWlnaHQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBsYXRlbmN5IHJvdXRlNTMgcmVjb3JkLiBNYXkgbm90IGJlIHVzZWQgd2l0aCByZWNvcmRXZWlnaHQuXG4gICAqL1xuICByZWFkb25seSByZWNvcmRMYXRlbmN5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXZhbHVhdGVzIHRhcmdldCBoZWFsdGggb24gdGhlIGNyZWF0ZWQgcm91dGU1MyByZWNvcmQgaWYgaXQncyBhIGxhdGVuY3kgb3Igd2VpZ2h0ZWQgcmVjb3JkLiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRlVGFyZ2V0SGVhbHRoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0dGluZyB0aGlzIHRvIHRydWUgd2lsbCBzdXBwcmVzcyB0aGUgY3JlYXRpb24gb2YgZGVmYXVsdCB0YWdzIG9uIHJlc291cmNlc1xuICAgKiBjcmVhdGVkIGJ5IHRoaXMgY29uc3RydWN0LiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc1RhZ2dpbmc/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEFic3RyYWN0aW9uIHRoYXQgY3JlYXRlcyBhbiBIdHRwQXBpIHdpdGggc3VwcG9ydCBpbmZyYXN0cnVjdHVyZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YW5kYXJkSHR0cEFwaSBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElBdXRvbWF0aW9uQ29tcG9uZW50IHtcblxuICByZWFkb25seSBhdXRvbWF0aW9uQ29tcG9uZW50VGFncyA9IEludGVybmFsQXV0b21hdGlvbkNvbXBvbmVudFRhZ3M7XG5cbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogU3RhbmRhcmREb21haW5OYW1lO1xuICByZWFkb25seSByZWNvcmQ6IEFSZWNvcmQgfCBMYXRlbmN5QVJlY29yZCB8IFdlaWdodGVkQVJlY29yZCB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgaHR0cEFwaTogSHR0cEFwaTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RhbmRhcmRIdHRwQXBpUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZG9tYWluTmFtZSA9IG5ldyBTdGFuZGFyZERvbWFpbk5hbWUodGhpcywgXCJEb21haW5OYW1lXCIsIHtcbiAgICAgIHByZWZpeDogcHJvcHMuZG9tYWluUHJlZml4LFxuICAgICAgem9uZTogcHJvcHMuZG9tYWluWm9uZSxcbiAgICAgIHNlY3VyaXR5UG9saWN5OiBTZWN1cml0eVBvbGljeS5UTFNfMV8yIC8vIFRPRE8gU2hvdWxkIGJlIGFuIG9wdGlvblxuICAgIH0pO1xuXG4gICAgLy8gVE9ETyBOZWVkIHRvIGFkZCBSZWNvcmRPcHRpb25zXG4gICAgaWYgKHByb3BzLmNyZWF0ZVJlY29yZCA/PyB0cnVlKSB7XG4gICAgICBpZiAocHJvcHMucmVjb3JkV2VpZ2h0KSB7XG4gICAgICAgIGRvbWFpbk5hbWUuY3JlYXRlV2VpZ2h0ZWRBUmVjb3JkKHByb3BzLnJlY29yZFdlaWdodCwgcHJvcHMuZXZhbHVhdGVUYXJnZXRIZWFsdGggPz8gdHJ1ZSlcbiAgICAgIH0gZWxzZSBpZiAocHJvcHMucmVjb3JkTGF0ZW5jeSkge1xuICAgICAgICBkb21haW5OYW1lLmNyZWF0ZUxhdGVuY3lBUmVjb3JkKHRydWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb21haW5OYW1lLmNyZWF0ZUFSZWNvcmQoKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlY29yZCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFnZSA9IFN0YWdlLm9mKHRoaXMpO1xuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2YodGhpcyk7XG5cbiAgICBjb25zdCBodHRwQXBpID0gbmV3IEh0dHBBcGkodGhpcywgXCJEZWZhdWx0XCIsIHtcbiAgICAgIGFwaU5hbWU6IHByb3BzLmFwaU5hbWUgPz8gYCR7c3RhZ2U/LnN0YWdlTmFtZX0ke3N0YWNrPy5zdGFja05hbWV9R2F0ZXdheWAsXG4gICAgICBkZWZhdWx0RG9tYWluTWFwcGluZzoge1xuICAgICAgICBkb21haW5OYW1lOiBkb21haW5OYW1lLmdhdGV3YXlEb21haW5OYW1lXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmRvbWFpbk5hbWUgPSBkb21haW5OYW1lO1xuICAgIHRoaXMuaHR0cEFwaSA9IGh0dHBBcGk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { StandardDomainName } from "./standard-domain-name";
|
|
3
|
+
import { WebSocketApi, WebSocketStage } from "@aws-cdk/aws-apigatewayv2-alpha";
|
|
4
|
+
import { ARecord } from "aws-cdk-lib/aws-route53";
|
|
5
|
+
import { LatencyARecord, WeightedARecord } from "../../aws-route53";
|
|
6
|
+
import { IAutomationComponent } from "../../aws-cdk";
|
|
7
|
+
/**
|
|
8
|
+
* Properties for StandardWebSocketApi.
|
|
9
|
+
*/
|
|
10
|
+
export interface StandardWebSocketApiProps {
|
|
11
|
+
/**
|
|
12
|
+
* The prefix of the domain to create the certificate and DNS record for.
|
|
13
|
+
*/
|
|
14
|
+
readonly domainPrefix: string;
|
|
15
|
+
/**
|
|
16
|
+
* The zone of the domain to create the certificate and DNS record for.
|
|
17
|
+
*/
|
|
18
|
+
readonly domainZone: string;
|
|
19
|
+
/**
|
|
20
|
+
* Name of the API Gateway. One will be generated if not provided.
|
|
21
|
+
*/
|
|
22
|
+
readonly apiName?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Determines if a route53 record is created for the API gateway. Defaults to true.
|
|
25
|
+
*
|
|
26
|
+
* @default - true
|
|
27
|
+
*/
|
|
28
|
+
readonly createRecord?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a weighted route53 record. May not be used with recordLatency.
|
|
31
|
+
*/
|
|
32
|
+
readonly recordWeight?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Creates a latency route53 record. May not be used with recordWeight.
|
|
35
|
+
*/
|
|
36
|
+
readonly recordLatency?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Evaluates target health on the created route53 record if it's a latency or weighted record. Defaults to true.
|
|
39
|
+
*
|
|
40
|
+
* @default - true
|
|
41
|
+
*/
|
|
42
|
+
readonly evaluateTargetHealth?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Setting this to true will suppress the creation of default tags on resources
|
|
45
|
+
* created by this construct. Default is false.
|
|
46
|
+
*
|
|
47
|
+
* @default - false
|
|
48
|
+
*/
|
|
49
|
+
readonly suppressTagging?: boolean;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Abstraction that creates an WebSocketApi with support infrastructure.
|
|
53
|
+
*/
|
|
54
|
+
export declare class StandardWebSocketApi extends Construct implements IAutomationComponent {
|
|
55
|
+
readonly automationComponentTags: import("../../aws-cdk").AutomationComponentTagsProps;
|
|
56
|
+
readonly domainName: StandardDomainName;
|
|
57
|
+
readonly record: ARecord | LatencyARecord | WeightedARecord | undefined;
|
|
58
|
+
readonly webSocketApi: WebSocketApi;
|
|
59
|
+
readonly webSocketStage: WebSocketStage;
|
|
60
|
+
constructor(scope: Construct, id: string, props: StandardWebSocketApiProps);
|
|
61
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StandardWebSocketApi = void 0;
|
|
4
|
+
const constructs_1 = require("constructs");
|
|
5
|
+
const standard_domain_name_1 = require("./standard-domain-name");
|
|
6
|
+
const aws_apigatewayv2_alpha_1 = require("@aws-cdk/aws-apigatewayv2-alpha");
|
|
7
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
8
|
+
const aws_cdk_1 = require("../../aws-cdk");
|
|
9
|
+
/**
|
|
10
|
+
* Abstraction that creates an WebSocketApi with support infrastructure.
|
|
11
|
+
*/
|
|
12
|
+
class StandardWebSocketApi extends constructs_1.Construct {
|
|
13
|
+
constructor(scope, id, props) {
|
|
14
|
+
var _a, _b, _c;
|
|
15
|
+
super(scope, id);
|
|
16
|
+
this.automationComponentTags = aws_cdk_1.InternalAutomationComponentTags;
|
|
17
|
+
const domainName = new standard_domain_name_1.StandardDomainName(this, "DomainName", {
|
|
18
|
+
prefix: props.domainPrefix,
|
|
19
|
+
zone: props.domainZone,
|
|
20
|
+
securityPolicy: aws_apigatewayv2_alpha_1.SecurityPolicy.TLS_1_2 // TODO Should be an option
|
|
21
|
+
});
|
|
22
|
+
// TODO Need to add RecordOptions
|
|
23
|
+
if ((_a = props.createRecord) !== null && _a !== void 0 ? _a : true) {
|
|
24
|
+
if (props.recordWeight) {
|
|
25
|
+
domainName.createWeightedARecord(props.recordWeight, (_b = props.evaluateTargetHealth) !== null && _b !== void 0 ? _b : true);
|
|
26
|
+
}
|
|
27
|
+
else if (props.recordLatency) {
|
|
28
|
+
domainName.createLatencyARecord(true);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
domainName.createARecord();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.record = undefined;
|
|
36
|
+
}
|
|
37
|
+
const stage = aws_cdk_lib_1.Stage.of(this);
|
|
38
|
+
const stack = aws_cdk_lib_1.Stack.of(this);
|
|
39
|
+
const webSocketApi = new aws_apigatewayv2_alpha_1.WebSocketApi(this, "Default", {
|
|
40
|
+
apiName: (_c = props.apiName) !== null && _c !== void 0 ? _c : `${stage === null || stage === void 0 ? void 0 : stage.stageName}${stack === null || stack === void 0 ? void 0 : stack.stackName}Gateway`,
|
|
41
|
+
});
|
|
42
|
+
const webSocketStage = new aws_apigatewayv2_alpha_1.WebSocketStage(this, "DefaultStage", {
|
|
43
|
+
webSocketApi,
|
|
44
|
+
stageName: "default",
|
|
45
|
+
autoDeploy: true,
|
|
46
|
+
domainMapping: {
|
|
47
|
+
domainName: domainName.gatewayDomainName
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
this.webSocketApi = webSocketApi;
|
|
51
|
+
this.webSocketStage = webSocketStage;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.StandardWebSocketApi = StandardWebSocketApi;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtd2ViLXNvY2tldC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFuZGFyZC13ZWItc29ja2V0LWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUM7QUFDckMsaUVBQTBEO0FBQzFELDRFQUE2RjtBQUc3Riw2Q0FBeUM7QUFDekMsMkNBQW9GO0FBc0RwRjs7R0FFRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsc0JBQVM7SUFTakQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFnQzs7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQVJWLDRCQUF1QixHQUFHLHlDQUErQixDQUFDO1FBVWpFLE1BQU0sVUFBVSxHQUFHLElBQUkseUNBQWtCLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUM1RCxNQUFNLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDMUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQ3RCLGNBQWMsRUFBRSx1Q0FBYyxDQUFDLE9BQU8sQ0FBQywyQkFBMkI7U0FDbkUsQ0FBQyxDQUFDO1FBRUgsaUNBQWlDO1FBQ2pDLFVBQUksS0FBSyxDQUFDLFlBQVksbUNBQUksSUFBSSxFQUFFO1lBQzlCLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtnQkFDdEIsVUFBVSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxZQUFZLFFBQUUsS0FBSyxDQUFDLG9CQUFvQixtQ0FBSSxJQUFJLENBQUMsQ0FBQTthQUN6RjtpQkFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUU7Z0JBQzlCLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTthQUN0QztpQkFBTTtnQkFDTCxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUE7YUFDM0I7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7U0FDekI7UUFFRCxNQUFNLEtBQUssR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixNQUFNLEtBQUssR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3QixNQUFNLFlBQVksR0FBRyxJQUFJLHFDQUFZLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNyRCxPQUFPLFFBQUUsS0FBSyxDQUFDLE9BQU8sbUNBQUksR0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsU0FBUyxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxTQUFTLFNBQVM7U0FDMUUsQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQUcsSUFBSSx1Q0FBYyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDOUQsWUFBWTtZQUNaLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGFBQWEsRUFBRTtnQkFDYixVQUFVLEVBQUUsVUFBVSxDQUFDLGlCQUFpQjthQUN6QztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQWxERCxvREFrREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7U3RhbmRhcmREb21haW5OYW1lfSBmcm9tIFwiLi9zdGFuZGFyZC1kb21haW4tbmFtZVwiO1xuaW1wb3J0IHtTZWN1cml0eVBvbGljeSwgV2ViU29ja2V0QXBpLCBXZWJTb2NrZXRTdGFnZX0gZnJvbSBcIkBhd3MtY2RrL2F3cy1hcGlnYXRld2F5djItYWxwaGFcIjtcbmltcG9ydCB7QVJlY29yZH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQge0xhdGVuY3lBUmVjb3JkLCBXZWlnaHRlZEFSZWNvcmR9IGZyb20gXCIuLi8uLi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtTdGFjaywgU3RhZ2V9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtJQXV0b21hdGlvbkNvbXBvbmVudCwgSW50ZXJuYWxBdXRvbWF0aW9uQ29tcG9uZW50VGFnc30gZnJvbSBcIi4uLy4uL2F3cy1jZGtcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBTdGFuZGFyZFdlYlNvY2tldEFwaS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFuZGFyZFdlYlNvY2tldEFwaVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBwcmVmaXggb2YgdGhlIGRvbWFpbiB0byBjcmVhdGUgdGhlIGNlcnRpZmljYXRlIGFuZCBETlMgcmVjb3JkIGZvci5cbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpblByZWZpeDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgem9uZSBvZiB0aGUgZG9tYWluIHRvIGNyZWF0ZSB0aGUgY2VydGlmaWNhdGUgYW5kIEROUyByZWNvcmQgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluWm9uZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBBUEkgR2F0ZXdheS4gT25lIHdpbGwgYmUgZ2VuZXJhdGVkIGlmIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFwaU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSByb3V0ZTUzIHJlY29yZCBpcyBjcmVhdGVkIGZvciB0aGUgQVBJIGdhdGV3YXkuIERlZmF1bHRzIHRvIHRydWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlUmVjb3JkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHdlaWdodGVkIHJvdXRlNTMgcmVjb3JkLiBNYXkgbm90IGJlIHVzZWQgd2l0aCByZWNvcmRMYXRlbmN5LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVjb3JkV2VpZ2h0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbGF0ZW5jeSByb3V0ZTUzIHJlY29yZC4gTWF5IG5vdCBiZSB1c2VkIHdpdGggcmVjb3JkV2VpZ2h0LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVjb3JkTGF0ZW5jeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyB0YXJnZXQgaGVhbHRoIG9uIHRoZSBjcmVhdGVkIHJvdXRlNTMgcmVjb3JkIGlmIGl0J3MgYSBsYXRlbmN5IG9yIHdlaWdodGVkIHJlY29yZC4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBldmFsdWF0ZVRhcmdldEhlYWx0aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldHRpbmcgdGhpcyB0byB0cnVlIHdpbGwgc3VwcHJlc3MgdGhlIGNyZWF0aW9uIG9mIGRlZmF1bHQgdGFncyBvbiByZXNvdXJjZXNcbiAgICogY3JlYXRlZCBieSB0aGlzIGNvbnN0cnVjdC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VwcHJlc3NUYWdnaW5nPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdGlvbiB0aGF0IGNyZWF0ZXMgYW4gV2ViU29ja2V0QXBpIHdpdGggc3VwcG9ydCBpbmZyYXN0cnVjdHVyZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YW5kYXJkV2ViU29ja2V0QXBpIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSUF1dG9tYXRpb25Db21wb25lbnQge1xuXG4gIHJlYWRvbmx5IGF1dG9tYXRpb25Db21wb25lbnRUYWdzID0gSW50ZXJuYWxBdXRvbWF0aW9uQ29tcG9uZW50VGFncztcblxuICByZWFkb25seSBkb21haW5OYW1lOiBTdGFuZGFyZERvbWFpbk5hbWU7XG4gIHJlYWRvbmx5IHJlY29yZDogQVJlY29yZCB8IExhdGVuY3lBUmVjb3JkIHwgV2VpZ2h0ZWRBUmVjb3JkIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSB3ZWJTb2NrZXRBcGk6IFdlYlNvY2tldEFwaTtcbiAgcmVhZG9ubHkgd2ViU29ja2V0U3RhZ2U6IFdlYlNvY2tldFN0YWdlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFuZGFyZFdlYlNvY2tldEFwaVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGRvbWFpbk5hbWUgPSBuZXcgU3RhbmRhcmREb21haW5OYW1lKHRoaXMsIFwiRG9tYWluTmFtZVwiLCB7XG4gICAgICBwcmVmaXg6IHByb3BzLmRvbWFpblByZWZpeCxcbiAgICAgIHpvbmU6IHByb3BzLmRvbWFpblpvbmUsXG4gICAgICBzZWN1cml0eVBvbGljeTogU2VjdXJpdHlQb2xpY3kuVExTXzFfMiAvLyBUT0RPIFNob3VsZCBiZSBhbiBvcHRpb25cbiAgICB9KTtcblxuICAgIC8vIFRPRE8gTmVlZCB0byBhZGQgUmVjb3JkT3B0aW9uc1xuICAgIGlmIChwcm9wcy5jcmVhdGVSZWNvcmQgPz8gdHJ1ZSkge1xuICAgICAgaWYgKHByb3BzLnJlY29yZFdlaWdodCkge1xuICAgICAgICBkb21haW5OYW1lLmNyZWF0ZVdlaWdodGVkQVJlY29yZChwcm9wcy5yZWNvcmRXZWlnaHQsIHByb3BzLmV2YWx1YXRlVGFyZ2V0SGVhbHRoID8/IHRydWUpXG4gICAgICB9IGVsc2UgaWYgKHByb3BzLnJlY29yZExhdGVuY3kpIHtcbiAgICAgICAgZG9tYWluTmFtZS5jcmVhdGVMYXRlbmN5QVJlY29yZCh0cnVlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZG9tYWluTmFtZS5jcmVhdGVBUmVjb3JkKClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWNvcmQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhZ2UgPSBTdGFnZS5vZih0aGlzKTtcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHRoaXMpO1xuXG4gICAgY29uc3Qgd2ViU29ja2V0QXBpID0gbmV3IFdlYlNvY2tldEFwaSh0aGlzLCBcIkRlZmF1bHRcIiwge1xuICAgICAgYXBpTmFtZTogcHJvcHMuYXBpTmFtZSA/PyBgJHtzdGFnZT8uc3RhZ2VOYW1lfSR7c3RhY2s/LnN0YWNrTmFtZX1HYXRld2F5YCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHdlYlNvY2tldFN0YWdlID0gbmV3IFdlYlNvY2tldFN0YWdlKHRoaXMsIFwiRGVmYXVsdFN0YWdlXCIsIHtcbiAgICAgIHdlYlNvY2tldEFwaSxcbiAgICAgIHN0YWdlTmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICBhdXRvRGVwbG95OiB0cnVlLFxuICAgICAgZG9tYWluTWFwcGluZzoge1xuICAgICAgICBkb21haW5OYW1lOiBkb21haW5OYW1lLmdhdGV3YXlEb21haW5OYW1lXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLndlYlNvY2tldEFwaSA9IHdlYlNvY2tldEFwaTtcbiAgICB0aGlzLndlYlNvY2tldFN0YWdlID0gd2ViU29ja2V0U3RhZ2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { App, AppProps } from "aws-cdk-lib";
|
|
2
|
+
import { StandardTagsProps } from "./standard-tags";
|
|
3
|
+
/**
|
|
4
|
+
* Properties for ExtendedApp.
|
|
5
|
+
*/
|
|
6
|
+
export interface ExtendedAppProps extends AppProps {
|
|
7
|
+
readonly standardTags?: StandardTagsProps;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Adds functionality to the base App class to support standard tags
|
|
11
|
+
* and access to the account and region being used to execute the
|
|
12
|
+
* CDK process.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ExtendedApp extends App {
|
|
15
|
+
readonly account: string;
|
|
16
|
+
readonly region: string;
|
|
17
|
+
constructor(props?: ExtendedAppProps);
|
|
18
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExtendedApp = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
/**
|
|
6
|
+
* Adds functionality to the base App class to support standard tags
|
|
7
|
+
* and access to the account and region being used to execute the
|
|
8
|
+
* CDK process.
|
|
9
|
+
*/
|
|
10
|
+
class ExtendedApp extends aws_cdk_lib_1.App {
|
|
11
|
+
constructor(props) {
|
|
12
|
+
super(props);
|
|
13
|
+
const account = process.env.CDK_DEFAULT_ACCOUNT || process.env.AWS_ACCOUNT_ID;
|
|
14
|
+
if (account === undefined) {
|
|
15
|
+
throw new Error("Unable to identify default account");
|
|
16
|
+
}
|
|
17
|
+
this.account = account;
|
|
18
|
+
const region = process.env.CDK_DEFAULT_REGION || process.env.AWS_DEFAULT_REGION;
|
|
19
|
+
if (region === undefined) {
|
|
20
|
+
throw new Error("Unable to identify default region");
|
|
21
|
+
}
|
|
22
|
+
this.region = region;
|
|
23
|
+
this.node.setContext("standardTags", props === null || props === void 0 ? void 0 : props.standardTags);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.ExtendedApp = ExtendedApp;
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXh0ZW5kZWQtYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUEwQztBQVcxQzs7OztHQUlHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsaUJBQUc7SUFLbEMsWUFBWSxLQUF3QjtRQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFYixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1FBQzlFLElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7U0FDdkQ7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUM7UUFDaEYsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztTQUN0RDtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRXJCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsWUFBWSxDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUNGO0FBckJELGtDQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBwLCBBcHBQcm9wc30gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1N0YW5kYXJkVGFnc1Byb3BzfSBmcm9tIFwiLi9zdGFuZGFyZC10YWdzXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgRXh0ZW5kZWRBcHAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kZWRBcHBQcm9wcyBleHRlbmRzIEFwcFByb3BzIHtcblxuICByZWFkb25seSBzdGFuZGFyZFRhZ3M/OiBTdGFuZGFyZFRhZ3NQcm9wcztcbn1cblxuLyoqXG4gKiBBZGRzIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIGJhc2UgQXBwIGNsYXNzIHRvIHN1cHBvcnQgc3RhbmRhcmQgdGFnc1xuICogYW5kIGFjY2VzcyB0byB0aGUgYWNjb3VudCBhbmQgcmVnaW9uIGJlaW5nIHVzZWQgdG8gZXhlY3V0ZSB0aGVcbiAqIENESyBwcm9jZXNzLlxuICovXG5leHBvcnQgY2xhc3MgRXh0ZW5kZWRBcHAgZXh0ZW5kcyBBcHAge1xuXG4gIHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvcHM/OiBFeHRlbmRlZEFwcFByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgY29uc3QgYWNjb3VudCA9IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX0FDQ09VTlQgfHwgcHJvY2Vzcy5lbnYuQVdTX0FDQ09VTlRfSUQ7XG4gICAgaWYgKGFjY291bnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIGlkZW50aWZ5IGRlZmF1bHQgYWNjb3VudFwiKTtcbiAgICB9XG4gICAgdGhpcy5hY2NvdW50ID0gYWNjb3VudDtcbiAgICBjb25zdCByZWdpb24gPSBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9SRUdJT04gfHwgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUkVHSU9OO1xuICAgIGlmIChyZWdpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIGlkZW50aWZ5IGRlZmF1bHQgcmVnaW9uXCIpO1xuICAgIH1cbiAgICB0aGlzLnJlZ2lvbiA9IHJlZ2lvbjtcblxuICAgIHRoaXMubm9kZS5zZXRDb250ZXh0KFwic3RhbmRhcmRUYWdzXCIsIHByb3BzPy5zdGFuZGFyZFRhZ3MpO1xuICB9XG59XG5cbiJdfQ==
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { CfnOutput, Duration, Stack, StackProps } from "aws-cdk-lib";
|
|
2
|
-
import { ParameterStore, ParameterStoreOptions } from "../../aws-ssm
|
|
2
|
+
import { ParameterStore, ParameterStoreOptions } from "../../aws-ssm";
|
|
3
3
|
import { Construct } from "constructs";
|
|
4
4
|
import { StringParameter } from "aws-cdk-lib/aws-ssm";
|
|
5
5
|
import { DashboardRenderingPreference, MonitoringFacade } from "cdk-monitoring-constructs";
|
|
6
|
+
import { StandardTagsProps } from "./standard-tags";
|
|
6
7
|
/**
|
|
7
8
|
* Options for ExtStack.
|
|
8
9
|
*/
|
|
@@ -72,12 +73,9 @@ export interface ExtendedStackOptions {
|
|
|
72
73
|
*/
|
|
73
74
|
readonly alarmActionsEnabled?: boolean;
|
|
74
75
|
/**
|
|
75
|
-
*
|
|
76
|
-
* created by this construct. Default is false.
|
|
77
|
-
*
|
|
78
|
-
* @default - false
|
|
76
|
+
* Sets standard tags for this Stack.
|
|
79
77
|
*/
|
|
80
|
-
readonly
|
|
78
|
+
readonly standardTags?: StandardTagsProps;
|
|
81
79
|
}
|
|
82
80
|
/**
|
|
83
81
|
* Properties for ExtStack.
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ExtendedStack = void 0;
|
|
4
4
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
-
const
|
|
5
|
+
const aws_ssm_1 = require("../../aws-ssm");
|
|
6
6
|
const cdk_monitoring_constructs_1 = require("cdk-monitoring-constructs");
|
|
7
|
-
const index_2 = require("../../helpers/index");
|
|
8
7
|
const standard_tags_1 = require("./standard-tags");
|
|
9
8
|
/**
|
|
10
9
|
* Extended version of Stack providing functionality for parameter exports and monitoring.
|
|
@@ -18,7 +17,7 @@ class ExtendedStack extends aws_cdk_lib_1.Stack {
|
|
|
18
17
|
prefix: (_b = props === null || props === void 0 ? void 0 : props.parameterExportsPrefix) !== null && _b !== void 0 ? _b : (stageName === undefined ? "" : `/${stageName}`) + `/${id}/Exports/`,
|
|
19
18
|
region: this.region
|
|
20
19
|
};
|
|
21
|
-
this.parameterExports = new
|
|
20
|
+
this.parameterExports = new aws_ssm_1.ParameterStore(this, "ParameterExports", this.parameterExportOptions);
|
|
22
21
|
if ((_c = props === null || props === void 0 ? void 0 : props.createMonitoringFacade) !== null && _c !== void 0 ? _c : true) {
|
|
23
22
|
const dashboardFactory = new cdk_monitoring_constructs_1.DefaultDashboardFactory(this, "DashboardFactory", {
|
|
24
23
|
dashboardNamePrefix: (_d = props === null || props === void 0 ? void 0 : props.dashboardNamePrefix) !== null && _d !== void 0 ? _d : this.stackName,
|
|
@@ -39,13 +38,16 @@ class ExtendedStack extends aws_cdk_lib_1.Stack {
|
|
|
39
38
|
dashboardFactory: dashboardFactory
|
|
40
39
|
});
|
|
41
40
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
// Setup standard tags
|
|
42
|
+
const standardTagsProps = standard_tags_1.StandardTags.merge(this.node.tryGetContext("standardTags"), props === null || props === void 0 ? void 0 : props.standardTags);
|
|
43
|
+
const standardTags = new standard_tags_1.StandardTags(this, standardTagsProps);
|
|
44
|
+
// Add automation component tags to this stack
|
|
45
|
+
standardTags.addAutomationTags({
|
|
46
|
+
...standard_tags_1.InternalAutomationComponentTags,
|
|
47
47
|
includeResourceTypes: ["AWS::CloudFormation::Stack"]
|
|
48
48
|
});
|
|
49
|
+
// Add automation component tags to AutomationComponent children
|
|
50
|
+
aws_cdk_lib_1.Aspects.of(this).add(new standard_tags_1.AutomationComponentAspect(standardTagsProps.suppressTagging));
|
|
49
51
|
}
|
|
50
52
|
/**
|
|
51
53
|
* Helper method to exports a parameter as an SSM Parameter.
|
|
@@ -69,4 +71,4 @@ class ExtendedStack extends aws_cdk_lib_1.Stack {
|
|
|
69
71
|
}
|
|
70
72
|
}
|
|
71
73
|
exports.ExtendedStack = ExtendedStack;
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRlbmRlZC1zdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMEU7QUFDMUUsK0NBQTBFO0FBRzFFLHlFQUltQztBQUNuQywrQ0FBOEQ7QUFDOUQsbURBQTZDO0FBZ0c3Qzs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLG1CQUFLO0lBTXRDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7O1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sU0FBUyxTQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQywwQ0FBRSxTQUFTLENBQUM7UUFDNUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHO1lBQzVCLE1BQU0sUUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsc0JBQXNCLG1DQUFFLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLFdBQVc7WUFDM0csTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxzQkFBYyxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVsRyxVQUFJLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxzQkFBc0IsbUNBQUksSUFBSSxFQUFFO1lBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxtREFBdUIsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7Z0JBQzdFLG1CQUFtQixRQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxtQkFBbUIsbUNBQUksSUFBSSxDQUFDLFNBQVM7Z0JBQ2pFLG9CQUFvQixRQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxvQkFBb0IsbUNBQUksS0FBSztnQkFDMUQsZUFBZSxRQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxlQUFlLG1DQUFJLEtBQUs7Z0JBQ2hELHNCQUFzQixRQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxzQkFBc0IsbUNBQUksS0FBSztnQkFDOUQsbUJBQW1CLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLDRCQUE0QixtQ0FBSSx3REFBNEIsQ0FBQyxnQkFBZ0I7YUFDMUcsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksNENBQWdCLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtnQkFDL0QscUJBQXFCLEVBQUU7b0JBQ3JCLFNBQVMsRUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsZUFBZTtvQkFDakMsTUFBTSxFQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxZQUFZO2lCQUM1QjtnQkFDRCxvQkFBb0IsRUFBRTtvQkFDcEIsY0FBYyxRQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxtQkFBbUIsbUNBQUksSUFBSTtvQkFDbEQsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTO2lCQUNoQztnQkFDRCxnQkFBZ0IsRUFBRSxnQkFBZ0I7YUFDbkMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLDRCQUFZLENBQUMsSUFBSSxFQUFFO1lBQ3JCLFFBQVEsRUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsZUFBZTtTQUNqQyxDQUFDLENBQUMsMEJBQTBCLENBQUM7WUFDNUIsR0FBRyxFQUFFLHFCQUFhO1lBQ2xCLE1BQU0sRUFBRSxrQkFBVTtZQUNsQixvQkFBb0IsRUFBRSxDQUFDLDRCQUE0QixDQUFDO1NBQ3JELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUN6QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUN6QyxPQUFPLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQy9CLEtBQUs7U0FDTixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFuRUQsc0NBbUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDZm5PdXRwdXQsIER1cmF0aW9uLCBTdGFjaywgU3RhY2tQcm9wcywgU3RhZ2V9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtQYXJhbWV0ZXJTdG9yZSwgUGFyYW1ldGVyU3RvcmVPcHRpb25zfSBmcm9tIFwiLi4vLi4vYXdzLXNzbS9pbmRleFwiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1N0cmluZ1BhcmFtZXRlcn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zc21cIjtcbmltcG9ydCB7XG4gIERhc2hib2FyZFJlbmRlcmluZ1ByZWZlcmVuY2UsXG4gIERlZmF1bHREYXNoYm9hcmRGYWN0b3J5LFxuICBNb25pdG9yaW5nRmFjYWRlXG59IGZyb20gXCJjZGstbW9uaXRvcmluZy1jb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0NES19OUE1KU19VUkwsIENES19WRU5ET1J9IGZyb20gXCIuLi8uLi9oZWxwZXJzL2luZGV4XCI7XG5pbXBvcnQge1N0YW5kYXJkVGFnc30gZnJvbSBcIi4vc3RhbmRhcmQtdGFnc1wiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIEV4dFN0YWNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkU3RhY2tPcHRpb25zIHtcblxuICAvKipcbiAgICogUHJlZml4IHRvIGJlIHVzZWQgYnkgcGFyYW1ldGVyIGV4cG9ydHMgdG8gYmUgc3RvcmVkIGluIHRoZVxuICAgKiBTeXN0ZW1zIE1hbmFnZXIgUGFyYW1ldGVyIFN0b3JlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAke3N0YWdlTmFtZX0vJHtzdGFja0lkfS9FeHBvcnRzL1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVyRXhwb3J0c1ByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogRmxhZyB0byBkZXRlcm1pbmUgaWYgYSBkZWZhdWx0IE1vbml0b3JpbmdGYWNhZGUgYW5kXG4gICAqIERlZmF1bHREYXNoYm9hcmRGYWN0b3J5IHNob3VsZCBiZSBjcmVhdGVkIGluIHRoaXMgc3RhY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZU1vbml0b3JpbmdGYWNhZGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcmVmaXggYWRkZWQgdG8gZWFjaCBkYXNoYm9hcmQgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgc3RhY2tOYW1lXG4gICAqL1xuICByZWFkb25seSBkYXNoYm9hcmROYW1lUHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGbGFnIHRvIGRldGVybWluZSBpZiB0aGUgZGVmYXVsdCBkYXNoYm9hcmQgc2hvdWxkIGJlIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVEYXNoYm9hcmQ/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIEZsYWcgdG8gZGV0ZXJtaW5lIGlmIHRoZSBzdW1tYXJ5IGRhc2hib2FyZCBzaG91bGQgYmUgY3JlYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVN1bW1hcnlEYXNoYm9hcmQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIHRvIGRldGVybWluZSBpZiB0aGUgYWxhcm0gZGFzaGJvYXJkIHNob3VsZCBiZSBjcmV0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVBbGFybURhc2hib2FyZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZyBwcmVmZXJlbmNlIHRvIGRhc2hib2FyZHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IERhc2hib2FyZFJlbmRlcmluZ1ByZWZlcmVuY2UuSU5URVJBQ1RJVkVfT05MWVxuICAgKi9cbiAgcmVhZG9ubHkgZGFzaGJvYXJkUmVuZGVyaW5nUHJlZmVyZW5jZT86IERhc2hib2FyZFJlbmRlcmluZ1ByZWZlcmVuY2U7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgbmFtZXNwYWNlIGZvciBtZXRyaWNzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljTmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IG1ldHJpYyBwZXJpb2RcbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY1BlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBQcmVmaXggZm9yIGdlbmVyYXRlZCBhbGFybXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHN0YWNrTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1OYW1lUHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIGFsYXJtIGFjdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtQWN0aW9uc0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXR0aW5nIHRoaXMgdG8gdHJ1ZSB3aWxsIHN1cHByZXNzIHRoZSBjcmVhdGlvbiBvZiBkZWZhdWx0IHRhZ3Mgb24gcmVzb3VyY2VzXG4gICAqIGNyZWF0ZWQgYnkgdGhpcyBjb25zdHJ1Y3QuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHN1cHByZXNzVGFnZ2luZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgRXh0U3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kZWRTdGFja1Byb3BzIGV4dGVuZHMgRXh0ZW5kZWRTdGFja09wdGlvbnMsIFN0YWNrUHJvcHMge31cblxuLyoqXG4gKiBFeHRlbmRlZCB2ZXJzaW9uIG9mIFN0YWNrIHByb3ZpZGluZyBmdW5jdGlvbmFsaXR5IGZvciBwYXJhbWV0ZXIgZXhwb3J0cyBhbmQgbW9uaXRvcmluZy5cbiAqL1xuZXhwb3J0IGNsYXNzIEV4dGVuZGVkU3RhY2sgZXh0ZW5kcyBTdGFjayB7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhcmFtZXRlckV4cG9ydHM6IFBhcmFtZXRlclN0b3JlO1xuICByZWFkb25seSBwYXJhbWV0ZXJFeHBvcnRPcHRpb25zOiBQYXJhbWV0ZXJTdG9yZU9wdGlvbnM7XG4gIHJlYWRvbmx5IG1vbml0b3JpbmdGYWNhZGU/OiBNb25pdG9yaW5nRmFjYWRlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogRXh0ZW5kZWRTdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgY29uc3Qgc3RhZ2VOYW1lID0gU3RhZ2Uub2YodGhpcyk/LnN0YWdlTmFtZTtcbiAgICB0aGlzLnBhcmFtZXRlckV4cG9ydE9wdGlvbnMgPSB7XG4gICAgICBwcmVmaXg6IHByb3BzPy5wYXJhbWV0ZXJFeHBvcnRzUHJlZml4Pz8oc3RhZ2VOYW1lID09PSB1bmRlZmluZWQgPyBcIlwiIDogYC8ke3N0YWdlTmFtZX1gKSArIGAvJHtpZH0vRXhwb3J0cy9gLFxuICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvblxuICAgIH07XG4gICAgdGhpcy5wYXJhbWV0ZXJFeHBvcnRzID0gbmV3IFBhcmFtZXRlclN0b3JlKHRoaXMsIFwiUGFyYW1ldGVyRXhwb3J0c1wiLCB0aGlzLnBhcmFtZXRlckV4cG9ydE9wdGlvbnMpO1xuXG4gICAgaWYgKHByb3BzPy5jcmVhdGVNb25pdG9yaW5nRmFjYWRlID8/IHRydWUpIHtcbiAgICAgIGNvbnN0IGRhc2hib2FyZEZhY3RvcnkgPSBuZXcgRGVmYXVsdERhc2hib2FyZEZhY3RvcnkodGhpcywgXCJEYXNoYm9hcmRGYWN0b3J5XCIsIHtcbiAgICAgICAgZGFzaGJvYXJkTmFtZVByZWZpeDogcHJvcHM/LmRhc2hib2FyZE5hbWVQcmVmaXggPz8gdGhpcy5zdGFja05hbWUsXG4gICAgICAgIGNyZWF0ZUFsYXJtRGFzaGJvYXJkOiBwcm9wcz8uY3JlYXRlQWxhcm1EYXNoYm9hcmQgPz8gZmFsc2UsXG4gICAgICAgIGNyZWF0ZURhc2hib2FyZDogcHJvcHM/LmNyZWF0ZURhc2hib2FyZCA/PyBmYWxzZSxcbiAgICAgICAgY3JlYXRlU3VtbWFyeURhc2hib2FyZDogcHJvcHM/LmNyZWF0ZVN1bW1hcnlEYXNoYm9hcmQgPz8gZmFsc2UsXG4gICAgICAgIHJlbmRlcmluZ1ByZWZlcmVuY2U6IHByb3BzPy5kYXNoYm9hcmRSZW5kZXJpbmdQcmVmZXJlbmNlID8/IERhc2hib2FyZFJlbmRlcmluZ1ByZWZlcmVuY2UuSU5URVJBQ1RJVkVfT05MWVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMubW9uaXRvcmluZ0ZhY2FkZSA9IG5ldyBNb25pdG9yaW5nRmFjYWRlKHRoaXMsIFwiTW9uaXRvcmluZ1wiLCB7XG4gICAgICAgIG1ldHJpY0ZhY3RvcnlEZWZhdWx0czoge1xuICAgICAgICAgIG5hbWVzcGFjZTogcHJvcHM/Lm1ldHJpY05hbWVzcGFjZSxcbiAgICAgICAgICBwZXJpb2Q6IHByb3BzPy5tZXRyaWNQZXJpb2RcbiAgICAgICAgfSxcbiAgICAgICAgYWxhcm1GYWN0b3J5RGVmYXVsdHM6IHtcbiAgICAgICAgICBhY3Rpb25zRW5hYmxlZDogcHJvcHM/LmFsYXJtQWN0aW9uc0VuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgICAgICBhbGFybU5hbWVQcmVmaXg6IHRoaXMuc3RhY2tOYW1lXG4gICAgICAgIH0sXG4gICAgICAgIGRhc2hib2FyZEZhY3Rvcnk6IGRhc2hib2FyZEZhY3RvcnlcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIG5ldyBTdGFuZGFyZFRhZ3ModGhpcywge1xuICAgICAgc3VwcHJlc3M6IHByb3BzPy5zdXBwcmVzc1RhZ2dpbmdcbiAgICB9KS5hZGRBdXRvbWF0aW9uQ29tcG9uZW50VGFncyh7XG4gICAgICB1cmw6IENES19OUE1KU19VUkwsXG4gICAgICB2ZW5kb3I6IENES19WRU5ET1IsXG4gICAgICBpbmNsdWRlUmVzb3VyY2VUeXBlczogW1wiQVdTOjpDbG91ZEZvcm1hdGlvbjo6U3RhY2tcIl1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIGV4cG9ydHMgYSBwYXJhbWV0ZXIgYXMgYW4gU1NNIFBhcmFtZXRlci5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgdGhlIHBhcmFtZXRlciBuYW1lXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgcGFyYW1ldGVyIHZhbHVlXG4gICAqL1xuICBleHBvcnRQYXJhbWV0ZXIobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogU3RyaW5nUGFyYW1ldGVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJFeHBvcnRzLndyaXRlKG5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIG91dHB1dCBhIHBhcmFtZXRlciBhcyBhIENmbk91dHB1dC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgdGhlIHBhcmFtZXRlciBuYW1lXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgcGFyYW1ldGVyIHZhbHVlXG4gICAqL1xuICBvdXRwdXRQYXJhbWV0ZXIobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogQ2ZuT3V0cHV0IHtcbiAgICByZXR1cm4gbmV3IENmbk91dHB1dCh0aGlzLCBuYW1lLCB7XG4gICAgICB2YWx1ZVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRlbmRlZC1zdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBbUY7QUFDbkYsMkNBQW9FO0FBR3BFLHlFQUltQztBQUNuQyxtREFLeUI7QUE2RnpCOztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsbUJBQUs7SUFNdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjs7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsTUFBTSxTQUFTLFNBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLDBDQUFFLFNBQVMsQ0FBQztRQUU1QyxJQUFJLENBQUMsc0JBQXNCLEdBQUc7WUFDNUIsTUFBTSxRQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxzQkFBc0IsbUNBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsV0FBVztZQUM3RyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQztRQUNGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHdCQUFjLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRWxHLFVBQUksS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLHNCQUFzQixtQ0FBSSxJQUFJLEVBQUU7WUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLG1EQUF1QixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtnQkFDN0UsbUJBQW1CLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG1CQUFtQixtQ0FBSSxJQUFJLENBQUMsU0FBUztnQkFDakUsb0JBQW9CLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG9CQUFvQixtQ0FBSSxLQUFLO2dCQUMxRCxlQUFlLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGVBQWUsbUNBQUksS0FBSztnQkFDaEQsc0JBQXNCLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLHNCQUFzQixtQ0FBSSxLQUFLO2dCQUM5RCxtQkFBbUIsUUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsNEJBQTRCLG1DQUFJLHdEQUE0QixDQUFDLGdCQUFnQjthQUMxRyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSw0Q0FBZ0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO2dCQUMvRCxxQkFBcUIsRUFBRTtvQkFDckIsU0FBUyxFQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxlQUFlO29CQUNqQyxNQUFNLEVBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFlBQVk7aUJBQzVCO2dCQUNELG9CQUFvQixFQUFFO29CQUNwQixjQUFjLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG1CQUFtQixtQ0FBSSxJQUFJO29CQUNsRCxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVM7aUJBQ2hDO2dCQUNELGdCQUFnQixFQUFFLGdCQUFnQjthQUNuQyxDQUFDLENBQUM7U0FDSjtRQUVELHNCQUFzQjtRQUN0QixNQUFNLGlCQUFpQixHQUFHLDRCQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxZQUFZLENBQUMsQ0FBQztRQUMzRyxNQUFNLFlBQVksR0FBRyxJQUFJLDRCQUFZLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFFL0QsOENBQThDO1FBQzlDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztZQUM3QixHQUFHLCtDQUErQjtZQUNsQyxvQkFBb0IsRUFBRSxDQUFDLDRCQUE0QixDQUFDO1NBQ3JELENBQUMsQ0FBQztRQUVILGdFQUFnRTtRQUNoRSxxQkFBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSx5Q0FBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFHRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUN6QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUN6QyxPQUFPLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQy9CLEtBQUs7U0FDTixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzRUQsc0NBMkVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3BlY3RzLCBDZm5PdXRwdXQsIER1cmF0aW9uLCBTdGFjaywgU3RhY2tQcm9wcywgU3RhZ2V9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtQYXJhbWV0ZXJTdG9yZSwgUGFyYW1ldGVyU3RvcmVPcHRpb25zfSBmcm9tIFwiLi4vLi4vYXdzLXNzbVwiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1N0cmluZ1BhcmFtZXRlcn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zc21cIjtcbmltcG9ydCB7XG4gIERhc2hib2FyZFJlbmRlcmluZ1ByZWZlcmVuY2UsXG4gIERlZmF1bHREYXNoYm9hcmRGYWN0b3J5LFxuICBNb25pdG9yaW5nRmFjYWRlXG59IGZyb20gXCJjZGstbW9uaXRvcmluZy1jb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBBdXRvbWF0aW9uQ29tcG9uZW50QXNwZWN0LFxuICBJbnRlcm5hbEF1dG9tYXRpb25Db21wb25lbnRUYWdzLFxuICBTdGFuZGFyZFRhZ3MsXG4gIFN0YW5kYXJkVGFnc1Byb3BzXG59IGZyb20gXCIuL3N0YW5kYXJkLXRhZ3NcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBFeHRTdGFjay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRlbmRlZFN0YWNrT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFByZWZpeCB0byBiZSB1c2VkIGJ5IHBhcmFtZXRlciBleHBvcnRzIHRvIGJlIHN0b3JlZCBpbiB0aGVcbiAgICogU3lzdGVtcyBNYW5hZ2VyIFBhcmFtZXRlciBTdG9yZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJHtzdGFnZU5hbWV9LyR7c3RhY2tJZH0vRXhwb3J0cy9cbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlckV4cG9ydHNQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZsYWcgdG8gZGV0ZXJtaW5lIGlmIGEgZGVmYXVsdCBNb25pdG9yaW5nRmFjYWRlIGFuZFxuICAgKiBEZWZhdWx0RGFzaGJvYXJkRmFjdG9yeSBzaG91bGQgYmUgY3JlYXRlZCBpbiB0aGlzIHN0YWNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVNb25pdG9yaW5nRmFjYWRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJlZml4IGFkZGVkIHRvIGVhY2ggZGFzaGJvYXJkIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHN0YWNrTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGFzaGJvYXJkTmFtZVByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogRmxhZyB0byBkZXRlcm1pbmUgaWYgdGhlIGRlZmF1bHQgZGFzaGJvYXJkIHNob3VsZCBiZSBjcmVhdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlRGFzaGJvYXJkPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBGbGFnIHRvIGRldGVybWluZSBpZiB0aGUgc3VtbWFyeSBkYXNoYm9hcmQgc2hvdWxkIGJlIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVTdW1tYXJ5RGFzaGJvYXJkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRmxhZyB0byBkZXRlcm1pbmUgaWYgdGhlIGFsYXJtIGRhc2hib2FyZCBzaG91bGQgYmUgY3JldGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlQWxhcm1EYXNoYm9hcmQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcgcHJlZmVyZW5jZSB0byBkYXNoYm9hcmRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEYXNoYm9hcmRSZW5kZXJpbmdQcmVmZXJlbmNlLklOVEVSQUNUSVZFX09OTFlcbiAgICovXG4gIHJlYWRvbmx5IGRhc2hib2FyZFJlbmRlcmluZ1ByZWZlcmVuY2U/OiBEYXNoYm9hcmRSZW5kZXJpbmdQcmVmZXJlbmNlO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IG5hbWVzcGFjZSBmb3IgbWV0cmljcy5cbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY05hbWVzcGFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogRGVmYXVsdCBtZXRyaWMgcGVyaW9kXG4gICAqL1xuICByZWFkb25seSBtZXRyaWNQZXJpb2Q/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogUHJlZml4IGZvciBnZW5lcmF0ZWQgYWxhcm1zLlxuICAgKlxuICAgKiBAZGVmYXVsdCBzdGFja05hbWVcbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtTmFtZVByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogRW5hYmxlcyBhbGFybSBhY3Rpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhbGFybUFjdGlvbnNFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0cyBzdGFuZGFyZCB0YWdzIGZvciB0aGlzIFN0YWNrLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhbmRhcmRUYWdzPzogU3RhbmRhcmRUYWdzUHJvcHM7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgRXh0U3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kZWRTdGFja1Byb3BzIGV4dGVuZHMgRXh0ZW5kZWRTdGFja09wdGlvbnMsIFN0YWNrUHJvcHMge31cblxuLyoqXG4gKiBFeHRlbmRlZCB2ZXJzaW9uIG9mIFN0YWNrIHByb3ZpZGluZyBmdW5jdGlvbmFsaXR5IGZvciBwYXJhbWV0ZXIgZXhwb3J0cyBhbmQgbW9uaXRvcmluZy5cbiAqL1xuZXhwb3J0IGNsYXNzIEV4dGVuZGVkU3RhY2sgZXh0ZW5kcyBTdGFjayB7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhcmFtZXRlckV4cG9ydHM6IFBhcmFtZXRlclN0b3JlO1xuICByZWFkb25seSBwYXJhbWV0ZXJFeHBvcnRPcHRpb25zOiBQYXJhbWV0ZXJTdG9yZU9wdGlvbnM7XG4gIHJlYWRvbmx5IG1vbml0b3JpbmdGYWNhZGU/OiBNb25pdG9yaW5nRmFjYWRlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogRXh0ZW5kZWRTdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBjb25zdCBzdGFnZU5hbWUgPSBTdGFnZS5vZih0aGlzKT8uc3RhZ2VOYW1lO1xuXG4gICAgdGhpcy5wYXJhbWV0ZXJFeHBvcnRPcHRpb25zID0ge1xuICAgICAgcHJlZml4OiBwcm9wcz8ucGFyYW1ldGVyRXhwb3J0c1ByZWZpeCA/PyAoc3RhZ2VOYW1lID09PSB1bmRlZmluZWQgPyBcIlwiIDogYC8ke3N0YWdlTmFtZX1gKSArIGAvJHtpZH0vRXhwb3J0cy9gLFxuICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvblxuICAgIH07XG4gICAgdGhpcy5wYXJhbWV0ZXJFeHBvcnRzID0gbmV3IFBhcmFtZXRlclN0b3JlKHRoaXMsIFwiUGFyYW1ldGVyRXhwb3J0c1wiLCB0aGlzLnBhcmFtZXRlckV4cG9ydE9wdGlvbnMpO1xuXG4gICAgaWYgKHByb3BzPy5jcmVhdGVNb25pdG9yaW5nRmFjYWRlID8/IHRydWUpIHtcbiAgICAgIGNvbnN0IGRhc2hib2FyZEZhY3RvcnkgPSBuZXcgRGVmYXVsdERhc2hib2FyZEZhY3RvcnkodGhpcywgXCJEYXNoYm9hcmRGYWN0b3J5XCIsIHtcbiAgICAgICAgZGFzaGJvYXJkTmFtZVByZWZpeDogcHJvcHM/LmRhc2hib2FyZE5hbWVQcmVmaXggPz8gdGhpcy5zdGFja05hbWUsXG4gICAgICAgIGNyZWF0ZUFsYXJtRGFzaGJvYXJkOiBwcm9wcz8uY3JlYXRlQWxhcm1EYXNoYm9hcmQgPz8gZmFsc2UsXG4gICAgICAgIGNyZWF0ZURhc2hib2FyZDogcHJvcHM/LmNyZWF0ZURhc2hib2FyZCA/PyBmYWxzZSxcbiAgICAgICAgY3JlYXRlU3VtbWFyeURhc2hib2FyZDogcHJvcHM/LmNyZWF0ZVN1bW1hcnlEYXNoYm9hcmQgPz8gZmFsc2UsXG4gICAgICAgIHJlbmRlcmluZ1ByZWZlcmVuY2U6IHByb3BzPy5kYXNoYm9hcmRSZW5kZXJpbmdQcmVmZXJlbmNlID8/IERhc2hib2FyZFJlbmRlcmluZ1ByZWZlcmVuY2UuSU5URVJBQ1RJVkVfT05MWVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMubW9uaXRvcmluZ0ZhY2FkZSA9IG5ldyBNb25pdG9yaW5nRmFjYWRlKHRoaXMsIFwiTW9uaXRvcmluZ1wiLCB7XG4gICAgICAgIG1ldHJpY0ZhY3RvcnlEZWZhdWx0czoge1xuICAgICAgICAgIG5hbWVzcGFjZTogcHJvcHM/Lm1ldHJpY05hbWVzcGFjZSxcbiAgICAgICAgICBwZXJpb2Q6IHByb3BzPy5tZXRyaWNQZXJpb2RcbiAgICAgICAgfSxcbiAgICAgICAgYWxhcm1GYWN0b3J5RGVmYXVsdHM6IHtcbiAgICAgICAgICBhY3Rpb25zRW5hYmxlZDogcHJvcHM/LmFsYXJtQWN0aW9uc0VuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgICAgICBhbGFybU5hbWVQcmVmaXg6IHRoaXMuc3RhY2tOYW1lXG4gICAgICAgIH0sXG4gICAgICAgIGRhc2hib2FyZEZhY3Rvcnk6IGRhc2hib2FyZEZhY3RvcnlcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFNldHVwIHN0YW5kYXJkIHRhZ3NcbiAgICBjb25zdCBzdGFuZGFyZFRhZ3NQcm9wcyA9IFN0YW5kYXJkVGFncy5tZXJnZSh0aGlzLm5vZGUudHJ5R2V0Q29udGV4dChcInN0YW5kYXJkVGFnc1wiKSwgcHJvcHM/LnN0YW5kYXJkVGFncyk7XG4gICAgY29uc3Qgc3RhbmRhcmRUYWdzID0gbmV3IFN0YW5kYXJkVGFncyh0aGlzLCBzdGFuZGFyZFRhZ3NQcm9wcyk7XG5cbiAgICAvLyBBZGQgYXV0b21hdGlvbiBjb21wb25lbnQgdGFncyB0byB0aGlzIHN0YWNrXG4gICAgc3RhbmRhcmRUYWdzLmFkZEF1dG9tYXRpb25UYWdzKHtcbiAgICAgIC4uLkludGVybmFsQXV0b21hdGlvbkNvbXBvbmVudFRhZ3MsXG4gICAgICBpbmNsdWRlUmVzb3VyY2VUeXBlczogW1wiQVdTOjpDbG91ZEZvcm1hdGlvbjo6U3RhY2tcIl1cbiAgICB9KTtcblxuICAgIC8vIEFkZCBhdXRvbWF0aW9uIGNvbXBvbmVudCB0YWdzIHRvIEF1dG9tYXRpb25Db21wb25lbnQgY2hpbGRyZW5cbiAgICBBc3BlY3RzLm9mKHRoaXMpLmFkZChuZXcgQXV0b21hdGlvbkNvbXBvbmVudEFzcGVjdChzdGFuZGFyZFRhZ3NQcm9wcy5zdXBwcmVzc1RhZ2dpbmcpKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gZXhwb3J0cyBhIHBhcmFtZXRlciBhcyBhbiBTU00gUGFyYW1ldGVyLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSB0aGUgcGFyYW1ldGVyIG5hbWVcbiAgICogQHBhcmFtIHZhbHVlIHRoZSBwYXJhbWV0ZXIgdmFsdWVcbiAgICovXG4gIGV4cG9ydFBhcmFtZXRlcihuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBTdHJpbmdQYXJhbWV0ZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckV4cG9ydHMud3JpdGUobmFtZSwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gb3V0cHV0IGEgcGFyYW1ldGVyIGFzIGEgQ2ZuT3V0cHV0LlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSB0aGUgcGFyYW1ldGVyIG5hbWVcbiAgICogQHBhcmFtIHZhbHVlIHRoZSBwYXJhbWV0ZXIgdmFsdWVcbiAgICovXG4gIG91dHB1dFBhcmFtZXRlcihuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBDZm5PdXRwdXQge1xuICAgIHJldHVybiBuZXcgQ2ZuT3V0cHV0KHRoaXMsIG5hbWUsIHtcbiAgICAgIHZhbHVlXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/aws-cdk/lib/index.d.ts
CHANGED