@composurecdk/route53 0.7.0 → 0.8.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.
Files changed (242) hide show
  1. package/README.md +54 -4
  2. package/dist/commonjs/a-record-builder.d.ts.map +1 -0
  3. package/dist/commonjs/a-record-builder.js +38 -0
  4. package/dist/commonjs/a-record-builder.js.map +1 -0
  5. package/dist/commonjs/aaaa-record-builder.d.ts.map +1 -0
  6. package/dist/commonjs/aaaa-record-builder.js +39 -0
  7. package/dist/commonjs/aaaa-record-builder.js.map +1 -0
  8. package/dist/commonjs/alias-targets.d.ts.map +1 -0
  9. package/dist/commonjs/alias-targets.js +50 -0
  10. package/dist/commonjs/alias-targets.js.map +1 -0
  11. package/dist/commonjs/caa-record-builder.d.ts.map +1 -0
  12. package/dist/commonjs/caa-record-builder.js +37 -0
  13. package/dist/commonjs/caa-record-builder.js.map +1 -0
  14. package/dist/commonjs/cname-record-builder.d.ts.map +1 -0
  15. package/dist/commonjs/cname-record-builder.js +43 -0
  16. package/dist/commonjs/cname-record-builder.js.map +1 -0
  17. package/dist/{defaults.d.ts → commonjs/defaults.d.ts} +30 -4
  18. package/dist/commonjs/defaults.d.ts.map +1 -0
  19. package/dist/commonjs/defaults.js +159 -0
  20. package/dist/commonjs/defaults.js.map +1 -0
  21. package/dist/commonjs/ds-record-builder.d.ts.map +1 -0
  22. package/dist/commonjs/ds-record-builder.js +37 -0
  23. package/dist/commonjs/ds-record-builder.js.map +1 -0
  24. package/dist/commonjs/health-check-alarm-builder.d.ts.map +1 -0
  25. package/dist/commonjs/health-check-alarm-builder.js +136 -0
  26. package/dist/commonjs/health-check-alarm-builder.js.map +1 -0
  27. package/dist/commonjs/health-check-alarm-config.d.ts.map +1 -0
  28. package/dist/commonjs/health-check-alarm-config.js +3 -0
  29. package/dist/commonjs/health-check-alarm-config.js.map +1 -0
  30. package/dist/commonjs/health-check-alarm-defaults.d.ts.map +1 -0
  31. package/dist/commonjs/health-check-alarm-defaults.js +29 -0
  32. package/dist/commonjs/health-check-alarm-defaults.js.map +1 -0
  33. package/dist/commonjs/health-check-alarms.d.ts.map +1 -0
  34. package/dist/commonjs/health-check-alarms.js +45 -0
  35. package/dist/commonjs/health-check-alarms.js.map +1 -0
  36. package/dist/commonjs/health-check-builder.d.ts.map +1 -0
  37. package/dist/commonjs/health-check-builder.js +56 -0
  38. package/dist/commonjs/health-check-builder.js.map +1 -0
  39. package/dist/{hosted-zone-builder.d.ts → commonjs/hosted-zone-builder.d.ts} +26 -7
  40. package/dist/commonjs/hosted-zone-builder.d.ts.map +1 -0
  41. package/dist/commonjs/hosted-zone-builder.js +60 -0
  42. package/dist/commonjs/hosted-zone-builder.js.map +1 -0
  43. package/dist/commonjs/https-record-builder.d.ts.map +1 -0
  44. package/dist/commonjs/https-record-builder.js +45 -0
  45. package/dist/commonjs/https-record-builder.js.map +1 -0
  46. package/dist/{index.d.ts → commonjs/index.d.ts} +2 -1
  47. package/dist/commonjs/index.d.ts.map +1 -0
  48. package/dist/commonjs/index.js +54 -0
  49. package/dist/commonjs/index.js.map +1 -0
  50. package/dist/commonjs/mx-record-builder.d.ts.map +1 -0
  51. package/dist/commonjs/mx-record-builder.js +37 -0
  52. package/dist/commonjs/mx-record-builder.js.map +1 -0
  53. package/dist/commonjs/ns-record-builder.d.ts.map +1 -0
  54. package/dist/commonjs/ns-record-builder.js +42 -0
  55. package/dist/commonjs/ns-record-builder.js.map +1 -0
  56. package/dist/commonjs/package.json +3 -0
  57. package/dist/commonjs/query-logging.d.ts +60 -0
  58. package/dist/commonjs/query-logging.d.ts.map +1 -0
  59. package/dist/commonjs/query-logging.js +136 -0
  60. package/dist/commonjs/query-logging.js.map +1 -0
  61. package/dist/commonjs/srv-record-builder.d.ts.map +1 -0
  62. package/dist/commonjs/srv-record-builder.js +37 -0
  63. package/dist/commonjs/srv-record-builder.js.map +1 -0
  64. package/dist/commonjs/svcb-record-builder.d.ts.map +1 -0
  65. package/dist/commonjs/svcb-record-builder.js +38 -0
  66. package/dist/commonjs/svcb-record-builder.js.map +1 -0
  67. package/dist/commonjs/txt-record-builder.d.ts.map +1 -0
  68. package/dist/commonjs/txt-record-builder.js +37 -0
  69. package/dist/commonjs/txt-record-builder.js.map +1 -0
  70. package/dist/commonjs/zone/index.d.ts.map +1 -0
  71. package/dist/commonjs/zone/index.js +23 -0
  72. package/dist/commonjs/zone/index.js.map +1 -0
  73. package/dist/commonjs/zone/zone-dsl.d.ts.map +1 -0
  74. package/dist/commonjs/zone/zone-dsl.js +247 -0
  75. package/dist/commonjs/zone/zone-dsl.js.map +1 -0
  76. package/dist/commonjs/zone/zone-records.d.ts.map +1 -0
  77. package/dist/commonjs/zone/zone-records.js +322 -0
  78. package/dist/commonjs/zone/zone-records.js.map +1 -0
  79. package/dist/esm/a-record-builder.d.ts +56 -0
  80. package/dist/esm/a-record-builder.d.ts.map +1 -0
  81. package/dist/esm/a-record-builder.js.map +1 -0
  82. package/dist/esm/aaaa-record-builder.d.ts +44 -0
  83. package/dist/esm/aaaa-record-builder.d.ts.map +1 -0
  84. package/dist/esm/aaaa-record-builder.js.map +1 -0
  85. package/dist/esm/alias-targets.d.ts +34 -0
  86. package/dist/esm/alias-targets.d.ts.map +1 -0
  87. package/dist/esm/alias-targets.js.map +1 -0
  88. package/dist/esm/caa-record-builder.d.ts +44 -0
  89. package/dist/esm/caa-record-builder.d.ts.map +1 -0
  90. package/dist/esm/caa-record-builder.js.map +1 -0
  91. package/dist/esm/cname-record-builder.d.ts +42 -0
  92. package/dist/esm/cname-record-builder.d.ts.map +1 -0
  93. package/dist/esm/cname-record-builder.js.map +1 -0
  94. package/dist/esm/defaults.d.ts +119 -0
  95. package/dist/esm/defaults.d.ts.map +1 -0
  96. package/dist/{defaults.js → esm/defaults.js} +37 -4
  97. package/dist/esm/defaults.js.map +1 -0
  98. package/dist/esm/ds-record-builder.d.ts +42 -0
  99. package/dist/esm/ds-record-builder.d.ts.map +1 -0
  100. package/dist/esm/ds-record-builder.js.map +1 -0
  101. package/dist/esm/health-check-alarm-builder.d.ts +133 -0
  102. package/dist/esm/health-check-alarm-builder.d.ts.map +1 -0
  103. package/dist/esm/health-check-alarm-builder.js.map +1 -0
  104. package/dist/esm/health-check-alarm-config.d.ts +39 -0
  105. package/dist/esm/health-check-alarm-config.d.ts.map +1 -0
  106. package/dist/esm/health-check-alarm-config.js.map +1 -0
  107. package/dist/esm/health-check-alarm-defaults.d.ts +13 -0
  108. package/dist/esm/health-check-alarm-defaults.d.ts.map +1 -0
  109. package/dist/esm/health-check-alarm-defaults.js.map +1 -0
  110. package/dist/esm/health-check-alarms.d.ts +15 -0
  111. package/dist/esm/health-check-alarms.d.ts.map +1 -0
  112. package/dist/esm/health-check-alarms.js.map +1 -0
  113. package/dist/esm/health-check-builder.d.ts +103 -0
  114. package/dist/esm/health-check-builder.d.ts.map +1 -0
  115. package/dist/esm/health-check-builder.js.map +1 -0
  116. package/dist/esm/hosted-zone-builder.d.ts +95 -0
  117. package/dist/esm/hosted-zone-builder.d.ts.map +1 -0
  118. package/dist/{hosted-zone-builder.js → esm/hosted-zone-builder.js} +11 -3
  119. package/dist/esm/hosted-zone-builder.js.map +1 -0
  120. package/dist/esm/https-record-builder.d.ts +45 -0
  121. package/dist/esm/https-record-builder.d.ts.map +1 -0
  122. package/dist/esm/https-record-builder.js.map +1 -0
  123. package/dist/esm/index.d.ts +20 -0
  124. package/dist/esm/index.d.ts.map +1 -0
  125. package/dist/{index.js → esm/index.js} +1 -1
  126. package/dist/esm/index.js.map +1 -0
  127. package/dist/esm/mx-record-builder.d.ts +40 -0
  128. package/dist/esm/mx-record-builder.d.ts.map +1 -0
  129. package/dist/esm/mx-record-builder.js.map +1 -0
  130. package/dist/esm/ns-record-builder.d.ts +40 -0
  131. package/dist/esm/ns-record-builder.d.ts.map +1 -0
  132. package/dist/esm/ns-record-builder.js.map +1 -0
  133. package/dist/esm/package.json +3 -0
  134. package/dist/esm/query-logging.d.ts +60 -0
  135. package/dist/esm/query-logging.d.ts.map +1 -0
  136. package/dist/esm/query-logging.js +133 -0
  137. package/dist/esm/query-logging.js.map +1 -0
  138. package/dist/esm/srv-record-builder.d.ts +40 -0
  139. package/dist/esm/srv-record-builder.d.ts.map +1 -0
  140. package/dist/esm/srv-record-builder.js.map +1 -0
  141. package/dist/esm/svcb-record-builder.d.ts +41 -0
  142. package/dist/esm/svcb-record-builder.d.ts.map +1 -0
  143. package/dist/esm/svcb-record-builder.js.map +1 -0
  144. package/dist/esm/txt-record-builder.d.ts +38 -0
  145. package/dist/esm/txt-record-builder.d.ts.map +1 -0
  146. package/dist/esm/txt-record-builder.js.map +1 -0
  147. package/dist/esm/zone/index.d.ts +3 -0
  148. package/dist/esm/zone/index.d.ts.map +1 -0
  149. package/dist/esm/zone/index.js.map +1 -0
  150. package/dist/esm/zone/zone-dsl.d.ts +296 -0
  151. package/dist/esm/zone/zone-dsl.d.ts.map +1 -0
  152. package/dist/esm/zone/zone-dsl.js.map +1 -0
  153. package/dist/esm/zone/zone-records.d.ts +67 -0
  154. package/dist/esm/zone/zone-records.d.ts.map +1 -0
  155. package/dist/esm/zone/zone-records.js.map +1 -0
  156. package/package.json +47 -21
  157. package/dist/a-record-builder.d.ts.map +0 -1
  158. package/dist/a-record-builder.js.map +0 -1
  159. package/dist/aaaa-record-builder.d.ts.map +0 -1
  160. package/dist/aaaa-record-builder.js.map +0 -1
  161. package/dist/alias-targets.d.ts.map +0 -1
  162. package/dist/alias-targets.js.map +0 -1
  163. package/dist/caa-record-builder.d.ts.map +0 -1
  164. package/dist/caa-record-builder.js.map +0 -1
  165. package/dist/cname-record-builder.d.ts.map +0 -1
  166. package/dist/cname-record-builder.js.map +0 -1
  167. package/dist/defaults.d.ts.map +0 -1
  168. package/dist/defaults.js.map +0 -1
  169. package/dist/ds-record-builder.d.ts.map +0 -1
  170. package/dist/ds-record-builder.js.map +0 -1
  171. package/dist/health-check-alarm-builder.d.ts.map +0 -1
  172. package/dist/health-check-alarm-builder.js.map +0 -1
  173. package/dist/health-check-alarm-config.d.ts.map +0 -1
  174. package/dist/health-check-alarm-config.js.map +0 -1
  175. package/dist/health-check-alarm-defaults.d.ts.map +0 -1
  176. package/dist/health-check-alarm-defaults.js.map +0 -1
  177. package/dist/health-check-alarms.d.ts.map +0 -1
  178. package/dist/health-check-alarms.js.map +0 -1
  179. package/dist/health-check-builder.d.ts.map +0 -1
  180. package/dist/health-check-builder.js.map +0 -1
  181. package/dist/hosted-zone-builder.d.ts.map +0 -1
  182. package/dist/hosted-zone-builder.js.map +0 -1
  183. package/dist/https-record-builder.d.ts.map +0 -1
  184. package/dist/https-record-builder.js.map +0 -1
  185. package/dist/index.d.ts.map +0 -1
  186. package/dist/index.js.map +0 -1
  187. package/dist/mx-record-builder.d.ts.map +0 -1
  188. package/dist/mx-record-builder.js.map +0 -1
  189. package/dist/ns-record-builder.d.ts.map +0 -1
  190. package/dist/ns-record-builder.js.map +0 -1
  191. package/dist/srv-record-builder.d.ts.map +0 -1
  192. package/dist/srv-record-builder.js.map +0 -1
  193. package/dist/svcb-record-builder.d.ts.map +0 -1
  194. package/dist/svcb-record-builder.js.map +0 -1
  195. package/dist/txt-record-builder.d.ts.map +0 -1
  196. package/dist/txt-record-builder.js.map +0 -1
  197. package/dist/zone/index.d.ts.map +0 -1
  198. package/dist/zone/index.js.map +0 -1
  199. package/dist/zone/zone-dsl.d.ts.map +0 -1
  200. package/dist/zone/zone-dsl.js.map +0 -1
  201. package/dist/zone/zone-records.d.ts.map +0 -1
  202. package/dist/zone/zone-records.js.map +0 -1
  203. /package/dist/{a-record-builder.d.ts → commonjs/a-record-builder.d.ts} +0 -0
  204. /package/dist/{aaaa-record-builder.d.ts → commonjs/aaaa-record-builder.d.ts} +0 -0
  205. /package/dist/{alias-targets.d.ts → commonjs/alias-targets.d.ts} +0 -0
  206. /package/dist/{caa-record-builder.d.ts → commonjs/caa-record-builder.d.ts} +0 -0
  207. /package/dist/{cname-record-builder.d.ts → commonjs/cname-record-builder.d.ts} +0 -0
  208. /package/dist/{ds-record-builder.d.ts → commonjs/ds-record-builder.d.ts} +0 -0
  209. /package/dist/{health-check-alarm-builder.d.ts → commonjs/health-check-alarm-builder.d.ts} +0 -0
  210. /package/dist/{health-check-alarm-config.d.ts → commonjs/health-check-alarm-config.d.ts} +0 -0
  211. /package/dist/{health-check-alarm-defaults.d.ts → commonjs/health-check-alarm-defaults.d.ts} +0 -0
  212. /package/dist/{health-check-alarms.d.ts → commonjs/health-check-alarms.d.ts} +0 -0
  213. /package/dist/{health-check-builder.d.ts → commonjs/health-check-builder.d.ts} +0 -0
  214. /package/dist/{https-record-builder.d.ts → commonjs/https-record-builder.d.ts} +0 -0
  215. /package/dist/{mx-record-builder.d.ts → commonjs/mx-record-builder.d.ts} +0 -0
  216. /package/dist/{ns-record-builder.d.ts → commonjs/ns-record-builder.d.ts} +0 -0
  217. /package/dist/{srv-record-builder.d.ts → commonjs/srv-record-builder.d.ts} +0 -0
  218. /package/dist/{svcb-record-builder.d.ts → commonjs/svcb-record-builder.d.ts} +0 -0
  219. /package/dist/{txt-record-builder.d.ts → commonjs/txt-record-builder.d.ts} +0 -0
  220. /package/dist/{zone → commonjs/zone}/index.d.ts +0 -0
  221. /package/dist/{zone → commonjs/zone}/zone-dsl.d.ts +0 -0
  222. /package/dist/{zone → commonjs/zone}/zone-records.d.ts +0 -0
  223. /package/dist/{a-record-builder.js → esm/a-record-builder.js} +0 -0
  224. /package/dist/{aaaa-record-builder.js → esm/aaaa-record-builder.js} +0 -0
  225. /package/dist/{alias-targets.js → esm/alias-targets.js} +0 -0
  226. /package/dist/{caa-record-builder.js → esm/caa-record-builder.js} +0 -0
  227. /package/dist/{cname-record-builder.js → esm/cname-record-builder.js} +0 -0
  228. /package/dist/{ds-record-builder.js → esm/ds-record-builder.js} +0 -0
  229. /package/dist/{health-check-alarm-builder.js → esm/health-check-alarm-builder.js} +0 -0
  230. /package/dist/{health-check-alarm-config.js → esm/health-check-alarm-config.js} +0 -0
  231. /package/dist/{health-check-alarm-defaults.js → esm/health-check-alarm-defaults.js} +0 -0
  232. /package/dist/{health-check-alarms.js → esm/health-check-alarms.js} +0 -0
  233. /package/dist/{health-check-builder.js → esm/health-check-builder.js} +0 -0
  234. /package/dist/{https-record-builder.js → esm/https-record-builder.js} +0 -0
  235. /package/dist/{mx-record-builder.js → esm/mx-record-builder.js} +0 -0
  236. /package/dist/{ns-record-builder.js → esm/ns-record-builder.js} +0 -0
  237. /package/dist/{srv-record-builder.js → esm/srv-record-builder.js} +0 -0
  238. /package/dist/{svcb-record-builder.js → esm/svcb-record-builder.js} +0 -0
  239. /package/dist/{txt-record-builder.js → esm/txt-record-builder.js} +0 -0
  240. /package/dist/{zone → esm/zone}/index.js +0 -0
  241. /package/dist/{zone → esm/zone}/zone-dsl.js +0 -0
  242. /package/dist/{zone → esm/zone}/zone-records.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mx-record-builder.js","sourceRoot":"","sources":["../../src/mx-record-builder.ts"],"names":[],"mappings":";;AAwEA,sDAGC;AA3ED,yDAAyF;AAEzF,6CAM4B;AAC5B,+CAAmD;AA+BnD,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,iEAAiE,CACpE,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,GAAG,gCAAkB;YACrB,GAAG,IAAI;YACP,MAAM;YACN,IAAI,EAAE,IAAA,cAAO,EAAC,IAAI,EAAE,OAAO,CAAC;SACZ,CAAC;QAEnB,MAAM,MAAM,GAAG,IAAI,sBAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;GAIG;AACH,SAAgB,qBAAqB;IACnC,+GAA+G;IAC/G,OAAO,IAAA,cAAO,EAAwC,eAAe,CAAC,CAAC;AACzE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ns-record-builder.d.ts","sourceRoot":"","sources":["../../src/ns-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;;;;;;GAMG;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;CA6B9F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAGxD"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createNsRecordBuilder = createNsRecordBuilder;
4
+ const aws_route53_1 = require("aws-cdk-lib/aws-route53");
5
+ const core_1 = require("@composurecdk/core");
6
+ const defaults_js_1 = require("./defaults.js");
7
+ class NsRecordBuilder {
8
+ props = {};
9
+ build(scope, id, context) {
10
+ const { zone, values, recordName, ...rest } = this.props;
11
+ if (!zone) {
12
+ throw new Error(`NsRecordBuilder "${id}" requires a zone. Call .zone() with an IHostedZone.`);
13
+ }
14
+ if (!recordName) {
15
+ throw new Error(`NsRecordBuilder "${id}" requires a recordName. ` +
16
+ `Call .recordName() with the delegated subdomain — the apex NS set is managed by Route53.`);
17
+ }
18
+ if (!values || values.length === 0) {
19
+ throw new Error(`NsRecordBuilder "${id}" requires non-empty values. ` +
20
+ `Call .values() with one or more fully-qualified name-server host names.`);
21
+ }
22
+ const mergedProps = {
23
+ ...defaults_js_1.NS_RECORD_DEFAULTS,
24
+ ...rest,
25
+ recordName,
26
+ values,
27
+ zone: (0, core_1.resolve)(zone, context),
28
+ };
29
+ const record = new aws_route53_1.NsRecord(scope, id, mergedProps);
30
+ return { record };
31
+ }
32
+ }
33
+ /**
34
+ * Creates a new {@link INsRecordBuilder} for configuring a Route53 NS record.
35
+ *
36
+ * @returns A fluent builder for a Route53 NS record.
37
+ */
38
+ function createNsRecordBuilder() {
39
+ // eslint-disable-next-line composurecdk/builder-must-be-tagged -- AWS::Route53::RecordSet has no Tags property
40
+ return (0, core_1.Builder)(NsRecordBuilder);
41
+ }
42
+ //# sourceMappingURL=ns-record-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ns-record-builder.js","sourceRoot":"","sources":["../../src/ns-record-builder.ts"],"names":[],"mappings":";;AA+EA,sDAGC;AAlFD,yDAAyF;AAEzF,6CAM4B;AAC5B,+CAAmD;AA+BnD,MAAM,eAAe;IACnB,KAAK,GAAkC,EAAE,CAAC;IAE1C,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACzD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,sDAAsD,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,oBAAoB,EAAE,2BAA2B;gBAC/C,0FAA0F,CAC7F,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,oBAAoB,EAAE,+BAA+B;gBACnD,yEAAyE,CAC5E,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,GAAG,gCAAkB;YACrB,GAAG,IAAI;YACP,UAAU;YACV,MAAM;YACN,IAAI,EAAE,IAAA,cAAO,EAAC,IAAI,EAAE,OAAO,CAAC;SACZ,CAAC;QAEnB,MAAM,MAAM,GAAG,IAAI,sBAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;GAIG;AACH,SAAgB,qBAAqB;IACnC,+GAA+G;IAC/G,OAAO,IAAA,cAAO,EAAwC,eAAe,CAAC,CAAC;AACzE,CAAC"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,60 @@
1
+ import { type LogGroup, ResourcePolicy } from "aws-cdk-lib/aws-logs";
2
+ import type { IConstruct } from "constructs";
3
+ import { type ILogGroupBuilder } from "@composurecdk/logs";
4
+ /**
5
+ * Configures Route 53 public-hosted-zone DNS query logging. Pass `false` to
6
+ * disable, or an object to either customize the auto-created CloudWatch
7
+ * {@link LogGroup} sub-builder or to plug in a pre-existing log group ARN.
8
+ *
9
+ * `configure` cannot be combined with `logGroupArn` — the latter says
10
+ * "I am bringing my own log group", which leaves nothing to configure.
11
+ *
12
+ * When auto-creating, the builder also materialises a single shared
13
+ * `AWS::Logs::ResourcePolicy` per stack that grants the Route 53 service
14
+ * principal write access to every log group under `/aws/route53/*`. This
15
+ * sidesteps the 10-policy/region soft limit that the naive per-zone policy
16
+ * approach would hit at four hosted zones.
17
+ *
18
+ * @see https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html
19
+ * @see https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html
20
+ */
21
+ export type QueryLoggingConfig = false | {
22
+ /**
23
+ * Customize the auto-created LogGroup sub-builder. Receives a builder
24
+ * pre-seeded with the `/aws/route53/<zoneName>` log-group name; the
25
+ * well-architected retention/removal defaults from
26
+ * {@link createLogGroupBuilder} are merged in at `build()` time and
27
+ * are overridable by anything set on the builder here. Cannot be
28
+ * combined with {@link logGroupArn}.
29
+ */
30
+ configure?: (b: ILogGroupBuilder) => ILogGroupBuilder;
31
+ /**
32
+ * Use a pre-existing log group instead of letting the builder create
33
+ * one. The ARN must point at a log group in `us-east-1`, and the
34
+ * caller is responsible for the `route53.amazonaws.com` resource
35
+ * policy. Cannot be combined with {@link configure}.
36
+ */
37
+ logGroupArn?: string;
38
+ };
39
+ interface ResolvedQueryLogging {
40
+ /** The log group created for this hosted zone, or `undefined` when query logging is disabled or user-supplied. */
41
+ queryLogGroup?: LogGroup;
42
+ /** ARN to write into `PublicHostedZoneProps.queryLogsLogGroupArn`, or `undefined` when query logging is disabled. */
43
+ queryLogsLogGroupArn?: string;
44
+ /**
45
+ * The shared `ResourcePolicy` covering this log group, or `undefined` when
46
+ * query logging is disabled or the user supplied their own log group. The
47
+ * caller wires the hosted zone's `DependsOn` against this so Route 53 does
48
+ * not race the policy on first write.
49
+ */
50
+ policy?: ResourcePolicy;
51
+ }
52
+ /**
53
+ * Resolve the query-logging configuration for a hosted zone build, creating
54
+ * the auxiliary `LogGroup` and shared `ResourcePolicy` constructs as needed.
55
+ *
56
+ * @internal
57
+ */
58
+ export declare function resolveQueryLogging(scope: IConstruct, id: string, zoneName: string, cfg: QueryLoggingConfig | undefined): ResolvedQueryLogging;
59
+ export {};
60
+ //# sourceMappingURL=query-logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-logging.d.ts","sourceRoot":"","sources":["../../src/query-logging.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOlF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,kBAAkB,GAC1B,KAAK,GACL;IACE;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,gBAAgB,CAAC;IAEtD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAMN,UAAU,oBAAoB;IAC5B,kHAAkH;IAClH,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,qHAAqH;IACrH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,UAAU,EACjB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,kBAAkB,GAAG,SAAS,GAClC,oBAAoB,CA8BtB"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveQueryLogging = resolveQueryLogging;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
6
+ const aws_logs_1 = require("aws-cdk-lib/aws-logs");
7
+ const logs_1 = require("@composurecdk/logs");
8
+ const defaults_js_1 = require("./defaults.js");
9
+ const QUERY_LOG_REGION = "us-east-1";
10
+ const QUERY_LOGGING_REGION_ANNOTATION = "@composurecdk/route53:query-logging-region";
11
+ const QUERY_LOGGING_NAME_ANNOTATION = "@composurecdk/route53:query-logging-name";
12
+ /**
13
+ * Resolve the query-logging configuration for a hosted zone build, creating
14
+ * the auxiliary `LogGroup` and shared `ResourcePolicy` constructs as needed.
15
+ *
16
+ * @internal
17
+ */
18
+ function resolveQueryLogging(scope, id, zoneName, cfg) {
19
+ if (cfg === false)
20
+ return {};
21
+ if (cfg?.logGroupArn !== undefined) {
22
+ if (cfg.configure !== undefined) {
23
+ throw new Error(`queryLogging: 'configure' cannot be combined with 'logGroupArn' — ` +
24
+ `the log group is user-managed and not built by this builder.`);
25
+ }
26
+ warnIfArnNotUsEast1(scope, cfg.logGroupArn);
27
+ return { queryLogsLogGroupArn: cfg.logGroupArn };
28
+ }
29
+ errorIfStackNotUsEast1(scope);
30
+ const defaultLogGroupName = `${defaults_js_1.QUERY_LOGGING_LOG_GROUP_NAME_PREFIX}/${stripTrailingDot(zoneName)}`;
31
+ let subBuilder = (0, logs_1.createLogGroupBuilder)().logGroupName(defaultLogGroupName);
32
+ if (cfg?.configure) {
33
+ subBuilder = cfg.configure(subBuilder);
34
+ }
35
+ const queryLogGroup = subBuilder.build(scope, `${id}QueryLogs`).logGroup;
36
+ warnIfLogGroupNameOutsidePrefix(scope, id, subBuilder.logGroupName());
37
+ return {
38
+ queryLogGroup,
39
+ queryLogsLogGroupArn: queryLogGroup.logGroupArn,
40
+ policy: ensureSharedResourcePolicy(scope),
41
+ };
42
+ }
43
+ function stripTrailingDot(name) {
44
+ return name.endsWith(".") ? name.slice(0, -1) : name;
45
+ }
46
+ function ensureSharedResourcePolicy(scope) {
47
+ const stack = aws_cdk_lib_1.Stack.of(scope);
48
+ const existing = stack.node.tryFindChild(defaults_js_1.QUERY_LOGGING_RESOURCE_POLICY_ID);
49
+ if (existing instanceof aws_logs_1.ResourcePolicy)
50
+ return existing;
51
+ return new aws_logs_1.ResourcePolicy(stack, defaults_js_1.QUERY_LOGGING_RESOURCE_POLICY_ID, {
52
+ resourcePolicyName: defaults_js_1.QUERY_LOGGING_RESOURCE_POLICY_NAME,
53
+ policyStatements: [
54
+ new aws_iam_1.PolicyStatement({
55
+ sid: "AllowRoute53QueryLogging",
56
+ effect: aws_iam_1.Effect.ALLOW,
57
+ principals: [new aws_iam_1.ServicePrincipal("route53.amazonaws.com")],
58
+ actions: ["logs:CreateLogStream", "logs:PutLogEvents"],
59
+ resources: [
60
+ `arn:${aws_cdk_lib_1.Aws.PARTITION}:logs:${QUERY_LOG_REGION}:${aws_cdk_lib_1.Aws.ACCOUNT_ID}:log-group:${defaults_js_1.QUERY_LOGGING_LOG_GROUP_NAME_PREFIX}/*:*`,
61
+ ],
62
+ conditions: {
63
+ StringEquals: { "aws:SourceAccount": aws_cdk_lib_1.Aws.ACCOUNT_ID },
64
+ },
65
+ }),
66
+ ],
67
+ });
68
+ }
69
+ function errorIfStackNotUsEast1(scope) {
70
+ const region = aws_cdk_lib_1.Stack.of(scope).region;
71
+ if (aws_cdk_lib_1.Token.isUnresolved(region)) {
72
+ checkEnvAgnosticRegion(scope);
73
+ return;
74
+ }
75
+ if (region === QUERY_LOG_REGION)
76
+ return;
77
+ throw new Error(buildRegionErrorMessage(region));
78
+ }
79
+ // Env-agnostic stacks have no concrete region in the synthesised template, so
80
+ // fall back to CDK_DEFAULT_REGION — the same env var the CDK toolkit uses to
81
+ // fill the deploy region. Unset means we can't verify at synth time and warn
82
+ // instead, so deploying outside us-east-1 still surfaces a clear synth-time
83
+ // signal rather than the obscure CFN error.
84
+ function checkEnvAgnosticRegion(scope) {
85
+ const envRegion = process.env.CDK_DEFAULT_REGION;
86
+ if (envRegion === undefined || envRegion === "") {
87
+ aws_cdk_lib_1.Annotations.of(scope).addWarningV2(QUERY_LOGGING_REGION_ANNOTATION, `Route 53 query logging is enabled by default and requires the CloudWatch log ` +
88
+ `group to live in ${QUERY_LOG_REGION}. This stack is env-agnostic and CDK_DEFAULT_REGION ` +
89
+ `is not set, so the deploy region cannot be verified at synth time. Deploying ` +
90
+ `outside ${QUERY_LOG_REGION} will fail with "InvalidInputException - The ARN for the ` +
91
+ `CloudWatch Logs log group is invalid". To silence this warning, either pin ` +
92
+ `env: { region: '${QUERY_LOG_REGION}' } on the stack, pass queryLogging({ logGroupArn }) ` +
93
+ `referencing a log group you own in ${QUERY_LOG_REGION}, or queryLogging(false) to opt out.`);
94
+ return;
95
+ }
96
+ if (envRegion === QUERY_LOG_REGION)
97
+ return;
98
+ throw new Error(buildRegionErrorMessage(envRegion));
99
+ }
100
+ function buildRegionErrorMessage(region) {
101
+ return (`Route 53 accepts DNS query logs only in ${QUERY_LOG_REGION}, but this stack is deployed in "${region}". ` +
102
+ `Without this check, the deploy fails late with "InvalidInputException - The ARN for the ` +
103
+ `CloudWatch Logs log group is invalid" after CloudFormation has already started rolling forward. ` +
104
+ `Either:\n` +
105
+ ` 1. Deploy the stack containing this hosted zone in ${QUERY_LOG_REGION}, or\n` +
106
+ ` 2. Pass queryLogging({ logGroupArn: 'arn:aws:logs:${QUERY_LOG_REGION}:...' }) referencing a log group ` +
107
+ `you own in ${QUERY_LOG_REGION}, or\n` +
108
+ ` 3. Set queryLogging(false) to opt out.`);
109
+ }
110
+ function warnIfArnNotUsEast1(scope, arn) {
111
+ if (aws_cdk_lib_1.Token.isUnresolved(arn))
112
+ return;
113
+ const region = parseLogGroupArnRegion(arn);
114
+ if (region === undefined || region === QUERY_LOG_REGION)
115
+ return;
116
+ aws_cdk_lib_1.Annotations.of(scope).addWarningV2(QUERY_LOGGING_REGION_ANNOTATION, `queryLogging.logGroupArn references a log group in "${region}", but Route 53 query logs ` +
117
+ `are accepted only in ${QUERY_LOG_REGION}. The deploy will fail unless this ARN is corrected.`);
118
+ }
119
+ function warnIfLogGroupNameOutsidePrefix(scope, id, logGroupName) {
120
+ if (logGroupName === undefined || aws_cdk_lib_1.Token.isUnresolved(logGroupName))
121
+ return;
122
+ if (logGroupName.startsWith(`${defaults_js_1.QUERY_LOGGING_LOG_GROUP_NAME_PREFIX}/`))
123
+ return;
124
+ aws_cdk_lib_1.Annotations.of(scope).addWarningV2(QUERY_LOGGING_NAME_ANNOTATION, `Hosted zone "${id}" query log group is named "${logGroupName}", which is outside the ` +
125
+ `"${defaults_js_1.QUERY_LOGGING_LOG_GROUP_NAME_PREFIX}/*" prefix that the auto-managed resource policy ` +
126
+ `covers. Add a resource policy on this log group granting route53.amazonaws.com permission ` +
127
+ `to logs:CreateLogStream and logs:PutLogEvents, or change the name back to the default prefix.`);
128
+ }
129
+ function parseLogGroupArnRegion(arn) {
130
+ // arn:partition:logs:region:account:log-group:name
131
+ const parts = arn.split(":");
132
+ if (parts.length < 6 || parts[0] !== "arn" || parts[2] !== "logs")
133
+ return undefined;
134
+ return parts[3];
135
+ }
136
+ //# sourceMappingURL=query-logging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-logging.js","sourceRoot":"","sources":["../../src/query-logging.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"srv-record-builder.d.ts","sourceRoot":"","sources":["../../src/srv-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;;;;;;GAMG;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,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSrvRecordBuilder = createSrvRecordBuilder;
4
+ const aws_route53_1 = require("aws-cdk-lib/aws-route53");
5
+ const core_1 = require("@composurecdk/core");
6
+ const defaults_js_1 = require("./defaults.js");
7
+ class SrvRecordBuilder {
8
+ props = {};
9
+ build(scope, id, context) {
10
+ const { zone, values, ...rest } = this.props;
11
+ if (!zone) {
12
+ throw new Error(`SrvRecordBuilder "${id}" requires a zone. Call .zone() with an IHostedZone.`);
13
+ }
14
+ if (!values || values.length === 0) {
15
+ throw new Error(`SrvRecordBuilder "${id}" requires non-empty values. ` +
16
+ `Call .values() with one or more { priority, weight, port, hostName } entries.`);
17
+ }
18
+ const mergedProps = {
19
+ ...defaults_js_1.SRV_RECORD_DEFAULTS,
20
+ ...rest,
21
+ values,
22
+ zone: (0, core_1.resolve)(zone, context),
23
+ };
24
+ const record = new aws_route53_1.SrvRecord(scope, id, mergedProps);
25
+ return { record };
26
+ }
27
+ }
28
+ /**
29
+ * Creates a new {@link ISrvRecordBuilder} for configuring a Route53 SRV record.
30
+ *
31
+ * @returns A fluent builder for a Route53 SRV record.
32
+ */
33
+ function createSrvRecordBuilder() {
34
+ // eslint-disable-next-line composurecdk/builder-must-be-tagged -- AWS::Route53::RecordSet has no Tags property
35
+ return (0, core_1.Builder)(SrvRecordBuilder);
36
+ }
37
+ //# sourceMappingURL=srv-record-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"srv-record-builder.js","sourceRoot":"","sources":["../../src/srv-record-builder.ts"],"names":[],"mappings":";;AA0EA,wDAGC;AA7ED,yDAA2F;AAE3F,6CAM4B;AAC5B,+CAAoD;AA+BpD,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,+EAA+E,CAClF,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,GAAG,iCAAmB;YACtB,GAAG,IAAI;YACP,MAAM;YACN,IAAI,EAAE,IAAA,cAAO,EAAC,IAAI,EAAE,OAAO,CAAC;SACX,CAAC;QAEpB,MAAM,MAAM,GAAG,IAAI,uBAAS,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;GAIG;AACH,SAAgB,sBAAsB;IACpC,+GAA+G;IAC/G,OAAO,IAAA,cAAO,EAA0C,gBAAgB,CAAC,CAAC;AAC5E,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svcb-record-builder.d.ts","sourceRoot":"","sources":["../../src/svcb-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC7F,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,sBAAuB,SAAQ,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;IAC3E,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CAChC;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;CAwBhG;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,kBAAkB,CAG5D"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSvcbRecordBuilder = createSvcbRecordBuilder;
4
+ const aws_route53_1 = require("aws-cdk-lib/aws-route53");
5
+ const core_1 = require("@composurecdk/core");
6
+ const defaults_js_1 = require("./defaults.js");
7
+ class SvcbRecordBuilder {
8
+ props = {};
9
+ build(scope, id, context) {
10
+ const { zone, values, ...rest } = this.props;
11
+ if (!zone) {
12
+ throw new Error(`SvcbRecordBuilder "${id}" requires a zone. Call .zone() with an IHostedZone.`);
13
+ }
14
+ if (!values || values.length === 0) {
15
+ throw new Error(`SvcbRecordBuilder "${id}" requires non-empty values. ` +
16
+ `Call .values() with one or more SvcbRecordValue entries.`);
17
+ }
18
+ const mergedProps = {
19
+ ...defaults_js_1.SVCB_RECORD_DEFAULTS,
20
+ ...rest,
21
+ values,
22
+ zone: (0, core_1.resolve)(zone, context),
23
+ };
24
+ const record = new aws_route53_1.SvcbRecord(scope, id, mergedProps);
25
+ return { record };
26
+ }
27
+ }
28
+ /**
29
+ * Creates a new {@link ISvcbRecordBuilder} for configuring a Route53 SVCB
30
+ * record.
31
+ *
32
+ * @returns A fluent builder for a Route53 SVCB record.
33
+ */
34
+ function createSvcbRecordBuilder() {
35
+ // eslint-disable-next-line composurecdk/builder-must-be-tagged -- AWS::Route53::RecordSet has no Tags property
36
+ return (0, core_1.Builder)(SvcbRecordBuilder);
37
+ }
38
+ //# sourceMappingURL=svcb-record-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svcb-record-builder.js","sourceRoot":"","sources":["../../src/svcb-record-builder.ts"],"names":[],"mappings":";;AA2EA,0DAGC;AA9ED,yDAA6F;AAE7F,6CAM4B;AAC5B,+CAAqD;AA+BrD,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,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,sBAAsB,EAAE,+BAA+B;gBACrD,0DAA0D,CAC7D,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,GAAG,kCAAoB;YACvB,GAAG,IAAI;YACP,MAAM;YACN,IAAI,EAAE,IAAA,cAAO,EAAC,IAAI,EAAE,OAAO,CAAC;SACV,CAAC;QAErB,MAAM,MAAM,GAAG,IAAI,wBAAU,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACtD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB;IACrC,+GAA+G;IAC/G,OAAO,IAAA,cAAO,EAA4C,iBAAiB,CAAC,CAAC;AAC/E,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"txt-record-builder.d.ts","sourceRoot":"","sources":["../../src/txt-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;;;;GAIG;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,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTxtRecordBuilder = createTxtRecordBuilder;
4
+ const aws_route53_1 = require("aws-cdk-lib/aws-route53");
5
+ const core_1 = require("@composurecdk/core");
6
+ const defaults_js_1 = require("./defaults.js");
7
+ class TxtRecordBuilder {
8
+ props = {};
9
+ build(scope, id, context) {
10
+ const { zone, values, ...rest } = this.props;
11
+ if (!zone) {
12
+ throw new Error(`TxtRecordBuilder "${id}" requires a zone. Call .zone() with an IHostedZone.`);
13
+ }
14
+ if (!values || values.length === 0) {
15
+ throw new Error(`TxtRecordBuilder "${id}" requires non-empty values. ` +
16
+ `Call .values() with one or more TXT record strings.`);
17
+ }
18
+ const mergedProps = {
19
+ ...defaults_js_1.TXT_RECORD_DEFAULTS,
20
+ ...rest,
21
+ values,
22
+ zone: (0, core_1.resolve)(zone, context),
23
+ };
24
+ const record = new aws_route53_1.TxtRecord(scope, id, mergedProps);
25
+ return { record };
26
+ }
27
+ }
28
+ /**
29
+ * Creates a new {@link ITxtRecordBuilder} for configuring a Route53 TXT record.
30
+ *
31
+ * @returns A fluent builder for a Route53 TXT record.
32
+ */
33
+ function createTxtRecordBuilder() {
34
+ // eslint-disable-next-line composurecdk/builder-must-be-tagged -- AWS::Route53::RecordSet has no Tags property
35
+ return (0, core_1.Builder)(TxtRecordBuilder);
36
+ }
37
+ //# sourceMappingURL=txt-record-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"txt-record-builder.js","sourceRoot":"","sources":["../../src/txt-record-builder.ts"],"names":[],"mappings":";;AAwEA,wDAGC;AA3ED,yDAA2F;AAE3F,6CAM4B;AAC5B,+CAAoD;AA6BpD,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,qDAAqD,CACxD,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,GAAG,iCAAmB;YACtB,GAAG,IAAI;YACP,MAAM;YACN,IAAI,EAAE,IAAA,cAAO,EAAC,IAAI,EAAE,OAAO,CAAC;SACX,CAAC;QAEpB,MAAM,MAAM,GAAG,IAAI,uBAAS,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;GAIG;AACH,SAAgB,sBAAsB;IACpC,+GAA+G;IAC/G,OAAO,IAAA,cAAO,EAA0C,gBAAgB,CAAC,CAAC;AAC5E,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/zone/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,CAAC,EACD,IAAI,EACJ,KAAK,EACL,KAAK,EACL,GAAG,EACH,EAAE,EACF,GAAG,EACH,GAAG,EACH,SAAS,EACT,aAAa,EACb,SAAS,EACT,EAAE,EACF,EAAE,EACF,KAAK,EACL,IAAI,EACJ,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,WAAW,EACX,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,GAC9B,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zoneRecords = exports.SVCB = exports.HTTPS = exports.DS = exports.NS = exports.CAA_IODEF = exports.CAA_ISSUEWILD = exports.CAA_ISSUE = exports.CAA = exports.SRV = exports.MX = exports.TXT = exports.CNAME = exports.ALIAS = exports.AAAA = exports.A = exports.APEX = void 0;
4
+ var zone_dsl_js_1 = require("./zone-dsl.js");
5
+ Object.defineProperty(exports, "APEX", { enumerable: true, get: function () { return zone_dsl_js_1.APEX; } });
6
+ Object.defineProperty(exports, "A", { enumerable: true, get: function () { return zone_dsl_js_1.A; } });
7
+ Object.defineProperty(exports, "AAAA", { enumerable: true, get: function () { return zone_dsl_js_1.AAAA; } });
8
+ Object.defineProperty(exports, "ALIAS", { enumerable: true, get: function () { return zone_dsl_js_1.ALIAS; } });
9
+ Object.defineProperty(exports, "CNAME", { enumerable: true, get: function () { return zone_dsl_js_1.CNAME; } });
10
+ Object.defineProperty(exports, "TXT", { enumerable: true, get: function () { return zone_dsl_js_1.TXT; } });
11
+ Object.defineProperty(exports, "MX", { enumerable: true, get: function () { return zone_dsl_js_1.MX; } });
12
+ Object.defineProperty(exports, "SRV", { enumerable: true, get: function () { return zone_dsl_js_1.SRV; } });
13
+ Object.defineProperty(exports, "CAA", { enumerable: true, get: function () { return zone_dsl_js_1.CAA; } });
14
+ Object.defineProperty(exports, "CAA_ISSUE", { enumerable: true, get: function () { return zone_dsl_js_1.CAA_ISSUE; } });
15
+ Object.defineProperty(exports, "CAA_ISSUEWILD", { enumerable: true, get: function () { return zone_dsl_js_1.CAA_ISSUEWILD; } });
16
+ Object.defineProperty(exports, "CAA_IODEF", { enumerable: true, get: function () { return zone_dsl_js_1.CAA_IODEF; } });
17
+ Object.defineProperty(exports, "NS", { enumerable: true, get: function () { return zone_dsl_js_1.NS; } });
18
+ Object.defineProperty(exports, "DS", { enumerable: true, get: function () { return zone_dsl_js_1.DS; } });
19
+ Object.defineProperty(exports, "HTTPS", { enumerable: true, get: function () { return zone_dsl_js_1.HTTPS; } });
20
+ Object.defineProperty(exports, "SVCB", { enumerable: true, get: function () { return zone_dsl_js_1.SVCB; } });
21
+ var zone_records_js_1 = require("./zone-records.js");
22
+ Object.defineProperty(exports, "zoneRecords", { enumerable: true, get: function () { return zone_records_js_1.zoneRecords; } });
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/zone/index.ts"],"names":[],"mappings":";;;AAAA,6CAiCuB;AAhCrB,mGAAA,IAAI,OAAA;AACJ,gGAAA,CAAC,OAAA;AACD,mGAAA,IAAI,OAAA;AACJ,oGAAA,KAAK,OAAA;AACL,oGAAA,KAAK,OAAA;AACL,kGAAA,GAAG,OAAA;AACH,iGAAA,EAAE,OAAA;AACF,kGAAA,GAAG,OAAA;AACH,kGAAA,GAAG,OAAA;AACH,wGAAA,SAAS,OAAA;AACT,4GAAA,aAAa,OAAA;AACb,wGAAA,SAAS,OAAA;AACT,iGAAA,EAAE,OAAA;AACF,iGAAA,EAAE,OAAA;AACF,oGAAA,KAAK,OAAA;AACL,mGAAA,IAAI,OAAA;AAkBN,qDAI2B;AAHzB,8GAAA,WAAW,OAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zone-dsl.d.ts","sourceRoot":"","sources":["../../../src/zone/zone-dsl.ts"],"names":[],"mappings":"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"}