@composurecdk/route53 0.7.0 → 0.8.1
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/README.md +54 -4
- package/dist/commonjs/a-record-builder.d.ts.map +1 -0
- package/dist/commonjs/a-record-builder.js +38 -0
- package/dist/commonjs/a-record-builder.js.map +1 -0
- package/dist/commonjs/aaaa-record-builder.d.ts.map +1 -0
- package/dist/commonjs/aaaa-record-builder.js +39 -0
- package/dist/commonjs/aaaa-record-builder.js.map +1 -0
- package/dist/commonjs/alias-targets.d.ts.map +1 -0
- package/dist/commonjs/alias-targets.js +50 -0
- package/dist/commonjs/alias-targets.js.map +1 -0
- package/dist/commonjs/caa-record-builder.d.ts.map +1 -0
- package/dist/commonjs/caa-record-builder.js +37 -0
- package/dist/commonjs/caa-record-builder.js.map +1 -0
- package/dist/commonjs/cname-record-builder.d.ts.map +1 -0
- package/dist/commonjs/cname-record-builder.js +43 -0
- package/dist/commonjs/cname-record-builder.js.map +1 -0
- package/dist/{defaults.d.ts → commonjs/defaults.d.ts} +30 -4
- package/dist/commonjs/defaults.d.ts.map +1 -0
- package/dist/commonjs/defaults.js +159 -0
- package/dist/commonjs/defaults.js.map +1 -0
- package/dist/commonjs/ds-record-builder.d.ts.map +1 -0
- package/dist/commonjs/ds-record-builder.js +37 -0
- package/dist/commonjs/ds-record-builder.js.map +1 -0
- package/dist/commonjs/health-check-alarm-builder.d.ts.map +1 -0
- package/dist/commonjs/health-check-alarm-builder.js +136 -0
- package/dist/commonjs/health-check-alarm-builder.js.map +1 -0
- package/dist/commonjs/health-check-alarm-config.d.ts.map +1 -0
- package/dist/commonjs/health-check-alarm-config.js +3 -0
- package/dist/commonjs/health-check-alarm-config.js.map +1 -0
- package/dist/commonjs/health-check-alarm-defaults.d.ts.map +1 -0
- package/dist/commonjs/health-check-alarm-defaults.js +29 -0
- package/dist/commonjs/health-check-alarm-defaults.js.map +1 -0
- package/dist/commonjs/health-check-alarms.d.ts.map +1 -0
- package/dist/commonjs/health-check-alarms.js +45 -0
- package/dist/commonjs/health-check-alarms.js.map +1 -0
- package/dist/commonjs/health-check-builder.d.ts.map +1 -0
- package/dist/commonjs/health-check-builder.js +56 -0
- package/dist/commonjs/health-check-builder.js.map +1 -0
- package/dist/{hosted-zone-builder.d.ts → commonjs/hosted-zone-builder.d.ts} +26 -7
- package/dist/commonjs/hosted-zone-builder.d.ts.map +1 -0
- package/dist/commonjs/hosted-zone-builder.js +60 -0
- package/dist/commonjs/hosted-zone-builder.js.map +1 -0
- package/dist/commonjs/https-record-builder.d.ts.map +1 -0
- package/dist/commonjs/https-record-builder.js +45 -0
- package/dist/commonjs/https-record-builder.js.map +1 -0
- package/dist/{index.d.ts → commonjs/index.d.ts} +2 -1
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +54 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/mx-record-builder.d.ts.map +1 -0
- package/dist/commonjs/mx-record-builder.js +37 -0
- package/dist/commonjs/mx-record-builder.js.map +1 -0
- package/dist/commonjs/ns-record-builder.d.ts.map +1 -0
- package/dist/commonjs/ns-record-builder.js +42 -0
- package/dist/commonjs/ns-record-builder.js.map +1 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/query-logging.d.ts +60 -0
- package/dist/commonjs/query-logging.d.ts.map +1 -0
- package/dist/commonjs/query-logging.js +136 -0
- package/dist/commonjs/query-logging.js.map +1 -0
- package/dist/commonjs/srv-record-builder.d.ts.map +1 -0
- package/dist/commonjs/srv-record-builder.js +37 -0
- package/dist/commonjs/srv-record-builder.js.map +1 -0
- package/dist/commonjs/svcb-record-builder.d.ts.map +1 -0
- package/dist/commonjs/svcb-record-builder.js +38 -0
- package/dist/commonjs/svcb-record-builder.js.map +1 -0
- package/dist/commonjs/txt-record-builder.d.ts.map +1 -0
- package/dist/commonjs/txt-record-builder.js +37 -0
- package/dist/commonjs/txt-record-builder.js.map +1 -0
- package/dist/commonjs/zone/index.d.ts.map +1 -0
- package/dist/commonjs/zone/index.js +23 -0
- package/dist/commonjs/zone/index.js.map +1 -0
- package/dist/commonjs/zone/zone-dsl.d.ts.map +1 -0
- package/dist/commonjs/zone/zone-dsl.js +247 -0
- package/dist/commonjs/zone/zone-dsl.js.map +1 -0
- package/dist/commonjs/zone/zone-records.d.ts.map +1 -0
- package/dist/commonjs/zone/zone-records.js +322 -0
- package/dist/commonjs/zone/zone-records.js.map +1 -0
- package/dist/esm/a-record-builder.d.ts +56 -0
- package/dist/esm/a-record-builder.d.ts.map +1 -0
- package/dist/esm/a-record-builder.js.map +1 -0
- package/dist/esm/aaaa-record-builder.d.ts +44 -0
- package/dist/esm/aaaa-record-builder.d.ts.map +1 -0
- package/dist/esm/aaaa-record-builder.js.map +1 -0
- package/dist/esm/alias-targets.d.ts +34 -0
- package/dist/esm/alias-targets.d.ts.map +1 -0
- package/dist/esm/alias-targets.js.map +1 -0
- package/dist/esm/caa-record-builder.d.ts +44 -0
- package/dist/esm/caa-record-builder.d.ts.map +1 -0
- package/dist/esm/caa-record-builder.js.map +1 -0
- package/dist/esm/cname-record-builder.d.ts +42 -0
- package/dist/esm/cname-record-builder.d.ts.map +1 -0
- package/dist/esm/cname-record-builder.js.map +1 -0
- package/dist/esm/defaults.d.ts +119 -0
- package/dist/esm/defaults.d.ts.map +1 -0
- package/dist/{defaults.js → esm/defaults.js} +37 -4
- package/dist/esm/defaults.js.map +1 -0
- package/dist/esm/ds-record-builder.d.ts +42 -0
- package/dist/esm/ds-record-builder.d.ts.map +1 -0
- package/dist/esm/ds-record-builder.js.map +1 -0
- package/dist/esm/health-check-alarm-builder.d.ts +133 -0
- package/dist/esm/health-check-alarm-builder.d.ts.map +1 -0
- package/dist/esm/health-check-alarm-builder.js.map +1 -0
- package/dist/esm/health-check-alarm-config.d.ts +39 -0
- package/dist/esm/health-check-alarm-config.d.ts.map +1 -0
- package/dist/esm/health-check-alarm-config.js.map +1 -0
- package/dist/esm/health-check-alarm-defaults.d.ts +13 -0
- package/dist/esm/health-check-alarm-defaults.d.ts.map +1 -0
- package/dist/esm/health-check-alarm-defaults.js.map +1 -0
- package/dist/esm/health-check-alarms.d.ts +15 -0
- package/dist/esm/health-check-alarms.d.ts.map +1 -0
- package/dist/esm/health-check-alarms.js.map +1 -0
- package/dist/esm/health-check-builder.d.ts +103 -0
- package/dist/esm/health-check-builder.d.ts.map +1 -0
- package/dist/esm/health-check-builder.js.map +1 -0
- package/dist/esm/hosted-zone-builder.d.ts +95 -0
- package/dist/esm/hosted-zone-builder.d.ts.map +1 -0
- package/dist/{hosted-zone-builder.js → esm/hosted-zone-builder.js} +11 -3
- package/dist/esm/hosted-zone-builder.js.map +1 -0
- package/dist/esm/https-record-builder.d.ts +45 -0
- package/dist/esm/https-record-builder.d.ts.map +1 -0
- package/dist/esm/https-record-builder.js.map +1 -0
- package/dist/esm/index.d.ts +20 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/{index.js → esm/index.js} +1 -1
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/mx-record-builder.d.ts +40 -0
- package/dist/esm/mx-record-builder.d.ts.map +1 -0
- package/dist/esm/mx-record-builder.js.map +1 -0
- package/dist/esm/ns-record-builder.d.ts +40 -0
- package/dist/esm/ns-record-builder.d.ts.map +1 -0
- package/dist/esm/ns-record-builder.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/query-logging.d.ts +60 -0
- package/dist/esm/query-logging.d.ts.map +1 -0
- package/dist/esm/query-logging.js +133 -0
- package/dist/esm/query-logging.js.map +1 -0
- package/dist/esm/srv-record-builder.d.ts +40 -0
- package/dist/esm/srv-record-builder.d.ts.map +1 -0
- package/dist/esm/srv-record-builder.js.map +1 -0
- package/dist/esm/svcb-record-builder.d.ts +41 -0
- package/dist/esm/svcb-record-builder.d.ts.map +1 -0
- package/dist/esm/svcb-record-builder.js.map +1 -0
- package/dist/esm/txt-record-builder.d.ts +38 -0
- package/dist/esm/txt-record-builder.d.ts.map +1 -0
- package/dist/esm/txt-record-builder.js.map +1 -0
- package/dist/esm/zone/index.d.ts +3 -0
- package/dist/esm/zone/index.d.ts.map +1 -0
- package/dist/esm/zone/index.js.map +1 -0
- package/dist/esm/zone/zone-dsl.d.ts +296 -0
- package/dist/esm/zone/zone-dsl.d.ts.map +1 -0
- package/dist/esm/zone/zone-dsl.js.map +1 -0
- package/dist/esm/zone/zone-records.d.ts +67 -0
- package/dist/esm/zone/zone-records.d.ts.map +1 -0
- package/dist/esm/zone/zone-records.js.map +1 -0
- package/package.json +48 -22
- package/dist/a-record-builder.d.ts.map +0 -1
- package/dist/a-record-builder.js.map +0 -1
- package/dist/aaaa-record-builder.d.ts.map +0 -1
- package/dist/aaaa-record-builder.js.map +0 -1
- package/dist/alias-targets.d.ts.map +0 -1
- package/dist/alias-targets.js.map +0 -1
- package/dist/caa-record-builder.d.ts.map +0 -1
- package/dist/caa-record-builder.js.map +0 -1
- package/dist/cname-record-builder.d.ts.map +0 -1
- package/dist/cname-record-builder.js.map +0 -1
- package/dist/defaults.d.ts.map +0 -1
- package/dist/defaults.js.map +0 -1
- package/dist/ds-record-builder.d.ts.map +0 -1
- package/dist/ds-record-builder.js.map +0 -1
- package/dist/health-check-alarm-builder.d.ts.map +0 -1
- package/dist/health-check-alarm-builder.js.map +0 -1
- package/dist/health-check-alarm-config.d.ts.map +0 -1
- package/dist/health-check-alarm-config.js.map +0 -1
- package/dist/health-check-alarm-defaults.d.ts.map +0 -1
- package/dist/health-check-alarm-defaults.js.map +0 -1
- package/dist/health-check-alarms.d.ts.map +0 -1
- package/dist/health-check-alarms.js.map +0 -1
- package/dist/health-check-builder.d.ts.map +0 -1
- package/dist/health-check-builder.js.map +0 -1
- package/dist/hosted-zone-builder.d.ts.map +0 -1
- package/dist/hosted-zone-builder.js.map +0 -1
- package/dist/https-record-builder.d.ts.map +0 -1
- package/dist/https-record-builder.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/mx-record-builder.d.ts.map +0 -1
- package/dist/mx-record-builder.js.map +0 -1
- package/dist/ns-record-builder.d.ts.map +0 -1
- package/dist/ns-record-builder.js.map +0 -1
- package/dist/srv-record-builder.d.ts.map +0 -1
- package/dist/srv-record-builder.js.map +0 -1
- package/dist/svcb-record-builder.d.ts.map +0 -1
- package/dist/svcb-record-builder.js.map +0 -1
- package/dist/txt-record-builder.d.ts.map +0 -1
- package/dist/txt-record-builder.js.map +0 -1
- package/dist/zone/index.d.ts.map +0 -1
- package/dist/zone/index.js.map +0 -1
- package/dist/zone/zone-dsl.d.ts.map +0 -1
- package/dist/zone/zone-dsl.js.map +0 -1
- package/dist/zone/zone-records.d.ts.map +0 -1
- package/dist/zone/zone-records.js.map +0 -1
- /package/dist/{a-record-builder.d.ts → commonjs/a-record-builder.d.ts} +0 -0
- /package/dist/{aaaa-record-builder.d.ts → commonjs/aaaa-record-builder.d.ts} +0 -0
- /package/dist/{alias-targets.d.ts → commonjs/alias-targets.d.ts} +0 -0
- /package/dist/{caa-record-builder.d.ts → commonjs/caa-record-builder.d.ts} +0 -0
- /package/dist/{cname-record-builder.d.ts → commonjs/cname-record-builder.d.ts} +0 -0
- /package/dist/{ds-record-builder.d.ts → commonjs/ds-record-builder.d.ts} +0 -0
- /package/dist/{health-check-alarm-builder.d.ts → commonjs/health-check-alarm-builder.d.ts} +0 -0
- /package/dist/{health-check-alarm-config.d.ts → commonjs/health-check-alarm-config.d.ts} +0 -0
- /package/dist/{health-check-alarm-defaults.d.ts → commonjs/health-check-alarm-defaults.d.ts} +0 -0
- /package/dist/{health-check-alarms.d.ts → commonjs/health-check-alarms.d.ts} +0 -0
- /package/dist/{health-check-builder.d.ts → commonjs/health-check-builder.d.ts} +0 -0
- /package/dist/{https-record-builder.d.ts → commonjs/https-record-builder.d.ts} +0 -0
- /package/dist/{mx-record-builder.d.ts → commonjs/mx-record-builder.d.ts} +0 -0
- /package/dist/{ns-record-builder.d.ts → commonjs/ns-record-builder.d.ts} +0 -0
- /package/dist/{srv-record-builder.d.ts → commonjs/srv-record-builder.d.ts} +0 -0
- /package/dist/{svcb-record-builder.d.ts → commonjs/svcb-record-builder.d.ts} +0 -0
- /package/dist/{txt-record-builder.d.ts → commonjs/txt-record-builder.d.ts} +0 -0
- /package/dist/{zone → commonjs/zone}/index.d.ts +0 -0
- /package/dist/{zone → commonjs/zone}/zone-dsl.d.ts +0 -0
- /package/dist/{zone → commonjs/zone}/zone-records.d.ts +0 -0
- /package/dist/{a-record-builder.js → esm/a-record-builder.js} +0 -0
- /package/dist/{aaaa-record-builder.js → esm/aaaa-record-builder.js} +0 -0
- /package/dist/{alias-targets.js → esm/alias-targets.js} +0 -0
- /package/dist/{caa-record-builder.js → esm/caa-record-builder.js} +0 -0
- /package/dist/{cname-record-builder.js → esm/cname-record-builder.js} +0 -0
- /package/dist/{ds-record-builder.js → esm/ds-record-builder.js} +0 -0
- /package/dist/{health-check-alarm-builder.js → esm/health-check-alarm-builder.js} +0 -0
- /package/dist/{health-check-alarm-config.js → esm/health-check-alarm-config.js} +0 -0
- /package/dist/{health-check-alarm-defaults.js → esm/health-check-alarm-defaults.js} +0 -0
- /package/dist/{health-check-alarms.js → esm/health-check-alarms.js} +0 -0
- /package/dist/{health-check-builder.js → esm/health-check-builder.js} +0 -0
- /package/dist/{https-record-builder.js → esm/https-record-builder.js} +0 -0
- /package/dist/{mx-record-builder.js → esm/mx-record-builder.js} +0 -0
- /package/dist/{ns-record-builder.js → esm/ns-record-builder.js} +0 -0
- /package/dist/{srv-record-builder.js → esm/srv-record-builder.js} +0 -0
- /package/dist/{svcb-record-builder.js → esm/svcb-record-builder.js} +0 -0
- /package/dist/{txt-record-builder.js → esm/txt-record-builder.js} +0 -0
- /package/dist/{zone → esm/zone}/index.js +0 -0
- /package/dist/{zone → esm/zone}/zone-dsl.js +0 -0
- /package/dist/{zone → esm/zone}/zone-records.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a-record-builder.js","sourceRoot":"","sources":["../../src/a-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,GAIR,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,OAAO,EAGP,OAAO,GAER,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAgDlD,MAAM,cAAc;IAClB,KAAK,GAAiC,EAAE,CAAC;IAEzC,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,sDAAsD,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,mBAAmB,EAAE,0DAA0D,CAChF,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,KAAK,SAAS,CAAC;QACzD,MAAM,WAAW,GAAG;YAClB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACrC,GAAG,IAAI;YACP,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;YAC5B,MAAM,EAAE,cAAc;SACP,CAAC;QAElB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACnD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,+GAA+G;IAC/G,OAAO,OAAO,CAAsC,cAAc,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { AaaaRecord, type AaaaRecordProps, type IHostedZone, type RecordTarget } from "aws-cdk-lib/aws-route53";
|
|
2
|
+
import { type IConstruct } from "constructs";
|
|
3
|
+
import { type IBuilder, type Lifecycle, type Resolvable } from "@composurecdk/core";
|
|
4
|
+
/**
|
|
5
|
+
* Configuration properties for the Route53 AAAA (IPv6) record builder.
|
|
6
|
+
*
|
|
7
|
+
* Extends the CDK {@link AaaaRecordProps} but replaces `zone` and `target`
|
|
8
|
+
* with {@link Resolvable} variants so they can be wired from other components
|
|
9
|
+
* in a composed system.
|
|
10
|
+
*/
|
|
11
|
+
export interface AaaaRecordBuilderProps extends Omit<AaaaRecordProps, "zone" | "target"> {
|
|
12
|
+
/** The hosted zone in which to create the record. */
|
|
13
|
+
zone?: Resolvable<IHostedZone>;
|
|
14
|
+
/** The record target. */
|
|
15
|
+
target?: Resolvable<RecordTarget>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The build output of an {@link IAaaaRecordBuilder}.
|
|
19
|
+
*/
|
|
20
|
+
export interface AaaaRecordBuilderResult {
|
|
21
|
+
/** The Route53 AAAA record construct created by the builder. */
|
|
22
|
+
record: AaaaRecord;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A fluent builder for configuring and creating a Route53 AAAA (IPv6) record.
|
|
26
|
+
*
|
|
27
|
+
* Use this alongside an A record to expose a CloudFront distribution or ALB
|
|
28
|
+
* over both IPv4 and IPv6 — AWS alias targets support both families from a
|
|
29
|
+
* single resource.
|
|
30
|
+
*/
|
|
31
|
+
export type IAaaaRecordBuilder = IBuilder<AaaaRecordBuilderProps, AaaaRecordBuilder>;
|
|
32
|
+
declare class AaaaRecordBuilder implements Lifecycle<AaaaRecordBuilderResult> {
|
|
33
|
+
props: Partial<AaaaRecordBuilderProps>;
|
|
34
|
+
build(scope: IConstruct, id: string, context?: Record<string, object>): AaaaRecordBuilderResult;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Creates a new {@link IAaaaRecordBuilder} for configuring a Route53 AAAA
|
|
38
|
+
* (IPv6) record.
|
|
39
|
+
*
|
|
40
|
+
* @returns A fluent builder for a Route53 AAAA record.
|
|
41
|
+
*/
|
|
42
|
+
export declare function createAaaaRecordBuilder(): IAaaaRecordBuilder;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=aaaa-record-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aaaa-record-builder.d.ts","sourceRoot":"","sources":["../../src/aaaa-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAG5B;;;;;;GAMG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,QAAQ,CAAC;IACtF,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAC/B,yBAAyB;IACzB,MAAM,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,MAAM,EAAE,UAAU,CAAC;CACpB;AAED;;;;;;GAMG;AAEH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;AAErF,cAAM,iBAAkB,YAAW,SAAS,CAAC,uBAAuB,CAAC;IACnE,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAM;IAE5C,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,uBAAuB;CAyBhG;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,kBAAkB,CAG5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aaaa-record-builder.js","sourceRoot":"","sources":["../../src/aaaa-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GAIX,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,OAAO,EAGP,OAAO,GAER,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAkCrD,MAAM,iBAAiB;IACrB,KAAK,GAAoC,EAAE,CAAC;IAE5C,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,sBAAsB,EAAE,sDAAsD,CAC/E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,sBAAsB,EAAE,0DAA0D,CACnF,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,KAAK,SAAS,CAAC;QACzD,MAAM,WAAW,GAAG;YAClB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;YACxC,GAAG,IAAI;YACP,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;YAC5B,MAAM,EAAE,cAAc;SACJ,CAAC;QAErB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACtD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB;IACrC,+GAA+G;IAC/G,OAAO,OAAO,CAA4C,iBAAiB,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type IDistribution } from "aws-cdk-lib/aws-cloudfront";
|
|
2
|
+
import { type IDomainName, type RestApiBase } from "aws-cdk-lib/aws-apigateway";
|
|
3
|
+
import { RecordTarget } from "aws-cdk-lib/aws-route53";
|
|
4
|
+
import { type Resolvable } from "@composurecdk/core";
|
|
5
|
+
/**
|
|
6
|
+
* Builds an alias {@link RecordTarget} for a CloudFront distribution, usable
|
|
7
|
+
* as the `target` of an A or AAAA record. Accepts a {@link Resolvable} so a
|
|
8
|
+
* distribution produced by a composed `@composurecdk/cloudfront` component
|
|
9
|
+
* can be wired in via {@link ref}.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* createARecordBuilder()
|
|
14
|
+
* .zone(ref("zone", (r: HostedZoneBuilderResult) => r.hostedZone))
|
|
15
|
+
* .target(cloudfrontAliasTarget(
|
|
16
|
+
* ref("cdn", (r: DistributionBuilderResult) => r.distribution),
|
|
17
|
+
* ));
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function cloudfrontAliasTarget(distribution: Resolvable<IDistribution>): Resolvable<RecordTarget>;
|
|
21
|
+
/**
|
|
22
|
+
* Builds an alias {@link RecordTarget} for an API Gateway REST API that has a
|
|
23
|
+
* custom domain name configured via {@link RestApiBase}. Accepts a
|
|
24
|
+
* {@link Resolvable}.
|
|
25
|
+
*/
|
|
26
|
+
export declare function apiGatewayAliasTarget(api: Resolvable<RestApiBase>): Resolvable<RecordTarget>;
|
|
27
|
+
/**
|
|
28
|
+
* Builds an alias {@link RecordTarget} for an API Gateway custom domain name
|
|
29
|
+
* (`apigateway.DomainName`). Use this when you manage the domain name resource
|
|
30
|
+
* separately from the REST API (e.g. to share a custom domain across multiple
|
|
31
|
+
* APIs). Accepts a {@link Resolvable}.
|
|
32
|
+
*/
|
|
33
|
+
export declare function apiGatewayDomainAliasTarget(domain: Resolvable<IDomainName>): Resolvable<RecordTarget>;
|
|
34
|
+
//# sourceMappingURL=alias-targets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alias-targets.d.ts","sourceRoot":"","sources":["../../src/alias-targets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,UAAU,CAAC,aAAa,CAAC,GACtC,UAAU,CAAC,YAAY,CAAC,CAI1B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAI5F;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,GAC9B,UAAU,CAAC,YAAY,CAAC,CAI1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alias-targets.js","sourceRoot":"","sources":["../../src/alias-targets.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,EAAE,KAAK,EAAmB,MAAM,oBAAoB,CAAC;AAE5D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CACnC,YAAuC;IAEvC,OAAO,KAAK,CAAC,YAAY,CAAC;QACxB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAA4B;IAChE,OAAO,KAAK,CAAC,GAAG,CAAC;QACf,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,MAA+B;IAE/B,OAAO,KAAK,CAAC,MAAM,CAAC;QAClB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { CaaRecord, type CaaRecordProps, type IHostedZone } from "aws-cdk-lib/aws-route53";
|
|
2
|
+
import { type IConstruct } from "constructs";
|
|
3
|
+
import { type IBuilder, type Lifecycle, type Resolvable } from "@composurecdk/core";
|
|
4
|
+
/**
|
|
5
|
+
* Configuration properties for the Route53 CAA record builder.
|
|
6
|
+
*
|
|
7
|
+
* Extends the CDK {@link CaaRecordProps} but replaces `zone` with a
|
|
8
|
+
* {@link Resolvable} so it can be wired from composed components.
|
|
9
|
+
*/
|
|
10
|
+
export interface CaaRecordBuilderProps extends Omit<CaaRecordProps, "zone"> {
|
|
11
|
+
/** The hosted zone in which to create the record. */
|
|
12
|
+
zone?: Resolvable<IHostedZone>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The build output of an {@link ICaaRecordBuilder}.
|
|
16
|
+
*/
|
|
17
|
+
export interface CaaRecordBuilderResult {
|
|
18
|
+
/** The Route53 CAA record construct created by the builder. */
|
|
19
|
+
record: CaaRecord;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A fluent builder for configuring and creating a Route53 CAA record.
|
|
23
|
+
*
|
|
24
|
+
* CAA records restrict which certificate authorities may issue certificates
|
|
25
|
+
* for the domain — a CA that does not match any permitted `issue` / `issuewild`
|
|
26
|
+
* entry must refuse to issue. When issuing via ACM, see
|
|
27
|
+
* `createCaaAmazonRecordBuilder` (not yet implemented — use a CAA record with
|
|
28
|
+
* `amazon.com` / `amazontrust.com` / `awstrust.com` / `amazonaws.com` values).
|
|
29
|
+
*
|
|
30
|
+
* @see https://docs.aws.amazon.com/acm/latest/userguide/setup-caa.html
|
|
31
|
+
*/
|
|
32
|
+
export type ICaaRecordBuilder = IBuilder<CaaRecordBuilderProps, CaaRecordBuilder>;
|
|
33
|
+
declare class CaaRecordBuilder implements Lifecycle<CaaRecordBuilderResult> {
|
|
34
|
+
props: Partial<CaaRecordBuilderProps>;
|
|
35
|
+
build(scope: IConstruct, id: string, context?: Record<string, object>): CaaRecordBuilderResult;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Creates a new {@link ICaaRecordBuilder} for configuring a Route53 CAA record.
|
|
39
|
+
*
|
|
40
|
+
* @returns A fluent builder for a Route53 CAA record.
|
|
41
|
+
*/
|
|
42
|
+
export declare function createCaaRecordBuilder(): ICaaRecordBuilder;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=caa-record-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caa-record-builder.d.ts","sourceRoot":"","sources":["../../src/caa-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAG5B;;;;;GAKG;AACH,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IACzE,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,MAAM,EAAE,SAAS,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;AAElF,cAAM,gBAAiB,YAAW,SAAS,CAAC,sBAAsB,CAAC;IACjE,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAM;IAE3C,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,sBAAsB;CAwB/F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,iBAAiB,CAG1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caa-record-builder.js","sourceRoot":"","sources":["../../src/caa-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyC,MAAM,yBAAyB,CAAC;AAE3F,OAAO,EACL,OAAO,EAGP,OAAO,GAER,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAmCpD,MAAM,gBAAgB;IACpB,KAAK,GAAmC,EAAE,CAAC;IAE3C,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,qBAAqB,EAAE,sDAAsD,CAC9E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,qBAAqB,EAAE,+BAA+B;gBACpD,+DAA+D,CAClE,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,GAAG,mBAAmB;YACtB,GAAG,IAAI;YACP,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACX,CAAC;QAEpB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IACpC,+GAA+G;IAC/G,OAAO,OAAO,CAA0C,gBAAgB,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { CnameRecord, type CnameRecordProps, type IHostedZone } from "aws-cdk-lib/aws-route53";
|
|
2
|
+
import { type IConstruct } from "constructs";
|
|
3
|
+
import { type IBuilder, type Lifecycle, type Resolvable } from "@composurecdk/core";
|
|
4
|
+
/**
|
|
5
|
+
* Configuration properties for the Route53 CNAME record builder.
|
|
6
|
+
*
|
|
7
|
+
* Extends the CDK {@link CnameRecordProps} but replaces `zone` with a
|
|
8
|
+
* {@link Resolvable} so it can be wired from composed components.
|
|
9
|
+
*/
|
|
10
|
+
export interface CnameRecordBuilderProps extends Omit<CnameRecordProps, "zone"> {
|
|
11
|
+
/** The hosted zone in which to create the record. */
|
|
12
|
+
zone?: Resolvable<IHostedZone>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The build output of an {@link ICnameRecordBuilder}.
|
|
16
|
+
*/
|
|
17
|
+
export interface CnameRecordBuilderResult {
|
|
18
|
+
/** The Route53 CNAME record construct created by the builder. */
|
|
19
|
+
record: CnameRecord;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A fluent builder for configuring and creating a Route53 CNAME record.
|
|
23
|
+
*
|
|
24
|
+
* Prefer {@link createARecordBuilder | A / AAAA alias records} when pointing
|
|
25
|
+
* at AWS resources — alias records are free, resolve in one hop, and can be
|
|
26
|
+
* used at the apex. Use CNAME for non-AWS targets or for sub-domain
|
|
27
|
+
* redirections where an alias is not available.
|
|
28
|
+
*/
|
|
29
|
+
export type ICnameRecordBuilder = IBuilder<CnameRecordBuilderProps, CnameRecordBuilder>;
|
|
30
|
+
declare class CnameRecordBuilder implements Lifecycle<CnameRecordBuilderResult> {
|
|
31
|
+
props: Partial<CnameRecordBuilderProps>;
|
|
32
|
+
build(scope: IConstruct, id: string, context?: Record<string, object>): CnameRecordBuilderResult;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Creates a new {@link ICnameRecordBuilder} for configuring a Route53 CNAME
|
|
36
|
+
* record.
|
|
37
|
+
*
|
|
38
|
+
* @returns A fluent builder for a Route53 CNAME record.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createCnameRecordBuilder(): ICnameRecordBuilder;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=cname-record-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cname-record-builder.d.ts","sourceRoot":"","sources":["../../src/cname-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAG5B;;;;;GAKG;AACH,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC7E,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,iEAAiE;IACjE,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;;;;;GAOG;AAEH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,uBAAuB,EAAE,kBAAkB,CAAC,CAAC;AAExF,cAAM,kBAAmB,YAAW,SAAS,CAAC,wBAAwB,CAAC;IACrE,KAAK,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAM;IAE7C,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,wBAAwB;CA+BjG;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,mBAAmB,CAG9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cname-record-builder.js","sourceRoot":"","sources":["../../src/cname-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA2C,MAAM,yBAAyB,CAAC;AAE/F,OAAO,EACL,OAAO,EAGP,OAAO,GAER,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAgCtD,MAAM,kBAAkB;IACtB,KAAK,GAAqC,EAAE,CAAC;IAE7C,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,uBAAuB,EAAE,sDAAsD,CAChF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,uBAAuB,EAAE,2BAA2B;gBAClD,qEAAqE,CACxE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,uBAAuB,EAAE,2BAA2B;gBAClD,mFAAmF,CACtF,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,GAAG,qBAAqB;YACxB,GAAG,IAAI;YACP,UAAU;YACV,UAAU;YACV,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACT,CAAC;QAEtB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACvD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB;IACtC,+GAA+G;IAC/G,OAAO,OAAO,CAA8C,kBAAkB,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { HostedZoneBuilderProps } from "./hosted-zone-builder.js";
|
|
2
|
+
import type { ARecordBuilderProps } from "./a-record-builder.js";
|
|
3
|
+
import type { AaaaRecordBuilderProps } from "./aaaa-record-builder.js";
|
|
4
|
+
import type { CnameRecordBuilderProps } from "./cname-record-builder.js";
|
|
5
|
+
import type { TxtRecordBuilderProps } from "./txt-record-builder.js";
|
|
6
|
+
import type { MxRecordBuilderProps } from "./mx-record-builder.js";
|
|
7
|
+
import type { SrvRecordBuilderProps } from "./srv-record-builder.js";
|
|
8
|
+
import type { CaaRecordBuilderProps } from "./caa-record-builder.js";
|
|
9
|
+
import type { NsRecordBuilderProps } from "./ns-record-builder.js";
|
|
10
|
+
import type { DsRecordBuilderProps } from "./ds-record-builder.js";
|
|
11
|
+
import type { HttpsRecordBuilderProps } from "./https-record-builder.js";
|
|
12
|
+
import type { SvcbRecordBuilderProps } from "./svcb-record-builder.js";
|
|
13
|
+
import type { HealthCheckBuilderProps } from "./health-check-builder.js";
|
|
14
|
+
/**
|
|
15
|
+
* Naming prefix applied to every auto-created Route 53 query-log group. A
|
|
16
|
+
* single shared resource policy targets `<prefix>/*` so multiple hosted zones
|
|
17
|
+
* in the same stack share one `AWS::Logs::ResourcePolicy` (the per-region
|
|
18
|
+
* soft limit is 10). Matches the prefix the Route 53 console uses.
|
|
19
|
+
*
|
|
20
|
+
* @see https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html
|
|
21
|
+
*/
|
|
22
|
+
export declare const QUERY_LOGGING_LOG_GROUP_NAME_PREFIX = "/aws/route53";
|
|
23
|
+
/**
|
|
24
|
+
* Construct id of the shared `AWS::Logs::ResourcePolicy` materialised once
|
|
25
|
+
* per stack when any hosted zone in that stack uses auto-managed query
|
|
26
|
+
* logging. Package-internal — used by the dedup helper and the unit tests, and
|
|
27
|
+
* intentionally not re-exported from the package barrel; consumers should not
|
|
28
|
+
* reference the policy directly.
|
|
29
|
+
*/
|
|
30
|
+
export declare const QUERY_LOGGING_RESOURCE_POLICY_ID = "ComposureCDKRoute53QueryLoggingPolicy";
|
|
31
|
+
/**
|
|
32
|
+
* Stable resource-policy name written into CloudWatch Logs so the policy is
|
|
33
|
+
* deduplicated when the same stack is re-synthesised across deployments.
|
|
34
|
+
*/
|
|
35
|
+
export declare const QUERY_LOGGING_RESOURCE_POLICY_NAME = "ComposureCDK-Route53QueryLogging";
|
|
36
|
+
/**
|
|
37
|
+
* Secure, AWS-recommended defaults applied to every public hosted zone built
|
|
38
|
+
* with {@link createHostedZoneBuilder}. Each property can be individually
|
|
39
|
+
* overridden via the builder's fluent API.
|
|
40
|
+
*
|
|
41
|
+
* Query logging is enabled by default: the builder auto-creates a CloudWatch
|
|
42
|
+
* {@link import("aws-cdk-lib/aws-logs").LogGroup} under
|
|
43
|
+
* `${QUERY_LOGGING_LOG_GROUP_NAME_PREFIX}/<zoneName>` and a single shared
|
|
44
|
+
* `AWS::Logs::ResourcePolicy` granting `route53.amazonaws.com` permission to
|
|
45
|
+
* write log streams. Disable with `.queryLogging(false)` or supply a managed
|
|
46
|
+
* log group via `.queryLogging({ logGroupArn })`.
|
|
47
|
+
*
|
|
48
|
+
* @see https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html
|
|
49
|
+
*/
|
|
50
|
+
export declare const HOSTED_ZONE_DEFAULTS: Partial<HostedZoneBuilderProps>;
|
|
51
|
+
/**
|
|
52
|
+
* Defaults for {@link createARecordBuilder}. Overridable via the fluent API.
|
|
53
|
+
* The builder skips the `ttl` default for alias targets — AWS ignores TTL on
|
|
54
|
+
* alias records and CDK emits a warning when one is set.
|
|
55
|
+
*/
|
|
56
|
+
export declare const A_RECORD_DEFAULTS: Partial<ARecordBuilderProps>;
|
|
57
|
+
/**
|
|
58
|
+
* Defaults for {@link createAaaaRecordBuilder}. Overridable via the fluent API.
|
|
59
|
+
* Same alias-target caveat as {@link A_RECORD_DEFAULTS}.
|
|
60
|
+
*/
|
|
61
|
+
export declare const AAAA_RECORD_DEFAULTS: Partial<AaaaRecordBuilderProps>;
|
|
62
|
+
/**
|
|
63
|
+
* Defaults for {@link createCnameRecordBuilder}. Overridable via the fluent API.
|
|
64
|
+
*/
|
|
65
|
+
export declare const CNAME_RECORD_DEFAULTS: Partial<CnameRecordBuilderProps>;
|
|
66
|
+
/**
|
|
67
|
+
* Defaults for {@link createTxtRecordBuilder}. Overridable via the fluent API.
|
|
68
|
+
*/
|
|
69
|
+
export declare const TXT_RECORD_DEFAULTS: Partial<TxtRecordBuilderProps>;
|
|
70
|
+
/**
|
|
71
|
+
* Defaults for {@link createMxRecordBuilder}. Overridable via the fluent API.
|
|
72
|
+
*/
|
|
73
|
+
export declare const MX_RECORD_DEFAULTS: Partial<MxRecordBuilderProps>;
|
|
74
|
+
/**
|
|
75
|
+
* Defaults for {@link createSrvRecordBuilder}. Overridable via the fluent API.
|
|
76
|
+
*/
|
|
77
|
+
export declare const SRV_RECORD_DEFAULTS: Partial<SrvRecordBuilderProps>;
|
|
78
|
+
/**
|
|
79
|
+
* Defaults for {@link createCaaRecordBuilder}. Overridable via the fluent API.
|
|
80
|
+
*/
|
|
81
|
+
export declare const CAA_RECORD_DEFAULTS: Partial<CaaRecordBuilderProps>;
|
|
82
|
+
/**
|
|
83
|
+
* Defaults for {@link createNsRecordBuilder}. Overridable via the fluent API.
|
|
84
|
+
*
|
|
85
|
+
* A longer TTL is appropriate for delegation records — resolvers cache NS
|
|
86
|
+
* responses, and frequent churn forces parent-side re-delegation lookups.
|
|
87
|
+
*/
|
|
88
|
+
export declare const NS_RECORD_DEFAULTS: Partial<NsRecordBuilderProps>;
|
|
89
|
+
/**
|
|
90
|
+
* Defaults for {@link createDsRecordBuilder}. Overridable via the fluent API.
|
|
91
|
+
*
|
|
92
|
+
* DS records change rarely (key-signing rollovers); a long TTL reduces
|
|
93
|
+
* DNSSEC validation load on resolvers.
|
|
94
|
+
*/
|
|
95
|
+
export declare const DS_RECORD_DEFAULTS: Partial<DsRecordBuilderProps>;
|
|
96
|
+
/**
|
|
97
|
+
* Defaults for {@link createHttpsRecordBuilder}. Overridable via the fluent API.
|
|
98
|
+
* Same alias-target caveat as {@link A_RECORD_DEFAULTS}.
|
|
99
|
+
*/
|
|
100
|
+
export declare const HTTPS_RECORD_DEFAULTS: Partial<HttpsRecordBuilderProps>;
|
|
101
|
+
/**
|
|
102
|
+
* Defaults for {@link createSvcbRecordBuilder}. Overridable via the fluent API.
|
|
103
|
+
*/
|
|
104
|
+
export declare const SVCB_RECORD_DEFAULTS: Partial<SvcbRecordBuilderProps>;
|
|
105
|
+
/**
|
|
106
|
+
* Defaults for {@link createHealthCheckBuilder}. Overridable via the fluent API.
|
|
107
|
+
*
|
|
108
|
+
* `failureThreshold` and `requestInterval` match CDK's defaults but are set
|
|
109
|
+
* explicitly so the values are surfaced in the package's defaults table and
|
|
110
|
+
* can be reasoned about without consulting CDK source. `measureLatency` is
|
|
111
|
+
* defaulted ON to align with the AWS Well-Architected operational-excellence
|
|
112
|
+
* pillar (per-region latency visibility on the Route 53 Health Checks
|
|
113
|
+
* console). It carries a small additional cost — disable explicitly via
|
|
114
|
+
* `.measureLatency(false)` if cost is a concern.
|
|
115
|
+
*
|
|
116
|
+
* @see https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html
|
|
117
|
+
*/
|
|
118
|
+
export declare const HEALTH_CHECK_DEFAULTS: Partial<HealthCheckBuilderProps>;
|
|
119
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEzE;;;;;;;GAOG;AACH,eAAO,MAAM,mCAAmC,iBAAiB,CAAC;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,0CAA0C,CAAC;AAExF;;;GAGG;AACH,eAAO,MAAM,kCAAkC,qCAAqC,CAAC;AAErF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oBAAoB,EAAE,OAAO,CAAC,sBAAsB,CAahE,CAAC;AAaF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,mBAAmB,CAE1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,OAAO,CAAC,sBAAsB,CAEhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,OAAO,CAAC,uBAAuB,CAElE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,qBAAqB,CAE9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,oBAAoB,CAE5D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,qBAAqB,CAE9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,qBAAqB,CAE9D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,oBAAoB,CAE5D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,oBAAoB,CAE5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,OAAO,CAAC,uBAAuB,CAElE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,OAAO,CAAC,sBAAsB,CAEhE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,EAAE,OAAO,CAAC,uBAAuB,CAIlE,CAAC"}
|
|
@@ -1,13 +1,39 @@
|
|
|
1
1
|
import { Duration } from "aws-cdk-lib";
|
|
2
|
+
/**
|
|
3
|
+
* Naming prefix applied to every auto-created Route 53 query-log group. A
|
|
4
|
+
* single shared resource policy targets `<prefix>/*` so multiple hosted zones
|
|
5
|
+
* in the same stack share one `AWS::Logs::ResourcePolicy` (the per-region
|
|
6
|
+
* soft limit is 10). Matches the prefix the Route 53 console uses.
|
|
7
|
+
*
|
|
8
|
+
* @see https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html
|
|
9
|
+
*/
|
|
10
|
+
export const QUERY_LOGGING_LOG_GROUP_NAME_PREFIX = "/aws/route53";
|
|
11
|
+
/**
|
|
12
|
+
* Construct id of the shared `AWS::Logs::ResourcePolicy` materialised once
|
|
13
|
+
* per stack when any hosted zone in that stack uses auto-managed query
|
|
14
|
+
* logging. Package-internal — used by the dedup helper and the unit tests, and
|
|
15
|
+
* intentionally not re-exported from the package barrel; consumers should not
|
|
16
|
+
* reference the policy directly.
|
|
17
|
+
*/
|
|
18
|
+
export const QUERY_LOGGING_RESOURCE_POLICY_ID = "ComposureCDKRoute53QueryLoggingPolicy";
|
|
19
|
+
/**
|
|
20
|
+
* Stable resource-policy name written into CloudWatch Logs so the policy is
|
|
21
|
+
* deduplicated when the same stack is re-synthesised across deployments.
|
|
22
|
+
*/
|
|
23
|
+
export const QUERY_LOGGING_RESOURCE_POLICY_NAME = "ComposureCDK-Route53QueryLogging";
|
|
2
24
|
/**
|
|
3
25
|
* Secure, AWS-recommended defaults applied to every public hosted zone built
|
|
4
26
|
* with {@link createHostedZoneBuilder}. Each property can be individually
|
|
5
27
|
* overridden via the builder's fluent API.
|
|
6
28
|
*
|
|
7
|
-
* Query logging is
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
29
|
+
* Query logging is enabled by default: the builder auto-creates a CloudWatch
|
|
30
|
+
* {@link import("aws-cdk-lib/aws-logs").LogGroup} under
|
|
31
|
+
* `${QUERY_LOGGING_LOG_GROUP_NAME_PREFIX}/<zoneName>` and a single shared
|
|
32
|
+
* `AWS::Logs::ResourcePolicy` granting `route53.amazonaws.com` permission to
|
|
33
|
+
* write log streams. Disable with `.queryLogging(false)` or supply a managed
|
|
34
|
+
* log group via `.queryLogging({ logGroupArn })`.
|
|
35
|
+
*
|
|
36
|
+
* @see https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html
|
|
11
37
|
*/
|
|
12
38
|
export const HOSTED_ZONE_DEFAULTS = {
|
|
13
39
|
/**
|
|
@@ -15,6 +41,13 @@ export const HOSTED_ZONE_DEFAULTS = {
|
|
|
15
41
|
* fully-qualified domain. Matches the CDK default and RFC 1035.
|
|
16
42
|
*/
|
|
17
43
|
addTrailingDot: true,
|
|
44
|
+
/**
|
|
45
|
+
* Enable DNS query logging out of the box, with the auto-managed log
|
|
46
|
+
* group and shared resource policy described above. Set to `false` or to
|
|
47
|
+
* `{ logGroupArn: '...' }` to deviate.
|
|
48
|
+
* @see https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_detect_investigate_events_app_service_logging.html
|
|
49
|
+
*/
|
|
50
|
+
queryLogging: {},
|
|
18
51
|
};
|
|
19
52
|
/**
|
|
20
53
|
* Default TTL applied to records built by this package when no TTL is set.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAevC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,cAAc,CAAC;AAElE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,uCAAuC,CAAC;AAExF;;;GAGG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,kCAAkC,CAAC;AAErF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAoC;IACnE;;;OAGG;IACH,cAAc,EAAE,IAAI;IACpB;;;;;OAKG;IACH,YAAY,EAAE,EAAE;CACjB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAiC;IAC7D,GAAG,EAAE,kBAAkB;CACxB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAoC;IACnE,GAAG,EAAE,kBAAkB;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAqC;IACrE,GAAG,EAAE,kBAAkB;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAmC;IACjE,GAAG,EAAE,kBAAkB;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkC;IAC/D,GAAG,EAAE,kBAAkB;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAmC;IACjE,GAAG,EAAE,kBAAkB;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAmC;IACjE,GAAG,EAAE,kBAAkB;CACxB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkC;IAC/D,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkC;IAC/D,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAqC;IACrE,GAAG,EAAE,kBAAkB;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAoC;IACnE,GAAG,EAAE,kBAAkB;CACxB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAqC;IACrE,gBAAgB,EAAE,CAAC;IACnB,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,cAAc,EAAE,IAAI;CACrB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { DsRecord, type DsRecordProps, type IHostedZone } from "aws-cdk-lib/aws-route53";
|
|
2
|
+
import { type IConstruct } from "constructs";
|
|
3
|
+
import { type IBuilder, type Lifecycle, type Resolvable } from "@composurecdk/core";
|
|
4
|
+
/**
|
|
5
|
+
* Configuration properties for the Route53 DS record builder.
|
|
6
|
+
*
|
|
7
|
+
* Extends the CDK {@link DsRecordProps} but replaces `zone` with a
|
|
8
|
+
* {@link Resolvable} so it can be wired from composed components.
|
|
9
|
+
*/
|
|
10
|
+
export interface DsRecordBuilderProps extends Omit<DsRecordProps, "zone"> {
|
|
11
|
+
/** The hosted zone in which to create the record. */
|
|
12
|
+
zone?: Resolvable<IHostedZone>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The build output of an {@link IDsRecordBuilder}.
|
|
16
|
+
*/
|
|
17
|
+
export interface DsRecordBuilderResult {
|
|
18
|
+
/** The Route53 DS record construct created by the builder. */
|
|
19
|
+
record: DsRecord;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A fluent builder for configuring and creating a Route53 DS record.
|
|
23
|
+
*
|
|
24
|
+
* DS (Delegation Signer) records establish the DNSSEC chain of trust from a
|
|
25
|
+
* parent zone to a delegated child zone. Each value is a rdata string of
|
|
26
|
+
* `keyTag algorithm digestType digest`.
|
|
27
|
+
*
|
|
28
|
+
* @see https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-chain-of-trust.html
|
|
29
|
+
*/
|
|
30
|
+
export type IDsRecordBuilder = IBuilder<DsRecordBuilderProps, DsRecordBuilder>;
|
|
31
|
+
declare class DsRecordBuilder implements Lifecycle<DsRecordBuilderResult> {
|
|
32
|
+
props: Partial<DsRecordBuilderProps>;
|
|
33
|
+
build(scope: IConstruct, id: string, context?: Record<string, object>): DsRecordBuilderResult;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Creates a new {@link IDsRecordBuilder} for configuring a Route53 DS record.
|
|
37
|
+
*
|
|
38
|
+
* @returns A fluent builder for a Route53 DS record.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createDsRecordBuilder(): IDsRecordBuilder;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=ds-record-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ds-record-builder.d.ts","sourceRoot":"","sources":["../../src/ds-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAG5B;;;;;GAKG;AACH,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IACvE,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,8DAA8D;IAC9D,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED;;;;;;;;GAQG;AAEH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;AAE/E,cAAM,eAAgB,YAAW,SAAS,CAAC,qBAAqB,CAAC;IAC/D,KAAK,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAM;IAE1C,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,qBAAqB;CAsB9F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAGxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ds-record-builder.js","sourceRoot":"","sources":["../../src/ds-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwC,MAAM,yBAAyB,CAAC;AAEzF,OAAO,EACL,OAAO,EAGP,OAAO,GAER,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAiCnD,MAAM,eAAe;IACnB,KAAK,GAAkC,EAAE,CAAC;IAE1C,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,sDAAsD,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,oBAAoB,EAAE,+BAA+B;gBACnD,wFAAwF,CAC3F,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,GAAG,kBAAkB;YACrB,GAAG,IAAI;YACP,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACZ,CAAC;QAEnB,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,+GAA+G;IAC/G,OAAO,OAAO,CAAwC,eAAe,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { type IHealthCheck } from "aws-cdk-lib/aws-route53";
|
|
2
|
+
import { type Alarm } from "aws-cdk-lib/aws-cloudwatch";
|
|
3
|
+
import { type IConstruct } from "constructs";
|
|
4
|
+
import { COPY_STATE, type Lifecycle, type Resolvable } from "@composurecdk/core";
|
|
5
|
+
import { type ITaggedBuilder } from "@composurecdk/cloudformation";
|
|
6
|
+
import { AlarmDefinitionBuilder } from "@composurecdk/cloudwatch";
|
|
7
|
+
import type { HealthCheckAlarmConfig } from "./health-check-alarm-config.js";
|
|
8
|
+
import type { HealthCheckBuilderResult } from "./health-check-builder.js";
|
|
9
|
+
/**
|
|
10
|
+
* Configuration properties for {@link createHealthCheckAlarmBuilder}.
|
|
11
|
+
*
|
|
12
|
+
* The standalone alarm builder mirrors the alarm surface that
|
|
13
|
+
* {@link createHealthCheckBuilder} creates by default. It exists so that
|
|
14
|
+
* alarms can be created in a different stack from the health check itself —
|
|
15
|
+
* specifically a `us-east-1` stack, since Route 53 emits all health check
|
|
16
|
+
* metrics there regardless of the health check's stack region.
|
|
17
|
+
*
|
|
18
|
+
* @see ADR-0004 — Split-alarm builder pattern for fixed-region metrics
|
|
19
|
+
*/
|
|
20
|
+
export interface HealthCheckAlarmBuilderProps {
|
|
21
|
+
/**
|
|
22
|
+
* Configuration for AWS-recommended CloudWatch alarms.
|
|
23
|
+
*
|
|
24
|
+
* Mirrors {@link HealthCheckBuilderProps.recommendedAlarms}. Set to
|
|
25
|
+
* `false` to disable all recommended alarms. Custom alarms added via
|
|
26
|
+
* {@link IHealthCheckAlarmBuilder.addAlarm} are unaffected.
|
|
27
|
+
*
|
|
28
|
+
* No alarm actions are configured by default. Use `alarmActionsPolicy`
|
|
29
|
+
* (or an `afterBuild` hook) to wire SNS or other actions onto the
|
|
30
|
+
* resulting alarms.
|
|
31
|
+
*
|
|
32
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#Route53
|
|
33
|
+
*/
|
|
34
|
+
recommendedAlarms?: HealthCheckAlarmConfig | false;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The build output of an {@link IHealthCheckAlarmBuilder}.
|
|
38
|
+
*/
|
|
39
|
+
export interface HealthCheckAlarmBuilderResult {
|
|
40
|
+
/**
|
|
41
|
+
* The CloudWatch alarms created by this builder, keyed by alarm name.
|
|
42
|
+
* Uses the same key scheme as {@link HealthCheckBuilderResult.alarms}.
|
|
43
|
+
*/
|
|
44
|
+
alarms: Record<string, Alarm>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* A fluent builder for Route 53 health-check CloudWatch alarms, decoupled
|
|
48
|
+
* from the health check itself. Use this when the health check lives in a
|
|
49
|
+
* stack outside `us-east-1` — route this component into a `us-east-1` stack
|
|
50
|
+
* via `compose().withStacks()` so the alarms land where Route 53 actually
|
|
51
|
+
* emits metrics.
|
|
52
|
+
*
|
|
53
|
+
* @see {@link createHealthCheckAlarmBuilder}
|
|
54
|
+
*/
|
|
55
|
+
export type IHealthCheckAlarmBuilder = ITaggedBuilder<HealthCheckAlarmBuilderProps, HealthCheckAlarmBuilder>;
|
|
56
|
+
/**
|
|
57
|
+
* Shared alarm-assembly used by both {@link createHealthCheckBuilder} (in its
|
|
58
|
+
* own stack) and {@link createHealthCheckAlarmBuilder} (typically in a
|
|
59
|
+
* separate `us-east-1` stack). Materialises the recommended health-check
|
|
60
|
+
* alarm and any user-supplied custom alarms, emits the region warning if the
|
|
61
|
+
* resulting scope is not in `us-east-1`, and creates the alarm constructs.
|
|
62
|
+
*
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
export declare function buildHealthCheckAlarms(scope: IConstruct, id: string, target: Pick<HealthCheckBuilderResult, "healthCheck">, options?: {
|
|
66
|
+
recommendedAlarms?: HealthCheckAlarmConfig | false;
|
|
67
|
+
customAlarms?: AlarmDefinitionBuilder<IHealthCheck>[];
|
|
68
|
+
}): Record<string, Alarm>;
|
|
69
|
+
declare class HealthCheckAlarmBuilder implements Lifecycle<HealthCheckAlarmBuilderResult> {
|
|
70
|
+
#private;
|
|
71
|
+
props: Partial<HealthCheckAlarmBuilderProps>;
|
|
72
|
+
/**
|
|
73
|
+
* Sets the health check to alarm on. Pass the result of
|
|
74
|
+
* {@link createHealthCheckBuilder} (or a {@link Ref} to it). The builder
|
|
75
|
+
* reads the health check from the result.
|
|
76
|
+
*
|
|
77
|
+
* Pair with `compose().withStacks()` to route this component into a
|
|
78
|
+
* `us-east-1` stack while the health check itself lives elsewhere — set
|
|
79
|
+
* `crossRegionReferences: true` on both stacks so CDK can wire the
|
|
80
|
+
* `HealthCheckId` reference automatically.
|
|
81
|
+
*/
|
|
82
|
+
healthCheck(healthCheck: Resolvable<HealthCheckBuilderResult>): this;
|
|
83
|
+
/**
|
|
84
|
+
* Adds a custom alarm against the health check. The configure callback
|
|
85
|
+
* receives a fresh {@link AlarmDefinitionBuilder} pre-set with the alarm's
|
|
86
|
+
* key; configure metric, threshold, comparison and any other options.
|
|
87
|
+
*
|
|
88
|
+
* The created alarm is materialised in this builder's stack — useful for
|
|
89
|
+
* cross-region setups where you want all health-check alarms to live with
|
|
90
|
+
* the recommended ones.
|
|
91
|
+
*/
|
|
92
|
+
addAlarm(key: string, configure: (alarm: AlarmDefinitionBuilder<IHealthCheck>) => AlarmDefinitionBuilder<IHealthCheck>): this;
|
|
93
|
+
/** @internal — see ADR-0005. */
|
|
94
|
+
[COPY_STATE](target: HealthCheckAlarmBuilder): void;
|
|
95
|
+
build(scope: IConstruct, id: string, context?: Record<string, object>): HealthCheckAlarmBuilderResult;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Creates a new {@link IHealthCheckAlarmBuilder} for materialising Route 53
|
|
99
|
+
* health-check alarms in a stack separate from the health check itself.
|
|
100
|
+
*
|
|
101
|
+
* The recommended use is multi-region deployments: the health check lives in
|
|
102
|
+
* the application's stack (in any region — Route 53 health checks are
|
|
103
|
+
* global), and the alarms must live in a `us-east-1` stack so they can read
|
|
104
|
+
* the metrics Route 53 emits there.
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```ts
|
|
108
|
+
* compose(
|
|
109
|
+
* {
|
|
110
|
+
* api: createHealthCheckBuilder()
|
|
111
|
+
* .type(HealthCheckType.HTTPS)
|
|
112
|
+
* .fqdn("api.example.com")
|
|
113
|
+
* .recommendedAlarms(false), // suppress alarms in the api's own stack
|
|
114
|
+
*
|
|
115
|
+
* apiAlarms: createHealthCheckAlarmBuilder()
|
|
116
|
+
* .healthCheck(ref<HealthCheckBuilderResult>("api"))
|
|
117
|
+
* .recommendedAlarms({ healthCheckStatus: { evaluationPeriods: 2 } }),
|
|
118
|
+
* },
|
|
119
|
+
* { api: [], apiAlarms: ["api"] },
|
|
120
|
+
* )
|
|
121
|
+
* .withStacks({
|
|
122
|
+
* api: appStack, // any region — health checks are global
|
|
123
|
+
* apiAlarms: monitoringStack, // us-east-1 — where AWS/Route53 metrics live
|
|
124
|
+
* })
|
|
125
|
+
* .build(app, "App");
|
|
126
|
+
* ```
|
|
127
|
+
*
|
|
128
|
+
* Set `crossRegionReferences: true` on both stacks so CDK can export the
|
|
129
|
+
* `HealthCheckId` from the app stack and import it in the alarm stack.
|
|
130
|
+
*/
|
|
131
|
+
export declare function createHealthCheckAlarmBuilder(): IHealthCheckAlarmBuilder;
|
|
132
|
+
export {};
|
|
133
|
+
//# sourceMappingURL=health-check-alarm-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-check-alarm-builder.d.ts","sourceRoot":"","sources":["../../src/health-check-alarm-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAW,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,KAAK,cAAc,EAAiB,MAAM,8BAA8B,CAAC;AAElF,OAAO,EAAE,sBAAsB,EAAgB,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E;;;;;;;;;;GAUG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,EAAE,sBAAsB,GAAG,KAAK,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,wBAAwB,GAAG,cAAc,CACnD,4BAA4B,EAC5B,uBAAuB,CACxB,CAAC;AAsBF;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,UAAU,EACjB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,EACrD,OAAO,GAAE;IACP,iBAAiB,CAAC,EAAE,sBAAsB,GAAG,KAAK,CAAC;IACnD,YAAY,CAAC,EAAE,sBAAsB,CAAC,YAAY,CAAC,EAAE,CAAC;CAClD,GACL,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAevB;AAED,cAAM,uBAAwB,YAAW,SAAS,CAAC,6BAA6B,CAAC;;IAC/E,KAAK,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAM;IAIlD;;;;;;;;;OASG;IACH,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,wBAAwB,CAAC,GAAG,IAAI;IAKpE;;;;;;;;OAQG;IACH,QAAQ,CACN,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,CACT,KAAK,EAAE,sBAAsB,CAAC,YAAY,CAAC,KACxC,sBAAsB,CAAC,YAAY,CAAC,GACxC,IAAI;IAKP,gCAAgC;IAChC,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAKnD,KAAK,CACH,KAAK,EAAE,UAAU,EACjB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,6BAA6B;CAejC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,6BAA6B,IAAI,wBAAwB,CAIxE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-check-alarm-builder.js","sourceRoot":"","sources":["../../src/health-check-alarm-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EAAE,UAAU,EAAkB,OAAO,EAAmB,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAuB,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElF,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EAAE,kCAAkC,EAAE,MAAM,0BAA0B,CAAC;AAwD9E;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,KAAiB;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;QAAE,OAAO;IACvC,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO;IACnC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,CAChC,oCAAoC,EACpC,iFAAiF;QAC/E,gBAAgB,MAAM,8DAA8D;QACpF,yEAAyE;QACzE,6CAA6C,CAChD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAiB,EACjB,EAAU,EACV,MAAqD,EACrD,UAGI,EAAE;IAEN,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAC9C,MAAM,eAAe,GACnB,WAAW,KAAK,KAAK,IAAI,WAAW,EAAE,OAAO,KAAK,KAAK;QACrD,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,kCAAkC,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAE1E,MAAM,eAAe,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9F,MAAM,YAAY,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,eAAe,CAAC,CAAC;IAE9D,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,uBAAuB;IAC3B,KAAK,GAA0C,EAAE,CAAC;IAClD,YAAY,CAAwC;IAC3C,aAAa,GAA2C,EAAE,CAAC;IAEpE;;;;;;;;;OASG;IACH,WAAW,CAAC,WAAiD;QAC3D,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ,CACN,GAAW,EACX,SAEyC;QAEzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAe,GAAG,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gCAAgC;IAChC,CAAC,UAAU,CAAC,CAAC,MAA+B;QAC1C,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACxC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CACH,KAAiB,EACjB,EAAU,EACV,OAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,4BAA4B,EAAE,6BAA6B;gBACzD,sEAAsE,CACzE,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACzD,OAAO;YACL,MAAM,EAAE,sBAAsB,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;gBAChD,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB;gBAC/C,YAAY,EAAE,IAAI,CAAC,aAAa;aACjC,CAAC;SACH,CAAC;IACJ,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,6BAA6B;IAC3C,OAAO,aAAa,CAClB,uBAAuB,CACxB,CAAC;AACJ,CAAC"}
|