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,574 @@
1
+ import { Construct } from "constructs";
2
+ import { ListenerAction } from "./application-listener-action";
3
+ import { FixedResponse, RedirectResponse } from "./application-listener-rule";
4
+ import { IApplicationLoadBalancer } from "./application-load-balancer";
5
+ import { ApplicationTargetGroup, IApplicationLoadBalancerTarget, IApplicationTargetGroup } from "./application-target-group";
6
+ import { ListenerCondition } from "./conditions";
7
+ import { ITrustStore } from "./trust-store";
8
+ import { Duration } from "../../../duration";
9
+ import { Connections, IConnectable } from "../connections";
10
+ import { BaseListener, BaseListenerLookupOptions, IListener } from "../lb-shared/base-listener";
11
+ import { HealthCheck } from "../lb-shared/base-target-group";
12
+ import { ApplicationProtocol, ApplicationProtocolVersion, TargetGroupLoadBalancingAlgorithmType, SslPolicy } from "../lb-shared/enums";
13
+ import { IListenerCertificate } from "../lb-shared/listener-certificate";
14
+ import { Port } from "../port";
15
+ import { ISecurityGroup } from "../security-group";
16
+ /**
17
+ * Basic properties for an ApplicationListener
18
+ */
19
+ export interface BaseApplicationListenerProps {
20
+ /**
21
+ * The protocol to use
22
+ *
23
+ * @default - Determined from port if known.
24
+ */
25
+ readonly protocol?: ApplicationProtocol;
26
+ /**
27
+ * The port on which the listener listens for requests.
28
+ *
29
+ * @default - Determined from protocol if known.
30
+ */
31
+ readonly port?: number;
32
+ /**
33
+ * The certificates to use on this listener
34
+ *
35
+ * @default - No certificates.
36
+ * @deprecated Use the `certificates` property instead
37
+ */
38
+ readonly certificateArns?: string[];
39
+ /**
40
+ * Certificate list of ACM cert ARNs. You must provide exactly one certificate if the listener protocol is HTTPS or TLS.
41
+ *
42
+ * @default - No certificates.
43
+ */
44
+ readonly certificates?: IListenerCertificate[];
45
+ /**
46
+ * The security policy that defines which ciphers and protocols are supported.
47
+ *
48
+ * @default - The current predefined security policy.
49
+ */
50
+ readonly sslPolicy?: SslPolicy;
51
+ /**
52
+ * Default target groups to load balance to
53
+ *
54
+ * All target groups will be load balanced to with equal weight and without
55
+ * stickiness. For a more complex configuration than that, use
56
+ * either `defaultAction` or `addAction()`.
57
+ *
58
+ * Cannot be specified together with `defaultAction`.
59
+ *
60
+ * @default - None.
61
+ */
62
+ readonly defaultTargetGroups?: IApplicationTargetGroup[];
63
+ /**
64
+ * Default action to take for requests to this listener
65
+ *
66
+ * This allows full control of the default action of the load balancer,
67
+ * including Action chaining, fixed responses and redirect responses.
68
+ *
69
+ * See the `ListenerAction` class for all options.
70
+ *
71
+ * Cannot be specified together with `defaultTargetGroups`.
72
+ *
73
+ * @default - None.
74
+ */
75
+ readonly defaultAction?: ListenerAction;
76
+ /**
77
+ * Allow anyone to connect to the load balancer on the listener port
78
+ *
79
+ * If this is specified, the load balancer will be opened up to anyone who can reach it.
80
+ * For internal load balancers this is anyone in the same VPC. For public load
81
+ * balancers, this is anyone on the internet.
82
+ *
83
+ * If you want to be more selective about who can access this load
84
+ * balancer, set this to `false` and use the listener's `connections`
85
+ * object to selectively grant access to the load balancer on the listener port.
86
+ *
87
+ * @default true
88
+ */
89
+ readonly open?: boolean;
90
+ /**
91
+ * The mutual authentication configuration information
92
+ *
93
+ * @default - No mutual authentication configuration
94
+ *
95
+ * @see https://docs.aws.amazon.com/elasticloadbalancing/latest/application/mutual-authentication.html
96
+ * @see https://registry.terraform.io/providers/hashicorp/aws/5.87.0/docs/resources/lb_listener#mutual_authentication
97
+ */
98
+ readonly mutualAuthentication?: MutualAuthentication;
99
+ }
100
+ /**
101
+ * The mutual authentication configuration information
102
+ *
103
+ */
104
+ export interface MutualAuthentication {
105
+ /**
106
+ * The client certificate handling method
107
+ *
108
+ * @default MutualAuthenticationMode.OFF
109
+ */
110
+ readonly mutualAuthenticationMode?: MutualAuthenticationMode;
111
+ /**
112
+ * The trust store
113
+ *
114
+ * Cannot be used with MutualAuthenticationMode.OFF or MutualAuthenticationMode.PASS_THROUGH
115
+ *
116
+ * @default - no trust store
117
+ */
118
+ readonly trustStore?: ITrustStore;
119
+ /**
120
+ * Indicates whether expired client certificates are ignored
121
+ *
122
+ * Cannot be used with MutualAuthenticationMode.OFF or MutualAuthenticationMode.PASS_THROUGH
123
+ *
124
+ * @default false
125
+ */
126
+ readonly ignoreClientCertificateExpiry?: boolean;
127
+ }
128
+ /**
129
+ * The client certificate handling method
130
+ */
131
+ export declare enum MutualAuthenticationMode {
132
+ /**
133
+ * Off
134
+ */
135
+ OFF = "off",
136
+ /**
137
+ * Application Load Balancer sends the whole client certificate chain to the target using HTTP headers
138
+ */
139
+ PASS_THROUGH = "passthrough",
140
+ /**
141
+ * Application Load Balancer performs X.509 client certificate authentication for clients when a load balancer negotiates TLS connections
142
+ */
143
+ VERIFY = "verify"
144
+ }
145
+ /**
146
+ * Properties for defining a standalone ApplicationListener
147
+ */
148
+ export interface ApplicationListenerProps extends BaseApplicationListenerProps {
149
+ /**
150
+ * The load balancer to attach this listener to
151
+ */
152
+ readonly loadBalancer: IApplicationLoadBalancer;
153
+ }
154
+ /**
155
+ * Options for ApplicationListener lookup
156
+ */
157
+ export interface ApplicationListenerLookupOptions extends BaseListenerLookupOptions {
158
+ /**
159
+ * ARN of the listener to look up
160
+ * @default - does not filter by listener arn
161
+ */
162
+ readonly listenerArn?: string;
163
+ /**
164
+ * Filter listeners by listener protocol
165
+ * @default - does not filter by listener protocol
166
+ */
167
+ readonly listenerProtocol?: ApplicationProtocol;
168
+ }
169
+ /**
170
+ * Define an ApplicationListener
171
+ *
172
+ * @resource AWS::ElasticLoadBalancingV2::Listener
173
+ */
174
+ export declare class ApplicationListener extends BaseListener implements IApplicationListener {
175
+ /**
176
+ * Import an existing listener
177
+ */
178
+ static fromApplicationListenerAttributes(scope: Construct, id: string, attrs: ApplicationListenerAttributes): IApplicationListener;
179
+ /**
180
+ * Manage connections to this ApplicationListener
181
+ */
182
+ readonly connections: Connections;
183
+ /**
184
+ * Load balancer this listener is associated with
185
+ */
186
+ readonly loadBalancer: IApplicationLoadBalancer;
187
+ /**
188
+ * The port of the listener.
189
+ */
190
+ readonly port: number;
191
+ /**
192
+ * ARNs of certificates added to this listener
193
+ */
194
+ private readonly certificateArns;
195
+ /**
196
+ * Listener protocol for this listener.
197
+ */
198
+ private readonly protocol;
199
+ constructor(scope: Construct, id: string, props: ApplicationListenerProps);
200
+ /**
201
+ * Add one or more certificates to this listener.
202
+ *
203
+ * After the first certificate, this creates ApplicationListenerCertificates
204
+ * resources since cloudformation requires the certificates array on the
205
+ * listener resource to have a length of 1.
206
+ *
207
+ * @deprecated Use `addCertificates` instead.
208
+ */
209
+ addCertificateArns(id: string, arns: string[]): void;
210
+ /**
211
+ * Add one or more certificates to this listener.
212
+ *
213
+ * After the first certificate, this creates ApplicationListenerCertificates
214
+ * resources since cloudformation requires the certificates array on the
215
+ * listener resource to have a length of 1.
216
+ */
217
+ addCertificates(id: string, certificates: IListenerCertificate[]): void;
218
+ /**
219
+ * Perform the given default action on incoming requests
220
+ *
221
+ * This allows full control of the default action of the load balancer,
222
+ * including Action chaining, fixed responses and redirect responses. See
223
+ * the `ListenerAction` class for all options.
224
+ *
225
+ * It's possible to add routing conditions to the Action added in this way.
226
+ * At least one Action must be added without conditions (which becomes the
227
+ * default Action).
228
+ */
229
+ addAction(id: string, props: AddApplicationActionProps): void;
230
+ /**
231
+ * Load balance incoming requests to the given target groups.
232
+ *
233
+ * All target groups will be load balanced to with equal weight and without
234
+ * stickiness. For a more complex configuration than that, use `addAction()`.
235
+ *
236
+ * It's possible to add routing conditions to the TargetGroups added in this
237
+ * way. At least one TargetGroup must be added without conditions (which will
238
+ * become the default Action for this listener).
239
+ */
240
+ addTargetGroups(id: string, props: AddApplicationTargetGroupsProps): void;
241
+ /**
242
+ * Load balance incoming requests to the given load balancing targets.
243
+ *
244
+ * This method implicitly creates an ApplicationTargetGroup for the targets
245
+ * involved, and a 'forward' action to route traffic to the given TargetGroup.
246
+ *
247
+ * If you want more control over the precise setup, create the TargetGroup
248
+ * and use `addAction` yourself.
249
+ *
250
+ * It's possible to add conditions to the targets added in this way. At least
251
+ * one set of targets must be added without conditions.
252
+ *
253
+ * @returns The newly created target group
254
+ */
255
+ addTargets(id: string, props: AddApplicationTargetsProps): ApplicationTargetGroup;
256
+ /**
257
+ * Add a fixed response
258
+ *
259
+ * @deprecated Use `addAction()` instead
260
+ */
261
+ addFixedResponse(id: string, props: AddFixedResponseProps): void;
262
+ /**
263
+ * Add a redirect response
264
+ *
265
+ * @deprecated Use `addAction()` instead
266
+ */
267
+ addRedirectResponse(id: string, props: AddRedirectResponseProps): void;
268
+ /**
269
+ * Register that a connectable that has been added to this load balancer.
270
+ *
271
+ * Don't call this directly. It is called by ApplicationTargetGroup.
272
+ */
273
+ registerConnectable(connectable: IConnectable, portRange: Port): void;
274
+ /**
275
+ * Validate this listener.
276
+ */
277
+ protected validateListener(): string[];
278
+ /**
279
+ * Wrapper for _setDefaultAction which does a type-safe bind
280
+ */
281
+ private setDefaultAction;
282
+ }
283
+ /**
284
+ * Properties to reference an existing listener
285
+ */
286
+ export interface IApplicationListener extends IListener, IConnectable {
287
+ /**
288
+ * Add one or more certificates to this listener.
289
+ * @deprecated use `addCertificates()`
290
+ */
291
+ addCertificateArns(id: string, arns: string[]): void;
292
+ /**
293
+ * Add one or more certificates to this listener.
294
+ */
295
+ addCertificates(id: string, certificates: IListenerCertificate[]): void;
296
+ /**
297
+ * Load balance incoming requests to the given target groups.
298
+ *
299
+ * It's possible to add conditions to the TargetGroups added in this way.
300
+ * At least one TargetGroup must be added without conditions.
301
+ */
302
+ addTargetGroups(id: string, props: AddApplicationTargetGroupsProps): void;
303
+ /**
304
+ * Load balance incoming requests to the given load balancing targets.
305
+ *
306
+ * This method implicitly creates an ApplicationTargetGroup for the targets
307
+ * involved.
308
+ *
309
+ * It's possible to add conditions to the targets added in this way. At least
310
+ * one set of targets must be added without conditions.
311
+ *
312
+ * @returns The newly created target group
313
+ */
314
+ addTargets(id: string, props: AddApplicationTargetsProps): ApplicationTargetGroup;
315
+ /**
316
+ * Register that a connectable that has been added to this load balancer.
317
+ *
318
+ * Don't call this directly. It is called by ApplicationTargetGroup.
319
+ */
320
+ registerConnectable(connectable: IConnectable, portRange: Port): void;
321
+ /**
322
+ * Perform the given action on incoming requests
323
+ *
324
+ * This allows full control of the default action of the load balancer,
325
+ * including Action chaining, fixed responses and redirect responses. See
326
+ * the `ListenerAction` class for all options.
327
+ *
328
+ * It's possible to add routing conditions to the Action added in this way.
329
+ *
330
+ * It is not possible to add a default action to an imported IApplicationListener.
331
+ * In order to add actions to an imported IApplicationListener a `priority`
332
+ * must be provided.
333
+ */
334
+ addAction(id: string, props: AddApplicationActionProps): void;
335
+ }
336
+ /**
337
+ * Properties to reference an existing listener
338
+ */
339
+ export interface ApplicationListenerAttributes {
340
+ /**
341
+ * ARN of the listener
342
+ */
343
+ readonly listenerArn: string;
344
+ /**
345
+ * Security group of the load balancer this listener is associated with
346
+ */
347
+ readonly securityGroup: ISecurityGroup;
348
+ /**
349
+ * The default port on which this listener is listening
350
+ */
351
+ readonly defaultPort?: number;
352
+ /**
353
+ * Whether the imported security group allows all outbound traffic or not when
354
+ * imported using `securityGroupId`
355
+ *
356
+ * Unless set to `false`, no egress rules will be added to the security group.
357
+ *
358
+ * @default true
359
+ *
360
+ * @deprecated use `securityGroup` instead
361
+ */
362
+ readonly securityGroupAllowsAllOutbound?: boolean;
363
+ }
364
+ /**
365
+ * Properties for adding a conditional load balancing rule
366
+ */
367
+ export interface AddRuleProps {
368
+ /**
369
+ * Priority of this target group
370
+ *
371
+ * The rule with the lowest priority will be used for every request.
372
+ * If priority is not given, these target groups will be added as
373
+ * defaults, and must not have conditions.
374
+ *
375
+ * Priorities must be unique.
376
+ *
377
+ * @default Target groups are used as defaults
378
+ */
379
+ readonly priority?: number;
380
+ /**
381
+ * Rule applies if matches the conditions.
382
+ *
383
+ * @see https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html
384
+ *
385
+ * @default - No conditions.
386
+ */
387
+ readonly conditions?: ListenerCondition[];
388
+ /**
389
+ * Rule applies if the requested host matches the indicated host
390
+ *
391
+ * May contain up to three '*' wildcards.
392
+ *
393
+ * Requires that priority is set.
394
+ *
395
+ * @see https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#host-conditions
396
+ *
397
+ * @default No host condition
398
+ * @deprecated Use `conditions` instead.
399
+ */
400
+ readonly hostHeader?: string;
401
+ /**
402
+ * Rule applies if the requested path matches the given path pattern
403
+ *
404
+ * May contain up to three '*' wildcards.
405
+ *
406
+ * Requires that priority is set.
407
+ *
408
+ * @see https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions
409
+ * @default No path condition
410
+ * @deprecated Use `conditions` instead.
411
+ */
412
+ readonly pathPattern?: string;
413
+ /**
414
+ * Rule applies if the requested path matches any of the given patterns.
415
+ *
416
+ * May contain up to three '*' wildcards.
417
+ *
418
+ * Requires that priority is set.
419
+ *
420
+ * @see https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions
421
+ * @default - No path condition.
422
+ * @deprecated Use `conditions` instead.
423
+ */
424
+ readonly pathPatterns?: string[];
425
+ }
426
+ /**
427
+ * Properties for adding a new target group to a listener
428
+ */
429
+ export interface AddApplicationTargetGroupsProps extends AddRuleProps {
430
+ /**
431
+ * Target groups to forward requests to
432
+ */
433
+ readonly targetGroups: IApplicationTargetGroup[];
434
+ }
435
+ /**
436
+ * Properties for adding a new action to a listener
437
+ */
438
+ export interface AddApplicationActionProps extends AddRuleProps {
439
+ /**
440
+ * Action to perform
441
+ */
442
+ readonly action: ListenerAction;
443
+ /**
444
+ * `ListenerRule`s have a `Rule` suffix on their logicalId by default. This allows you to remove that suffix.
445
+ *
446
+ * Legacy behavior of the `addTargetGroups()` convenience method did not include the `Rule` suffix on the logicalId of the generated `ListenerRule`.
447
+ * At some point, increasing complexity of requirements can require users to switch from the `addTargetGroups()` method
448
+ * to the `addAction()` method.
449
+ * When migrating `ListenerRule`s deployed by a legacy version of `addTargetGroups()`,
450
+ * you will need to enable this flag to avoid changing the logicalId of your resource.
451
+ * Otherwise Cfn will attempt to replace the `ListenerRule` and fail.
452
+ *
453
+ * @default - use standard logicalId with the `Rule` suffix
454
+ */
455
+ readonly removeSuffix?: boolean;
456
+ }
457
+ /**
458
+ * Properties for adding new targets to a listener
459
+ */
460
+ export interface AddApplicationTargetsProps extends AddRuleProps {
461
+ /**
462
+ * The protocol to use
463
+ *
464
+ * @default Determined from port if known
465
+ */
466
+ readonly protocol?: ApplicationProtocol;
467
+ /**
468
+ * The protocol version to use
469
+ *
470
+ * @default ApplicationProtocolVersion.HTTP1
471
+ */
472
+ readonly protocolVersion?: ApplicationProtocolVersion;
473
+ /**
474
+ * The port on which the listener listens for requests.
475
+ *
476
+ * @default Determined from protocol if known
477
+ */
478
+ readonly port?: number;
479
+ /**
480
+ * The time period during which the load balancer sends a newly registered
481
+ * target a linearly increasing share of the traffic to the target group.
482
+ *
483
+ * The range is 30-900 seconds (15 minutes).
484
+ *
485
+ * @default 0
486
+ */
487
+ readonly slowStart?: Duration;
488
+ /**
489
+ * The stickiness cookie expiration period.
490
+ *
491
+ * Setting this value enables load balancer stickiness.
492
+ *
493
+ * After this period, the cookie is considered stale. The minimum value is
494
+ * 1 second and the maximum value is 7 days (604800 seconds).
495
+ *
496
+ * @default Stickiness disabled
497
+ */
498
+ readonly stickinessCookieDuration?: Duration;
499
+ /**
500
+ * The name of an application-based stickiness cookie.
501
+ *
502
+ * Names that start with the following prefixes are not allowed: AWSALB, AWSALBAPP,
503
+ * and AWSALBTG; they're reserved for use by the load balancer.
504
+ *
505
+ * Note: `stickinessCookieName` parameter depends on the presence of `stickinessCookieDuration` parameter.
506
+ * If `stickinessCookieDuration` is not set, `stickinessCookieName` will be omitted.
507
+ *
508
+ * @default - If `stickinessCookieDuration` is set, a load-balancer generated cookie is used. Otherwise, no stickiness is defined.
509
+ * @see https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html
510
+ */
511
+ readonly stickinessCookieName?: string;
512
+ /**
513
+ * The targets to add to this target group.
514
+ *
515
+ * Can be `Instance`, `IPAddress`, or any self-registering load balancing
516
+ * target. All target must be of the same type.
517
+ */
518
+ readonly targets?: IApplicationLoadBalancerTarget[];
519
+ /**
520
+ * The name of the target group.
521
+ *
522
+ * This name must be unique per region per account, can have a maximum of
523
+ * 32 characters, must contain only alphanumeric characters or hyphens, and
524
+ * must not begin or end with a hyphen.
525
+ *
526
+ * @default Automatically generated
527
+ */
528
+ readonly targetGroupName?: string;
529
+ /**
530
+ * The amount of time for Elastic Load Balancing to wait before deregistering a target.
531
+ *
532
+ * The range is 0-3600 seconds.
533
+ *
534
+ * @default Duration.minutes(5)
535
+ */
536
+ readonly deregistrationDelay?: Duration;
537
+ /**
538
+ * Health check configuration
539
+ *
540
+ * @default - The default value for each property in this configuration varies depending on the target.
541
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#aws-resource-elasticloadbalancingv2-targetgroup-properties
542
+ */
543
+ readonly healthCheck?: HealthCheck;
544
+ /**
545
+ * The load balancing algorithm to select targets for routing requests.
546
+ *
547
+ * @default round_robin.
548
+ */
549
+ readonly loadBalancingAlgorithmType?: TargetGroupLoadBalancingAlgorithmType;
550
+ /**
551
+ * Indicates whether anomaly mitigation is enabled.
552
+ *
553
+ * Only available when `loadBalancingAlgorithmType` is `TargetGroupLoadBalancingAlgorithmType.WEIGHTED_RANDOM`
554
+ *
555
+ * @default false
556
+ *
557
+ * @see https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#automatic-target-weights
558
+ */
559
+ readonly enableAnomalyMitigation?: boolean;
560
+ }
561
+ /**
562
+ * Properties for adding a fixed response to a listener
563
+ *
564
+ * @deprecated Use `ApplicationListener.addAction` instead.
565
+ */
566
+ export interface AddFixedResponseProps extends AddRuleProps, FixedResponse {
567
+ }
568
+ /**
569
+ * Properties for adding a redirect response to a listener
570
+ *
571
+ * @deprecated Use `ApplicationListener.addAction` instead.
572
+ */
573
+ export interface AddRedirectResponseProps extends AddRuleProps, RedirectResponse {
574
+ }