terraconstructs 0.0.11 → 0.0.12

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 (410) hide show
  1. package/.jsii +104486 -34582
  2. package/lib/aws/arn.js +1 -1
  3. package/lib/aws/aws-construct.d.ts +1 -1
  4. package/lib/aws/aws-construct.js +28 -2
  5. package/lib/aws/aws-stack.d.ts +2 -4
  6. package/lib/aws/aws-stack.js +21 -8
  7. package/lib/aws/aws-tags.d.ts +58 -0
  8. package/lib/aws/aws-tags.js +77 -0
  9. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  10. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  11. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  12. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  13. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  14. package/lib/aws/cloudwatch/alarm.js +1 -1
  15. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  16. package/lib/aws/cloudwatch/dashboard.js +1 -1
  17. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  18. package/lib/aws/cloudwatch/graph.js +8 -8
  19. package/lib/aws/cloudwatch/layout.js +3 -3
  20. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  21. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  22. package/lib/aws/cloudwatch/log-group.js +1 -1
  23. package/lib/aws/cloudwatch/log-query.js +1 -1
  24. package/lib/aws/cloudwatch/log-stream.js +1 -1
  25. package/lib/aws/cloudwatch/metric-filter.d.ts +1 -1
  26. package/lib/aws/cloudwatch/metric-filter.js +4 -4
  27. package/lib/aws/cloudwatch/metric.js +2 -2
  28. package/lib/aws/cloudwatch/pattern.js +3 -3
  29. package/lib/aws/cloudwatch/policy.js +1 -1
  30. package/lib/aws/cloudwatch/private/env-tokens.js +5 -6
  31. package/lib/aws/cloudwatch/private/metric-util.js +4 -5
  32. package/lib/aws/cloudwatch/private/object.js +2 -3
  33. package/lib/aws/cloudwatch/private/rendering.js +3 -3
  34. package/lib/aws/cloudwatch/private/statistic.js +6 -7
  35. package/lib/aws/cloudwatch/query-definition.js +2 -2
  36. package/lib/aws/cloudwatch/stats.js +1 -1
  37. package/lib/aws/cloudwatch/subscription-filter.d.ts +1 -1
  38. package/lib/aws/cloudwatch/subscription-filter.js +4 -4
  39. package/lib/aws/cloudwatch/text.js +1 -1
  40. package/lib/aws/cloudwatch/variable.js +3 -3
  41. package/lib/aws/cloudwatch/widget.d.ts +1 -1
  42. package/lib/aws/cloudwatch/widget.js +4 -4
  43. package/lib/aws/compute/activity.js +3 -2
  44. package/lib/aws/compute/alb/application-listener-action.d.ts +334 -0
  45. package/lib/aws/compute/alb/application-listener-action.js +281 -0
  46. package/lib/aws/compute/alb/application-listener-certificate.d.ts +35 -0
  47. package/lib/aws/compute/alb/application-listener-certificate.js +35 -0
  48. package/lib/aws/compute/alb/application-listener-rule.d.ts +233 -0
  49. package/lib/aws/compute/alb/application-listener-rule.js +220 -0
  50. package/lib/aws/compute/alb/application-listener.d.ts +574 -0
  51. package/lib/aws/compute/alb/application-listener.js +538 -0
  52. package/lib/aws/compute/alb/application-load-balancer.d.ts +715 -0
  53. package/lib/aws/compute/alb/application-load-balancer.js +780 -0
  54. package/lib/aws/compute/alb/application-target-group.d.ts +339 -0
  55. package/lib/aws/compute/alb/application-target-group.js +427 -0
  56. package/lib/aws/compute/alb/conditions.d.ts +61 -0
  57. package/lib/aws/compute/alb/conditions.js +164 -0
  58. package/lib/aws/compute/alb/trust-store-revocation.d.ts +59 -0
  59. package/lib/aws/compute/alb/trust-store-revocation.js +46 -0
  60. package/lib/aws/compute/alb/trust-store.d.ts +86 -0
  61. package/lib/aws/compute/alb/trust-store.js +79 -0
  62. package/lib/aws/compute/architecture.js +1 -1
  63. package/lib/aws/compute/aspects/require-imdsv2-aspect.d.ts +75 -0
  64. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +106 -0
  65. package/lib/aws/compute/bastion-host.d.ts +172 -0
  66. package/lib/aws/compute/bastion-host.js +114 -0
  67. package/lib/aws/compute/chain.js +1 -1
  68. package/lib/aws/compute/cidr-splits.d.ts +49 -0
  69. package/lib/aws/compute/cidr-splits.js +59 -0
  70. package/lib/aws/compute/client-vpn-authorization-rule.d.ts +43 -0
  71. package/lib/aws/compute/client-vpn-authorization-rule.js +30 -0
  72. package/lib/aws/compute/client-vpn-endpoint-types.d.ts +62 -0
  73. package/lib/aws/compute/client-vpn-endpoint-types.js +25 -0
  74. package/lib/aws/compute/client-vpn-endpoint.d.ts +239 -0
  75. package/lib/aws/compute/client-vpn-endpoint.js +259 -0
  76. package/lib/aws/compute/client-vpn-route.d.ts +67 -0
  77. package/lib/aws/compute/client-vpn-route.js +57 -0
  78. package/lib/aws/compute/condition.js +1 -1
  79. package/lib/aws/compute/connections.d.ts +137 -0
  80. package/lib/aws/compute/connections.js +208 -0
  81. package/lib/aws/compute/ec2-augmentations.generated.d.ts +53 -0
  82. package/lib/aws/compute/ec2-augmentations.generated.js +35 -0
  83. package/lib/aws/compute/ec2-canned-metrics.generated.d.ts +555 -0
  84. package/lib/aws/compute/ec2-canned-metrics.generated.js +681 -0
  85. package/lib/aws/compute/ec2-util-v2.d.ts +141 -0
  86. package/lib/aws/compute/ec2-util-v2.js +286 -0
  87. package/lib/aws/compute/ec2-util.d.ts +52 -0
  88. package/lib/aws/compute/ec2-util.js +138 -0
  89. package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.d.ts +176 -0
  90. package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.js +119 -0
  91. package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.d.ts +860 -0
  92. package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.js +597 -0
  93. package/lib/aws/compute/event-invoke-config.js +1 -1
  94. package/lib/aws/compute/event-source-filter.js +2 -2
  95. package/lib/aws/compute/event-source-mapping.js +1 -1
  96. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  97. package/lib/aws/compute/event-sources/s3.js +1 -1
  98. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  99. package/lib/aws/compute/event-sources/sqs.js +1 -1
  100. package/lib/aws/compute/fields.js +4 -4
  101. package/lib/aws/compute/function-alias.js +1 -1
  102. package/lib/aws/compute/function-base.js +2 -2
  103. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  104. package/lib/aws/compute/function-destinations/function.js +1 -1
  105. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  106. package/lib/aws/compute/function-nodejs.js +1 -1
  107. package/lib/aws/compute/function-url.js +1 -1
  108. package/lib/aws/compute/function-vpc-config.generated.d.ts +3 -3
  109. package/lib/aws/compute/function-vpc-config.generated.js +1 -1
  110. package/lib/aws/compute/function.d.ts +1 -1
  111. package/lib/aws/compute/function.js +5 -5
  112. package/lib/aws/compute/index-alpha.d.ts +5 -0
  113. package/lib/aws/compute/index-alpha.js +22 -0
  114. package/lib/aws/compute/index.d.ts +60 -0
  115. package/lib/aws/compute/index.js +70 -2
  116. package/lib/aws/compute/instance-types.d.ts +1354 -0
  117. package/lib/aws/compute/instance-types.js +1683 -0
  118. package/lib/aws/compute/instance.d.ts +436 -0
  119. package/lib/aws/compute/instance.js +262 -0
  120. package/lib/aws/compute/ip-addresses.d.ts +249 -0
  121. package/lib/aws/compute/ip-addresses.js +248 -0
  122. package/lib/aws/compute/ipam.d.ts +309 -0
  123. package/lib/aws/compute/ipam.js +306 -0
  124. package/lib/aws/compute/key-pair.d.ts +178 -0
  125. package/lib/aws/compute/key-pair.js +194 -0
  126. package/lib/aws/compute/lambda-augmentations.generated.d.ts +65 -0
  127. package/lib/aws/compute/lambda-augmentations.generated.js +41 -0
  128. package/lib/aws/compute/lambda-canned-metrics.generated.d.ts +316 -0
  129. package/lib/aws/compute/lambda-canned-metrics.generated.js +119 -0
  130. package/lib/aws/compute/launch-template.d.ts +540 -0
  131. package/lib/aws/compute/launch-template.js +468 -0
  132. package/lib/aws/compute/lb-shared/access-logs-accounts.d.ts +7 -0
  133. package/lib/aws/compute/lb-shared/access-logs-accounts.js +46 -0
  134. package/lib/aws/compute/lb-shared/base-listener.d.ts +113 -0
  135. package/lib/aws/compute/lb-shared/base-listener.js +181 -0
  136. package/lib/aws/compute/lb-shared/base-load-balancer.d.ts +212 -0
  137. package/lib/aws/compute/lb-shared/base-load-balancer.js +290 -0
  138. package/lib/aws/compute/lb-shared/base-target-group.d.ts +382 -0
  139. package/lib/aws/compute/lb-shared/base-target-group.js +364 -0
  140. package/lib/aws/compute/lb-shared/enums.d.ts +282 -0
  141. package/lib/aws/compute/lb-shared/enums.js +301 -0
  142. package/lib/aws/compute/lb-shared/grid-lookup-types.d.ts +42 -0
  143. package/lib/aws/compute/lb-shared/grid-lookup-types.js +53 -0
  144. package/lib/aws/compute/lb-shared/imported.d.ts +24 -0
  145. package/lib/aws/compute/lb-shared/imported.js +27 -0
  146. package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +194 -0
  147. package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +3 -0
  148. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +56 -0
  149. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +3 -0
  150. package/lib/aws/compute/lb-shared/listener-action.d.ts +14 -0
  151. package/lib/aws/compute/lb-shared/listener-action.js +4 -0
  152. package/lib/aws/compute/lb-shared/listener-certificate.d.ts +28 -0
  153. package/lib/aws/compute/lb-shared/listener-certificate.js +29 -0
  154. package/lib/aws/compute/lb-shared/load-balancer-targets.d.ts +93 -0
  155. package/lib/aws/compute/lb-shared/load-balancer-targets.js +127 -0
  156. package/lib/aws/compute/lb-shared/util.d.ts +113 -0
  157. package/lib/aws/compute/lb-shared/util.js +264 -0
  158. package/lib/aws/compute/lb-targets/alb-target.d.ts +67 -0
  159. package/lib/aws/compute/lb-targets/alb-target.js +100 -0
  160. package/lib/aws/compute/lb-targets/index.d.ts +4 -0
  161. package/lib/aws/compute/lb-targets/index.js +22 -0
  162. package/lib/aws/compute/lb-targets/instance-target.d.ts +42 -0
  163. package/lib/aws/compute/lb-targets/instance-target.js +67 -0
  164. package/lib/aws/compute/lb-targets/ip-target.d.ts +55 -0
  165. package/lib/aws/compute/lb-targets/ip-target.js +79 -0
  166. package/lib/aws/compute/lb-targets/lambda-target.d.ts +25 -0
  167. package/lib/aws/compute/lb-targets/lambda-target.js +50 -0
  168. package/lib/aws/compute/load-balancer.d.ts +336 -0
  169. package/lib/aws/compute/load-balancer.js +287 -0
  170. package/lib/aws/compute/machine-image/amazon-linux-2022.d.ts +63 -0
  171. package/lib/aws/compute/machine-image/amazon-linux-2022.js +84 -0
  172. package/lib/aws/compute/machine-image/amazon-linux-2023.d.ts +63 -0
  173. package/lib/aws/compute/machine-image/amazon-linux-2023.js +84 -0
  174. package/lib/aws/compute/machine-image/amazon-linux2.d.ts +76 -0
  175. package/lib/aws/compute/machine-image/amazon-linux2.js +87 -0
  176. package/lib/aws/compute/machine-image/common.d.ts +181 -0
  177. package/lib/aws/compute/machine-image/common.js +122 -0
  178. package/lib/aws/compute/machine-image/index.d.ts +5 -0
  179. package/lib/aws/compute/machine-image/index.js +22 -0
  180. package/lib/aws/compute/machine-image/machine-image.d.ts +463 -0
  181. package/lib/aws/compute/machine-image/machine-image.js +566 -0
  182. package/lib/aws/compute/machine-image/utils.d.ts +2 -0
  183. package/lib/aws/compute/machine-image/utils.js +17 -0
  184. package/lib/aws/compute/nat.d.ts +325 -0
  185. package/lib/aws/compute/nat.js +455 -0
  186. package/lib/aws/compute/network-acl-types.d.ts +152 -0
  187. package/lib/aws/compute/network-acl-types.js +156 -0
  188. package/lib/aws/compute/network-acl.d.ts +285 -0
  189. package/lib/aws/compute/network-acl.js +207 -0
  190. package/lib/aws/compute/network-util.d.ts +116 -0
  191. package/lib/aws/compute/network-util.js +241 -0
  192. package/lib/aws/compute/nlb/network-listener-action.d.ts +92 -0
  193. package/lib/aws/compute/nlb/network-listener-action.js +146 -0
  194. package/lib/aws/compute/nlb/network-listener-certificate.d.ts +24 -0
  195. package/lib/aws/compute/nlb/network-listener-certificate.js +25 -0
  196. package/lib/aws/compute/nlb/network-listener.d.ts +248 -0
  197. package/lib/aws/compute/nlb/network-listener.js +217 -0
  198. package/lib/aws/compute/nlb/network-load-balancer.d.ts +315 -0
  199. package/lib/aws/compute/nlb/network-load-balancer.js +360 -0
  200. package/lib/aws/compute/nlb/network-target-group.d.ts +153 -0
  201. package/lib/aws/compute/nlb/network-target-group.js +223 -0
  202. package/lib/aws/compute/peer.d.ts +64 -0
  203. package/lib/aws/compute/peer.js +235 -0
  204. package/lib/aws/compute/placement-group.d.ts +161 -0
  205. package/lib/aws/compute/placement-group.js +133 -0
  206. package/lib/aws/compute/port.d.ts +287 -0
  207. package/lib/aws/compute/port.js +390 -0
  208. package/lib/aws/compute/prefix-list.d.ts +131 -0
  209. package/lib/aws/compute/prefix-list.js +114 -0
  210. package/lib/aws/compute/private/context-stub.d.ts +7 -0
  211. package/lib/aws/compute/private/context-stub.js +43 -0
  212. package/lib/aws/compute/private/ebs-util.d.ts +14 -0
  213. package/lib/aws/compute/private/ebs-util.js +145 -0
  214. package/lib/aws/compute/private/intrinstics.js +2 -1
  215. package/lib/aws/compute/private/json-path.js +8 -8
  216. package/lib/aws/compute/private/util.js +2 -3
  217. package/lib/aws/compute/route.d.ts +547 -0
  218. package/lib/aws/compute/route.js +469 -0
  219. package/lib/aws/compute/security-group.d.ts +414 -0
  220. package/lib/aws/compute/security-group.js +538 -0
  221. package/lib/aws/compute/state-graph.js +1 -1
  222. package/lib/aws/compute/state-machine-fragment.js +1 -1
  223. package/lib/aws/compute/state-machine.d.ts +2 -2
  224. package/lib/aws/compute/state-machine.js +14 -12
  225. package/lib/aws/compute/states/choice.js +1 -1
  226. package/lib/aws/compute/states/custom-state.js +1 -1
  227. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  228. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  229. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  230. package/lib/aws/compute/states/distributed-map.js +1 -1
  231. package/lib/aws/compute/states/fail.js +1 -1
  232. package/lib/aws/compute/states/map-base.js +1 -1
  233. package/lib/aws/compute/states/map.js +1 -1
  234. package/lib/aws/compute/states/parallel.js +1 -1
  235. package/lib/aws/compute/states/pass.js +2 -2
  236. package/lib/aws/compute/states/state.js +5 -5
  237. package/lib/aws/compute/states/succeed.js +1 -1
  238. package/lib/aws/compute/states/task-base.js +2 -2
  239. package/lib/aws/compute/states/task.js +1 -1
  240. package/lib/aws/compute/states/wait.js +2 -2
  241. package/lib/aws/compute/stepfunctions-canned-metrics.generated.d.ts +83 -0
  242. package/lib/aws/compute/stepfunctions-canned-metrics.generated.js +127 -0
  243. package/lib/aws/compute/subnet-v2.d.ts +213 -0
  244. package/lib/aws/compute/subnet-v2.js +405 -0
  245. package/lib/aws/compute/subnet.d.ts +37 -0
  246. package/lib/aws/compute/subnet.js +181 -0
  247. package/lib/aws/compute/task-credentials.js +1 -1
  248. package/lib/aws/compute/task-input.js +1 -1
  249. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  250. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  251. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  252. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  253. package/lib/aws/compute/tasks/private/task-utils.js +3 -4
  254. package/lib/aws/compute/tasks/resource-arn-suffix.js +2 -3
  255. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  256. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  257. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  258. package/lib/aws/compute/types.js +2 -2
  259. package/lib/aws/compute/user-data.d.ts +270 -0
  260. package/lib/aws/compute/user-data.js +487 -0
  261. package/lib/aws/compute/util.d.ts +1 -1
  262. package/lib/aws/compute/util.js +4 -5
  263. package/lib/aws/compute/volume.d.ts +480 -0
  264. package/lib/aws/compute/volume.js +426 -0
  265. package/lib/aws/compute/vpc-endpoint-service.d.ts +149 -0
  266. package/lib/aws/compute/vpc-endpoint-service.js +90 -0
  267. package/lib/aws/compute/vpc-endpoint.d.ts +742 -0
  268. package/lib/aws/compute/vpc-endpoint.js +811 -0
  269. package/lib/aws/compute/vpc-flow-logs.d.ts +551 -0
  270. package/lib/aws/compute/vpc-flow-logs.js +693 -0
  271. package/lib/aws/compute/vpc-lookup.d.ts +73 -0
  272. package/lib/aws/compute/vpc-lookup.js +3 -0
  273. package/lib/aws/compute/vpc-v2-base.d.ts +353 -0
  274. package/lib/aws/compute/vpc-v2-base.js +493 -0
  275. package/lib/aws/compute/vpc-v2.d.ts +385 -0
  276. package/lib/aws/compute/vpc-v2.js +408 -0
  277. package/lib/aws/compute/vpc.d.ts +1448 -0
  278. package/lib/aws/compute/vpc.js +1495 -0
  279. package/lib/aws/compute/vpn.d.ts +443 -0
  280. package/lib/aws/compute/vpn.js +397 -0
  281. package/lib/aws/compute/windows-versions.d.ts +418 -0
  282. package/lib/aws/compute/windows-versions.js +426 -0
  283. package/lib/aws/edge/certificate-base.d.ts +20 -0
  284. package/lib/aws/edge/certificate-base.js +28 -0
  285. package/lib/aws/edge/certificate.d.ts +23 -2
  286. package/lib/aws/edge/certificate.js +54 -4
  287. package/lib/aws/edge/distribution.js +3 -3
  288. package/lib/aws/edge/dns-alias-record-targets.js +2 -2
  289. package/lib/aws/edge/dns-record.js +16 -16
  290. package/lib/aws/edge/dns-zone.d.ts +20 -2
  291. package/lib/aws/edge/dns-zone.js +25 -10
  292. package/lib/aws/edge/function.js +2 -2
  293. package/lib/aws/edge/index.d.ts +1 -0
  294. package/lib/aws/edge/index.js +2 -1
  295. package/lib/aws/edge/key-value-store.js +4 -4
  296. package/lib/aws/edge/origin.js +7 -5
  297. package/lib/aws/edge/response-headers-policy.js +1 -1
  298. package/lib/aws/encryption/alias.js +1 -1
  299. package/lib/aws/encryption/key.js +1 -1
  300. package/lib/aws/encryption/via-service-principal.js +1 -1
  301. package/lib/aws/iam/grant.js +2 -2
  302. package/lib/aws/iam/index.d.ts +1 -0
  303. package/lib/aws/iam/index.js +2 -1
  304. package/lib/aws/iam/instance-profile.d.ts +155 -0
  305. package/lib/aws/iam/instance-profile.js +124 -0
  306. package/lib/aws/iam/managed-policy.js +1 -1
  307. package/lib/aws/iam/oidc-provider.js +1 -1
  308. package/lib/aws/iam/policy-document-config.generated.d.ts +8 -8
  309. package/lib/aws/iam/policy-document-config.generated.js +1 -1
  310. package/lib/aws/iam/policy-document.js +1 -1
  311. package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
  312. package/lib/aws/iam/policy-statement-props.generated.js +1 -1
  313. package/lib/aws/iam/policy-statement.js +9 -9
  314. package/lib/aws/iam/policy.js +1 -1
  315. package/lib/aws/iam/principals.js +26 -26
  316. package/lib/aws/iam/private/assume-role-policy.js +2 -3
  317. package/lib/aws/iam/private/comparable-principal.js +2 -3
  318. package/lib/aws/iam/private/immutable-role.d.ts +2 -1
  319. package/lib/aws/iam/private/immutable-role.js +3 -3
  320. package/lib/aws/iam/private/imported-role.d.ts +1 -1
  321. package/lib/aws/iam/private/imported-role.js +3 -3
  322. package/lib/aws/iam/private/merge-statements.js +2 -3
  323. package/lib/aws/iam/private/util.js +4 -4
  324. package/lib/aws/iam/role.js +1 -1
  325. package/lib/aws/iam/saml-provider.d.ts +1 -1
  326. package/lib/aws/iam/saml-provider.js +6 -6
  327. package/lib/aws/iam/unknown-principal.js +1 -1
  328. package/lib/aws/iam/utils.js +2 -3
  329. package/lib/aws/index.d.ts +1 -0
  330. package/lib/aws/index.js +4 -1
  331. package/lib/aws/network/simple-ipv4-vpc.js +5 -5
  332. package/lib/aws/network/subnet-group.js +3 -3
  333. package/lib/aws/network/subnet.d.ts +1 -1
  334. package/lib/aws/network/subnet.js +7 -7
  335. package/lib/aws/notify/archive.js +3 -2
  336. package/lib/aws/notify/connection.js +5 -4
  337. package/lib/aws/notify/event-bus.js +5 -4
  338. package/lib/aws/notify/event-pattern.js +3 -3
  339. package/lib/aws/notify/index.js +3 -1
  340. package/lib/aws/notify/input.js +4 -3
  341. package/lib/aws/notify/kinesis-stream.js +3 -2
  342. package/lib/aws/notify/on-event-options.js +2 -1
  343. package/lib/aws/notify/queue-config.generated.d.ts +18 -11
  344. package/lib/aws/notify/queue-config.generated.js +1 -1
  345. package/lib/aws/notify/queue-policy.js +1 -1
  346. package/lib/aws/notify/queue.js +1 -1
  347. package/lib/aws/notify/resource-policy.js +1 -1
  348. package/lib/aws/notify/rule.js +3 -2
  349. package/lib/aws/notify/schedule.js +2 -2
  350. package/lib/aws/notify/sqs-augmentations.generated.d.ts +125 -0
  351. package/lib/aws/notify/sqs-augmentations.generated.js +74 -0
  352. package/lib/aws/notify/target.js +2 -1
  353. package/lib/aws/notify/targets/event-bus.js +1 -1
  354. package/lib/aws/notify/targets/function.js +1 -1
  355. package/lib/aws/notify/targets/log-group.js +2 -2
  356. package/lib/aws/notify/targets/sqs.js +1 -1
  357. package/lib/aws/notify/targets/state-machine.js +1 -1
  358. package/lib/aws/notify/targets/util.d.ts +1 -1
  359. package/lib/aws/notify/targets/util.js +10 -11
  360. package/lib/aws/notify/util.js +4 -4
  361. package/lib/aws/provider-config.generated.d.ts +33 -33
  362. package/lib/aws/provider-config.generated.js +1 -1
  363. package/lib/aws/storage/bucket-notifications.js +1 -1
  364. package/lib/aws/storage/bucket-policy.js +1 -1
  365. package/lib/aws/storage/bucket-source.js +1 -1
  366. package/lib/aws/storage/bucket.d.ts +298 -65
  367. package/lib/aws/storage/bucket.js +548 -225
  368. package/lib/aws/storage/cors-config.generated.d.ts +3 -3
  369. package/lib/aws/storage/cors-config.generated.js +1 -1
  370. package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
  371. package/lib/aws/storage/cors-rule-config.generated.js +1 -1
  372. package/lib/aws/storage/index.d.ts +1 -0
  373. package/lib/aws/storage/index.js +2 -1
  374. package/lib/aws/storage/lifecycle-config.generated.d.ts +11 -11
  375. package/lib/aws/storage/lifecycle-config.generated.js +1 -1
  376. package/lib/aws/storage/notification-targets/function.js +6 -6
  377. package/lib/aws/storage/notification-targets/queue.js +1 -1
  378. package/lib/aws/storage/origin-access-identity.d.ts +1 -1
  379. package/lib/aws/storage/origin-access-identity.js +5 -4
  380. package/lib/aws/storage/parameter-util.d.ts +12 -0
  381. package/lib/aws/storage/parameter-util.js +65 -0
  382. package/lib/aws/storage/parameter.d.ts +526 -0
  383. package/lib/aws/storage/parameter.js +606 -0
  384. package/lib/aws/storage/s3-canned-metrics.generated.d.ts +22 -0
  385. package/lib/aws/storage/s3-canned-metrics.generated.js +23 -0
  386. package/lib/aws/storage/util.d.ts +25 -3
  387. package/lib/aws/storage/util.js +84 -17
  388. package/lib/aws/storage/website-config.generated.d.ts +5 -5
  389. package/lib/aws/storage/website-config.generated.js +1 -1
  390. package/lib/aws/util.js +2 -3
  391. package/lib/construct-base.d.ts +10 -1
  392. package/lib/construct-base.js +9 -6
  393. package/lib/duration.js +1 -1
  394. package/lib/expiration.d.ts +48 -0
  395. package/lib/expiration.js +68 -0
  396. package/lib/helpers-internal/index.d.ts +1 -0
  397. package/lib/helpers-internal/index.js +7 -0
  398. package/lib/index.d.ts +2 -0
  399. package/lib/index.js +3 -1
  400. package/lib/private/md5.d.ts +4 -0
  401. package/lib/private/md5.js +14 -0
  402. package/lib/private/unique-resource-name.js +3 -4
  403. package/lib/size.js +2 -2
  404. package/lib/stack-base.d.ts +4 -23
  405. package/lib/stack-base.js +9 -30
  406. package/lib/terra-func.d.ts +103 -0
  407. package/lib/terra-func.js +170 -0
  408. package/lib/token.js +5 -5
  409. package/package.json +15 -8
  410. package/bun.lockb +0 -0
@@ -0,0 +1,547 @@
1
+ import { egressOnlyInternetGateway as tfEgressOnlyInternetGateway, internetGateway as tfInternetGateway, natGateway as tfNatGateway, vpcPeeringConnection as tfVpcPeeringConnection, route as tfRoute, routeTable as tfRouteTable, vpnGateway as tfVpnGateway } from "@cdktf/provider-aws";
2
+ import { Construct, IDependable } from "constructs";
3
+ import { IRouteTable, RouterType, RouteTableOutputs } from "./vpc";
4
+ import { IVpcEndpoint, VpcEndpointOutputs } from "./vpc-endpoint";
5
+ import { Duration } from "../../duration";
6
+ import { AwsConstructBase, AwsConstructProps, IAwsConstruct } from "../aws-construct";
7
+ import { ISubnetV2 } from "./subnet-v2";
8
+ import { IVpcV2, VPNGatewayV2Options } from "./vpc-v2-base";
9
+ /**
10
+ * Indicates whether the NAT gateway supports public or private connectivity.
11
+ * The default is public connectivity.
12
+ * See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html#cfn-ec2-natgateway-connectivitytype
13
+ */
14
+ export declare enum NatConnectivityType {
15
+ /**
16
+ * Sets Connectivity type to PUBLIC
17
+ */
18
+ PUBLIC = "public",
19
+ /**
20
+ * Sets Connectivity type to PRIVATE
21
+ */
22
+ PRIVATE = "private"
23
+ }
24
+ /**
25
+ * Outputs which may be registered for output via the Grid.
26
+ */
27
+ export interface RouteTargetOutputs {
28
+ /**
29
+ * The type of router used in the route.
30
+ *
31
+ * @attribute
32
+ */
33
+ readonly routerType: RouterType;
34
+ /**
35
+ * The ID of the route target.
36
+ *
37
+ * @attribute
38
+ */
39
+ readonly routerTargetId: string;
40
+ }
41
+ /**
42
+ * Interface to define a routing target, such as an
43
+ * egress-only internet gateway or VPC endpoint.
44
+ */
45
+ export interface IRouteTarget extends IDependable {
46
+ /**
47
+ * The outputs of the route target.
48
+ */
49
+ readonly routeTargetOutputs: RouteTargetOutputs;
50
+ /**
51
+ * The type of router used in the route.
52
+ */
53
+ readonly routerType: RouterType;
54
+ /**
55
+ * The ID of the route target.
56
+ */
57
+ readonly routerTargetId: string;
58
+ }
59
+ /**
60
+ * Properties to define an egress-only internet gateway.
61
+ */
62
+ export interface EgressOnlyInternetGatewayProps {
63
+ /**
64
+ * The ID of the VPC for which to create the egress-only internet gateway.
65
+ */
66
+ readonly vpc: IVpcV2;
67
+ /**
68
+ * The resource name of the egress-only internet gateway.
69
+ *
70
+ * @default - provisioned without a resource name
71
+ */
72
+ readonly egressOnlyInternetGatewayName?: string;
73
+ }
74
+ /**
75
+ * Properties to define an internet gateway.
76
+ */
77
+ export interface InternetGatewayProps {
78
+ /**
79
+ * The ID of the VPC for which to create the internet gateway.
80
+ */
81
+ readonly vpc: IVpcV2;
82
+ /**
83
+ * The resource name of the internet gateway.
84
+ *
85
+ * @default - provisioned without a resource name
86
+ */
87
+ readonly internetGatewayName?: string;
88
+ }
89
+ /**
90
+ * Properties to define a VPN gateway.
91
+ */
92
+ export interface VPNGatewayV2Props extends VPNGatewayV2Options, AwsConstructProps {
93
+ /**
94
+ * The ID of the VPC for which to create the VPN gateway.
95
+ */
96
+ readonly vpc: IVpcV2;
97
+ }
98
+ /**
99
+ * Options to define a NAT gateway.
100
+ */
101
+ export interface NatGatewayOptions {
102
+ /**
103
+ * The subnet in which the NAT gateway is located.
104
+ */
105
+ readonly subnet: ISubnetV2;
106
+ /**
107
+ * AllocationID of Elastic IP address that's associated with the NAT gateway. This property is required for a public NAT
108
+ * gateway and cannot be specified with a private NAT gateway.
109
+ *
110
+ * @default - attr.allocationID of a new Elastic IP created by default
111
+ * //TODO: ADD L2 for elastic ip
112
+ */
113
+ readonly allocationId?: string;
114
+ /**
115
+ * Indicates whether the NAT gateway supports public or private connectivity.
116
+ *
117
+ * @default NatConnectivityType.Public
118
+ */
119
+ readonly connectivityType?: NatConnectivityType;
120
+ /**
121
+ * The maximum amount of time to wait before forcibly releasing the
122
+ * IP addresses if connections are still in progress.
123
+ *
124
+ * @default 350seconds
125
+ */
126
+ readonly maxDrainDuration?: Duration;
127
+ /**
128
+ * The private IPv4 address to assign to the NAT gateway.
129
+ *
130
+ * @default - If you don't provide an address, a private IPv4 address will be automatically assigned.
131
+ */
132
+ readonly privateIpAddress?: string;
133
+ /**
134
+ * Secondary EIP allocation IDs.
135
+ * @see https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating
136
+ *
137
+ * @default - no secondary allocation IDs attached to NATGW
138
+ *
139
+ */
140
+ readonly secondaryAllocationIds?: string[];
141
+ /**
142
+ * The number of secondary private IPv4 addresses you
143
+ * want to assign to the NAT gateway.
144
+ *
145
+ * `SecondaryPrivateIpAddressCount` and `SecondaryPrivateIpAddresses` cannot be
146
+ * set at the same time.
147
+ * @see https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating
148
+ *
149
+ * @default - no secondary allocation IDs associated with NATGW
150
+ */
151
+ readonly secondaryPrivateIpAddressCount?: number;
152
+ /**
153
+ * Secondary private IPv4 addresses.
154
+ *
155
+ * `SecondaryPrivateIpAddressCount` and `SecondaryPrivateIpAddresses` cannot be
156
+ * set at the same time.
157
+ * @see https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating
158
+ *
159
+ * @default - no secondary private IpAddresses associated with NATGW
160
+ */
161
+ readonly secondaryPrivateIpAddresses?: string[];
162
+ /**
163
+ * The resource name of the NAT gateway.
164
+ *
165
+ * @default - NATGW provisioned without any name
166
+ */
167
+ readonly natGatewayName?: string;
168
+ }
169
+ /**
170
+ * Properties to define a NAT gateway.
171
+ */
172
+ export interface NatGatewayProps extends NatGatewayOptions, AwsConstructProps {
173
+ /**
174
+ * The ID of the VPC in which the NAT gateway is located.
175
+ *
176
+ * @default - no elastic ip associated, required in case of public connectivity if `AllocationId` is not defined
177
+ */
178
+ readonly vpc?: IVpcV2;
179
+ }
180
+ /**
181
+ * Options to define a VPC peering connection.
182
+ */
183
+ export interface VPCPeeringConnectionOptions {
184
+ /**
185
+ * The VPC that is accepting the peering connection.
186
+ */
187
+ readonly acceptorVpc: IVpcV2;
188
+ /**
189
+ * The resource name of the peering connection.
190
+ *
191
+ * @default - peering connection provisioned without any name
192
+ */
193
+ readonly vpcPeeringConnectionName?: string;
194
+ }
195
+ /**
196
+ * Properties to define a VPC peering connection.
197
+ */
198
+ export interface VPCPeeringConnectionProps extends VPCPeeringConnectionOptions {
199
+ /**
200
+ * The VPC that is requesting the peering connection.
201
+ */
202
+ readonly requestorVpc: IVpcV2;
203
+ }
204
+ /**
205
+ * Creates an egress-only internet gateway
206
+ * @resource aws_egress_only_internet_gateway
207
+ */
208
+ export declare class EgressOnlyInternetGateway extends AwsConstructBase implements IRouteTarget {
209
+ get routeTargetOutputs(): RouteTargetOutputs;
210
+ get outputs(): Record<string, any>;
211
+ /**
212
+ * The type of router used in the route.
213
+ */
214
+ readonly routerType: RouterType;
215
+ /**
216
+ * The ID of the route target.
217
+ */
218
+ readonly routerTargetId: string;
219
+ /**
220
+ * The egress-only internet gateway CFN resource.
221
+ */
222
+ readonly resource: tfEgressOnlyInternetGateway.EgressOnlyInternetGateway;
223
+ constructor(scope: Construct, id: string, props: EgressOnlyInternetGatewayProps);
224
+ }
225
+ /**
226
+ * Creates an internet gateway
227
+ * @resource AWS::EC2::InternetGateway
228
+ */
229
+ export declare class InternetGateway extends AwsConstructBase implements IRouteTarget {
230
+ get routeTargetOutputs(): RouteTargetOutputs;
231
+ get outputs(): Record<string, any>;
232
+ /**
233
+ * The type of router used in the route.
234
+ */
235
+ readonly routerType: RouterType;
236
+ /**
237
+ * The ID of the route target.
238
+ */
239
+ readonly routerTargetId: string;
240
+ /**
241
+ * The ID of the VPC for which to create the internet gateway.
242
+ */
243
+ readonly vpcId: string;
244
+ /**
245
+ * The internet gateway CFN resource.
246
+ */
247
+ readonly resource: tfInternetGateway.InternetGateway;
248
+ constructor(scope: Construct, id: string, props: InternetGatewayProps);
249
+ }
250
+ /**
251
+ * Creates a virtual private gateway
252
+ * @resource AWS::EC2::VPNGateway
253
+ */
254
+ export declare class VPNGatewayV2 extends AwsConstructBase implements IRouteTarget {
255
+ get routeTargetOutputs(): RouteTargetOutputs;
256
+ get outputs(): Record<string, any>;
257
+ /**
258
+ * The type of router used in the route.
259
+ */
260
+ readonly routerType: RouterType;
261
+ /**
262
+ * The ID of the route target.
263
+ */
264
+ readonly routerTargetId: string;
265
+ /**
266
+ * The ID of the VPC for which to create the VPN gateway.
267
+ */
268
+ readonly vpcId: string;
269
+ /**
270
+ * The VPN gateway CFN resource.
271
+ */
272
+ readonly resource: tfVpnGateway.VpnGateway;
273
+ /**
274
+ * The VPN Gateway Attachment
275
+ */
276
+ private readonly _attachment;
277
+ /**
278
+ * The VPN Gateway Route Propagation
279
+ */
280
+ private readonly _routePropagation;
281
+ constructor(scope: Construct, id: string, props: VPNGatewayV2Props);
282
+ }
283
+ /**
284
+ * Creates a network address translation (NAT) gateway
285
+ * @resource AWS::EC2::NatGateway
286
+ */
287
+ export declare class NatGateway extends AwsConstructBase implements IRouteTarget {
288
+ get routeTargetOutputs(): RouteTargetOutputs;
289
+ get outputs(): Record<string, any>;
290
+ /**
291
+ * Id of the NatGateway
292
+ * @attribute
293
+ */
294
+ readonly natGatewayId: string;
295
+ /**
296
+ * The type of router used in the route.
297
+ */
298
+ readonly routerType: RouterType;
299
+ /**
300
+ * The ID of the route target.
301
+ */
302
+ readonly routerTargetId: string;
303
+ /**
304
+ * Indicates whether the NAT gateway supports public or private connectivity.
305
+ *
306
+ * @default public
307
+ */
308
+ readonly connectivityType?: NatConnectivityType;
309
+ /**
310
+ * The maximum amount of time to wait before forcibly releasing the
311
+ * IP addresses if connections are still in progress.
312
+ *
313
+ * @default '30 minutes'
314
+ */
315
+ readonly maxDrainDuration?: Duration;
316
+ /**
317
+ * The NAT gateway CFN resource.
318
+ */
319
+ readonly resource: tfNatGateway.NatGateway;
320
+ constructor(scope: Construct, id: string, props: NatGatewayProps);
321
+ }
322
+ /**
323
+ * Creates a peering connection between two VPCs
324
+ * @resource AWS::EC2::VPCPeeringConnection
325
+ */
326
+ export declare class VPCPeeringConnection extends AwsConstructBase implements IRouteTarget {
327
+ get routeTargetOutputs(): RouteTargetOutputs;
328
+ get outputs(): Record<string, any>;
329
+ /**
330
+ * The type of router used in the route.
331
+ */
332
+ readonly routerType: RouterType;
333
+ /**
334
+ * The ID of the route target.
335
+ */
336
+ readonly routerTargetId: string;
337
+ /**
338
+ * The VPC peering connection CFN resource.
339
+ */
340
+ readonly resource: tfVpcPeeringConnection.VpcPeeringConnection;
341
+ constructor(scope: Construct, id: string, props: VPCPeeringConnectionProps);
342
+ /**
343
+ * Validates if the provided IPv4 CIDR block overlaps with existing subnet CIDR blocks within the given VPC.
344
+ *
345
+ * @param requestorVpc The VPC of the requestor.
346
+ * @param acceptorVpc The VPC of the acceptor.
347
+ * @returns True if the IPv4 CIDR block overlaps with each other for two VPCs, false otherwise.
348
+ * @internal
349
+ */
350
+ private validateVpcCidrOverlap;
351
+ }
352
+ /**
353
+ * The type of endpoint or gateway being targeted by the route.
354
+ */
355
+ export interface RouteTargetProps {
356
+ /**
357
+ * The gateway route target. This is used for targets such as
358
+ * egress-only internet gateway or VPC peering connection.
359
+ *
360
+ * @default - target is not set to a gateway, in this case an endpoint is needed.
361
+ */
362
+ readonly gateway?: IRouteTarget;
363
+ /**
364
+ * The endpoint route target. This is used for targets such as
365
+ * VPC endpoints.
366
+ *
367
+ * @default - target is not set to an endpoint, in this case a gateway is needed.
368
+ */
369
+ readonly endpoint?: IVpcEndpoint;
370
+ }
371
+ /**
372
+ * The gateway or endpoint targeted by the route.
373
+ */
374
+ export declare class RouteTargetType {
375
+ /**
376
+ * The gateway route target. This is used for targets such as
377
+ * egress-only internet gateway or VPC peering connection.
378
+ *
379
+ * @default - target is not set to a gateway, in this case an endpoint is needed.
380
+ */
381
+ readonly gateway?: IRouteTarget;
382
+ /**
383
+ * The endpoint route target. This is used for targets such as
384
+ * VPC endpoints.
385
+ *
386
+ * @default - target is not set to an endpoint, in this case a gateway is needed.
387
+ */
388
+ readonly endpoint?: IVpcEndpoint;
389
+ constructor(props: RouteTargetProps);
390
+ }
391
+ /**
392
+ * Outputs which may be registered for output via the Grid.
393
+ */
394
+ export interface RouteOutputs {
395
+ /**
396
+ * The ID of the route table for the route.
397
+ *
398
+ * @attribute
399
+ */
400
+ readonly routeTable: string;
401
+ /**
402
+ * The IPv4 or IPv6 CIDR block used for the destination match.
403
+ *
404
+ * Routing decisions are based on the most specific match.
405
+ *
406
+ * @attribute
407
+ */
408
+ readonly destination: string;
409
+ /**
410
+ * The gateway or endpoint targeted by the route.
411
+ *
412
+ * @attribute
413
+ */
414
+ readonly target: RouteTargetOutputs | VpcEndpointOutputs;
415
+ }
416
+ /**
417
+ * Interface to define a route.
418
+ */
419
+ export interface IRouteV2 extends IAwsConstruct {
420
+ /**
421
+ * The outputs of the route.
422
+ */
423
+ readonly routeOutputs: RouteOutputs;
424
+ /**
425
+ * The ID of the route table for the route.
426
+ * @attribute routeTable
427
+ */
428
+ readonly routeTable: IRouteTable;
429
+ /**
430
+ * The IPv4 or IPv6 CIDR block used for the destination match.
431
+ *
432
+ * Routing decisions are based on the most specific match.
433
+ * TODO: Look for strong IP type implementation here.
434
+ */
435
+ readonly destination: string;
436
+ /**
437
+ * The gateway or endpoint targeted by the route.
438
+ */
439
+ readonly target: RouteTargetType;
440
+ }
441
+ /**
442
+ * Properties to define a route.
443
+ */
444
+ export interface RouteProps {
445
+ /**
446
+ * The ID of the route table for the route.
447
+ *
448
+ * @attribute routeTable
449
+ */
450
+ readonly routeTable: IRouteTable;
451
+ /**
452
+ * The IPv4 or IPv6 CIDR block used for the destination match.
453
+ *
454
+ * Routing decisions are based on the most specific match.
455
+ */
456
+ readonly destination: string;
457
+ /**
458
+ * The gateway or endpoint targeted by the route.
459
+ */
460
+ readonly target: RouteTargetType;
461
+ /**
462
+ * The resource name of the route.
463
+ *
464
+ * @default - provisioned without a route name
465
+ */
466
+ readonly routeName?: string;
467
+ }
468
+ /**
469
+ * Creates a new route with added functionality.
470
+ * @resource AWS::EC2::Route
471
+ */
472
+ export declare class Route extends AwsConstructBase implements IRouteV2 {
473
+ get routeOutputs(): RouteOutputs;
474
+ get outputs(): Record<string, any>;
475
+ /**
476
+ * The IPv4 or IPv6 CIDR block used for the destination match.
477
+ *
478
+ * Routing decisions are based on the most specific match.
479
+ */
480
+ readonly destination: string;
481
+ /**
482
+ * The gateway or endpoint targeted by the route.
483
+ */
484
+ readonly target: RouteTargetType;
485
+ /**
486
+ * The route table for the route.
487
+ * @attribute routeTable
488
+ */
489
+ readonly routeTable: IRouteTable;
490
+ /**
491
+ * The type of router the route is targeting
492
+ */
493
+ readonly targetRouterType: RouterType;
494
+ /**
495
+ * The route CFN resource.
496
+ */
497
+ readonly resource?: tfRoute.Route;
498
+ /**
499
+ * Destination cidr block for ipv6
500
+ */
501
+ private destinationIpv6Cidr?;
502
+ /**
503
+ * Destination cidr block for ipv4
504
+ */
505
+ private destinationIpv4Cidr?;
506
+ constructor(scope: Construct, id: string, props: RouteProps);
507
+ }
508
+ /**
509
+ * Properties to define a route table.
510
+ */
511
+ export interface RouteTableProps {
512
+ /**
513
+ * The ID of the VPC.
514
+ */
515
+ readonly vpc: IVpcV2;
516
+ /**
517
+ * The resource name of the route table.
518
+ *
519
+ * @default - provisioned without a route table name
520
+ */
521
+ readonly routeTableName?: string;
522
+ }
523
+ /**
524
+ * Creates a route table for the specified VPC
525
+ * @resource aws_route_table
526
+ */
527
+ export declare class RouteTable extends AwsConstructBase implements IRouteTable {
528
+ get routeTableOutputs(): RouteTableOutputs;
529
+ get outputs(): Record<string, any>;
530
+ /**
531
+ * The ID of the route table.
532
+ */
533
+ readonly routeTableId: string;
534
+ /**
535
+ * The route table CFN resource.
536
+ */
537
+ readonly resource: tfRouteTable.RouteTable;
538
+ constructor(scope: Construct, id: string, props: RouteTableProps);
539
+ /**
540
+ * Adds a new custom route to the route table.
541
+ *
542
+ * @param destination The IPv4 or IPv6 CIDR block used for the destination match.
543
+ * @param target The gateway or endpoint targeted by the route.
544
+ * @param routeName The resource name of the route.
545
+ */
546
+ addRoute(id: string, destination: string, target: RouteTargetType, routeName?: string): void;
547
+ }