terraconstructs 0.0.10 → 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 +8 -6
  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,73 @@
1
+ /**
2
+ * Properties for looking up an existing VPC.
3
+ *
4
+ * The combination of properties must specify filter down to exactly one
5
+ * non-default VPC, otherwise an error is raised.
6
+ */
7
+ export interface VpcLookupOptions {
8
+ /**
9
+ * The ID of the VPC
10
+ *
11
+ * If given, will import exactly this VPC.
12
+ *
13
+ * @default Don't filter on vpcId
14
+ */
15
+ readonly vpcId?: string;
16
+ /**
17
+ * The name of the VPC
18
+ *
19
+ * If given, will import the VPC with this name.
20
+ *
21
+ * @default Don't filter on vpcName
22
+ */
23
+ readonly vpcName?: string;
24
+ /**
25
+ * Tags on the VPC
26
+ *
27
+ * The VPC must have all of these tags
28
+ *
29
+ * @default Don't filter on tags
30
+ */
31
+ readonly tags?: {
32
+ [key: string]: string;
33
+ };
34
+ /**
35
+ * Whether to match the default VPC
36
+ *
37
+ * @default Don't care whether we return the default VPC
38
+ */
39
+ readonly isDefault?: boolean;
40
+ /**
41
+ * Optional tag for subnet group name.
42
+ * If not provided, we'll look at the aws-cdk:subnet-name tag.
43
+ * If the subnet does not have the specified tag,
44
+ * we'll use its type as the name.
45
+ *
46
+ * @default aws-cdk:subnet-name
47
+ */
48
+ readonly subnetGroupNameTag?: string;
49
+ /**
50
+ * Optional to override inferred region
51
+ *
52
+ * @default Current stack's environment region
53
+ */
54
+ readonly region?: string;
55
+ /**
56
+ * Whether to look up whether a VPN Gateway is attached to the looked up VPC.
57
+ * You can set this to `false` if you know the VPC does not have a VPN Gateway
58
+ * attached, in order to avoid an API call.
59
+ *
60
+ * If you change this property from `false` to `true` or undefined, you may
61
+ * need to clear the corresponding context entry in `cdk.context.json` in
62
+ * order to trigger a new lookup.
63
+ *
64
+ * @default true
65
+ */
66
+ readonly returnVpnGateways?: boolean;
67
+ /**
68
+ * The ID of the AWS account that owns the VPC
69
+ *
70
+ * @default the account id of the parent stack
71
+ */
72
+ readonly ownerAccountId?: string;
73
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLWxvb2t1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS92cGMtbG9va3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb3BlcnRpZXMgZm9yIGxvb2tpbmcgdXAgYW4gZXhpc3RpbmcgVlBDLlxuICpcbiAqIFRoZSBjb21iaW5hdGlvbiBvZiBwcm9wZXJ0aWVzIG11c3Qgc3BlY2lmeSBmaWx0ZXIgZG93biB0byBleGFjdGx5IG9uZVxuICogbm9uLWRlZmF1bHQgVlBDLCBvdGhlcndpc2UgYW4gZXJyb3IgaXMgcmFpc2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZwY0xvb2t1cE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBWUENcbiAgICpcbiAgICogSWYgZ2l2ZW4sIHdpbGwgaW1wb3J0IGV4YWN0bHkgdGhpcyBWUEMuXG4gICAqXG4gICAqIEBkZWZhdWx0IERvbid0IGZpbHRlciBvbiB2cGNJZFxuICAgKi9cbiAgcmVhZG9ubHkgdnBjSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBWUENcbiAgICpcbiAgICogSWYgZ2l2ZW4sIHdpbGwgaW1wb3J0IHRoZSBWUEMgd2l0aCB0aGlzIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IERvbid0IGZpbHRlciBvbiB2cGNOYW1lXG4gICAqL1xuICByZWFkb25seSB2cGNOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYWdzIG9uIHRoZSBWUENcbiAgICpcbiAgICogVGhlIFZQQyBtdXN0IGhhdmUgYWxsIG9mIHRoZXNlIHRhZ3NcbiAgICpcbiAgICogQGRlZmF1bHQgRG9uJ3QgZmlsdGVyIG9uIHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIG1hdGNoIHRoZSBkZWZhdWx0IFZQQ1xuICAgKlxuICAgKiBAZGVmYXVsdCBEb24ndCBjYXJlIHdoZXRoZXIgd2UgcmV0dXJuIHRoZSBkZWZhdWx0IFZQQ1xuICAgKi9cbiAgcmVhZG9ubHkgaXNEZWZhdWx0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdGFnIGZvciBzdWJuZXQgZ3JvdXAgbmFtZS5cbiAgICogSWYgbm90IHByb3ZpZGVkLCB3ZSdsbCBsb29rIGF0IHRoZSBhd3MtY2RrOnN1Ym5ldC1uYW1lIHRhZy5cbiAgICogSWYgdGhlIHN1Ym5ldCBkb2VzIG5vdCBoYXZlIHRoZSBzcGVjaWZpZWQgdGFnLFxuICAgKiB3ZSdsbCB1c2UgaXRzIHR5cGUgYXMgdGhlIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGF3cy1jZGs6c3VibmV0LW5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldEdyb3VwTmFtZVRhZz86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgdG8gb3ZlcnJpZGUgaW5mZXJyZWQgcmVnaW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IEN1cnJlbnQgc3RhY2sncyBlbnZpcm9ubWVudCByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBsb29rIHVwIHdoZXRoZXIgYSBWUE4gR2F0ZXdheSBpcyBhdHRhY2hlZCB0byB0aGUgbG9va2VkIHVwIFZQQy5cbiAgICogWW91IGNhbiBzZXQgdGhpcyB0byBgZmFsc2VgIGlmIHlvdSBrbm93IHRoZSBWUEMgZG9lcyBub3QgaGF2ZSBhIFZQTiBHYXRld2F5XG4gICAqIGF0dGFjaGVkLCBpbiBvcmRlciB0byBhdm9pZCBhbiBBUEkgY2FsbC5cbiAgICpcbiAgICogSWYgeW91IGNoYW5nZSB0aGlzIHByb3BlcnR5IGZyb20gYGZhbHNlYCB0byBgdHJ1ZWAgb3IgdW5kZWZpbmVkLCB5b3UgbWF5XG4gICAqIG5lZWQgdG8gY2xlYXIgdGhlIGNvcnJlc3BvbmRpbmcgY29udGV4dCBlbnRyeSBpbiBgY2RrLmNvbnRleHQuanNvbmAgaW5cbiAgICogb3JkZXIgdG8gdHJpZ2dlciBhIG5ldyBsb29rdXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJldHVyblZwbkdhdGV3YXlzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBBV1MgYWNjb3VudCB0aGF0IG93bnMgdGhlIFZQQ1xuICAgKlxuICAgKiBAZGVmYXVsdCB0aGUgYWNjb3VudCBpZCBvZiB0aGUgcGFyZW50IHN0YWNrXG4gICAqL1xuICByZWFkb25seSBvd25lckFjY291bnRJZD86IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,353 @@
1
+ import { IDependable, DependencyGroup } from "constructs";
2
+ import { AwsConstructBase } from "../aws-construct";
3
+ import { ClientVpnEndpointOptions, ClientVpnEndpoint } from "./client-vpn-endpoint";
4
+ import { NatGateway, NatGatewayOptions, VPCPeeringConnection, VPCPeeringConnectionOptions, VPNGatewayV2 } from "./route";
5
+ import { VpcOutputs, IVpc, ISubnet, SubnetSelection, SelectedSubnets } from "./vpc";
6
+ import { InterfaceVpcEndpointOptions, InterfaceVpcEndpoint, GatewayVpcEndpointOptions, GatewayVpcEndpoint } from "./vpc-endpoint";
7
+ import { FlowLogOptions, FlowLog } from "./vpc-flow-logs";
8
+ import { EnableVpnGatewayOptions, VpnConnection, VpnConnectionOptions, VpnConnectionType } from "./vpn";
9
+ import { Role } from "../iam";
10
+ import { IVPCCidrBlock } from "./vpc-v2";
11
+ /**
12
+ * Options to define EgressOnlyInternetGateway for VPC
13
+ */
14
+ export interface EgressOnlyInternetGatewayOptions {
15
+ /**
16
+ * List of subnets where route to EGW will be added
17
+ *
18
+ * @default - no route created
19
+ */
20
+ readonly subnets?: SubnetSelection[];
21
+ /**
22
+ * Destination Ipv6 address for EGW route
23
+ *
24
+ * @default - '::/0' all Ipv6 traffic
25
+ */
26
+ readonly destination?: string;
27
+ /**
28
+ * The resource name of the egress-only internet gateway.
29
+ * Provided name will be used for tagging
30
+ *
31
+ * @default - no name tag associated and provisioned without a resource name
32
+ */
33
+ readonly egressOnlyInternetGatewayName?: string;
34
+ }
35
+ /**
36
+ * Options to define InternetGateway for VPC
37
+ */
38
+ export interface InternetGatewayOptions {
39
+ /**
40
+ * Destination Ipv6 address for EGW route
41
+ *
42
+ * @default - '0.0.0.0' all Ipv4 traffic
43
+ */
44
+ readonly ipv4Destination?: string;
45
+ /**
46
+ * Destination Ipv6 address for EGW route
47
+ *
48
+ * @default - '::/0' all Ipv6 traffic
49
+ */
50
+ readonly ipv6Destination?: string;
51
+ /**
52
+ * The resource name of the internet gateway.
53
+ * Provided name will be used for tagging
54
+ *
55
+ * @default - provisioned without a resource name
56
+ */
57
+ readonly internetGatewayName?: string;
58
+ }
59
+ /**
60
+ * Options to define VPNGatewayV2 for VPC
61
+ */
62
+ export interface VPNGatewayV2Options {
63
+ /**
64
+ * The type of VPN connection the virtual private gateway supports.
65
+ * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html#cfn-ec2-vpngateway-type
66
+ */
67
+ readonly type: VpnConnectionType;
68
+ /**
69
+ * The private Autonomous System Number (ASN) for the Amazon side of a BGP session.
70
+ *
71
+ * @default - no ASN set for BGP session
72
+ */
73
+ readonly amazonSideAsn?: number;
74
+ /**
75
+ * The resource name of the VPN gateway.
76
+ *
77
+ * @default - resource provisioned without any name
78
+ */
79
+ readonly vpnGatewayName?: string;
80
+ /**
81
+ * Subnets where the route propagation should be added.
82
+ *
83
+ * @default - no propogation for routes
84
+ */
85
+ readonly vpnRoutePropagation?: SubnetSelection[];
86
+ }
87
+ /**
88
+ * Placeholder to see what extra props we might need,
89
+ * will be added to original IVPC
90
+ */
91
+ export interface IVpcV2 extends IVpc {
92
+ /**
93
+ * The secondary CIDR blocks associated with the VPC.
94
+ *
95
+ * For more information, see the {@link https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cidr-blocks.html#vpc-resize}.
96
+ */
97
+ readonly secondaryCidrBlock?: IVPCCidrBlock[];
98
+ /**
99
+ * The primary IPv4 CIDR block associated with the VPC.
100
+ * Needed in order to validate the vpc range of subnet
101
+ * current prop vpcCidrBlock refers to the token value
102
+ * For more information, see the {@link https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cidr-blocks.html#vpc-sizing-ipv4}.
103
+ */
104
+ readonly ipv4CidrBlock: string;
105
+ /**
106
+ * Optional to override inferred region
107
+ *
108
+ * @default - current stack's environment region
109
+ */
110
+ readonly region: string;
111
+ /**
112
+ * The ID of the AWS account that owns the VPC
113
+ *
114
+ * @default - the account id of the parent stack
115
+ */
116
+ readonly ownerAccountId: string;
117
+ /**
118
+ * IPv4 CIDR provisioned under pool
119
+ * Required to check for overlapping CIDRs after provisioning
120
+ * is complete under IPAM pool
121
+ */
122
+ readonly ipv4IpamProvisionedCidrs?: string[];
123
+ /**
124
+ * VpcName to be used for tagging its components
125
+ * @attribute
126
+ */
127
+ readonly vpcName?: string;
128
+ /**
129
+ * Add an Egress only Internet Gateway to current VPC.
130
+ * Can only be used for ipv6 enabled VPCs.
131
+ * For more information, see the {@link https://docs.aws.amazon.com/vpc/latest/userguide/egress-only-internet-gateway-basics.html}.
132
+ */
133
+ addEgressOnlyInternetGateway(options?: EgressOnlyInternetGatewayOptions): void;
134
+ /**
135
+ * Adds an Internet Gateway to current VPC.
136
+ * For more information, see the {@link https://docs.aws.amazon.com/vpc/latest/userguide/vpc-igw-internet-access.html}.
137
+ *
138
+ * @default - defines route for all ipv4('0.0.0.0') and ipv6 addresses('::/0')
139
+ */
140
+ addInternetGateway(options?: InternetGatewayOptions): void;
141
+ /**
142
+ * Adds VPN Gateway to VPC and set route propogation.
143
+ * For more information, see the {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html}.
144
+ *
145
+ * @default - no route propogation
146
+ */
147
+ enableVpnGatewayV2(options: VPNGatewayV2Options): VPNGatewayV2;
148
+ /**
149
+ * Adds a new NAT Gateway to VPC
150
+ * A NAT gateway is a Network Address Translation (NAT) service. NAT Gateway Connectivity can be of type `Public` or `Private`.
151
+ * For more information, see the {@link https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html}.
152
+ *
153
+ * @default ConnectivityType.Public
154
+ */
155
+ addNatGateway(options: NatGatewayOptions): NatGateway;
156
+ /**
157
+ * Adds a new role to acceptor VPC account
158
+ * A cross account role is required for the VPC to peer with another account.
159
+ * For more information, see the {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/peer-with-vpc-in-another-account.html}.
160
+ */
161
+ createAcceptorVpcRole(requestorAccountId: string): Role;
162
+ /**
163
+ * Creates a new peering connection
164
+ * A peering connection is a private virtual network established between two VPCs.
165
+ * For more information, see the {@link https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html}.
166
+ */
167
+ createPeeringConnection(id: string, options: VPCPeeringConnectionOptions): VPCPeeringConnection;
168
+ }
169
+ /**
170
+ * Base class for creating a VPC (Virtual Private Cloud) in AWS.
171
+ *
172
+ * For more information, see the {@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Vpc.html|AWS CDK Documentation on VPCs}.
173
+ */
174
+ export declare abstract class VpcV2Base extends AwsConstructBase implements IVpcV2 {
175
+ /**
176
+ * Identifier for this VPC
177
+ */
178
+ abstract readonly vpcId: string;
179
+ /**
180
+ * Arn of this VPC
181
+ */
182
+ abstract readonly vpcArn: string;
183
+ /**
184
+ * CIDR range for this VPC
185
+ */
186
+ abstract readonly vpcCidrBlock: string;
187
+ /**
188
+ * List of public subnets in this VPC
189
+ */
190
+ readonly publicSubnets: ISubnet[];
191
+ /**
192
+ * List of private subnets in this VPC
193
+ */
194
+ readonly privateSubnets: ISubnet[];
195
+ /**
196
+ * List of isolated subnets in this VPC
197
+ */
198
+ abstract readonly isolatedSubnets: ISubnet[];
199
+ /**
200
+ * AZs for this VPC
201
+ */
202
+ readonly availabilityZones: string[];
203
+ /**
204
+ * Dependable that can be depended upon to force internet connectivity established on the VPC
205
+ */
206
+ abstract readonly internetConnectivityEstablished: IDependable;
207
+ /**
208
+ * Dependable that can be depended upon to force internet connectivity established on the VPC
209
+ * Add igw to this if its a public subnet
210
+ * @internal
211
+ */
212
+ protected readonly _internetConnectivityEstablished: DependencyGroup;
213
+ /**
214
+ * Secondary IPs for the VPC, can be multiple Ipv4 or Ipv6
215
+ * Ipv4 should be within RFC#1918 range
216
+ */
217
+ abstract readonly secondaryCidrBlock?: IVPCCidrBlock[];
218
+ /**
219
+ * The primary IPv4 CIDR block associated with the VPC.
220
+ * Needed in order to validate the vpc range of subnet
221
+ * current prop vpcCidrBlock refers to the token value
222
+ * For more information, see the {@link https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cidr-blocks.html#vpc-sizing-ipv4}.
223
+ */
224
+ abstract readonly ipv4CidrBlock: string;
225
+ /**
226
+ * VpcName to be used for tagging its components
227
+ */
228
+ abstract readonly vpcName?: string;
229
+ /**
230
+ * Region for this VPC
231
+ */
232
+ abstract readonly region: string;
233
+ /**
234
+ * Identifier of the owner for this VPC
235
+ */
236
+ abstract readonly ownerAccountId: string;
237
+ /**
238
+ * IPv4 CIDR provisioned under pool
239
+ * Required to check for overlapping CIDRs after provisioning
240
+ * is complete under IPAM pool
241
+ */
242
+ abstract readonly ipv4IpamProvisionedCidrs?: string[];
243
+ get vpcOutputs(): VpcOutputs;
244
+ get outputs(): Record<string, any>;
245
+ /**
246
+ * If this is set to true, don't error out on trying to select subnets
247
+ */
248
+ protected incompleteSubnetDefinition: boolean;
249
+ /**
250
+ * Mutable private field for the vpnGatewayId
251
+ * @internal
252
+ */
253
+ protected _vpnGatewayId?: string;
254
+ /**
255
+ * Mutable private field for the internetGatewayId
256
+ * @internal
257
+ */
258
+ protected _internetGatewayId: string;
259
+ /**
260
+ * Return information on the subnets appropriate for the given selection strategy
261
+ *
262
+ * Requires that at least one subnet is matched, throws a descriptive
263
+ * error message otherwise.
264
+ */
265
+ selectSubnets(selection?: SubnetSelection): SelectedSubnets;
266
+ /**
267
+ * Adds a VPN Gateway to this VPC
268
+ * @deprecated use enableVpnGatewayV2 for compatibility with VPCV2.Route
269
+ */
270
+ enableVpnGateway(options: EnableVpnGatewayOptions): void;
271
+ /**
272
+ * Adds VPNGAtewayV2 to this VPC
273
+ */
274
+ enableVpnGatewayV2(options: VPNGatewayV2Options): VPNGatewayV2;
275
+ /**
276
+ * Adds a new VPN connection to this VPC
277
+ */
278
+ addVpnConnection(id: string, options: VpnConnectionOptions): VpnConnection;
279
+ /**
280
+ * Adds a new client VPN endpoint to this VPC
281
+ */
282
+ addClientVpnEndpoint(id: string, options: ClientVpnEndpointOptions): ClientVpnEndpoint;
283
+ /**
284
+ * Adds a new interface endpoint to this VPC
285
+ */
286
+ addInterfaceEndpoint(id: string, options: InterfaceVpcEndpointOptions): InterfaceVpcEndpoint;
287
+ /**
288
+ * Adds a new gateway endpoint to this VPC
289
+ */
290
+ addGatewayEndpoint(id: string, options: GatewayVpcEndpointOptions): GatewayVpcEndpoint;
291
+ /**
292
+ * Adds a new Egress Only Internet Gateway to this VPC and defines a new route
293
+ * to the route table of given subnets.
294
+ *
295
+ * @default - in case of no input subnets, no route is created
296
+ */
297
+ addEgressOnlyInternetGateway(options?: EgressOnlyInternetGatewayOptions): void;
298
+ /**
299
+ * Creates a route for EGW with destination set to outbound IPv6('::/0') or custom ipv6 address.
300
+ * @internal
301
+ */
302
+ private createEgressRoute;
303
+ /**
304
+ * Adds a new Internet Gateway to this VPC
305
+ *
306
+ * @default - creates a new route for public subnets(with all outbound access) to the Internet Gateway.
307
+ */
308
+ addInternetGateway(options?: InternetGatewayOptions): void;
309
+ /**
310
+ * Adds default route for the internet gateway
311
+ * @internal
312
+ */
313
+ private addDefaultInternetRoute;
314
+ /**
315
+ * Adds a new NAT Gateway to the given subnet of this VPC
316
+ * of given subnets.
317
+ */
318
+ addNatGateway(options: NatGatewayOptions): NatGateway;
319
+ /**
320
+ * Adds a new flow log to this VPC
321
+ */
322
+ addFlowLog(id: string, options?: FlowLogOptions): FlowLog;
323
+ /**
324
+ * Creates peering connection role for acceptor VPC
325
+ */
326
+ createAcceptorVpcRole(requestorAccountId: string): Role;
327
+ /**
328
+ * Creates a peering connection
329
+ */
330
+ createPeeringConnection(id: string, options: VPCPeeringConnectionOptions): VPCPeeringConnection;
331
+ /**
332
+ * Returns the id of the VPN Gateway (if enabled)
333
+ */
334
+ get vpnGatewayId(): string | undefined;
335
+ /**
336
+ * Returns the id of the Internet Gateway (if enabled)
337
+ */
338
+ get internetGatewayId(): string | undefined;
339
+ /**
340
+ * Return the subnets appropriate for the placement strategy
341
+ */
342
+ protected selectSubnetObjects(selection?: SubnetSelection): ISubnet[];
343
+ private applySubnetFilters;
344
+ private selectSubnetObjectsByName;
345
+ private selectSubnetObjectsByType;
346
+ /**
347
+ * Validate the fields in a SubnetSelection object, and reify defaults if necessary
348
+ *
349
+ * In case of default selection, select the first type of PRIVATE, ISOLATED,
350
+ * PUBLIC (in that order) that has any subnets.
351
+ */
352
+ private reifySelectionDefaults;
353
+ }