truemark-cdk-lib 1.2.4-alpha.7 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 -14
- package/aws-apigatewayv2/lib/standard-domain-name.js +24 -25
- package/aws-apigatewayv2/lib/standard-http-api.d.ts +59 -0
- package/aws-apigatewayv2/lib/standard-http-api.js +49 -0
- package/aws-apigatewayv2/lib/standard-web-socket-api.d.ts +60 -0
- package/aws-apigatewayv2/lib/standard-web-socket-api.js +53 -0
- package/aws-cdk/lib/extended-app.d.ts +29 -0
- package/aws-cdk/lib/extended-app.js +37 -0
- package/aws-cdk/lib/extended-construct.d.ts +14 -0
- package/aws-cdk/lib/extended-construct.js +14 -0
- package/aws-cdk/lib/extended-stack.d.ts +5 -7
- package/aws-cdk/lib/extended-stack.js +5 -11
- package/{test/aws-codepipeline → aws-cdk/lib}/extended-stack.test.js +4 -4
- package/aws-cdk/lib/extended-stage.d.ts +11 -0
- package/aws-cdk/lib/extended-stage.js +14 -0
- package/aws-cdk/lib/index.d.ts +3 -4
- package/aws-cdk/lib/index.js +4 -5
- package/aws-cdk/lib/single-env-app.d.ts +4 -4
- package/aws-cdk/lib/single-env-app.js +13 -5
- package/aws-cdk/lib/standard-tags.d.ts +39 -40
- package/aws-cdk/lib/standard-tags.js +101 -15
- package/aws-cdk/lib/standard-tags.test.js +114 -0
- package/aws-centergauge/lib/alerts-topic.d.ts +3 -2
- package/aws-centergauge/lib/alerts-topic.js +4 -11
- package/aws-cloudfront/lib/behavior-builder.d.ts +1 -1
- package/aws-cloudfront/lib/behavior-builder.js +11 -9
- package/aws-cloudfront/lib/website-redirect-function.d.ts +14 -0
- package/aws-cloudfront/lib/website-redirect-function.js +30 -5
- package/{test/aws-cloudwatch → aws-cloudwatch/lib}/estimated-charges-alarm.test.js +4 -4
- package/aws-codepipeline/lib/cdk-pipeline.d.ts +26 -1
- package/aws-codepipeline/lib/cdk-pipeline.js +69 -16
- package/{test/aws-codepipeline → aws-codepipeline/lib}/cdk-pipeline.test.js +4 -4
- package/{test/aws-dynamodb → aws-dynamodb/lib}/batch-write-item.test.js +3 -3
- package/aws-dynamodb/lib/extended-table.d.ts +2 -1
- package/aws-dynamodb/lib/extended-table.js +3 -1
- package/aws-dynamodb/lib/extended-table.test.js +32 -0
- package/{test/aws-dynamodb → aws-dynamodb/lib}/put-item.test.js +3 -3
- package/aws-dynamodb/lib/standard-table.d.ts +2 -3
- package/aws-dynamodb/lib/standard-table.js +4 -10
- package/aws-ecs/lib/standard-application-fargate-service.d.ts +5 -1
- package/aws-ecs/lib/standard-application-fargate-service.js +6 -6
- package/aws-ecs/lib/standard-fargate-cluster.d.ts +3 -2
- package/aws-ecs/lib/standard-fargate-cluster.js +4 -11
- package/aws-ecs/lib/standard-fargate-service.d.ts +9 -2
- package/aws-ecs/lib/standard-fargate-service.js +5 -11
- package/aws-lambda/lib/extended-function.test.js +20 -0
- package/{test/aws-lambda → aws-lambda/lib}/extended-go-function.test.js +4 -4
- package/aws-lambda/lib/extended-nodejs-function.d.ts +1 -1
- package/aws-lambda/lib/extended-nodejs-function.js +1 -1
- package/aws-lambda/lib/extended-nodejs-function.test.js +20 -0
- package/aws-lambda/lib/extended-python-function.test.js +17 -0
- package/{test/aws-lambda → aws-lambda/lib}/standard-python-function.test.js +2 -2
- package/{test/aws-monitoring → aws-monitoring/lib}/alarm-facade.test.js +9 -9
- package/aws-patterns-domain-redirect/index.d.ts +1 -0
- package/aws-patterns-domain-redirect/index.js +14 -0
- package/aws-patterns-domain-redirect/lib/domain-redirect.d.ts +38 -0
- package/aws-patterns-domain-redirect/lib/domain-redirect.js +71 -0
- package/aws-patterns-domain-redirect/lib/index.d.ts +1 -0
- package/aws-patterns-domain-redirect/lib/index.js +14 -0
- package/aws-patterns-wordpress/lib/init.sh +4 -4
- package/aws-patterns-wordpress/lib/word-press-instance.d.ts +43 -5
- package/aws-patterns-wordpress/lib/word-press-instance.js +132 -89
- package/aws-route53/lib/domain-name.d.ts +7 -14
- package/aws-route53/lib/domain-name.js +27 -28
- package/{test/aws-route53 → aws-route53/lib}/domain-name.test.js +8 -8
- 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/extended-record-target.test.js +52 -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 +27 -4
- package/aws-s3/lib/cloud-front-bucket.js +32 -6
- package/aws-s3/lib/index.d.ts +1 -0
- package/aws-s3/lib/index.js +2 -1
- package/aws-s3/lib/replication-role.d.ts +32 -0
- package/aws-s3/lib/replication-role.js +85 -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 -2
- package/aws-sqs/lib/standard-queue.js +4 -11
- package/aws-sqs/lib/standard-queue.test.js +16 -0
- package/aws-ssm/lib/parameter-reader.js +2 -2
- package/{test/aws-ssm → aws-ssm/lib}/parameter-store.test.js +4 -4
- package/aws-vpc/lib/network-parameters.d.ts +3 -2
- package/aws-vpc/lib/network-parameters.js +4 -11
- package/aws-website/lib/website.test.d.ts +1 -0
- package/aws-website/lib/website.test.js +60 -0
- package/helpers/lib/index.d.ts +0 -1
- package/helpers/lib/index.js +1 -2
- package/helpers/lib/string-helper.test.d.ts +1 -0
- package/{test/helpers → helpers/lib}/string-helper.test.js +2 -2
- package/index.d.ts +1 -0
- package/index.js +2 -1
- package/jest.config.js +1 -1
- package/package.json +15 -7
- package/{test/test-helper.d.ts → test-helper.d.ts} +8 -3
- package/test-helper.js +44 -0
- package/truemark.d.ts +2 -0
- package/truemark.js +9 -0
- package/aws-cdk/lib/standard-app.d.ts +0 -21
- package/aws-cdk/lib/standard-app.js +0 -29
- 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 -19
- package/aws-cdk/lib/standard-stack.js +0 -36
- package/aws-cdk/lib/standard-stage.d.ts +0 -19
- package/aws-cdk/lib/standard-stage.js +0 -24
- 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
- package/test/aws-dynamodb/extended-table.test.js +0 -32
- package/test/aws-lambda/extended-function.test.js +0 -20
- package/test/aws-lambda/extended-nodejs-function.test.js +0 -20
- package/test/aws-lambda/extended-python-function.test.js +0 -17
- package/test/aws-sqs/standard-queue.test.js +0 -16
- package/test/aws-website/website.test.js +0 -60
- package/test/test-helper.js +0 -34
- /package/{test/aws-codepipeline → aws-cdk/lib}/extended-stack.test.d.ts +0 -0
- /package/{test/aws-cloudwatch/estimated-charges-alarm.test.d.ts → aws-cdk/lib/standard-tags.test.d.ts} +0 -0
- /package/{test/aws-codepipeline/cdk-pipeline.test.d.ts → aws-cloudwatch/lib/estimated-charges-alarm.test.d.ts} +0 -0
- /package/{test/aws-dynamodb/batch-write-item.test.d.ts → aws-codepipeline/lib/cdk-pipeline.test.d.ts} +0 -0
- /package/{test/aws-dynamodb/extended-table.test.d.ts → aws-dynamodb/lib/batch-write-item.test.d.ts} +0 -0
- /package/{test/aws-dynamodb/put-item.test.d.ts → aws-dynamodb/lib/extended-table.test.d.ts} +0 -0
- /package/{test/aws-lambda/extended-function.test.d.ts → aws-dynamodb/lib/put-item.test.d.ts} +0 -0
- /package/{test/aws-lambda/extended-go-function.test.d.ts → aws-lambda/lib/extended-function.test.d.ts} +0 -0
- /package/{test/aws-lambda/extended-nodejs-function.test.d.ts → aws-lambda/lib/extended-go-function.test.d.ts} +0 -0
- /package/{test/aws-lambda/extended-python-function.test.d.ts → aws-lambda/lib/extended-nodejs-function.test.d.ts} +0 -0
- /package/{test/aws-lambda/standard-python-function.test.d.ts → aws-lambda/lib/extended-python-function.test.d.ts} +0 -0
- /package/{test/aws-monitoring/alarm-facade.test.d.ts → aws-lambda/lib/standard-python-function.test.d.ts} +0 -0
- /package/{test/aws-route53/domain-name.test.d.ts → aws-monitoring/lib/alarm-facade.test.d.ts} +0 -0
- /package/{test/aws-sqs/standard-queue.test.d.ts → aws-route53/lib/domain-name.test.d.ts} +0 -0
- /package/{test/aws-ssm/parameter-store.test.d.ts → aws-route53/lib/extended-record-target.test.d.ts} +0 -0
- /package/{test/aws-website/website.test.d.ts → aws-sqs/lib/standard-queue.test.d.ts} +0 -0
- /package/{test/helpers/string-helper.test.d.ts → aws-ssm/lib/parameter-store.test.d.ts} +0 -0
|
@@ -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 {
|
|
7
|
-
|
|
6
|
+
import { ARecordOptions } from "../../aws-route53";
|
|
7
|
+
import { ExtendedConstruct, ExtendedConstructProps } from "../../aws-cdk";
|
|
8
|
+
export interface StandardDomainNameProps extends tmroute53.DomainNameProps, ExtendedConstructProps {
|
|
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,34 @@ 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
|
|
32
|
+
export declare class StandardDomainName extends ExtendedConstruct {
|
|
32
33
|
readonly domainName: tmroute53.DomainName;
|
|
33
34
|
readonly certificate: ICertificate;
|
|
34
|
-
readonly recordTarget: RecordTarget;
|
|
35
35
|
readonly gatewayDomainName: DomainName;
|
|
36
36
|
constructor(scope: Construct, id: string, props: StandardDomainNameProps);
|
|
37
|
+
toRecordTarget(evaluateTargetHealth?: boolean): RecordTarget;
|
|
37
38
|
/**
|
|
38
39
|
* Creates a route53 ARecord pointing to this domain name.
|
|
40
|
+
*
|
|
41
|
+
* @param evaluateTargetHealth Determines if route53 evaluates the target's health. Defaults to true.
|
|
42
|
+
* @param options additional options for creating the record
|
|
39
43
|
*/
|
|
40
|
-
createARecord(): ARecord;
|
|
44
|
+
createARecord(evaluateTargetHealth?: boolean, options?: ARecordOptions): ARecord;
|
|
41
45
|
/**
|
|
42
46
|
* Creates a route53 weighted record pointing to this domain name.
|
|
43
47
|
*
|
|
44
48
|
* @param weight the initial weight; defaults to 0
|
|
49
|
+
* @param evaluateTargetHealth Determines if route53 evaluates the target's health. Defaults to true.
|
|
50
|
+
* @param options additional options for creating the record
|
|
45
51
|
*/
|
|
46
|
-
createWeightedARecord(weight?:
|
|
52
|
+
createWeightedARecord(weight: number, evaluateTargetHealth?: boolean, options?: ARecordOptions): ARecord;
|
|
47
53
|
/**
|
|
48
54
|
* 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
55
|
*
|
|
54
|
-
* @param
|
|
56
|
+
* @param evaluateTargetHealth Determines if route53 evaluates the target's health. Defaults to true.
|
|
57
|
+
* @param options additional options for creating the record
|
|
55
58
|
*/
|
|
56
|
-
|
|
59
|
+
createLatencyARecord(evaluateTargetHealth?: boolean, options?: ARecordOptions): ARecord;
|
|
57
60
|
/**
|
|
58
61
|
* Returns the FQDN of this domain name.
|
|
59
62
|
*/
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StandardDomainName = void 0;
|
|
4
|
-
const constructs_1 = require("constructs");
|
|
5
4
|
const tmroute53 = require("../../aws-route53");
|
|
6
5
|
const targets = require("aws-cdk-lib/aws-route53-targets");
|
|
7
6
|
const aws_apigatewayv2_alpha_1 = require("@aws-cdk/aws-apigatewayv2-alpha");
|
|
8
7
|
const aws_route53_1 = require("aws-cdk-lib/aws-route53");
|
|
9
|
-
const
|
|
8
|
+
const aws_route53_2 = require("../../aws-route53");
|
|
10
9
|
const aws_cdk_1 = require("../../aws-cdk");
|
|
10
|
+
const truemark_1 = require("../../truemark");
|
|
11
11
|
/**
|
|
12
12
|
* Standard construct used to create an API Gateway V2 Domain Name.
|
|
13
13
|
*/
|
|
14
|
-
class StandardDomainName extends
|
|
14
|
+
class StandardDomainName extends aws_cdk_1.ExtendedConstruct {
|
|
15
15
|
constructor(scope, id, props) {
|
|
16
16
|
var _a;
|
|
17
|
-
super(scope, id);
|
|
17
|
+
super(scope, id, { standardTags: aws_cdk_1.StandardTags.merge(props.standardTags, truemark_1.LibStandardTags) });
|
|
18
18
|
this.domainName = new tmroute53.DomainName(props);
|
|
19
19
|
this.certificate = (_a = props.certificate) !== null && _a !== void 0 ? _a : this.domainName.createCertificate(scope);
|
|
20
20
|
this.gatewayDomainName = new aws_apigatewayv2_alpha_1.DomainName(this, "Default", {
|
|
@@ -22,41 +22,40 @@ class StandardDomainName extends constructs_1.Construct {
|
|
|
22
22
|
certificate: this.certificate,
|
|
23
23
|
securityPolicy: props.securityPolicy
|
|
24
24
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
});
|
|
25
|
+
}
|
|
26
|
+
toRecordTarget(evaluateTargetHealth) {
|
|
27
|
+
const domainProperties = new targets.ApiGatewayv2DomainProperties(this.gatewayDomainName.regionalDomainName, this.gatewayDomainName.regionalHostedZoneId);
|
|
28
|
+
return evaluateTargetHealth
|
|
29
|
+
? aws_route53_2.ExtendedRecordTarget.fromAlias(domainProperties, evaluateTargetHealth)
|
|
30
|
+
: aws_route53_1.RecordTarget.fromAlias(domainProperties);
|
|
32
31
|
}
|
|
33
32
|
/**
|
|
34
33
|
* Creates a route53 ARecord pointing to this domain name.
|
|
34
|
+
*
|
|
35
|
+
* @param evaluateTargetHealth Determines if route53 evaluates the target's health. Defaults to true.
|
|
36
|
+
* @param options additional options for creating the record
|
|
35
37
|
*/
|
|
36
|
-
createARecord() {
|
|
37
|
-
return this.domainName.createARecord(this, this.
|
|
38
|
+
createARecord(evaluateTargetHealth, options) {
|
|
39
|
+
return this.domainName.createARecord(this, this.toRecordTarget(evaluateTargetHealth !== null && evaluateTargetHealth !== void 0 ? evaluateTargetHealth : true), options);
|
|
38
40
|
}
|
|
39
41
|
/**
|
|
40
42
|
* Creates a route53 weighted record pointing to this domain name.
|
|
41
43
|
*
|
|
42
44
|
* @param weight the initial weight; defaults to 0
|
|
45
|
+
* @param evaluateTargetHealth Determines if route53 evaluates the target's health. Defaults to true.
|
|
46
|
+
* @param options additional options for creating the record
|
|
43
47
|
*/
|
|
44
|
-
createWeightedARecord(weight) {
|
|
45
|
-
return this.domainName.createWeightedARecord(this, this.
|
|
48
|
+
createWeightedARecord(weight, evaluateTargetHealth, options) {
|
|
49
|
+
return this.domainName.createWeightedARecord(this, this.toRecordTarget(evaluateTargetHealth !== null && evaluateTargetHealth !== void 0 ? evaluateTargetHealth : true), weight, options);
|
|
46
50
|
}
|
|
47
51
|
/**
|
|
48
52
|
* 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
53
|
*
|
|
56
|
-
* @param
|
|
54
|
+
* @param evaluateTargetHealth Determines if route53 evaluates the target's health. Defaults to true.
|
|
55
|
+
* @param options additional options for creating the record
|
|
57
56
|
*/
|
|
58
|
-
|
|
59
|
-
return this.domainName.
|
|
57
|
+
createLatencyARecord(evaluateTargetHealth, options) {
|
|
58
|
+
return this.domainName.createLatencyARecord(this, this.toRecordTarget(evaluateTargetHealth !== null && evaluateTargetHealth !== void 0 ? evaluateTargetHealth : true), options);
|
|
60
59
|
}
|
|
61
60
|
/**
|
|
62
61
|
* Returns the FQDN of this domain name.
|
|
@@ -66,4 +65,4 @@ class StandardDomainName extends constructs_1.Construct {
|
|
|
66
65
|
}
|
|
67
66
|
}
|
|
68
67
|
exports.StandardDomainName = StandardDomainName;
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtZG9tYWluLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFuZGFyZC1kb21haW4tbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQ0FBK0M7QUFDL0MsMkRBQTJEO0FBRTNELDRFQUEyRTtBQUMzRSx5REFBOEQ7QUFDOUQsbURBQXVFO0FBQ3ZFLDJDQUFzRjtBQUN0Riw2Q0FBK0M7QUEyQi9DOztHQUVHO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSwyQkFBaUI7SUFNdkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE4Qjs7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBQyxZQUFZLEVBQUUsc0JBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSwwQkFBZSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxXQUFXLFNBQUcsS0FBSyxDQUFDLFdBQVcsbUNBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxtQ0FBVSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDdkQsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQ3RDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxvQkFBOEI7UUFDM0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLE9BQU8sQ0FBQyw0QkFBNEIsQ0FDL0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzFGLE9BQU8sb0JBQW9CO1lBQ3pCLENBQUMsQ0FBQyxrQ0FBb0IsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsb0JBQW9CLENBQUM7WUFDeEUsQ0FBQyxDQUFDLDBCQUFZLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLG9CQUE4QixFQUFFLE9BQXdCO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLGFBQXBCLG9CQUFvQixjQUFwQixvQkFBb0IsR0FBSSxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gscUJBQXFCLENBQUMsTUFBYyxFQUFFLG9CQUE4QixFQUFFLE9BQXdCO1FBQzVGLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsYUFBcEIsb0JBQW9CLGNBQXBCLG9CQUFvQixHQUFJLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6SCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxvQkFBb0IsQ0FBQyxvQkFBOEIsRUFBRSxPQUF3QjtRQUMzRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLGFBQXBCLG9CQUFvQixjQUFwQixvQkFBb0IsR0FBSSxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQTlERCxnREE4REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHRtcm91dGU1MyBmcm9tIFwiLi4vLi4vYXdzLXJvdXRlNTNcIjtcbmltcG9ydCAqIGFzIHRhcmdldHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzLXRhcmdldHNcIjtcbmltcG9ydCB7SUNlcnRpZmljYXRlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHtEb21haW5OYW1lLCBTZWN1cml0eVBvbGljeX0gZnJvbSBcIkBhd3MtY2RrL2F3cy1hcGlnYXRld2F5djItYWxwaGFcIjtcbmltcG9ydCB7QVJlY29yZCwgUmVjb3JkVGFyZ2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7QVJlY29yZE9wdGlvbnMsIEV4dGVuZGVkUmVjb3JkVGFyZ2V0fSBmcm9tIFwiLi4vLi4vYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7RXh0ZW5kZWRDb25zdHJ1Y3QsIEV4dGVuZGVkQ29uc3RydWN0UHJvcHMsIFN0YW5kYXJkVGFnc30gZnJvbSBcIi4uLy4uL2F3cy1jZGtcIjtcbmltcG9ydCB7TGliU3RhbmRhcmRUYWdzfSBmcm9tIFwiLi4vLi4vdHJ1ZW1hcmtcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdGFuZGFyZERvbWFpbk5hbWVQcm9wcyBleHRlbmRzIHRtcm91dGU1My5Eb21haW5OYW1lUHJvcHMsIEV4dGVuZGVkQ29uc3RydWN0UHJvcHMge1xuXG4gIC8qKlxuICAgKiBUaGUgb3B0aW9uYWwgQUNNIGNlcnRpZmljYXRlIGZvciB0aGlzIGRvbWFpbiBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG9uZSBpcyBnZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGNlcnRpZmljYXRlPzogSUNlcnRpZmljYXRlO1xuXG4gIC8qKlxuICAgKiBUaGUgVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IChUTFMpIHZlcnNpb24gKyBjaXBoZXIgc3VpdGUgZm9yIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gU2VjdXJpdHlQb2xpY3kuVExTXzFfMlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlQb2xpY3k/OiBTZWN1cml0eVBvbGljeTtcblxuICAvKipcbiAgICogU2V0dGluZyB0aGlzIHRvIHRydWUgd2lsbCBzdXBwcmVzcyB0aGUgY3JlYXRpb24gb2YgZGVmYXVsdCB0YWdzIG9uIHJlc291cmNlc1xuICAgKiBjcmVhdGVkIGJ5IHRoaXMgY29uc3RydWN0LiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc1RhZ2dpbmc/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFN0YW5kYXJkIGNvbnN0cnVjdCB1c2VkIHRvIGNyZWF0ZSBhbiBBUEkgR2F0ZXdheSBWMiBEb21haW4gTmFtZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YW5kYXJkRG9tYWluTmFtZSBleHRlbmRzIEV4dGVuZGVkQ29uc3RydWN0IHtcblxuICByZWFkb25seSBkb21haW5OYW1lOiB0bXJvdXRlNTMuRG9tYWluTmFtZTtcbiAgcmVhZG9ubHkgY2VydGlmaWNhdGU6IElDZXJ0aWZpY2F0ZTtcbiAgcmVhZG9ubHkgZ2F0ZXdheURvbWFpbk5hbWU6IERvbWFpbk5hbWU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN0YW5kYXJkRG9tYWluTmFtZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7c3RhbmRhcmRUYWdzOiBTdGFuZGFyZFRhZ3MubWVyZ2UocHJvcHMuc3RhbmRhcmRUYWdzLCBMaWJTdGFuZGFyZFRhZ3MpfSk7XG4gICAgdGhpcy5kb21haW5OYW1lID0gbmV3IHRtcm91dGU1My5Eb21haW5OYW1lKHByb3BzKTtcbiAgICB0aGlzLmNlcnRpZmljYXRlID0gcHJvcHMuY2VydGlmaWNhdGUgPz8gdGhpcy5kb21haW5OYW1lLmNyZWF0ZUNlcnRpZmljYXRlKHNjb3BlKTtcbiAgICB0aGlzLmdhdGV3YXlEb21haW5OYW1lID0gbmV3IERvbWFpbk5hbWUodGhpcywgXCJEZWZhdWx0XCIsIHtcbiAgICAgIGRvbWFpbk5hbWU6IHRoaXMuZG9tYWluTmFtZS50b1N0cmluZygpLFxuICAgICAgY2VydGlmaWNhdGU6IHRoaXMuY2VydGlmaWNhdGUsXG4gICAgICBzZWN1cml0eVBvbGljeTogcHJvcHMuc2VjdXJpdHlQb2xpY3lcbiAgICB9KTtcbiAgfVxuXG4gIHRvUmVjb3JkVGFyZ2V0KGV2YWx1YXRlVGFyZ2V0SGVhbHRoPzogYm9vbGVhbik6IFJlY29yZFRhcmdldCB7XG4gICAgY29uc3QgZG9tYWluUHJvcGVydGllcyA9IG5ldyB0YXJnZXRzLkFwaUdhdGV3YXl2MkRvbWFpblByb3BlcnRpZXMoXG4gICAgICB0aGlzLmdhdGV3YXlEb21haW5OYW1lLnJlZ2lvbmFsRG9tYWluTmFtZSwgdGhpcy5nYXRld2F5RG9tYWluTmFtZS5yZWdpb25hbEhvc3RlZFpvbmVJZCk7XG4gICAgcmV0dXJuIGV2YWx1YXRlVGFyZ2V0SGVhbHRoXG4gICAgICA/IEV4dGVuZGVkUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhkb21haW5Qcm9wZXJ0aWVzLCBldmFsdWF0ZVRhcmdldEhlYWx0aClcbiAgICAgIDogUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhkb21haW5Qcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcm91dGU1MyBBUmVjb3JkIHBvaW50aW5nIHRvIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBldmFsdWF0ZVRhcmdldEhlYWx0aCBEZXRlcm1pbmVzIGlmIHJvdXRlNTMgZXZhbHVhdGVzIHRoZSB0YXJnZXQncyBoZWFsdGguIERlZmF1bHRzIHRvIHRydWUuXG4gICAqIEBwYXJhbSBvcHRpb25zIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgY3JlYXRpbmcgdGhlIHJlY29yZFxuICAgKi9cbiAgY3JlYXRlQVJlY29yZChldmFsdWF0ZVRhcmdldEhlYWx0aD86IGJvb2xlYW4sIG9wdGlvbnM/OiBBUmVjb3JkT3B0aW9ucyk6IEFSZWNvcmQge1xuICAgIHJldHVybiB0aGlzLmRvbWFpbk5hbWUuY3JlYXRlQVJlY29yZCh0aGlzLCB0aGlzLnRvUmVjb3JkVGFyZ2V0KGV2YWx1YXRlVGFyZ2V0SGVhbHRoID8/IHRydWUpLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcm91dGU1MyB3ZWlnaHRlZCByZWNvcmQgcG9pbnRpbmcgdG8gdGhpcyBkb21haW4gbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIHdlaWdodCB0aGUgaW5pdGlhbCB3ZWlnaHQ7IGRlZmF1bHRzIHRvIDBcbiAgICogQHBhcmFtIGV2YWx1YXRlVGFyZ2V0SGVhbHRoIERldGVybWluZXMgaWYgcm91dGU1MyBldmFsdWF0ZXMgdGhlIHRhcmdldCdzIGhlYWx0aC4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgYWRkaXRpb25hbCBvcHRpb25zIGZvciBjcmVhdGluZyB0aGUgcmVjb3JkXG4gICAqL1xuICBjcmVhdGVXZWlnaHRlZEFSZWNvcmQod2VpZ2h0OiBudW1iZXIsIGV2YWx1YXRlVGFyZ2V0SGVhbHRoPzogYm9vbGVhbiwgb3B0aW9ucz86IEFSZWNvcmRPcHRpb25zKTogQVJlY29yZCB7XG4gICAgcmV0dXJuIHRoaXMuZG9tYWluTmFtZS5jcmVhdGVXZWlnaHRlZEFSZWNvcmQodGhpcywgdGhpcy50b1JlY29yZFRhcmdldChldmFsdWF0ZVRhcmdldEhlYWx0aCA/PyB0cnVlKSwgd2VpZ2h0LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcm91dGU1MyBsYXRlbmN5IHJlY29yZCBwb2ludGluZyB0byB0aGlzIGRvbWFpbiBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gZXZhbHVhdGVUYXJnZXRIZWFsdGggRGV0ZXJtaW5lcyBpZiByb3V0ZTUzIGV2YWx1YXRlcyB0aGUgdGFyZ2V0J3MgaGVhbHRoLiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSByZWNvcmRcbiAgICovXG4gIGNyZWF0ZUxhdGVuY3lBUmVjb3JkKGV2YWx1YXRlVGFyZ2V0SGVhbHRoPzogYm9vbGVhbiwgb3B0aW9ucz86IEFSZWNvcmRPcHRpb25zKTogQVJlY29yZCB7XG4gICAgcmV0dXJuIHRoaXMuZG9tYWluTmFtZS5jcmVhdGVMYXRlbmN5QVJlY29yZCh0aGlzLCB0aGlzLnRvUmVjb3JkVGFyZ2V0KGV2YWx1YXRlVGFyZ2V0SGVhbHRoID8/IHRydWUpLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBGUUROIG9mIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqL1xuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRvbWFpbk5hbWUudG9TdHJpbmcoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,59 @@
|
|
|
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 { ExtendedConstruct, ExtendedConstructProps } from "../../aws-cdk";
|
|
7
|
+
/**
|
|
8
|
+
* Properties for StandardHttpApi.
|
|
9
|
+
*/
|
|
10
|
+
export interface StandardHttpApiProps extends ExtendedConstructProps {
|
|
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 ExtendedConstruct {
|
|
55
|
+
readonly domainName: StandardDomainName;
|
|
56
|
+
readonly record: ARecord | LatencyARecord | WeightedARecord | undefined;
|
|
57
|
+
readonly httpApi: HttpApi;
|
|
58
|
+
constructor(scope: Construct, id: string, props: StandardHttpApiProps);
|
|
59
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StandardHttpApi = void 0;
|
|
4
|
+
const standard_domain_name_1 = require("./standard-domain-name");
|
|
5
|
+
const aws_apigatewayv2_alpha_1 = require("@aws-cdk/aws-apigatewayv2-alpha");
|
|
6
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
|
+
const aws_cdk_1 = require("../../aws-cdk");
|
|
8
|
+
const truemark_1 = require("../../truemark");
|
|
9
|
+
/**
|
|
10
|
+
* Abstraction that creates an HttpApi with support infrastructure.
|
|
11
|
+
*/
|
|
12
|
+
class StandardHttpApi extends aws_cdk_1.ExtendedConstruct {
|
|
13
|
+
constructor(scope, id, props) {
|
|
14
|
+
var _a, _b, _c;
|
|
15
|
+
super(scope, id, { standardTags: aws_cdk_1.StandardTags.merge(props.standardTags, truemark_1.LibStandardTags) });
|
|
16
|
+
const domainName = new standard_domain_name_1.StandardDomainName(this, "DomainName", {
|
|
17
|
+
prefix: props.domainPrefix,
|
|
18
|
+
zone: props.domainZone,
|
|
19
|
+
securityPolicy: aws_apigatewayv2_alpha_1.SecurityPolicy.TLS_1_2 // TODO Should be an option
|
|
20
|
+
});
|
|
21
|
+
// TODO Need to add RecordOptions
|
|
22
|
+
if ((_a = props.createRecord) !== null && _a !== void 0 ? _a : true) {
|
|
23
|
+
if (props.recordWeight) {
|
|
24
|
+
domainName.createWeightedARecord(props.recordWeight, (_b = props.evaluateTargetHealth) !== null && _b !== void 0 ? _b : true);
|
|
25
|
+
}
|
|
26
|
+
else if (props.recordLatency) {
|
|
27
|
+
domainName.createLatencyARecord(true);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
domainName.createARecord();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.record = undefined;
|
|
35
|
+
}
|
|
36
|
+
const stage = aws_cdk_lib_1.Stage.of(this);
|
|
37
|
+
const stack = aws_cdk_lib_1.Stack.of(this);
|
|
38
|
+
const httpApi = new aws_apigatewayv2_alpha_1.HttpApi(this, "Default", {
|
|
39
|
+
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`,
|
|
40
|
+
defaultDomainMapping: {
|
|
41
|
+
domainName: domainName.gatewayDomainName
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
this.domainName = domainName;
|
|
45
|
+
this.httpApi = httpApi;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.StandardHttpApi = StandardHttpApi;
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtaHR0cC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFuZGFyZC1odHRwLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxpRUFBMEQ7QUFDMUQsNEVBQXdFO0FBQ3hFLDZDQUF5QztBQUV6QywyQ0FBc0Y7QUFDdEYsNkNBQStDO0FBdUQvQzs7R0FFRztBQUNILE1BQWEsZUFBZ0IsU0FBUSwyQkFBaUI7SUFNcEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjs7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBQyxZQUFZLEVBQUUsc0JBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSwwQkFBZSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBRTFGLE1BQU0sVUFBVSxHQUFHLElBQUkseUNBQWtCLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUM1RCxNQUFNLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDMUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQ3RCLGNBQWMsRUFBRSx1Q0FBYyxDQUFDLE9BQU8sQ0FBQywyQkFBMkI7U0FDbkUsQ0FBQyxDQUFDO1FBRUgsaUNBQWlDO1FBQ2pDLFVBQUksS0FBSyxDQUFDLFlBQVksbUNBQUksSUFBSSxFQUFFO1lBQzlCLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtnQkFDdEIsVUFBVSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxZQUFZLFFBQUUsS0FBSyxDQUFDLG9CQUFvQixtQ0FBSSxJQUFJLENBQUMsQ0FBQTthQUN6RjtpQkFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUU7Z0JBQzlCLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTthQUN0QztpQkFBTTtnQkFDTCxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUE7YUFDM0I7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7U0FDekI7UUFFRCxNQUFNLEtBQUssR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixNQUFNLEtBQUssR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3QixNQUFNLE9BQU8sR0FBRyxJQUFJLGdDQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUMzQyxPQUFPLFFBQUUsS0FBSyxDQUFDLE9BQU8sbUNBQUksR0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsU0FBUyxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxTQUFTLFNBQVM7WUFDekUsb0JBQW9CLEVBQUU7Z0JBQ3BCLFVBQVUsRUFBRSxVQUFVLENBQUMsaUJBQWlCO2FBQ3pDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztDQUNGO0FBekNELDBDQXlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtEb21haW5OYW1lLCBMYXRlbmN5QVJlY29yZCwgV2VpZ2h0ZWRBUmVjb3JkfSBmcm9tIFwiLi4vLi4vYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7U3RhbmRhcmREb21haW5OYW1lfSBmcm9tIFwiLi9zdGFuZGFyZC1kb21haW4tbmFtZVwiO1xuaW1wb3J0IHtIdHRwQXBpLCBTZWN1cml0eVBvbGljeX0gZnJvbSBcIkBhd3MtY2RrL2F3cy1hcGlnYXRld2F5djItYWxwaGFcIjtcbmltcG9ydCB7U3RhY2ssIFN0YWdlfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7QVJlY29yZH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQge0V4dGVuZGVkQ29uc3RydWN0LCBFeHRlbmRlZENvbnN0cnVjdFByb3BzLCBTdGFuZGFyZFRhZ3N9IGZyb20gXCIuLi8uLi9hd3MtY2RrXCI7XG5pbXBvcnQge0xpYlN0YW5kYXJkVGFnc30gZnJvbSBcIi4uLy4uL3RydWVtYXJrXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgU3RhbmRhcmRIdHRwQXBpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYXJkSHR0cEFwaVByb3BzIGV4dGVuZHMgRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmVmaXggb2YgdGhlIGRvbWFpbiB0byBjcmVhdGUgdGhlIGNlcnRpZmljYXRlIGFuZCBETlMgcmVjb3JkIGZvci5cbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpblByZWZpeDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgem9uZSBvZiB0aGUgZG9tYWluIHRvIGNyZWF0ZSB0aGUgY2VydGlmaWNhdGUgYW5kIEROUyByZWNvcmQgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluWm9uZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBBUEkgR2F0ZXdheS4gT25lIHdpbGwgYmUgZ2VuZXJhdGVkIGlmIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFwaU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSByb3V0ZTUzIHJlY29yZCBpcyBjcmVhdGVkIGZvciB0aGUgQVBJIGdhdGV3YXkuIERlZmF1bHRzIHRvIHRydWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlUmVjb3JkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHdlaWdodGVkIHJvdXRlNTMgcmVjb3JkLiBNYXkgbm90IGJlIHVzZWQgd2l0aCByZWNvcmRMYXRlbmN5LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVjb3JkV2VpZ2h0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbGF0ZW5jeSByb3V0ZTUzIHJlY29yZC4gTWF5IG5vdCBiZSB1c2VkIHdpdGggcmVjb3JkV2VpZ2h0LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVjb3JkTGF0ZW5jeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyB0YXJnZXQgaGVhbHRoIG9uIHRoZSBjcmVhdGVkIHJvdXRlNTMgcmVjb3JkIGlmIGl0J3MgYSBsYXRlbmN5IG9yIHdlaWdodGVkIHJlY29yZC4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBldmFsdWF0ZVRhcmdldEhlYWx0aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldHRpbmcgdGhpcyB0byB0cnVlIHdpbGwgc3VwcHJlc3MgdGhlIGNyZWF0aW9uIG9mIGRlZmF1bHQgdGFncyBvbiByZXNvdXJjZXNcbiAgICogY3JlYXRlZCBieSB0aGlzIGNvbnN0cnVjdC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VwcHJlc3NUYWdnaW5nPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdGlvbiB0aGF0IGNyZWF0ZXMgYW4gSHR0cEFwaSB3aXRoIHN1cHBvcnQgaW5mcmFzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFuZGFyZEh0dHBBcGkgZXh0ZW5kcyBFeHRlbmRlZENvbnN0cnVjdCB7XG5cbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogU3RhbmRhcmREb21haW5OYW1lO1xuICByZWFkb25seSByZWNvcmQ6IEFSZWNvcmQgfCBMYXRlbmN5QVJlY29yZCB8IFdlaWdodGVkQVJlY29yZCB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgaHR0cEFwaTogSHR0cEFwaTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RhbmRhcmRIdHRwQXBpUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtzdGFuZGFyZFRhZ3M6IFN0YW5kYXJkVGFncy5tZXJnZShwcm9wcy5zdGFuZGFyZFRhZ3MsIExpYlN0YW5kYXJkVGFncyl9KTtcblxuICAgIGNvbnN0IGRvbWFpbk5hbWUgPSBuZXcgU3RhbmRhcmREb21haW5OYW1lKHRoaXMsIFwiRG9tYWluTmFtZVwiLCB7XG4gICAgICBwcmVmaXg6IHByb3BzLmRvbWFpblByZWZpeCxcbiAgICAgIHpvbmU6IHByb3BzLmRvbWFpblpvbmUsXG4gICAgICBzZWN1cml0eVBvbGljeTogU2VjdXJpdHlQb2xpY3kuVExTXzFfMiAvLyBUT0RPIFNob3VsZCBiZSBhbiBvcHRpb25cbiAgICB9KTtcblxuICAgIC8vIFRPRE8gTmVlZCB0byBhZGQgUmVjb3JkT3B0aW9uc1xuICAgIGlmIChwcm9wcy5jcmVhdGVSZWNvcmQgPz8gdHJ1ZSkge1xuICAgICAgaWYgKHByb3BzLnJlY29yZFdlaWdodCkge1xuICAgICAgICBkb21haW5OYW1lLmNyZWF0ZVdlaWdodGVkQVJlY29yZChwcm9wcy5yZWNvcmRXZWlnaHQsIHByb3BzLmV2YWx1YXRlVGFyZ2V0SGVhbHRoID8/IHRydWUpXG4gICAgICB9IGVsc2UgaWYgKHByb3BzLnJlY29yZExhdGVuY3kpIHtcbiAgICAgICAgZG9tYWluTmFtZS5jcmVhdGVMYXRlbmN5QVJlY29yZCh0cnVlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZG9tYWluTmFtZS5jcmVhdGVBUmVjb3JkKClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWNvcmQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhZ2UgPSBTdGFnZS5vZih0aGlzKTtcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHRoaXMpO1xuXG4gICAgY29uc3QgaHR0cEFwaSA9IG5ldyBIdHRwQXBpKHRoaXMsIFwiRGVmYXVsdFwiLCB7XG4gICAgICBhcGlOYW1lOiBwcm9wcy5hcGlOYW1lID8/IGAke3N0YWdlPy5zdGFnZU5hbWV9JHtzdGFjaz8uc3RhY2tOYW1lfUdhdGV3YXlgLFxuICAgICAgZGVmYXVsdERvbWFpbk1hcHBpbmc6IHtcbiAgICAgICAgZG9tYWluTmFtZTogZG9tYWluTmFtZS5nYXRld2F5RG9tYWluTmFtZVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5kb21haW5OYW1lID0gZG9tYWluTmFtZTtcbiAgICB0aGlzLmh0dHBBcGkgPSBodHRwQXBpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,60 @@
|
|
|
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 { ExtendedConstruct, ExtendedConstructProps } from "../../aws-cdk";
|
|
7
|
+
/**
|
|
8
|
+
* Properties for StandardWebSocketApi.
|
|
9
|
+
*/
|
|
10
|
+
export interface StandardWebSocketApiProps extends ExtendedConstructProps {
|
|
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 ExtendedConstruct {
|
|
55
|
+
readonly domainName: StandardDomainName;
|
|
56
|
+
readonly record: ARecord | LatencyARecord | WeightedARecord | undefined;
|
|
57
|
+
readonly webSocketApi: WebSocketApi;
|
|
58
|
+
readonly webSocketStage: WebSocketStage;
|
|
59
|
+
constructor(scope: Construct, id: string, props: StandardWebSocketApiProps);
|
|
60
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StandardWebSocketApi = void 0;
|
|
4
|
+
const standard_domain_name_1 = require("./standard-domain-name");
|
|
5
|
+
const aws_apigatewayv2_alpha_1 = require("@aws-cdk/aws-apigatewayv2-alpha");
|
|
6
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
|
+
const aws_cdk_1 = require("../../aws-cdk");
|
|
8
|
+
/**
|
|
9
|
+
* Abstraction that creates an WebSocketApi with support infrastructure.
|
|
10
|
+
*/
|
|
11
|
+
class StandardWebSocketApi extends aws_cdk_1.ExtendedConstruct {
|
|
12
|
+
constructor(scope, id, props) {
|
|
13
|
+
var _a, _b, _c;
|
|
14
|
+
super(scope, id);
|
|
15
|
+
const domainName = new standard_domain_name_1.StandardDomainName(this, "DomainName", {
|
|
16
|
+
prefix: props.domainPrefix,
|
|
17
|
+
zone: props.domainZone,
|
|
18
|
+
securityPolicy: aws_apigatewayv2_alpha_1.SecurityPolicy.TLS_1_2 // TODO Should be an option
|
|
19
|
+
});
|
|
20
|
+
// TODO Need to add RecordOptions
|
|
21
|
+
if ((_a = props.createRecord) !== null && _a !== void 0 ? _a : true) {
|
|
22
|
+
if (props.recordWeight) {
|
|
23
|
+
domainName.createWeightedARecord(props.recordWeight, (_b = props.evaluateTargetHealth) !== null && _b !== void 0 ? _b : true);
|
|
24
|
+
}
|
|
25
|
+
else if (props.recordLatency) {
|
|
26
|
+
domainName.createLatencyARecord(true);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
domainName.createARecord();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.record = undefined;
|
|
34
|
+
}
|
|
35
|
+
const stage = aws_cdk_lib_1.Stage.of(this);
|
|
36
|
+
const stack = aws_cdk_lib_1.Stack.of(this);
|
|
37
|
+
const webSocketApi = new aws_apigatewayv2_alpha_1.WebSocketApi(this, "Default", {
|
|
38
|
+
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`,
|
|
39
|
+
});
|
|
40
|
+
const webSocketStage = new aws_apigatewayv2_alpha_1.WebSocketStage(this, "DefaultStage", {
|
|
41
|
+
webSocketApi,
|
|
42
|
+
stageName: "default",
|
|
43
|
+
autoDeploy: true,
|
|
44
|
+
domainMapping: {
|
|
45
|
+
domainName: domainName.gatewayDomainName
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
this.webSocketApi = webSocketApi;
|
|
49
|
+
this.webSocketStage = webSocketStage;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.StandardWebSocketApi = StandardWebSocketApi;
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtd2ViLXNvY2tldC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFuZGFyZC13ZWItc29ja2V0LWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpRUFBMEQ7QUFDMUQsNEVBQTZGO0FBRzdGLDZDQUF5QztBQUN6QywyQ0FBd0U7QUFzRHhFOztHQUVHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSwyQkFBaUI7SUFPekQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFnQzs7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFVBQVUsR0FBRyxJQUFJLHlDQUFrQixDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDNUQsTUFBTSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQzFCLElBQUksRUFBRSxLQUFLLENBQUMsVUFBVTtZQUN0QixjQUFjLEVBQUUsdUNBQWMsQ0FBQyxPQUFPLENBQUMsMkJBQTJCO1NBQ25FLENBQUMsQ0FBQztRQUVILGlDQUFpQztRQUNqQyxVQUFJLEtBQUssQ0FBQyxZQUFZLG1DQUFJLElBQUksRUFBRTtZQUM5QixJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7Z0JBQ3RCLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsWUFBWSxRQUFFLEtBQUssQ0FBQyxvQkFBb0IsbUNBQUksSUFBSSxDQUFDLENBQUE7YUFDekY7aUJBQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFFO2dCQUM5QixVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUE7YUFDdEM7aUJBQU07Z0JBQ0wsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFBO2FBQzNCO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1NBQ3pCO1FBRUQsTUFBTSxLQUFLLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsTUFBTSxLQUFLLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxxQ0FBWSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDckQsT0FBTyxRQUFFLEtBQUssQ0FBQyxPQUFPLG1DQUFJLEdBQUcsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVMsR0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsU0FBUyxTQUFTO1NBQzFFLENBQUMsQ0FBQztRQUVILE1BQU0sY0FBYyxHQUFHLElBQUksdUNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQzlELFlBQVk7WUFDWixTQUFTLEVBQUUsU0FBUztZQUNwQixVQUFVLEVBQUUsSUFBSTtZQUNoQixhQUFhLEVBQUU7Z0JBQ2IsVUFBVSxFQUFFLFVBQVUsQ0FBQyxpQkFBaUI7YUFDekM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFoREQsb0RBZ0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1N0YW5kYXJkRG9tYWluTmFtZX0gZnJvbSBcIi4vc3RhbmRhcmQtZG9tYWluLW5hbWVcIjtcbmltcG9ydCB7U2VjdXJpdHlQb2xpY3ksIFdlYlNvY2tldEFwaSwgV2ViU29ja2V0U3RhZ2V9IGZyb20gXCJAYXdzLWNkay9hd3MtYXBpZ2F0ZXdheXYyLWFscGhhXCI7XG5pbXBvcnQge0FSZWNvcmR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtMYXRlbmN5QVJlY29yZCwgV2VpZ2h0ZWRBUmVjb3JkfSBmcm9tIFwiLi4vLi4vYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7U3RhY2ssIFN0YWdlfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7RXh0ZW5kZWRDb25zdHJ1Y3QsIEV4dGVuZGVkQ29uc3RydWN0UHJvcHN9IGZyb20gXCIuLi8uLi9hd3MtY2RrXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgU3RhbmRhcmRXZWJTb2NrZXRBcGkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRXZWJTb2NrZXRBcGlQcm9wcyBleHRlbmRzIEV4dGVuZGVkQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIHByZWZpeCBvZiB0aGUgZG9tYWluIHRvIGNyZWF0ZSB0aGUgY2VydGlmaWNhdGUgYW5kIEROUyByZWNvcmQgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluUHJlZml4OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB6b25lIG9mIHRoZSBkb21haW4gdG8gY3JlYXRlIHRoZSBjZXJ0aWZpY2F0ZSBhbmQgRE5TIHJlY29yZCBmb3IuXG4gICAqL1xuICByZWFkb25seSBkb21haW5ab25lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIEFQSSBHYXRld2F5LiBPbmUgd2lsbCBiZSBnZW5lcmF0ZWQgaWYgbm90IHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIHJvdXRlNTMgcmVjb3JkIGlzIGNyZWF0ZWQgZm9yIHRoZSBBUEkgZ2F0ZXdheS4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVSZWNvcmQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgd2VpZ2h0ZWQgcm91dGU1MyByZWNvcmQuIE1heSBub3QgYmUgdXNlZCB3aXRoIHJlY29yZExhdGVuY3kuXG4gICAqL1xuICByZWFkb25seSByZWNvcmRXZWlnaHQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBsYXRlbmN5IHJvdXRlNTMgcmVjb3JkLiBNYXkgbm90IGJlIHVzZWQgd2l0aCByZWNvcmRXZWlnaHQuXG4gICAqL1xuICByZWFkb25seSByZWNvcmRMYXRlbmN5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXZhbHVhdGVzIHRhcmdldCBoZWFsdGggb24gdGhlIGNyZWF0ZWQgcm91dGU1MyByZWNvcmQgaWYgaXQncyBhIGxhdGVuY3kgb3Igd2VpZ2h0ZWQgcmVjb3JkLiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRlVGFyZ2V0SGVhbHRoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0dGluZyB0aGlzIHRvIHRydWUgd2lsbCBzdXBwcmVzcyB0aGUgY3JlYXRpb24gb2YgZGVmYXVsdCB0YWdzIG9uIHJlc291cmNlc1xuICAgKiBjcmVhdGVkIGJ5IHRoaXMgY29uc3RydWN0LiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc1RhZ2dpbmc/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEFic3RyYWN0aW9uIHRoYXQgY3JlYXRlcyBhbiBXZWJTb2NrZXRBcGkgd2l0aCBzdXBwb3J0IGluZnJhc3RydWN0dXJlLlxuICovXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRXZWJTb2NrZXRBcGkgZXh0ZW5kcyBFeHRlbmRlZENvbnN0cnVjdCB7XG5cbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogU3RhbmRhcmREb21haW5OYW1lO1xuICByZWFkb25seSByZWNvcmQ6IEFSZWNvcmQgfCBMYXRlbmN5QVJlY29yZCB8IFdlaWdodGVkQVJlY29yZCB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgd2ViU29ja2V0QXBpOiBXZWJTb2NrZXRBcGk7XG4gIHJlYWRvbmx5IHdlYlNvY2tldFN0YWdlOiBXZWJTb2NrZXRTdGFnZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RhbmRhcmRXZWJTb2NrZXRBcGlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBkb21haW5OYW1lID0gbmV3IFN0YW5kYXJkRG9tYWluTmFtZSh0aGlzLCBcIkRvbWFpbk5hbWVcIiwge1xuICAgICAgcHJlZml4OiBwcm9wcy5kb21haW5QcmVmaXgsXG4gICAgICB6b25lOiBwcm9wcy5kb21haW5ab25lLFxuICAgICAgc2VjdXJpdHlQb2xpY3k6IFNlY3VyaXR5UG9saWN5LlRMU18xXzIgLy8gVE9ETyBTaG91bGQgYmUgYW4gb3B0aW9uXG4gICAgfSk7XG5cbiAgICAvLyBUT0RPIE5lZWQgdG8gYWRkIFJlY29yZE9wdGlvbnNcbiAgICBpZiAocHJvcHMuY3JlYXRlUmVjb3JkID8/IHRydWUpIHtcbiAgICAgIGlmIChwcm9wcy5yZWNvcmRXZWlnaHQpIHtcbiAgICAgICAgZG9tYWluTmFtZS5jcmVhdGVXZWlnaHRlZEFSZWNvcmQocHJvcHMucmVjb3JkV2VpZ2h0LCBwcm9wcy5ldmFsdWF0ZVRhcmdldEhlYWx0aCA/PyB0cnVlKVxuICAgICAgfSBlbHNlIGlmIChwcm9wcy5yZWNvcmRMYXRlbmN5KSB7XG4gICAgICAgIGRvbWFpbk5hbWUuY3JlYXRlTGF0ZW5jeUFSZWNvcmQodHJ1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvbWFpbk5hbWUuY3JlYXRlQVJlY29yZCgpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVjb3JkID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YWdlID0gU3RhZ2Uub2YodGhpcyk7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZih0aGlzKTtcblxuICAgIGNvbnN0IHdlYlNvY2tldEFwaSA9IG5ldyBXZWJTb2NrZXRBcGkodGhpcywgXCJEZWZhdWx0XCIsIHtcbiAgICAgIGFwaU5hbWU6IHByb3BzLmFwaU5hbWUgPz8gYCR7c3RhZ2U/LnN0YWdlTmFtZX0ke3N0YWNrPy5zdGFja05hbWV9R2F0ZXdheWAsXG4gICAgfSk7XG5cbiAgICBjb25zdCB3ZWJTb2NrZXRTdGFnZSA9IG5ldyBXZWJTb2NrZXRTdGFnZSh0aGlzLCBcIkRlZmF1bHRTdGFnZVwiLCB7XG4gICAgICB3ZWJTb2NrZXRBcGksXG4gICAgICBzdGFnZU5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgYXV0b0RlcGxveTogdHJ1ZSxcbiAgICAgIGRvbWFpbk1hcHBpbmc6IHtcbiAgICAgICAgZG9tYWluTmFtZTogZG9tYWluTmFtZS5nYXRld2F5RG9tYWluTmFtZVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy53ZWJTb2NrZXRBcGkgPSB3ZWJTb2NrZXRBcGk7XG4gICAgdGhpcy53ZWJTb2NrZXRTdGFnZSA9IHdlYlNvY2tldFN0YWdlO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
/**
|
|
8
|
+
* Standard tags to apply to all stacks.
|
|
9
|
+
*/
|
|
10
|
+
readonly standardTags?: StandardTagsProps;
|
|
11
|
+
/**
|
|
12
|
+
* Skips account lookup and uses this account.
|
|
13
|
+
*/
|
|
14
|
+
readonly account?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Skips region lookup and uses this region.
|
|
17
|
+
*/
|
|
18
|
+
readonly region?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Adds functionality to the base App class to support standard tags
|
|
22
|
+
* and access to the account and region being used to execute the
|
|
23
|
+
* CDK process.
|
|
24
|
+
*/
|
|
25
|
+
export declare class ExtendedApp extends App {
|
|
26
|
+
readonly account: string;
|
|
27
|
+
readonly region: string;
|
|
28
|
+
constructor(props?: ExtendedAppProps);
|
|
29
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
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({
|
|
13
|
+
...props,
|
|
14
|
+
context: {
|
|
15
|
+
...props === null || props === void 0 ? void 0 : props.context,
|
|
16
|
+
// Add standardTags to the context to be used by ExtendedStack
|
|
17
|
+
standardTags: props === null || props === void 0 ? void 0 : props.standardTags
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
// Use the provided account or do a lookup
|
|
21
|
+
const account = (props === null || props === void 0 ? void 0 : props.account) || process.env.CDK_DEFAULT_ACCOUNT || process.env.AWS_ACCOUNT_ID;
|
|
22
|
+
if (account === undefined) {
|
|
23
|
+
throw new Error("Unable to identify default account");
|
|
24
|
+
}
|
|
25
|
+
this.account = account;
|
|
26
|
+
// Use the provided region or do a lookup
|
|
27
|
+
const region = (props === null || props === void 0 ? void 0 : props.region) || process.env.CDK_DEFAULT_REGION || process.env.AWS_DEFAULT_REGION;
|
|
28
|
+
if (region === undefined) {
|
|
29
|
+
throw new Error("Unable to identify default region");
|
|
30
|
+
}
|
|
31
|
+
this.region = region;
|
|
32
|
+
// Add automation component tags to AutomationComponent children
|
|
33
|
+
// Aspects.of(this).add(new AutomationComponentAspect(props?.standardTags?.suppressTagging));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.ExtendedApp = ExtendedApp;
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXh0ZW5kZWQtYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUEwQztBQXdCMUM7Ozs7R0FJRztBQUNILE1BQWEsV0FBWSxTQUFRLGlCQUFHO0lBS2xDLFlBQVksS0FBd0I7UUFDbEMsS0FBSyxDQUFDO1lBQ0osR0FBRyxLQUFLO1lBQ1IsT0FBTyxFQUFFO2dCQUNQLEdBQUcsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU87Z0JBQ2pCLDhEQUE4RDtnQkFDOUQsWUFBWSxFQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxZQUFZO2FBQ25DO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsMENBQTBDO1FBQzFDLE1BQU0sT0FBTyxHQUFHLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sS0FBSSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1FBQ2hHLElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7U0FDdkQ7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV2Qix5Q0FBeUM7UUFDekMsTUFBTSxNQUFNLEdBQUcsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsTUFBTSxLQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztRQUNqRyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsZ0VBQWdFO1FBQ2hFLDZGQUE2RjtJQUMvRixDQUFDO0NBQ0Y7QUFoQ0Qsa0NBZ0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcHAsIEFwcFByb3BzfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7U3RhbmRhcmRUYWdzUHJvcHN9IGZyb20gXCIuL3N0YW5kYXJkLXRhZ3NcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBFeHRlbmRlZEFwcC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRlbmRlZEFwcFByb3BzIGV4dGVuZHMgQXBwUHJvcHMge1xuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCB0YWdzIHRvIGFwcGx5IHRvIGFsbCBzdGFja3MuXG4gICAqL1xuICByZWFkb25seSBzdGFuZGFyZFRhZ3M/OiBTdGFuZGFyZFRhZ3NQcm9wcztcblxuICAvKipcbiAgICogU2tpcHMgYWNjb3VudCBsb29rdXAgYW5kIHVzZXMgdGhpcyBhY2NvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblxuICAvKipcbiAgICogU2tpcHMgcmVnaW9uIGxvb2t1cCBhbmQgdXNlcyB0aGlzIHJlZ2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBZGRzIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIGJhc2UgQXBwIGNsYXNzIHRvIHN1cHBvcnQgc3RhbmRhcmQgdGFnc1xuICogYW5kIGFjY2VzcyB0byB0aGUgYWNjb3VudCBhbmQgcmVnaW9uIGJlaW5nIHVzZWQgdG8gZXhlY3V0ZSB0aGVcbiAqIENESyBwcm9jZXNzLlxuICovXG5leHBvcnQgY2xhc3MgRXh0ZW5kZWRBcHAgZXh0ZW5kcyBBcHAge1xuXG4gIHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvcHM/OiBFeHRlbmRlZEFwcFByb3BzKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIC4uLnByb3BzPy5jb250ZXh0LFxuICAgICAgICAvLyBBZGQgc3RhbmRhcmRUYWdzIHRvIHRoZSBjb250ZXh0IHRvIGJlIHVzZWQgYnkgRXh0ZW5kZWRTdGFja1xuICAgICAgICBzdGFuZGFyZFRhZ3M6ICBwcm9wcz8uc3RhbmRhcmRUYWdzXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBVc2UgdGhlIHByb3ZpZGVkIGFjY291bnQgb3IgZG8gYSBsb29rdXBcbiAgICBjb25zdCBhY2NvdW50ID0gcHJvcHM/LmFjY291bnQgfHwgcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVCB8fCBwcm9jZXNzLmVudi5BV1NfQUNDT1VOVF9JRDtcbiAgICBpZiAoYWNjb3VudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gaWRlbnRpZnkgZGVmYXVsdCBhY2NvdW50XCIpO1xuICAgIH1cbiAgICB0aGlzLmFjY291bnQgPSBhY2NvdW50O1xuXG4gICAgLy8gVXNlIHRoZSBwcm92aWRlZCByZWdpb24gb3IgZG8gYSBsb29rdXBcbiAgICBjb25zdCByZWdpb24gPSBwcm9wcz8ucmVnaW9uIHx8IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTiB8fCBwcm9jZXNzLmVudi5BV1NfREVGQVVMVF9SRUdJT047XG4gICAgaWYgKHJlZ2lvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gaWRlbnRpZnkgZGVmYXVsdCByZWdpb25cIik7XG4gICAgfVxuICAgIHRoaXMucmVnaW9uID0gcmVnaW9uO1xuXG4gICAgLy8gQWRkIGF1dG9tYXRpb24gY29tcG9uZW50IHRhZ3MgdG8gQXV0b21hdGlvbkNvbXBvbmVudCBjaGlsZHJlblxuICAgIC8vIEFzcGVjdHMub2YodGhpcykuYWRkKG5ldyBBdXRvbWF0aW9uQ29tcG9uZW50QXNwZWN0KHByb3BzPy5zdGFuZGFyZFRhZ3M/LnN1cHByZXNzVGFnZ2luZykpO1xuICB9XG59XG5cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { StandardTagsProps } from "./standard-tags";
|
|
3
|
+
/**
|
|
4
|
+
* Props for ExtendedConstruct.
|
|
5
|
+
*/
|
|
6
|
+
export interface ExtendedConstructProps {
|
|
7
|
+
/**
|
|
8
|
+
* Sets standard tags for this Construct. Values set here will override those set on the parent scope.
|
|
9
|
+
*/
|
|
10
|
+
readonly standardTags?: StandardTagsProps;
|
|
11
|
+
}
|
|
12
|
+
export declare class ExtendedConstruct extends Construct {
|
|
13
|
+
constructor(scope: Construct, id: string, props?: ExtendedConstructProps);
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExtendedConstruct = void 0;
|
|
4
|
+
const constructs_1 = require("constructs");
|
|
5
|
+
const standard_tags_1 = require("./standard-tags");
|
|
6
|
+
class ExtendedConstruct extends constructs_1.Construct {
|
|
7
|
+
constructor(scope, id, props) {
|
|
8
|
+
super(scope, id);
|
|
9
|
+
// Setup standard tags
|
|
10
|
+
new standard_tags_1.StandardTags(this, props === null || props === void 0 ? void 0 : props.standardTags);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.ExtendedConstruct = ExtendedConstruct;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXh0ZW5kZWQtY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFxQztBQUNyQyxtREFBZ0U7QUFZaEUsTUFBYSxpQkFBa0IsU0FBUSxzQkFBUztJQUM5QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsc0JBQXNCO1FBQ3RCLElBQUksNEJBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRjtBQVBELDhDQU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1N0YW5kYXJkVGFncywgU3RhbmRhcmRUYWdzUHJvcHN9IGZyb20gXCIuL3N0YW5kYXJkLXRhZ3NcIjtcblxuLyoqXG4gKiBQcm9wcyBmb3IgRXh0ZW5kZWRDb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBTZXRzIHN0YW5kYXJkIHRhZ3MgZm9yIHRoaXMgQ29uc3RydWN0LiBWYWx1ZXMgc2V0IGhlcmUgd2lsbCBvdmVycmlkZSB0aG9zZSBzZXQgb24gdGhlIHBhcmVudCBzY29wZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YW5kYXJkVGFncz86IFN0YW5kYXJkVGFnc1Byb3BzO1xufVxuXG5leHBvcnQgY2xhc3MgRXh0ZW5kZWRDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEV4dGVuZGVkQ29uc3RydWN0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gU2V0dXAgc3RhbmRhcmQgdGFnc1xuICAgIG5ldyBTdGFuZGFyZFRhZ3ModGhpcywgcHJvcHM/LnN0YW5kYXJkVGFncyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -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
|
*/
|
|
@@ -40,7 +41,7 @@ export interface ExtendedStackOptions {
|
|
|
40
41
|
*/
|
|
41
42
|
readonly createSummaryDashboard?: boolean;
|
|
42
43
|
/**
|
|
43
|
-
* Flag to determine if the alarm dashboard should be
|
|
44
|
+
* Flag to determine if the alarm dashboard should be created.
|
|
44
45
|
*
|
|
45
46
|
* @default false
|
|
46
47
|
*/
|
|
@@ -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.
|