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,715 @@
1
+ import { Construct } from "constructs";
2
+ import { ApplicationListener, BaseApplicationListenerProps } from "./application-listener";
3
+ import { Duration } from "../../../duration";
4
+ import * as cloudwatch from "../../cloudwatch";
5
+ import * as s3 from "../../storage";
6
+ import { Connections, IConnectable } from "../connections";
7
+ import { BaseLoadBalancer, BaseLoadBalancerLookupOptions, BaseLoadBalancerProps, ILoadBalancerV2 } from "../lb-shared/base-load-balancer";
8
+ import { IpAddressType, ApplicationProtocol, DesyncMitigationMode } from "../lb-shared/enums";
9
+ import { ISecurityGroup } from "../security-group";
10
+ import { IVpc } from "../vpc";
11
+ /**
12
+ * Properties for defining an Application Load Balancer
13
+ *
14
+ * @see https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#load-balancer-attributes
15
+ */
16
+ export interface ApplicationLoadBalancerProps extends BaseLoadBalancerProps {
17
+ /**
18
+ * Security group to associate with this load balancer
19
+ *
20
+ * @default A security group is created
21
+ */
22
+ readonly securityGroup?: ISecurityGroup;
23
+ /**
24
+ * The type of IP addresses to use
25
+ *
26
+ * @default IpAddressType.IPV4
27
+ */
28
+ readonly ipAddressType?: IpAddressType;
29
+ /**
30
+ * Indicates whether HTTP/2 is enabled.
31
+ *
32
+ * @default true
33
+ */
34
+ readonly http2Enabled?: boolean;
35
+ /**
36
+ * The load balancer idle timeout, in seconds
37
+ *
38
+ * @default 60
39
+ */
40
+ readonly idleTimeout?: Duration;
41
+ /**
42
+ * Indicates whether HTTP headers with invalid header fields are removed
43
+ * by the load balancer (true) or routed to targets (false)
44
+ *
45
+ * @default false
46
+ */
47
+ readonly dropInvalidHeaderFields?: boolean;
48
+ /**
49
+ * Determines how the load balancer handles requests that
50
+ * might pose a security risk to your application
51
+ *
52
+ * @default DesyncMitigationMode.DEFENSIVE
53
+ */
54
+ readonly desyncMitigationMode?: DesyncMitigationMode;
55
+ /**
56
+ * The client keep alive duration. The valid range is 60 to 604800 seconds (1 minute to 7 days).
57
+ *
58
+ * @default - Duration.seconds(3600)
59
+ */
60
+ readonly clientKeepAlive?: Duration;
61
+ /**
62
+ * Indicates whether the Application Load Balancer should preserve the host header in the HTTP request
63
+ * and send it to the target without any change.
64
+ *
65
+ * @default false
66
+ */
67
+ readonly preserveHostHeader?: boolean;
68
+ /**
69
+ * Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite),
70
+ * which contain information about the negotiated TLS version and cipher suite,
71
+ * are added to the client request before sending it to the target.
72
+ *
73
+ * The x-amzn-tls-version header has information about the TLS protocol version negotiated with the client,
74
+ * and the x-amzn-tls-cipher-suite header has information about the cipher suite negotiated with the client.
75
+ *
76
+ * Both headers are in OpenSSL format.
77
+ *
78
+ * @default false
79
+ */
80
+ readonly xAmznTlsVersionAndCipherSuiteHeaders?: boolean;
81
+ /**
82
+ * Indicates whether the X-Forwarded-For header should preserve the source port
83
+ * that the client used to connect to the load balancer.
84
+ *
85
+ * @default false
86
+ */
87
+ readonly preserveXffClientPort?: boolean;
88
+ /**
89
+ * Enables you to modify, preserve, or remove the X-Forwarded-For header in the HTTP request
90
+ * before the Application Load Balancer sends the request to the target.
91
+ *
92
+ * @default XffHeaderProcessingMode.APPEND
93
+ */
94
+ readonly xffHeaderProcessingMode?: XffHeaderProcessingMode;
95
+ /**
96
+ * Indicates whether to allow a WAF-enabled load balancer to route requests to targets
97
+ * if it is unable to forward the request to AWS WAF.
98
+ *
99
+ * @default false
100
+ */
101
+ readonly wafFailOpen?: boolean;
102
+ }
103
+ /**
104
+ * Processing mode of the X-Forwarded-For header in the HTTP request
105
+ * before the Application Load Balancer sends the request to the target.
106
+ */
107
+ export declare enum XffHeaderProcessingMode {
108
+ /**
109
+ * Application Load Balancer adds the client IP address (of the last hop) to the X-Forwarded-For header
110
+ * in the HTTP request before it sends it to targets.
111
+ */
112
+ APPEND = "append",
113
+ /**
114
+ * Application Load Balancer preserves the X-Forwarded-For header in the HTTP request,
115
+ * and sends it to targets without any change.
116
+ */
117
+ PRESERVE = "preserve",
118
+ /**
119
+ * Application Load Balancer removes the X-Forwarded-For header
120
+ * in the HTTP request before it sends it to targets.
121
+ */
122
+ REMOVE = "remove"
123
+ }
124
+ /**
125
+ * Options for looking up an ApplicationLoadBalancer
126
+ */
127
+ export interface ApplicationLoadBalancerLookupOptions extends BaseLoadBalancerLookupOptions {
128
+ }
129
+ /**
130
+ * Define an Application Load Balancer
131
+ *
132
+ * @resource AWS::ElasticLoadBalancingV2::LoadBalancer
133
+ */
134
+ export declare class ApplicationLoadBalancer extends BaseLoadBalancer implements IApplicationLoadBalancer {
135
+ /**
136
+ * Import an existing Application Load Balancer
137
+ */
138
+ static fromApplicationLoadBalancerAttributes(scope: Construct, id: string, attrs: ApplicationLoadBalancerAttributes): IApplicationLoadBalancer;
139
+ readonly connections: Connections;
140
+ readonly ipAddressType?: IpAddressType;
141
+ readonly listeners: ApplicationListener[];
142
+ readonly metrics: IApplicationLoadBalancerMetrics;
143
+ constructor(scope: Construct, id: string, props: ApplicationLoadBalancerProps);
144
+ /**
145
+ * Add a new listener to this load balancer
146
+ */
147
+ addListener(id: string, props: BaseApplicationListenerProps): ApplicationListener;
148
+ /**
149
+ * Add a redirection listener to this load balancer
150
+ */
151
+ addRedirect(props?: ApplicationLoadBalancerRedirectConfig): ApplicationListener;
152
+ /**
153
+ * Enable access logging for this load balancer.
154
+ *
155
+ * A region must be specified on the stack containing the load balancer; you cannot enable logging on
156
+ * environment-agnostic stacks. See https://docs.aws.amazon.com/cdk/latest/guide/environments.html
157
+ */
158
+ logAccessLogs(bucket: s3.IBucket, prefix?: string): void;
159
+ /**
160
+ * Enable connection logging for this load balancer.
161
+ *
162
+ * A region must be specified on the stack containing the load balancer; you cannot enable logging on
163
+ * environment-agnostic stacks.
164
+ *
165
+ * @see https://docs.aws.amazon.com/cdk/latest/guide/environments.html
166
+ */
167
+ logConnectionLogs(bucket: s3.IBucket, prefix?: string): void;
168
+ /**
169
+ * Add a security group to this load balancer
170
+ */
171
+ addSecurityGroup(securityGroup: ISecurityGroup): void;
172
+ /**
173
+ * Return the given named metric for this Application Load Balancer
174
+ *
175
+ * @default Average over 5 minutes
176
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.custom`` instead
177
+ */
178
+ metric(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
179
+ /**
180
+ * The total number of concurrent TCP connections active from clients to the
181
+ * load balancer and from the load balancer to targets.
182
+ *
183
+ * @default Sum over 5 minutes
184
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.activeConnectionCount`` instead
185
+ */
186
+ metricActiveConnectionCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
187
+ /**
188
+ * The number of TLS connections initiated by the client that did not
189
+ * establish a session with the load balancer. Possible causes include a
190
+ * mismatch of ciphers or protocols.
191
+ *
192
+ * @default Sum over 5 minutes
193
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.clientTlsNegotiationErrorCount`` instead
194
+ */
195
+ metricClientTlsNegotiationErrorCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
196
+ /**
197
+ * The number of load balancer capacity units (LCU) used by your load balancer.
198
+ *
199
+ * @default Sum over 5 minutes
200
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.consumedLCUs`` instead
201
+ */
202
+ metricConsumedLCUs(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
203
+ /**
204
+ * The number of fixed-response actions that were successful.
205
+ *
206
+ * @default Sum over 5 minutes
207
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.httpFixedResponseCount`` instead
208
+ */
209
+ metricHttpFixedResponseCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
210
+ /**
211
+ * The number of redirect actions that were successful.
212
+ *
213
+ * @default Sum over 5 minutes
214
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.httpRedirectCount`` instead
215
+ */
216
+ metricHttpRedirectCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
217
+ /**
218
+ * The number of redirect actions that couldn't be completed because the URL
219
+ * in the response location header is larger than 8K.
220
+ *
221
+ * @default Sum over 5 minutes
222
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.httpRedirectUrlLimitExceededCount`` instead
223
+ */
224
+ metricHttpRedirectUrlLimitExceededCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
225
+ /**
226
+ * The number of HTTP 3xx/4xx/5xx codes that originate from the load balancer.
227
+ *
228
+ * This does not include any response codes generated by the targets.
229
+ *
230
+ * @default Sum over 5 minutes
231
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.httpCodeElb`` instead
232
+ */
233
+ metricHttpCodeElb(code: HttpCodeElb, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
234
+ /**
235
+ * The number of HTTP 2xx/3xx/4xx/5xx response codes generated by all targets
236
+ * in the load balancer.
237
+ *
238
+ * This does not include any response codes generated by the load balancer.
239
+ *
240
+ * @default Sum over 5 minutes
241
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.httpCodeTarget`` instead
242
+ */
243
+ metricHttpCodeTarget(code: HttpCodeTarget, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
244
+ /**
245
+ * The total number of bytes processed by the load balancer over IPv6.
246
+ *
247
+ * @default Sum over 5 minutes
248
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.ipv6ProcessedBytes`` instead
249
+ */
250
+ metricIpv6ProcessedBytes(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
251
+ /**
252
+ * The number of IPv6 requests received by the load balancer.
253
+ *
254
+ * @default Sum over 5 minutes
255
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.ipv6RequestCount`` instead
256
+ */
257
+ metricIpv6RequestCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
258
+ /**
259
+ * The total number of new TCP connections established from clients to the
260
+ * load balancer and from the load balancer to targets.
261
+ *
262
+ * @default Sum over 5 minutes
263
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.newConnectionCount`` instead
264
+ */
265
+ metricNewConnectionCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
266
+ /**
267
+ * The total number of bytes processed by the load balancer over IPv4 and IPv6.
268
+ *
269
+ * @default Sum over 5 minutes
270
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.processedBytes`` instead
271
+ */
272
+ metricProcessedBytes(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
273
+ /**
274
+ * The number of connections that were rejected because the load balancer had
275
+ * reached its maximum number of connections.
276
+ *
277
+ * @default Sum over 5 minutes
278
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.rejectedConnectionCount`` instead
279
+ */
280
+ metricRejectedConnectionCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
281
+ /**
282
+ * The number of requests processed over IPv4 and IPv6.
283
+ *
284
+ * This count includes only the requests with a response generated by a target of the load balancer.
285
+ *
286
+ * @default Sum over 5 minutes
287
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.requestCount`` instead
288
+ */
289
+ metricRequestCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
290
+ /**
291
+ * The number of rules processed by the load balancer given a request rate averaged over an hour.
292
+ *
293
+ * @default Sum over 5 minutes
294
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.ruleEvaluations`` instead
295
+ */
296
+ metricRuleEvaluations(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
297
+ /**
298
+ * The number of connections that were not successfully established between the load balancer and target.
299
+ *
300
+ * @default Sum over 5 minutes
301
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.targetConnectionErrorCount`` instead
302
+ */
303
+ metricTargetConnectionErrorCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
304
+ /**
305
+ * The time elapsed, in seconds, after the request leaves the load balancer until a response from the target is received.
306
+ *
307
+ * @default Average over 5 minutes
308
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.targetResponseTime`` instead
309
+ */
310
+ metricTargetResponseTime(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
311
+ /**
312
+ * The number of TLS connections initiated by the load balancer that did not establish a session with the target.
313
+ *
314
+ * Possible causes include a mismatch of ciphers or protocols.
315
+ *
316
+ * @default Sum over 5 minutes
317
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.targetTLSNegotiationErrorCount`` instead
318
+ */
319
+ metricTargetTLSNegotiationErrorCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
320
+ /**
321
+ * The number of user authentications that could not be completed
322
+ *
323
+ * Because an authenticate action was misconfigured, the load balancer
324
+ * couldn't establish a connection with the IdP, or the load balancer
325
+ * couldn't complete the authentication flow due to an internal error.
326
+ *
327
+ * @default Sum over 5 minutes
328
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.elbAuthError`` instead
329
+ */
330
+ metricElbAuthError(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
331
+ /**
332
+ * The number of user authentications that could not be completed because the
333
+ * IdP denied access to the user or an authorization code was used more than
334
+ * once.
335
+ *
336
+ * @default Sum over 5 minutes
337
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.elbAuthFailure`` instead
338
+ */
339
+ metricElbAuthFailure(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
340
+ /**
341
+ * The time elapsed, in milliseconds, to query the IdP for the ID token and user info.
342
+ *
343
+ * If one or more of these operations fail, this is the time to failure.
344
+ *
345
+ * @default Average over 5 minutes
346
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.elbAuthLatency`` instead
347
+ */
348
+ metricElbAuthLatency(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
349
+ /**
350
+ * The number of authenticate actions that were successful.
351
+ *
352
+ * This metric is incremented at the end of the authentication workflow,
353
+ * after the load balancer has retrieved the user claims from the IdP.
354
+ *
355
+ * @default Sum over 5 minutes
356
+ * @deprecated Use ``ApplicationLoadBalancer.metrics.elbAuthSuccess`` instead
357
+ *
358
+ */
359
+ metricElbAuthSuccess(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
360
+ }
361
+ /**
362
+ * Count of HTTP status originating from the load balancer
363
+ *
364
+ * This count does not include any response codes generated by the targets.
365
+ */
366
+ export declare enum HttpCodeElb {
367
+ /**
368
+ * The number of HTTP 3XX redirection codes that originate from the load balancer.
369
+ */
370
+ ELB_3XX_COUNT = "HTTPCode_ELB_3XX_Count",
371
+ /**
372
+ * The number of HTTP 4XX client error codes that originate from the load balancer.
373
+ *
374
+ * Client errors are generated when requests are malformed or incomplete.
375
+ * These requests have not been received by the target. This count does not
376
+ * include any response codes generated by the targets.
377
+ */
378
+ ELB_4XX_COUNT = "HTTPCode_ELB_4XX_Count",
379
+ /**
380
+ * The number of HTTP 5XX server error codes that originate from the load balancer.
381
+ */
382
+ ELB_5XX_COUNT = "HTTPCode_ELB_5XX_Count",
383
+ /**
384
+ * The number of HTTP 500 server error codes that originate from the load balancer.
385
+ */
386
+ ELB_500_COUNT = "HTTPCode_ELB_500_Count",
387
+ /**
388
+ * The number of HTTP 502 server error codes that originate from the load balancer.
389
+ */
390
+ ELB_502_COUNT = "HTTPCode_ELB_502_Count",
391
+ /**
392
+ * The number of HTTP 503 server error codes that originate from the load balancer.
393
+ */
394
+ ELB_503_COUNT = "HTTPCode_ELB_503_Count",
395
+ /**
396
+ * The number of HTTP 504 server error codes that originate from the load balancer.
397
+ */
398
+ ELB_504_COUNT = "HTTPCode_ELB_504_Count"
399
+ }
400
+ /**
401
+ * Count of HTTP status originating from the targets
402
+ */
403
+ export declare enum HttpCodeTarget {
404
+ /**
405
+ * The number of 2xx response codes from targets
406
+ */
407
+ TARGET_2XX_COUNT = "HTTPCode_Target_2XX_Count",
408
+ /**
409
+ * The number of 3xx response codes from targets
410
+ */
411
+ TARGET_3XX_COUNT = "HTTPCode_Target_3XX_Count",
412
+ /**
413
+ * The number of 4xx response codes from targets
414
+ */
415
+ TARGET_4XX_COUNT = "HTTPCode_Target_4XX_Count",
416
+ /**
417
+ * The number of 5xx response codes from targets
418
+ */
419
+ TARGET_5XX_COUNT = "HTTPCode_Target_5XX_Count"
420
+ }
421
+ /**
422
+ * Contains all metrics for an Application Load Balancer.
423
+ */
424
+ export interface IApplicationLoadBalancerMetrics {
425
+ /**
426
+ * Return the given named metric for this Application Load Balancer
427
+ *
428
+ * @default Average over 5 minutes
429
+ */
430
+ custom(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
431
+ /**
432
+ * The total number of concurrent TCP connections active from clients to the
433
+ * load balancer and from the load balancer to targets.
434
+ *
435
+ * @default Sum over 5 minutes
436
+ */
437
+ activeConnectionCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
438
+ /**
439
+ * The number of TLS connections initiated by the client that did not
440
+ * establish a session with the load balancer. Possible causes include a
441
+ * mismatch of ciphers or protocols.
442
+ *
443
+ * @default Sum over 5 minutes
444
+ */
445
+ clientTlsNegotiationErrorCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
446
+ /**
447
+ * The number of load balancer capacity units (LCU) used by your load balancer.
448
+ *
449
+ * @default Sum over 5 minutes
450
+ */
451
+ consumedLCUs(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
452
+ /**
453
+ * The number of fixed-response actions that were successful.
454
+ *
455
+ * @default Sum over 5 minutes
456
+ */
457
+ httpFixedResponseCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
458
+ /**
459
+ * The number of redirect actions that were successful.
460
+ *
461
+ * @default Sum over 5 minutes
462
+ */
463
+ httpRedirectCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
464
+ /**
465
+ * The number of redirect actions that couldn't be completed because the URL
466
+ * in the response location header is larger than 8K.
467
+ *
468
+ * @default Sum over 5 minutes
469
+ */
470
+ httpRedirectUrlLimitExceededCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
471
+ /**
472
+ * The number of HTTP 3xx/4xx/5xx codes that originate from the load balancer.
473
+ *
474
+ * This does not include any response codes generated by the targets.
475
+ *
476
+ * @default Sum over 5 minutes
477
+ */
478
+ httpCodeElb(code: HttpCodeElb, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
479
+ /**
480
+ * The number of HTTP 2xx/3xx/4xx/5xx response codes generated by all targets
481
+ * in the load balancer.
482
+ *
483
+ * This does not include any response codes generated by the load balancer.
484
+ *
485
+ * @default Sum over 5 minutes
486
+ */
487
+ httpCodeTarget(code: HttpCodeTarget, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
488
+ /**
489
+ * The total number of bytes processed by the load balancer over IPv6.
490
+ *
491
+ * @default Sum over 5 minutes
492
+ */
493
+ ipv6ProcessedBytes(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
494
+ /**
495
+ * The number of IPv6 requests received by the load balancer.
496
+ *
497
+ * @default Sum over 5 minutes
498
+ */
499
+ ipv6RequestCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
500
+ /**
501
+ * The total number of new TCP connections established from clients to the
502
+ * load balancer and from the load balancer to targets.
503
+ *
504
+ * @default Sum over 5 minutes
505
+ */
506
+ newConnectionCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
507
+ /**
508
+ * The total number of bytes processed by the load balancer over IPv4 and IPv6.
509
+ *
510
+ * @default Sum over 5 minutes
511
+ */
512
+ processedBytes(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
513
+ /**
514
+ * The number of connections that were rejected because the load balancer had
515
+ * reached its maximum number of connections.
516
+ *
517
+ * @default Sum over 5 minutes
518
+ */
519
+ rejectedConnectionCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
520
+ /**
521
+ * The number of requests processed over IPv4 and IPv6.
522
+ *
523
+ * This count includes only the requests with a response generated by a target of the load balancer.
524
+ *
525
+ * @default Sum over 5 minutes
526
+ */
527
+ requestCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
528
+ /**
529
+ * The number of rules processed by the load balancer given a request rate averaged over an hour.
530
+ *
531
+ * @default Sum over 5 minutes
532
+ */
533
+ ruleEvaluations(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
534
+ /**
535
+ * The number of connections that were not successfully established between the load balancer and target.
536
+ *
537
+ * @default Sum over 5 minutes
538
+ */
539
+ targetConnectionErrorCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
540
+ /**
541
+ * The time elapsed, in seconds, after the request leaves the load balancer until a response from the target is received.
542
+ *
543
+ * @default Average over 5 minutes
544
+ */
545
+ targetResponseTime(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
546
+ /**
547
+ * The number of TLS connections initiated by the load balancer that did not establish a session with the target.
548
+ *
549
+ * Possible causes include a mismatch of ciphers or protocols.
550
+ *
551
+ * @default Sum over 5 minutes
552
+ */
553
+ targetTLSNegotiationErrorCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
554
+ /**
555
+ * The number of user authentications that could not be completed
556
+ *
557
+ * Because an authenticate action was misconfigured, the load balancer
558
+ * couldn't establish a connection with the IdP, or the load balancer
559
+ * couldn't complete the authentication flow due to an internal error.
560
+ *
561
+ * @default Sum over 5 minutes
562
+ */
563
+ elbAuthError(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
564
+ /**
565
+ * The number of user authentications that could not be completed because the
566
+ * IdP denied access to the user or an authorization code was used more than
567
+ * once.
568
+ *
569
+ * @default Sum over 5 minutes
570
+ */
571
+ elbAuthFailure(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
572
+ /**
573
+ * The time elapsed, in milliseconds, to query the IdP for the ID token and user info.
574
+ *
575
+ * If one or more of these operations fail, this is the time to failure.
576
+ *
577
+ * @default Average over 5 minutes
578
+ */
579
+ elbAuthLatency(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
580
+ /**
581
+ * The number of authenticate actions that were successful.
582
+ *
583
+ * This metric is incremented at the end of the authentication workflow,
584
+ * after the load balancer has retrieved the user claims from the IdP.
585
+ *
586
+ * @default Sum over 5 minutes
587
+ */
588
+ elbAuthSuccess(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
589
+ }
590
+ /**
591
+ * An application load balancer
592
+ */
593
+ export interface IApplicationLoadBalancer extends ILoadBalancerV2, IConnectable {
594
+ /**
595
+ * The ARN of this load balancer
596
+ */
597
+ readonly loadBalancerArn: string;
598
+ /**
599
+ * The VPC this load balancer has been created in (if available).
600
+ * If this interface is the result of an import call to fromApplicationLoadBalancerAttributes,
601
+ * the vpc attribute will be undefined unless specified in the optional properties of that method.
602
+ */
603
+ readonly vpc?: IVpc;
604
+ /**
605
+ * The IP Address Type for this load balancer
606
+ *
607
+ * If the `@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault`
608
+ * feature flag is set (the default for new projects), and `addListener()` is called with `open: true`,
609
+ * the load balancer's security group will automatically include both IPv4 and IPv6 ingress rules
610
+ * when using `IpAddressType.DUAL_STACK_WITHOUT_PUBLIC_IPV4`.
611
+ *
612
+ * For existing projects that only have IPv4 rules, you can opt-in to IPv6 ingress rules
613
+ * by enabling the feature flag in your cdk.json file. Note that enabling this feature flag
614
+ * will modify existing security group rules.
615
+ *
616
+ * @default IpAddressType.IPV4
617
+ */
618
+ readonly ipAddressType?: IpAddressType;
619
+ /**
620
+ * A list of listeners that have been added to the load balancer.
621
+ * This list is only valid for owned constructs.
622
+ */
623
+ readonly listeners: ApplicationListener[];
624
+ /**
625
+ * All metrics available for this load balancer
626
+ */
627
+ readonly metrics: IApplicationLoadBalancerMetrics;
628
+ /**
629
+ * Add a new listener to this load balancer
630
+ */
631
+ addListener(id: string, props: BaseApplicationListenerProps): ApplicationListener;
632
+ }
633
+ /**
634
+ * Properties to reference an existing load balancer
635
+ */
636
+ export interface ApplicationLoadBalancerAttributes {
637
+ /**
638
+ * ARN of the load balancer
639
+ */
640
+ readonly loadBalancerArn: string;
641
+ /**
642
+ * ID of the load balancer's security group
643
+ */
644
+ readonly securityGroupId: string;
645
+ /**
646
+ * The canonical hosted zone ID of this load balancer
647
+ *
648
+ * @default - When not provided, LB cannot be used as Route53 Alias target.
649
+ */
650
+ readonly loadBalancerCanonicalHostedZoneId?: string;
651
+ /**
652
+ * The DNS name of this load balancer
653
+ *
654
+ * @default - When not provided, LB cannot be used as Route53 Alias target.
655
+ */
656
+ readonly loadBalancerDnsName?: string;
657
+ /**
658
+ * Whether the security group allows all outbound traffic or not
659
+ *
660
+ * Unless set to `false`, no egress rules will be added to the security group.
661
+ *
662
+ * @default true
663
+ */
664
+ readonly securityGroupAllowsAllOutbound?: boolean;
665
+ /**
666
+ * The VPC this load balancer has been created in, if available
667
+ *
668
+ * @default - If the Load Balancer was imported and a VPC was not specified,
669
+ * the VPC is not available.
670
+ */
671
+ readonly vpc?: IVpc;
672
+ }
673
+ /**
674
+ * Properties for a redirection config
675
+ */
676
+ export interface ApplicationLoadBalancerRedirectConfig {
677
+ /**
678
+ * The protocol of the listener being created
679
+ *
680
+ * @default HTTP
681
+ */
682
+ readonly sourceProtocol?: ApplicationProtocol;
683
+ /**
684
+ * The port number to listen to
685
+ *
686
+ * @default 80
687
+ */
688
+ readonly sourcePort?: number;
689
+ /**
690
+ * The protocol of the redirection target
691
+ *
692
+ * @default HTTPS
693
+ */
694
+ readonly targetProtocol?: ApplicationProtocol;
695
+ /**
696
+ * The port number to redirect to
697
+ *
698
+ * @default 443
699
+ */
700
+ readonly targetPort?: number;
701
+ /**
702
+ * Allow anyone to connect to this listener
703
+ *
704
+ * If this is specified, the listener will be opened up to anyone who can reach it.
705
+ * For internal load balancers this is anyone in the same VPC. For public load
706
+ * balancers, this is anyone on the internet.
707
+ *
708
+ * If you want to be more selective about who can access this load
709
+ * balancer, set this to `false` and use the listener's `connections`
710
+ * object to selectively grant access to the listener.
711
+ *
712
+ * @default true
713
+ */
714
+ readonly open?: boolean;
715
+ }