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,127 @@
1
+ "use strict";
2
+ var _a, _b;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.IpTarget = exports.InstanceTarget = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const enums_1 = require("./enums");
7
+ /**
8
+ * An EC2 instance that is the target for load balancing
9
+ *
10
+ * If you register a target of this type, you are responsible for making
11
+ * sure the load balancer's security group can connect to the instance.
12
+ *
13
+ * @deprecated Use IpTarget from the compute/lb-targets instead.
14
+ */
15
+ class InstanceTarget {
16
+ /**
17
+ * Create a new Instance target
18
+ *
19
+ * @param instanceId Instance ID of the instance to register to
20
+ * @param port Override the default port for the target group
21
+ */
22
+ constructor(instanceId, port) {
23
+ this.instanceId = instanceId;
24
+ this.port = port;
25
+ }
26
+ /**
27
+ * Register this instance target with a load balancer
28
+ *
29
+ * Don't call this, it is called automatically when you add the target to a
30
+ * load balancer.
31
+ */
32
+ attachToApplicationTargetGroup(targetGroup) {
33
+ return this.attach(targetGroup);
34
+ }
35
+ /**
36
+ * Register this instance target with a load balancer
37
+ *
38
+ * Don't call this, it is called automatically when you add the target to a
39
+ * load balancer.
40
+ */
41
+ attachToNetworkTargetGroup(targetGroup) {
42
+ return this.attach(targetGroup);
43
+ }
44
+ attach(_targetGroup) {
45
+ return {
46
+ targetType: enums_1.TargetType.INSTANCE,
47
+ targetJson: { targetId: this.instanceId, port: this.port },
48
+ };
49
+ }
50
+ }
51
+ exports.InstanceTarget = InstanceTarget;
52
+ _a = JSII_RTTI_SYMBOL_1;
53
+ InstanceTarget[_a] = { fqn: "terraconstructs.aws.compute.InstanceTarget", version: "0.0.12" };
54
+ /**
55
+ * An IP address that is a target for load balancing.
56
+ *
57
+ * Specify IP addresses from the subnets of the virtual private cloud (VPC) for
58
+ * the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and
59
+ * 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can't specify
60
+ * publicly routable IP addresses.
61
+ *
62
+ * If you register a target of this type, you are responsible for making
63
+ * sure the load balancer's security group can send packets to the IP address.
64
+ *
65
+ * @deprecated Use IpTarget from the compute/lb-targets package instead.
66
+ */
67
+ class IpTarget {
68
+ /**
69
+ * Create a new IPAddress target
70
+ *
71
+ * The availabilityZone parameter determines whether the target receives
72
+ * traffic from the load balancer nodes in the specified Availability Zone
73
+ * or from all enabled Availability Zones for the load balancer.
74
+ *
75
+ * This parameter is not supported if the target type of the target group
76
+ * is instance. If the IP address is in a subnet of the VPC for the target
77
+ * group, the Availability Zone is automatically detected and this
78
+ * parameter is optional. If the IP address is outside the VPC, this
79
+ * parameter is required.
80
+ *
81
+ * With an Application Load Balancer, if the IP address is outside the VPC
82
+ * for the target group, the only supported value is all.
83
+ *
84
+ * Default is automatic.
85
+ *
86
+ * @param ipAddress The IP Address to load balance to
87
+ * @param port Override the group's default port
88
+ * @param availabilityZone Availability zone to send traffic from
89
+ */
90
+ constructor(ipAddress, port, availabilityZone) {
91
+ this.ipAddress = ipAddress;
92
+ this.port = port;
93
+ this.availabilityZone = availabilityZone;
94
+ }
95
+ /**
96
+ * Register this instance target with a load balancer
97
+ *
98
+ * Don't call this, it is called automatically when you add the target to a
99
+ * load balancer.
100
+ */
101
+ attachToApplicationTargetGroup(targetGroup) {
102
+ return this.attach(targetGroup);
103
+ }
104
+ /**
105
+ * Register this instance target with a load balancer
106
+ *
107
+ * Don't call this, it is called automatically when you add the target to a
108
+ * load balancer.
109
+ */
110
+ attachToNetworkTargetGroup(targetGroup) {
111
+ return this.attach(targetGroup);
112
+ }
113
+ attach(_targetGroup) {
114
+ return {
115
+ targetType: enums_1.TargetType.IP,
116
+ targetJson: {
117
+ targetId: this.ipAddress,
118
+ port: this.port,
119
+ availabilityZone: this.availabilityZone,
120
+ },
121
+ };
122
+ }
123
+ }
124
+ exports.IpTarget = IpTarget;
125
+ _b = JSII_RTTI_SYMBOL_1;
126
+ IpTarget[_b] = { fqn: "terraconstructs.aws.compute.IpTarget", version: "0.0.12" };
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1iYWxhbmNlci10YXJnZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2xiLXNoYXJlZC9sb2FkLWJhbGFuY2VyLXRhcmdldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHQSxtQ0FBcUM7QUFVckM7Ozs7Ozs7R0FPRztBQUNILE1BQWEsY0FBYztJQUd6Qjs7Ozs7T0FLRztJQUNILFlBQ21CLFVBQWtCLEVBQ2xCLElBQWE7UUFEYixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLFNBQUksR0FBSixJQUFJLENBQVM7SUFDN0IsQ0FBQztJQUVKOzs7OztPQUtHO0lBQ0ksOEJBQThCLENBQ25DLFdBQW9DO1FBRXBDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSwwQkFBMEIsQ0FDL0IsV0FBZ0M7UUFFaEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxNQUFNLENBQUMsWUFBMEI7UUFDdkMsT0FBTztZQUNMLFVBQVUsRUFBRSxrQkFBVSxDQUFDLFFBQVE7WUFDL0IsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7U0FDM0QsQ0FBQztJQUNKLENBQUM7O0FBM0NILHdDQTRDQzs7O0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBYSxRQUFRO0lBR25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FxQkc7SUFDSCxZQUNtQixTQUFpQixFQUNqQixJQUFhLEVBQ2IsZ0JBQXlCO1FBRnpCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsU0FBSSxHQUFKLElBQUksQ0FBUztRQUNiLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUztJQUN6QyxDQUFDO0lBRUo7Ozs7O09BS0c7SUFDSSw4QkFBOEIsQ0FDbkMsV0FBb0M7UUFFcEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLDBCQUEwQixDQUMvQixXQUFnQztRQUVoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxZQUEwQjtRQUN2QyxPQUFPO1lBQ0wsVUFBVSxFQUFFLGtCQUFVLENBQUMsRUFBRTtZQUN6QixVQUFVLEVBQUU7Z0JBQ1YsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjthQUN4QztTQUNGLENBQUM7SUFDSixDQUFDOztBQWhFSCw0QkFpRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi9saWIvc2hhcmVkL2xvYWQtYmFsYW5jZXItdGFyZ2V0cy50c1xuXG5pbXBvcnQgeyBJVGFyZ2V0R3JvdXAsIExvYWRCYWxhbmNlclRhcmdldFByb3BzIH0gZnJvbSBcIi4vYmFzZS10YXJnZXQtZ3JvdXBcIjtcbmltcG9ydCB7IFRhcmdldFR5cGUgfSBmcm9tIFwiLi9lbnVtc1wiO1xuaW1wb3J0IHtcbiAgSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyVGFyZ2V0LFxuICBJQXBwbGljYXRpb25UYXJnZXRHcm91cCxcbn0gZnJvbSBcIi4uL2FsYi9hcHBsaWNhdGlvbi10YXJnZXQtZ3JvdXBcIjtcbmltcG9ydCB7XG4gIElOZXR3b3JrTG9hZEJhbGFuY2VyVGFyZ2V0LFxuICBJTmV0d29ya1RhcmdldEdyb3VwLFxufSBmcm9tIFwiLi4vbmxiL25ldHdvcmstdGFyZ2V0LWdyb3VwXCI7XG5cbi8qKlxuICogQW4gRUMyIGluc3RhbmNlIHRoYXQgaXMgdGhlIHRhcmdldCBmb3IgbG9hZCBiYWxhbmNpbmdcbiAqXG4gKiBJZiB5b3UgcmVnaXN0ZXIgYSB0YXJnZXQgb2YgdGhpcyB0eXBlLCB5b3UgYXJlIHJlc3BvbnNpYmxlIGZvciBtYWtpbmdcbiAqIHN1cmUgdGhlIGxvYWQgYmFsYW5jZXIncyBzZWN1cml0eSBncm91cCBjYW4gY29ubmVjdCB0byB0aGUgaW5zdGFuY2UuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIElwVGFyZ2V0IGZyb20gdGhlIGNvbXB1dGUvbGItdGFyZ2V0cyBpbnN0ZWFkLlxuICovXG5leHBvcnQgY2xhc3MgSW5zdGFuY2VUYXJnZXRcbiAgaW1wbGVtZW50cyBJQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJUYXJnZXQsIElOZXR3b3JrTG9hZEJhbGFuY2VyVGFyZ2V0XG57XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgSW5zdGFuY2UgdGFyZ2V0XG4gICAqXG4gICAqIEBwYXJhbSBpbnN0YW5jZUlkIEluc3RhbmNlIElEIG9mIHRoZSBpbnN0YW5jZSB0byByZWdpc3RlciB0b1xuICAgKiBAcGFyYW0gcG9ydCBPdmVycmlkZSB0aGUgZGVmYXVsdCBwb3J0IGZvciB0aGUgdGFyZ2V0IGdyb3VwXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluc3RhbmNlSWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcnQ/OiBudW1iZXIsXG4gICkge31cblxuICAvKipcbiAgICogUmVnaXN0ZXIgdGhpcyBpbnN0YW5jZSB0YXJnZXQgd2l0aCBhIGxvYWQgYmFsYW5jZXJcbiAgICpcbiAgICogRG9uJ3QgY2FsbCB0aGlzLCBpdCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSB3aGVuIHlvdSBhZGQgdGhlIHRhcmdldCB0byBhXG4gICAqIGxvYWQgYmFsYW5jZXIuXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoVG9BcHBsaWNhdGlvblRhcmdldEdyb3VwKFxuICAgIHRhcmdldEdyb3VwOiBJQXBwbGljYXRpb25UYXJnZXRHcm91cCxcbiAgKTogTG9hZEJhbGFuY2VyVGFyZ2V0UHJvcHMge1xuICAgIHJldHVybiB0aGlzLmF0dGFjaCh0YXJnZXRHcm91cCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgdGhpcyBpbnN0YW5jZSB0YXJnZXQgd2l0aCBhIGxvYWQgYmFsYW5jZXJcbiAgICpcbiAgICogRG9uJ3QgY2FsbCB0aGlzLCBpdCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSB3aGVuIHlvdSBhZGQgdGhlIHRhcmdldCB0byBhXG4gICAqIGxvYWQgYmFsYW5jZXIuXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoVG9OZXR3b3JrVGFyZ2V0R3JvdXAoXG4gICAgdGFyZ2V0R3JvdXA6IElOZXR3b3JrVGFyZ2V0R3JvdXAsXG4gICk6IExvYWRCYWxhbmNlclRhcmdldFByb3BzIHtcbiAgICByZXR1cm4gdGhpcy5hdHRhY2godGFyZ2V0R3JvdXApO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHRhY2goX3RhcmdldEdyb3VwOiBJVGFyZ2V0R3JvdXApOiBMb2FkQmFsYW5jZXJUYXJnZXRQcm9wcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRhcmdldFR5cGU6IFRhcmdldFR5cGUuSU5TVEFOQ0UsXG4gICAgICB0YXJnZXRKc29uOiB7IHRhcmdldElkOiB0aGlzLmluc3RhbmNlSWQsIHBvcnQ6IHRoaXMucG9ydCB9LFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBJUCBhZGRyZXNzIHRoYXQgaXMgYSB0YXJnZXQgZm9yIGxvYWQgYmFsYW5jaW5nLlxuICpcbiAqIFNwZWNpZnkgSVAgYWRkcmVzc2VzIGZyb20gdGhlIHN1Ym5ldHMgb2YgdGhlIHZpcnR1YWwgcHJpdmF0ZSBjbG91ZCAoVlBDKSBmb3JcbiAqIHRoZSB0YXJnZXQgZ3JvdXAsIHRoZSBSRkMgMTkxOCByYW5nZSAoMTAuMC4wLjAvOCwgMTcyLjE2LjAuMC8xMiwgYW5kXG4gKiAxOTIuMTY4LjAuMC8xNiksIGFuZCB0aGUgUkZDIDY1OTggcmFuZ2UgKDEwMC42NC4wLjAvMTApLiBZb3UgY2FuJ3Qgc3BlY2lmeVxuICogcHVibGljbHkgcm91dGFibGUgSVAgYWRkcmVzc2VzLlxuICpcbiAqIElmIHlvdSByZWdpc3RlciBhIHRhcmdldCBvZiB0aGlzIHR5cGUsIHlvdSBhcmUgcmVzcG9uc2libGUgZm9yIG1ha2luZ1xuICogc3VyZSB0aGUgbG9hZCBiYWxhbmNlcidzIHNlY3VyaXR5IGdyb3VwIGNhbiBzZW5kIHBhY2tldHMgdG8gdGhlIElQIGFkZHJlc3MuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIElwVGFyZ2V0IGZyb20gdGhlIGNvbXB1dGUvbGItdGFyZ2V0cyBwYWNrYWdlIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBJcFRhcmdldFxuICBpbXBsZW1lbnRzIElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclRhcmdldCwgSU5ldHdvcmtMb2FkQmFsYW5jZXJUYXJnZXRcbntcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBJUEFkZHJlc3MgdGFyZ2V0XG4gICAqXG4gICAqIFRoZSBhdmFpbGFiaWxpdHlab25lIHBhcmFtZXRlciBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHRhcmdldCByZWNlaXZlc1xuICAgKiB0cmFmZmljIGZyb20gdGhlIGxvYWQgYmFsYW5jZXIgbm9kZXMgaW4gdGhlIHNwZWNpZmllZCBBdmFpbGFiaWxpdHkgWm9uZVxuICAgKiBvciBmcm9tIGFsbCBlbmFibGVkIEF2YWlsYWJpbGl0eSBab25lcyBmb3IgdGhlIGxvYWQgYmFsYW5jZXIuXG4gICAqXG4gICAqIFRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzdXBwb3J0ZWQgaWYgdGhlIHRhcmdldCB0eXBlIG9mIHRoZSB0YXJnZXQgZ3JvdXBcbiAgICogaXMgaW5zdGFuY2UuIElmIHRoZSBJUCBhZGRyZXNzIGlzIGluIGEgc3VibmV0IG9mIHRoZSBWUEMgZm9yIHRoZSB0YXJnZXRcbiAgICogZ3JvdXAsIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSBpcyBhdXRvbWF0aWNhbGx5IGRldGVjdGVkIGFuZCB0aGlzXG4gICAqIHBhcmFtZXRlciBpcyBvcHRpb25hbC4gSWYgdGhlIElQIGFkZHJlc3MgaXMgb3V0c2lkZSB0aGUgVlBDLCB0aGlzXG4gICAqIHBhcmFtZXRlciBpcyByZXF1aXJlZC5cbiAgICpcbiAgICogV2l0aCBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLCBpZiB0aGUgSVAgYWRkcmVzcyBpcyBvdXRzaWRlIHRoZSBWUENcbiAgICogZm9yIHRoZSB0YXJnZXQgZ3JvdXAsIHRoZSBvbmx5IHN1cHBvcnRlZCB2YWx1ZSBpcyBhbGwuXG4gICAqXG4gICAqIERlZmF1bHQgaXMgYXV0b21hdGljLlxuICAgKlxuICAgKiBAcGFyYW0gaXBBZGRyZXNzIFRoZSBJUCBBZGRyZXNzIHRvIGxvYWQgYmFsYW5jZSB0b1xuICAgKiBAcGFyYW0gcG9ydCBPdmVycmlkZSB0aGUgZ3JvdXAncyBkZWZhdWx0IHBvcnRcbiAgICogQHBhcmFtIGF2YWlsYWJpbGl0eVpvbmUgQXZhaWxhYmlsaXR5IHpvbmUgdG8gc2VuZCB0cmFmZmljIGZyb21cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaXBBZGRyZXNzOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3J0PzogbnVtYmVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXZhaWxhYmlsaXR5Wm9uZT86IHN0cmluZyxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciB0aGlzIGluc3RhbmNlIHRhcmdldCB3aXRoIGEgbG9hZCBiYWxhbmNlclxuICAgKlxuICAgKiBEb24ndCBjYWxsIHRoaXMsIGl0IGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IHdoZW4geW91IGFkZCB0aGUgdGFyZ2V0IHRvIGFcbiAgICogbG9hZCBiYWxhbmNlci5cbiAgICovXG4gIHB1YmxpYyBhdHRhY2hUb0FwcGxpY2F0aW9uVGFyZ2V0R3JvdXAoXG4gICAgdGFyZ2V0R3JvdXA6IElBcHBsaWNhdGlvblRhcmdldEdyb3VwLFxuICApOiBMb2FkQmFsYW5jZXJUYXJnZXRQcm9wcyB7XG4gICAgcmV0dXJuIHRoaXMuYXR0YWNoKHRhcmdldEdyb3VwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciB0aGlzIGluc3RhbmNlIHRhcmdldCB3aXRoIGEgbG9hZCBiYWxhbmNlclxuICAgKlxuICAgKiBEb24ndCBjYWxsIHRoaXMsIGl0IGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IHdoZW4geW91IGFkZCB0aGUgdGFyZ2V0IHRvIGFcbiAgICogbG9hZCBiYWxhbmNlci5cbiAgICovXG4gIHB1YmxpYyBhdHRhY2hUb05ldHdvcmtUYXJnZXRHcm91cChcbiAgICB0YXJnZXRHcm91cDogSU5ldHdvcmtUYXJnZXRHcm91cCxcbiAgKTogTG9hZEJhbGFuY2VyVGFyZ2V0UHJvcHMge1xuICAgIHJldHVybiB0aGlzLmF0dGFjaCh0YXJnZXRHcm91cCk7XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaChfdGFyZ2V0R3JvdXA6IElUYXJnZXRHcm91cCk6IExvYWRCYWxhbmNlclRhcmdldFByb3BzIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0VHlwZTogVGFyZ2V0VHlwZS5JUCxcbiAgICAgIHRhcmdldEpzb246IHtcbiAgICAgICAgdGFyZ2V0SWQ6IHRoaXMuaXBBZGRyZXNzLFxuICAgICAgICBwb3J0OiB0aGlzLnBvcnQsXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IHRoaXMuYXZhaWxhYmlsaXR5Wm9uZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,113 @@
1
+ import { ApplicationProtocol, LbProtocol } from "./enums";
2
+ export type Attributes = {
3
+ [key: string]: string | undefined;
4
+ };
5
+ export declare const NO_LOADBALANCER_ARNS = "NO_LOADBALANCER_ARNS";
6
+ /**
7
+ * Render an attribute dict to a list of { key, value } pairs
8
+ */
9
+ export declare function renderAttributes(attributes: Attributes): any[];
10
+ export declare function lookupStringAttribute(attributes: Attributes, key: string): string | undefined;
11
+ export declare function lookupBoolAttribute(attributes: Attributes, key: string): boolean | undefined;
12
+ export declare function lookupNumberAttribute(attributes: Attributes, key: string): number | undefined;
13
+ /**
14
+ * Return the appropriate default port for a given protocol
15
+ */
16
+ export declare function defaultPortForProtocol(proto: ApplicationProtocol): number;
17
+ /**
18
+ * Return the appropriate default protocol for a given port
19
+ */
20
+ export declare function defaultProtocolForPort(port: number): ApplicationProtocol;
21
+ /**
22
+ * Given a protocol and a port, try to guess the other one if it's undefined
23
+ */
24
+ export declare function determineProtocolAndPort(protocol: ApplicationProtocol | undefined, port: number | undefined): [ApplicationProtocol | undefined, number | undefined];
25
+ /**
26
+ * Helper function to default undefined input props
27
+ */
28
+ export declare function ifUndefined<T>(x: T | undefined, def: T): T;
29
+ /**
30
+ * Helper function for ensuring network listeners and target groups only accept valid
31
+ * protocols.
32
+ */
33
+ export declare function validateNetworkProtocol(protocol: LbProtocol): void;
34
+ export declare function parseLoadBalancerFullName(arn: string): string;
35
+ /**
36
+ * Transforms:
37
+ *
38
+ * arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-target-group/da693d633af407a0
39
+ *
40
+ * Into:
41
+ *
42
+ * targetgroup/my-target-group/da693d633af407a0
43
+ */
44
+ export declare function parseTargetGroupFullName(arn: string): string;
45
+ export declare class TargetGroupAttribute {
46
+ static deregistrationDelayTimeoutSeconds: string;
47
+ static stickinessEnabled: string;
48
+ static stickinessType: string;
49
+ static loadBalancingCrossZoneEnabled: string;
50
+ static targetGroupHealthDNSFailoverMinimumHealthyTargetsCount: string;
51
+ static targetGroupHealthDNSFailoverMinimumHealthyTargetsPercentage: string;
52
+ static targetGroupHealthUnhealthyStateRoutingMinimumHealthyTargetsCount: string;
53
+ static targetGroupHealthUnhealthyStateRoutingMinimumHealthyTargetsPercentage: string;
54
+ static loadBalancingAlgorithmType: string;
55
+ static loadBalancingAlgorithmAnomalyMitigation: string;
56
+ static slowStartDurationSeconds: string;
57
+ static stickinessAppCookieCookieName: string;
58
+ static stickinessAppCookieDurationSeconds: string;
59
+ static stickinessLBCookieDurationSeconds: string;
60
+ static lambdaMultiValueHeadersEnabled: string;
61
+ static deregistrationDelayConnectionTerminationEnabled: string;
62
+ static preserveClientIPEnabled: string;
63
+ static proxyProtocolV2Enabled: string;
64
+ static targetHealthStateUnhealthyConnectionTerminationEnabled: string;
65
+ static targetHealthStateUnhealthyDrainingIntervalSeconds: string;
66
+ static targetFailoverOnDeregistration: string;
67
+ static targetFailoverOnUnhealthy: string;
68
+ }
69
+ export declare class LoadBalancerAttribute {
70
+ static deletionProtectionEnabled: string;
71
+ static loadBalancingCrossZoneEnabled: string;
72
+ static accessLogsS3Enabled: string;
73
+ static accessLogsS3Bucket: string;
74
+ static accessLogsS3Prefix: string;
75
+ static iPv6DenyAllIGWTraffic: string;
76
+ static idleTimeoutTimeoutSeconds: string;
77
+ static clientKeepAliveSeconds: string;
78
+ static connectionLogsS3Enabled: string;
79
+ static connectionLogsS3Bucket: string;
80
+ static connectionLogsS3Prefix: string;
81
+ static routingHTTPDesyncMitigationMode: string;
82
+ static routingHTTPDropInvalidHeaderFieldsEnabled: string;
83
+ static routingHTTPPreserveHostHeaderEnabled: string;
84
+ static routingHTTPXAmznTLSVersionAndCipherSuiteEnabled: string;
85
+ static routingHTTPXFFClientPortEnabled: string;
86
+ static routingHTTPXFFHeaderProcessingMode: string;
87
+ static routingHTTP2Enabled: string;
88
+ static wAFFailOpenEnabled: string;
89
+ static zonalShiftConfigEnabled: string;
90
+ static dNSRecordClientRoutingPolicy: string;
91
+ }
92
+ export declare class ListenerAttribute {
93
+ static tcpIdleTimeoutSeconds: string;
94
+ static routingHTTPRequestXAmznMtlsClientcertHeaderName: string;
95
+ static routingHTTPRequestXAmznMtlsClientcertIssuerHeaderName: string;
96
+ static routingHTTPRequestXAmznMtlsClientcertLeafHeaderName: string;
97
+ static routingHTTPRequestXAmznMtlsClientcertSerialNumberHeaderName: string;
98
+ static routingHTTPRequestXAmznMtlsClientcertSubjectHeaderName: string;
99
+ static routingHTTPRequestXAmznMtlsClientcertValidityHeaderName: string;
100
+ static routingHTTPRequestXAmznTlsCipherSuiteHeaderName: string;
101
+ static routingHTTPRequestXAmznTlsVersionHeaderName: string;
102
+ static routingHTTPResponseAccessControlAllowCredentialsHeaderValue: string;
103
+ static routingHTTPResponseAccessControlAllowHeadersHeaderValue: string;
104
+ static routingHTTPResponseAccessControlAllowMethodsHeaderValue: string;
105
+ static routingHTTPResponseAccessControlAllowOriginHeaderValue: string;
106
+ static routingHTTPResponseAccessControlExposeHeadersHeaderValue: string;
107
+ static routingHTTPResponseAccessControlMaxAgeHeaderValue: string;
108
+ static routingHTTPResponseContentSecurityPolicyHeaderValue: string;
109
+ static routingHTTPResponseServerEnabled: string;
110
+ static routingHTTPResponseStrictTransportSecurityHeaderValue: string;
111
+ static routingHTTPResponseXContentTypeOptionsHeaderValue: string;
112
+ static routingHTTPResponseXFrameOptionsHeaderValue: string;
113
+ }
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ // https://github.com/aws/aws-cdk/blob/v2.175.1/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/shared/util.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ListenerAttribute = exports.LoadBalancerAttribute = exports.TargetGroupAttribute = exports.NO_LOADBALANCER_ARNS = void 0;
5
+ exports.renderAttributes = renderAttributes;
6
+ exports.lookupStringAttribute = lookupStringAttribute;
7
+ exports.lookupBoolAttribute = lookupBoolAttribute;
8
+ exports.lookupNumberAttribute = lookupNumberAttribute;
9
+ exports.defaultPortForProtocol = defaultPortForProtocol;
10
+ exports.defaultProtocolForPort = defaultProtocolForPort;
11
+ exports.determineProtocolAndPort = determineProtocolAndPort;
12
+ exports.ifUndefined = ifUndefined;
13
+ exports.validateNetworkProtocol = validateNetworkProtocol;
14
+ exports.parseLoadBalancerFullName = parseLoadBalancerFullName;
15
+ exports.parseTargetGroupFullName = parseTargetGroupFullName;
16
+ const cdktf_1 = require("cdktf");
17
+ const enums_1 = require("./enums");
18
+ // import * as cxschema from "../../../cloud-assembly-schema";
19
+ const arn_1 = require("../../arn");
20
+ exports.NO_LOADBALANCER_ARNS = "NO_LOADBALANCER_ARNS";
21
+ /**
22
+ * Render an attribute dict to a list of { key, value } pairs
23
+ */
24
+ function renderAttributes(attributes) {
25
+ const ret = [];
26
+ for (const [key, value] of Object.entries(attributes)) {
27
+ if (value !== undefined) {
28
+ ret.push({ key, value });
29
+ }
30
+ }
31
+ return ret;
32
+ }
33
+ function lookupStringAttribute(attributes, key) {
34
+ return attributes[key];
35
+ }
36
+ function lookupBoolAttribute(attributes, key) {
37
+ return lookupAttribute(attributes, key, parseBool);
38
+ }
39
+ function lookupNumberAttribute(attributes, key) {
40
+ return lookupAttribute(attributes, key, parseNumber);
41
+ }
42
+ function lookupAttribute(attributes, key, conversionFn) {
43
+ return conversionFn(attributes[key]);
44
+ }
45
+ /**
46
+ * Return the appropriate default port for a given protocol
47
+ */
48
+ function defaultPortForProtocol(proto) {
49
+ switch (proto) {
50
+ case enums_1.ApplicationProtocol.HTTP:
51
+ return 80;
52
+ case enums_1.ApplicationProtocol.HTTPS:
53
+ return 443;
54
+ default:
55
+ throw new Error(`Unrecognized protocol: ${proto}`);
56
+ }
57
+ }
58
+ /**
59
+ * Return the appropriate default protocol for a given port
60
+ */
61
+ function defaultProtocolForPort(port) {
62
+ switch (port) {
63
+ case 80:
64
+ case 8000:
65
+ case 8008:
66
+ case 8080:
67
+ return enums_1.ApplicationProtocol.HTTP;
68
+ case 443:
69
+ case 8443:
70
+ return enums_1.ApplicationProtocol.HTTPS;
71
+ default:
72
+ throw new Error(`Don't know default protocol for port: ${port}; please supply a protocol`);
73
+ }
74
+ }
75
+ /**
76
+ * Given a protocol and a port, try to guess the other one if it's undefined
77
+ */
78
+ // eslint-disable-next-line max-len
79
+ function determineProtocolAndPort(protocol, port) {
80
+ if (protocol === undefined && port === undefined) {
81
+ return [undefined, undefined];
82
+ }
83
+ if (protocol === undefined) {
84
+ protocol = defaultProtocolForPort(port);
85
+ }
86
+ if (port === undefined) {
87
+ port = defaultPortForProtocol(protocol);
88
+ }
89
+ return [protocol, port];
90
+ }
91
+ /**
92
+ * Helper function to default undefined input props
93
+ */
94
+ function ifUndefined(x, def) {
95
+ return x ?? def;
96
+ }
97
+ /**
98
+ * Helper function for ensuring network listeners and target groups only accept valid
99
+ * protocols.
100
+ */
101
+ function validateNetworkProtocol(protocol) {
102
+ const NLB_PROTOCOLS = [
103
+ enums_1.LbProtocol.TCP,
104
+ enums_1.LbProtocol.TLS,
105
+ enums_1.LbProtocol.UDP,
106
+ enums_1.LbProtocol.TCP_UDP,
107
+ ];
108
+ if (NLB_PROTOCOLS.indexOf(protocol) === -1) {
109
+ throw new Error(`The protocol must be one of ${NLB_PROTOCOLS.join(", ")}. Found ${protocol}`);
110
+ }
111
+ }
112
+ // /**
113
+ // * Helper to map a map of tags to cxschema tag format.
114
+ // * @internal
115
+ // */
116
+ // export function mapTagMapToCxschema(
117
+ // tagMap: Record<string, string>,
118
+ // ): cxschema.Tag[] {
119
+ // return Object.entries(tagMap).map(([key, value]) => ({ key, value }));
120
+ // }
121
+ function parseLoadBalancerFullName(arn) {
122
+ if (cdktf_1.Token.isUnresolved(arn)) {
123
+ // Unfortunately it is not possible to use Arn.split() because the ARNs have this shape:
124
+ //
125
+ // arn:...:loadbalancer/net/my-load-balancer/123456
126
+ //
127
+ // And the way that Arn.split() handles this situation is not enough to obtain the full name
128
+ const arnParts = cdktf_1.Fn.split("/", arn);
129
+ return `${cdktf_1.Fn.element(arnParts, 1)}/${cdktf_1.Fn.element(arnParts, 2)}/${cdktf_1.Fn.element(arnParts, 3)}`;
130
+ }
131
+ else {
132
+ const arnComponents = arn_1.Arn.split(arn, arn_1.ArnFormat.SLASH_RESOURCE_NAME);
133
+ const resourceName = arnComponents.resourceName;
134
+ if (!resourceName) {
135
+ throw new Error(`Provided ARN does not belong to a load balancer: ${arn}`);
136
+ }
137
+ return resourceName;
138
+ }
139
+ }
140
+ /**
141
+ * Transforms:
142
+ *
143
+ * arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-target-group/da693d633af407a0
144
+ *
145
+ * Into:
146
+ *
147
+ * targetgroup/my-target-group/da693d633af407a0
148
+ */
149
+ function parseTargetGroupFullName(arn) {
150
+ const arnComponents = arn_1.Arn.split(arn, arn_1.ArnFormat.NO_RESOURCE_NAME);
151
+ const resource = arnComponents.resource;
152
+ if (!resource) {
153
+ throw new Error(`Provided ARN does not belong to a target group: ${arn}`);
154
+ }
155
+ return resource;
156
+ }
157
+ function parseBool(val) {
158
+ if (val === undefined)
159
+ return undefined;
160
+ // TODO: error on invalid values?
161
+ return val === "true";
162
+ }
163
+ function parseNumber(val) {
164
+ if (val === undefined)
165
+ return undefined;
166
+ const num = parseInt(val, 10);
167
+ if (Number.isNaN(num)) {
168
+ throw new Error(`Expected number but got "${val}"`);
169
+ }
170
+ return num;
171
+ }
172
+ // See https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_TargetGroupAttribute.html#API_TargetGroupAttribute_Contents.
173
+ // https://github.com/hashicorp/terraform-provider-aws/v5.88.0/main/internal/service/elbv2/const.go#L118
174
+ class TargetGroupAttribute {
175
+ }
176
+ exports.TargetGroupAttribute = TargetGroupAttribute;
177
+ // The following attributes are supported by all load balancers:
178
+ TargetGroupAttribute.deregistrationDelayTimeoutSeconds = "deregistration_delay.timeout_seconds";
179
+ TargetGroupAttribute.stickinessEnabled = "stickiness.enabled";
180
+ TargetGroupAttribute.stickinessType = "stickiness.type";
181
+ // The following attributes are supported by Application Load Balancers and Network Load Balancers:
182
+ TargetGroupAttribute.loadBalancingCrossZoneEnabled = "load_balancing.cross_zone.enabled";
183
+ TargetGroupAttribute.targetGroupHealthDNSFailoverMinimumHealthyTargetsCount = "target_group_health.dns_failover.minimum_healthy_targets.count";
184
+ TargetGroupAttribute.targetGroupHealthDNSFailoverMinimumHealthyTargetsPercentage = "target_group_health.dns_failover.minimum_healthy_targets.percentage";
185
+ TargetGroupAttribute.targetGroupHealthUnhealthyStateRoutingMinimumHealthyTargetsCount = "target_group_health.unhealthy_state_routing.minimum_healthy_targets.count";
186
+ TargetGroupAttribute.targetGroupHealthUnhealthyStateRoutingMinimumHealthyTargetsPercentage = "target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage";
187
+ // The following attributes are supported only if the load balancer is an Application Load Balancer and the target is an instance or an IP address:
188
+ TargetGroupAttribute.loadBalancingAlgorithmType = "load_balancing.algorithm.type";
189
+ TargetGroupAttribute.loadBalancingAlgorithmAnomalyMitigation = "load_balancing.algorithm.anomaly_mitigation";
190
+ TargetGroupAttribute.slowStartDurationSeconds = "slow_start.duration_seconds";
191
+ TargetGroupAttribute.stickinessAppCookieCookieName = "stickiness.app_cookie.cookie_name";
192
+ TargetGroupAttribute.stickinessAppCookieDurationSeconds = "stickiness.app_cookie.duration_seconds";
193
+ TargetGroupAttribute.stickinessLBCookieDurationSeconds = "stickiness.lb_cookie.duration_seconds";
194
+ // The following attribute is supported only if the load balancer is an Application Load Balancer and the target is a Lambda function:
195
+ TargetGroupAttribute.lambdaMultiValueHeadersEnabled = "lambda.multi_value_headers.enabled";
196
+ // The following attributes are supported only by Network Load Balancers:
197
+ TargetGroupAttribute.deregistrationDelayConnectionTerminationEnabled = "deregistration_delay.connection_termination.enabled";
198
+ TargetGroupAttribute.preserveClientIPEnabled = "preserve_client_ip.enabled";
199
+ TargetGroupAttribute.proxyProtocolV2Enabled = "proxy_protocol_v2.enabled";
200
+ TargetGroupAttribute.targetHealthStateUnhealthyConnectionTerminationEnabled = "target_health_state.unhealthy.connection_termination.enabled";
201
+ TargetGroupAttribute.targetHealthStateUnhealthyDrainingIntervalSeconds = "target_health_state.unhealthy.draining_interval_seconds";
202
+ // The following attributes are supported only by Gateway Load Balancers:
203
+ TargetGroupAttribute.targetFailoverOnDeregistration = "target_failover.on_deregistration";
204
+ TargetGroupAttribute.targetFailoverOnUnhealthy = "target_failover.on_unhealthy";
205
+ // See https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_LoadBalancerAttribute.html#API_LoadBalancerAttribute_Contents.
206
+ // https://github.com/hashicorp/terraform-provider-aws/blob/main/internal/service/elbv2/const.go#L32
207
+ class LoadBalancerAttribute {
208
+ }
209
+ exports.LoadBalancerAttribute = LoadBalancerAttribute;
210
+ // The following attributes are supported by all load balancers:
211
+ LoadBalancerAttribute.deletionProtectionEnabled = "deletion_protection.enabled";
212
+ LoadBalancerAttribute.loadBalancingCrossZoneEnabled = "load_balancing.cross_zone.enabled";
213
+ // The following attributes are supported by both Application Load Balancers and Network Load Balancers:
214
+ LoadBalancerAttribute.accessLogsS3Enabled = "access_logs.s3.enabled";
215
+ LoadBalancerAttribute.accessLogsS3Bucket = "access_logs.s3.bucket";
216
+ LoadBalancerAttribute.accessLogsS3Prefix = "access_logs.s3.prefix";
217
+ LoadBalancerAttribute.iPv6DenyAllIGWTraffic = "ipv6.deny_all_igw_traffic";
218
+ // The following attributes are supported by only Application Load Balancers:
219
+ LoadBalancerAttribute.idleTimeoutTimeoutSeconds = "idle_timeout.timeout_seconds";
220
+ LoadBalancerAttribute.clientKeepAliveSeconds = "client_keep_alive.seconds";
221
+ LoadBalancerAttribute.connectionLogsS3Enabled = "connection_logs.s3.enabled";
222
+ LoadBalancerAttribute.connectionLogsS3Bucket = "connection_logs.s3.bucket";
223
+ LoadBalancerAttribute.connectionLogsS3Prefix = "connection_logs.s3.prefix";
224
+ LoadBalancerAttribute.routingHTTPDesyncMitigationMode = "routing.http.desync_mitigation_mode";
225
+ LoadBalancerAttribute.routingHTTPDropInvalidHeaderFieldsEnabled = "routing.http.drop_invalid_header_fields.enabled";
226
+ LoadBalancerAttribute.routingHTTPPreserveHostHeaderEnabled = "routing.http.preserve_host_header.enabled";
227
+ LoadBalancerAttribute.routingHTTPXAmznTLSVersionAndCipherSuiteEnabled = "routing.http.x_amzn_tls_version_and_cipher_suite.enabled";
228
+ LoadBalancerAttribute.routingHTTPXFFClientPortEnabled = "routing.http.xff_client_port.enabled";
229
+ LoadBalancerAttribute.routingHTTPXFFHeaderProcessingMode = "routing.http.xff_header_processing.mode";
230
+ LoadBalancerAttribute.routingHTTP2Enabled = "routing.http2.enabled";
231
+ LoadBalancerAttribute.wAFFailOpenEnabled = "waf.fail_open.enabled";
232
+ LoadBalancerAttribute.zonalShiftConfigEnabled = "zonal_shift.config.enabled";
233
+ // The following attributes are supported by only Network Load Balancers:
234
+ LoadBalancerAttribute.dNSRecordClientRoutingPolicy = "dns_record.client_routing_policy";
235
+ // https://github.com/hashicorp/terraform-provider-aws/blob/v5.88.0/internal/service/elbv2/listener.go#L880
236
+ // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-listenerattribute.html
237
+ class ListenerAttribute {
238
+ }
239
+ exports.ListenerAttribute = ListenerAttribute;
240
+ // Attribute only supported on TCP and GENEVE listeners.
241
+ ListenerAttribute.tcpIdleTimeoutSeconds = "tcp.idle_timeout.seconds";
242
+ // Attributes only supported on HTTPS listeners.
243
+ ListenerAttribute.routingHTTPRequestXAmznMtlsClientcertHeaderName = "routing.http.request.x_amzn_mtls_clientcert.header_name";
244
+ ListenerAttribute.routingHTTPRequestXAmznMtlsClientcertIssuerHeaderName = "routing.http.request.x_amzn_mtls_clientcert_issuer.header_name";
245
+ ListenerAttribute.routingHTTPRequestXAmznMtlsClientcertLeafHeaderName = "routing.http.request.x_amzn_mtls_clientcert_leaf.header_name";
246
+ ListenerAttribute.routingHTTPRequestXAmznMtlsClientcertSerialNumberHeaderName = "routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name";
247
+ ListenerAttribute.routingHTTPRequestXAmznMtlsClientcertSubjectHeaderName = "routing.http.request.x_amzn_mtls_clientcert_subject.header_name";
248
+ ListenerAttribute.routingHTTPRequestXAmznMtlsClientcertValidityHeaderName = "routing.http.request.x_amzn_mtls_clientcert_validity.header_name";
249
+ ListenerAttribute.routingHTTPRequestXAmznTlsCipherSuiteHeaderName = "routing.http.request.x_amzn_tls_cipher_suite.header_name";
250
+ ListenerAttribute.routingHTTPRequestXAmznTlsVersionHeaderName = "routing.http.request.x_amzn_tls_version.header_name";
251
+ // Attributes only supported on HTTPS and HTTPS listeners.
252
+ ListenerAttribute.routingHTTPResponseAccessControlAllowCredentialsHeaderValue = "routing.http.response.access_control_allow_credentials.header_value";
253
+ ListenerAttribute.routingHTTPResponseAccessControlAllowHeadersHeaderValue = "routing.http.response.access_control_allow_headers.header_value";
254
+ ListenerAttribute.routingHTTPResponseAccessControlAllowMethodsHeaderValue = "routing.http.response.access_control_allow_methods.header_value";
255
+ ListenerAttribute.routingHTTPResponseAccessControlAllowOriginHeaderValue = "routing.http.response.access_control_allow_origin.header_value";
256
+ // Attributes only supported on HTTPS listeners.
257
+ ListenerAttribute.routingHTTPResponseAccessControlExposeHeadersHeaderValue = "routing.http.response.access_control_expose_headers.header_value";
258
+ ListenerAttribute.routingHTTPResponseAccessControlMaxAgeHeaderValue = "routing.http.response.access_control_max_age.header_value";
259
+ ListenerAttribute.routingHTTPResponseContentSecurityPolicyHeaderValue = "routing.http.response.content_security_policy.header_value";
260
+ ListenerAttribute.routingHTTPResponseServerEnabled = "routing.http.response.server.enabled";
261
+ ListenerAttribute.routingHTTPResponseStrictTransportSecurityHeaderValue = "routing.http.response.strict_transport_security.header_value";
262
+ ListenerAttribute.routingHTTPResponseXContentTypeOptionsHeaderValue = "routing.http.response.x_content_type_options.header_value";
263
+ ListenerAttribute.routingHTTPResponseXFrameOptionsHeaderValue = "routing.http.response.x_frame_options.header_value";
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9sYi1zaGFyZWQvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsa0hBQWtIOzs7QUFjbEgsNENBUUM7QUFFRCxzREFLQztBQUVELGtEQUtDO0FBRUQsc0RBS0M7QUFhRCx3REFTQztBQUtELHdEQWlCQztBQU1ELDREQWdCQztBQUtELGtDQUVDO0FBTUQsMERBYUM7QUFZRCw4REFtQkM7QUFXRCw0REFPQztBQXRMRCxpQ0FBa0M7QUFDbEMsbUNBQTBEO0FBQzFELDhEQUE4RDtBQUM5RCxtQ0FBMkM7QUFJOUIsUUFBQSxvQkFBb0IsR0FBRyxzQkFBc0IsQ0FBQztBQUUzRDs7R0FFRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLFVBQXNCO0lBQ3JELE1BQU0sR0FBRyxHQUFVLEVBQUUsQ0FBQztJQUN0QixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3RELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQWdCLHFCQUFxQixDQUNuQyxVQUFzQixFQUN0QixHQUFXO0lBRVgsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUNqQyxVQUFzQixFQUN0QixHQUFXO0lBRVgsT0FBTyxlQUFlLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBRUQsU0FBZ0IscUJBQXFCLENBQ25DLFVBQXNCLEVBQ3RCLEdBQVc7SUFF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OUQseUVBQXlFO0FBQ2xFLGtEQUE0QixHQUFHLGtDQUFrQyxDQUFDO0FBRzNFLDJHQUEyRztBQUMzRyw0SUFBNEk7QUFDNUksTUFBYSxpQkFBaUI7O0FBQTlCLDhDQStDQztBQTlDQyx3REFBd0Q7QUFDakQsdUNBQXFCLEdBQUcsMEJBQTBCLENBQUM7QUFFMUQsZ0RBQWdEO0FBQ3pDLGlFQUErQyxHQUNwRCx5REFBeUQsQ0FBQztBQUNyRCx1RUFBcUQsR0FDMUQsZ0VBQWdFLENBQUM7QUFDNUQscUVBQW1ELEdBQ3hELDhEQUE4RCxDQUFDO0FBQzFELDZFQUEyRCxHQUNoRSx1RUFBdUUsQ0FBQztBQUNuRSx3RUFBc0QsR0FDM0QsaUVBQWlFLENBQUM7QUFDN0QseUVBQXVELEdBQzVELGtFQUFrRSxDQUFDO0FBQzlELGlFQUErQyxHQUNwRCwwREFBMEQsQ0FBQztBQUN0RCw2REFBMkMsR0FDaEQscURBQXFELENBQUM7QUFFeEQsMERBQTBEO0FBQ25ELDZFQUEyRCxHQUNoRSxxRUFBcUUsQ0FBQztBQUNqRSx5RUFBdUQsR0FDNUQsaUVBQWlFLENBQUM7QUFDN0QseUVBQXVELEdBQzVELGlFQUFpRSxDQUFDO0FBQzdELHdFQUFzRCxHQUMzRCxnRUFBZ0UsQ0FBQztBQUVuRSxnREFBZ0Q7QUFDekMsMEVBQXdELEdBQzdELGtFQUFrRSxDQUFDO0FBQzlELG1FQUFpRCxHQUN0RCwyREFBMkQsQ0FBQztBQUN2RCxxRUFBbUQsR0FDeEQsNERBQTRELENBQUM7QUFDeEQsa0RBQWdDLEdBQ3JDLHNDQUFzQyxDQUFDO0FBQ2xDLHVFQUFxRCxHQUMxRCw4REFBOEQsQ0FBQztBQUMxRCxtRUFBaUQsR0FDdEQsMkRBQTJELENBQUM7QUFDdkQsNkRBQTJDLEdBQ2hELG9EQUFvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjIvbGliL3NoYXJlZC91dGlsLnRzXG5cbmltcG9ydCB7IEZuLCBUb2tlbiB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Qcm90b2NvbCwgTGJQcm90b2NvbCB9IGZyb20gXCIuL2VudW1zXCI7XG4vLyBpbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tIFwiLi4vLi4vLi4vY2xvdWQtYXNzZW1ibHktc2NoZW1hXCI7XG5pbXBvcnQgeyBBcm4sIEFybkZvcm1hdCB9IGZyb20gXCIuLi8uLi9hcm5cIjtcblxuZXhwb3J0IHR5cGUgQXR0cmlidXRlcyA9IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG5cbmV4cG9ydCBjb25zdCBOT19MT0FEQkFMQU5DRVJfQVJOUyA9IFwiTk9fTE9BREJBTEFOQ0VSX0FSTlNcIjtcblxuLyoqXG4gKiBSZW5kZXIgYW4gYXR0cmlidXRlIGRpY3QgdG8gYSBsaXN0IG9mIHsga2V5LCB2YWx1ZSB9IHBhaXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJBdHRyaWJ1dGVzKGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZXMpIHtcbiAgY29uc3QgcmV0OiBhbnlbXSA9IFtdO1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhhdHRyaWJ1dGVzKSkge1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXQucHVzaCh7IGtleSwgdmFsdWUgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb29rdXBTdHJpbmdBdHRyaWJ1dGUoXG4gIGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZXMsXG4gIGtleTogc3RyaW5nLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGF0dHJpYnV0ZXNba2V5XTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvb2t1cEJvb2xBdHRyaWJ1dGUoXG4gIGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZXMsXG4gIGtleTogc3RyaW5nLFxuKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBsb29rdXBBdHRyaWJ1dGUoYXR0cmlidXRlcywga2V5LCBwYXJzZUJvb2wpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9va3VwTnVtYmVyQXR0cmlidXRlKFxuICBhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVzLFxuICBrZXk6IHN0cmluZyxcbik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBsb29rdXBBdHRyaWJ1dGUoYXR0cmlidXRlcywga2V5LCBwYXJzZU51bWJlcik7XG59XG5cbmZ1bmN0aW9uIGxvb2t1cEF0dHJpYnV0ZTxUID0gc3RyaW5nPihcbiAgYXR0cmlidXRlczogQXR0cmlidXRlcyxcbiAga2V5OiBzdHJpbmcsXG4gIGNvbnZlcnNpb25GbjogKHg6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gVCB8IHVuZGVmaW5lZCxcbik6IFQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gY29udmVyc2lvbkZuKGF0dHJpYnV0ZXNba2V5XSk7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBhcHByb3ByaWF0ZSBkZWZhdWx0IHBvcnQgZm9yIGEgZ2l2ZW4gcHJvdG9jb2xcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRQb3J0Rm9yUHJvdG9jb2wocHJvdG86IEFwcGxpY2F0aW9uUHJvdG9jb2wpOiBudW1iZXIge1xuICBzd2l0Y2ggKHByb3RvKSB7XG4gICAgY2FzZSBBcHBsaWNhdGlvblByb3RvY29sLkhUVFA6XG4gICAgICByZXR1cm4gODA7XG4gICAgY2FzZSBBcHBsaWNhdGlvblByb3RvY29sLkhUVFBTOlxuICAgICAgcmV0dXJuIDQ0MztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgcHJvdG9jb2w6ICR7cHJvdG99YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRlZmF1bHQgcHJvdG9jb2wgZm9yIGEgZ2l2ZW4gcG9ydFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFByb3RvY29sRm9yUG9ydChwb3J0OiBudW1iZXIpOiBBcHBsaWNhdGlvblByb3RvY29sIHtcbiAgc3dpdGNoIChwb3J0KSB7XG4gICAgY2FzZSA4MDpcbiAgICBjYXNlIDgwMDA6XG4gICAgY2FzZSA4MDA4OlxuICAgIGNhc2UgODA4MDpcbiAgICAgIHJldHVybiBBcHBsaWNhdGlvblByb3RvY29sLkhUVFA7XG5cbiAgICBjYXNlIDQ0MzpcbiAgICBjYXNlIDg0NDM6XG4gICAgICByZXR1cm4gQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQUztcblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBEb24ndCBrbm93IGRlZmF1bHQgcHJvdG9jb2wgZm9yIHBvcnQ6ICR7cG9ydH07IHBsZWFzZSBzdXBwbHkgYSBwcm90b2NvbGAsXG4gICAgICApO1xuICB9XG59XG5cbi8qKlxuICogR2l2ZW4gYSBwcm90b2NvbCBhbmQgYSBwb3J0LCB0cnkgdG8gZ3Vlc3MgdGhlIG90aGVyIG9uZSBpZiBpdCdzIHVuZGVmaW5lZFxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuZXhwb3J0IGZ1bmN0aW9uIGRldGVybWluZVByb3RvY29sQW5kUG9ydChcbiAgcHJvdG9jb2w6IEFwcGxpY2F0aW9uUHJvdG9jb2wgfCB1bmRlZmluZWQsXG4gIHBvcnQ6IG51bWJlciB8IHVuZGVmaW5lZCxcbik6IFtBcHBsaWNhdGlvblByb3RvY29sIHwgdW5kZWZpbmVkLCBudW1iZXIgfCB1bmRlZmluZWRdIHtcbiAgaWYgKHByb3RvY29sID09PSB1bmRlZmluZWQgJiYgcG9ydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFt1bmRlZmluZWQsIHVuZGVmaW5lZF07XG4gIH1cblxuICBpZiAocHJvdG9jb2wgPT09IHVuZGVmaW5lZCkge1xuICAgIHByb3RvY29sID0gZGVmYXVsdFByb3RvY29sRm9yUG9ydChwb3J0ISk7XG4gIH1cbiAgaWYgKHBvcnQgPT09IHVuZGVmaW5lZCkge1xuICAgIHBvcnQgPSBkZWZhdWx0UG9ydEZvclByb3RvY29sKHByb3RvY29sISk7XG4gIH1cblxuICByZXR1cm4gW3Byb3RvY29sLCBwb3J0XTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gZGVmYXVsdCB1bmRlZmluZWQgaW5wdXQgcHJvcHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlmVW5kZWZpbmVkPFQ+KHg6IFQgfCB1bmRlZmluZWQsIGRlZjogVCkge1xuICByZXR1cm4geCA/PyBkZWY7XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIGZvciBlbnN1cmluZyBuZXR3b3JrIGxpc3RlbmVycyBhbmQgdGFyZ2V0IGdyb3VwcyBvbmx5IGFjY2VwdCB2YWxpZFxuICogcHJvdG9jb2xzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVOZXR3b3JrUHJvdG9jb2wocHJvdG9jb2w6IExiUHJvdG9jb2wpIHtcbiAgY29uc3QgTkxCX1BST1RPQ09MUyA9IFtcbiAgICBMYlByb3RvY29sLlRDUCxcbiAgICBMYlByb3RvY29sLlRMUyxcbiAgICBMYlByb3RvY29sLlVEUCxcbiAgICBMYlByb3RvY29sLlRDUF9VRFAsXG4gIF07XG5cbiAgaWYgKE5MQl9QUk9UT0NPTFMuaW5kZXhPZihwcm90b2NvbCkgPT09IC0xKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRoZSBwcm90b2NvbCBtdXN0IGJlIG9uZSBvZiAke05MQl9QUk9UT0NPTFMuam9pbihcIiwgXCIpfS4gRm91bmQgJHtwcm90b2NvbH1gLFxuICAgICk7XG4gIH1cbn1cblxuLy8gLyoqXG4vLyAgKiBIZWxwZXIgdG8gbWFwIGEgbWFwIG9mIHRhZ3MgdG8gY3hzY2hlbWEgdGFnIGZvcm1hdC5cbi8vICAqIEBpbnRlcm5hbFxuLy8gICovXG4vLyBleHBvcnQgZnVuY3Rpb24gbWFwVGFnTWFwVG9DeHNjaGVtYShcbi8vICAgdGFnTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuLy8gKTogY3hzY2hlbWEuVGFnW10ge1xuLy8gICByZXR1cm4gT2JqZWN0LmVudHJpZXModGFnTWFwKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHsga2V5LCB2YWx1ZSB9KSk7XG4vLyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUxvYWRCYWxhbmNlckZ1bGxOYW1lKGFybjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChhcm4pKSB7XG4gICAgLy8gVW5mb3J0dW5hdGVseSBpdCBpcyBub3QgcG9zc2libGUgdG8gdXNlIEFybi5zcGxpdCgpIGJlY2F1c2UgdGhlIEFSTnMgaGF2ZSB0aGlzIHNoYXBlOlxuICAgIC8vXG4gICAgLy8gICBhcm46Li4uOmxvYWRiYWxhbmNlci9uZXQvbXktbG9hZC1iYWxhbmNlci8xMjM0NTZcbiAgICAvL1xuICAgIC8vIEFuZCB0aGUgd2F5IHRoYXQgQXJuLnNwbGl0KCkgaGFuZGxlcyB0aGlzIHNpdHVhdGlvbiBpcyBub3QgZW5vdWdoIHRvIG9idGFpbiB0aGUgZnVsbCBuYW1lXG4gICAgY29uc3QgYXJuUGFydHMgPSBGbi5zcGxpdChcIi9cIiwgYXJuKTtcbiAgICByZXR1cm4gYCR7Rm4uZWxlbWVudChhcm5QYXJ0cywgMSl9LyR7Rm4uZWxlbWVudChhcm5QYXJ0cywgMil9LyR7Rm4uZWxlbWVudChhcm5QYXJ0cywgMyl9YDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBhcm5Db21wb25lbnRzID0gQXJuLnNwbGl0KGFybiwgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpO1xuICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IGFybkNvbXBvbmVudHMucmVzb3VyY2VOYW1lO1xuICAgIGlmICghcmVzb3VyY2VOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBQcm92aWRlZCBBUk4gZG9lcyBub3QgYmVsb25nIHRvIGEgbG9hZCBiYWxhbmNlcjogJHthcm59YCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXNvdXJjZU5hbWU7XG4gIH1cbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm1zOlxuICpcbiAqICAgYXJuOmF3czplbGFzdGljbG9hZGJhbGFuY2luZzp1cy1lYXN0LTE6MTIzNDU2Nzg5OnRhcmdldGdyb3VwL215LXRhcmdldC1ncm91cC9kYTY5M2Q2MzNhZjQwN2EwXG4gKlxuICogSW50bzpcbiAqXG4gKiAgIHRhcmdldGdyb3VwL215LXRhcmdldC1ncm91cC9kYTY5M2Q2MzNhZjQwN2EwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRhcmdldEdyb3VwRnVsbE5hbWUoYXJuOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBhcm5Db21wb25lbnRzID0gQXJuLnNwbGl0KGFybiwgQXJuRm9ybWF0Lk5PX1JFU09VUkNFX05BTUUpO1xuICBjb25zdCByZXNvdXJjZSA9IGFybkNvbXBvbmVudHMucmVzb3VyY2U7XG4gIGlmICghcmVzb3VyY2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFByb3ZpZGVkIEFSTiBkb2VzIG5vdCBiZWxvbmcgdG8gYSB0YXJnZXQgZ3JvdXA6ICR7YXJufWApO1xuICB9XG4gIHJldHVybiByZXNvdXJjZTtcbn1cblxuZnVuY3Rpb24gcGFyc2VCb29sKHZhbDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gIGlmICh2YWwgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgLy8gVE9ETzogZXJyb3Igb24gaW52YWxpZCB2YWx1ZXM/XG4gIHJldHVybiB2YWwgPT09IFwidHJ1ZVwiO1xufVxuXG5mdW5jdGlvbiBwYXJzZU51bWJlcih2YWw6IHN0cmluZyB8IHVuZGVmaW5lZCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGlmICh2YWwgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgbnVtID0gcGFyc2VJbnQodmFsLCAxMCk7XG4gIGlmIChOdW1iZXIuaXNOYU4obnVtKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgbnVtYmVyIGJ1dCBnb3QgXCIke3ZhbH1cImApO1xuICB9XG4gIHJldHVybiBudW07XG59XG5cbi8vIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWxhc3RpY2xvYWRiYWxhbmNpbmcvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVGFyZ2V0R3JvdXBBdHRyaWJ1dGUuaHRtbCNBUElfVGFyZ2V0R3JvdXBBdHRyaWJ1dGVfQ29udGVudHMuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1wcm92aWRlci1hd3MvdjUuODguMC9tYWluL2ludGVybmFsL3NlcnZpY2UvZWxidjIvY29uc3QuZ28jTDExOFxuZXhwb3J0IGNsYXNzIFRhcmdldEdyb3VwQXR0cmlidXRlIHtcbiAgLy8gVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBzdXBwb3J0ZWQgYnkgYWxsIGxvYWQgYmFsYW5jZXJzOlxuICBzdGF0aWMgZGVyZWdpc3RyYXRpb25EZWxheVRpbWVvdXRTZWNvbmRzOiBzdHJpbmcgPVxuICAgIFwiZGVyZWdpc3RyYXRpb25fZGVsYXkudGltZW91dF9zZWNvbmRzXCI7XG4gIHN0YXRpYyBzdGlja2luZXNzRW5hYmxlZCA9IFwic3RpY2tpbmVzcy5lbmFibGVkXCI7XG4gIHN0YXRpYyBzdGlja2luZXNzVHlwZSA9IFwic3RpY2tpbmVzcy50eXBlXCI7XG5cbiAgLy8gVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBzdXBwb3J0ZWQgYnkgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcnMgYW5kIE5ldHdvcmsgTG9hZCBCYWxhbmNlcnM6XG4gIHN0YXRpYyBsb2FkQmFsYW5jaW5nQ3Jvc3Nab25lRW5hYmxlZCA9IFwibG9hZF9iYWxhbmNpbmcuY3Jvc3Nfem9uZS5lbmFibGVkXCI7XG4gIHN0YXRpYyB0YXJnZXRHcm91cEhlYWx0aEROU0ZhaWxvdmVyTWluaW11bUhlYWx0aHlUYXJnZXRzQ291bnQgPVxuICAgIFwidGFyZ2V0X2dyb3VwX2hlYWx0aC5kbnNfZmFpbG92ZXIubWluaW11bV9oZWFsdGh5X3RhcmdldHMuY291bnRcIjtcbiAgc3RhdGljIHRhcmdldEdyb3VwSGVhbHRoRE5TRmFpbG92ZXJNaW5pbXVtSGVhbHRoeVRhcmdldHNQZXJjZW50YWdlID1cbiAgICBcInRhcmdldF9ncm91cF9oZWFsdGguZG5zX2ZhaWxvdmVyLm1pbmltdW1faGVhbHRoeV90YXJnZXRzLnBlcmNlbnRhZ2VcIjtcbiAgc3RhdGljIHRhcmdldEdyb3VwSGVhbHRoVW5oZWFsdGh5U3RhdGVSb3V0aW5nTWluaW11bUhlYWx0aHlUYXJnZXRzQ291bnQgPVxuICAgIFwidGFyZ2V0X2dyb3VwX2hlYWx0aC51bmhlYWx0aHlfc3RhdGVfcm91dGluZy5taW5pbXVtX2hlYWx0aHlfdGFyZ2V0cy5jb3VudFwiO1xuICBzdGF0aWMgdGFyZ2V0R3JvdXBIZWFsdGhVbmhlYWx0aHlTdGF0ZVJvdXRpbmdNaW5pbXVtSGVhbHRoeVRhcmdldHNQZXJjZW50YWdlID1cbiAgICBcInRhcmdldF9ncm91cF9oZWFsdGgudW5oZWFsdGh5X3N0YXRlX3JvdXRpbmcubWluaW11bV9oZWFsdGh5X3RhcmdldHMucGVyY2VudGFnZVwiO1xuXG4gIC8vIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgc3VwcG9ydGVkIG9ubHkgaWYgdGhlIGxvYWQgYmFsYW5jZXIgaXMgYW4gQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciBhbmQgdGhlIHRhcmdldCBpcyBhbiBpbnN0YW5jZSBvciBhbiBJUCBhZGRyZXNzOlxuICBzdGF0aWMgbG9hZEJhbGFuY2luZ0FsZ29yaXRobVR5cGUgPSBcImxvYWRfYmFsYW5jaW5nLmFsZ29yaXRobS50eXBlXCI7XG4gIHN0YXRpYyBsb2FkQmFsYW5jaW5nQWxnb3JpdGhtQW5vbWFseU1pdGlnYXRpb24gPVxuICAgIFwibG9hZF9iYWxhbmNpbmcuYWxnb3JpdGhtLmFub21hbHlfbWl0aWdhdGlvblwiO1xuICBzdGF0aWMgc2xvd1N0YXJ0RHVyYXRpb25TZWNvbmRzID0gXCJzbG93X3N0YXJ0LmR1cmF0aW9uX3NlY29uZHNcIjtcbiAgc3RhdGljIHN0aWNraW5lc3NBcHBDb29raWVDb29raWVOYW1lID0gXCJzdGlja2luZXNzLmFwcF9jb29raWUuY29va2llX25hbWVcIjtcbiAgc3RhdGljIHN0aWNraW5lc3NBcHBDb29raWVEdXJhdGlvblNlY29uZHMgPVxuICAgIFwic3RpY2tpbmVzcy5hcHBfY29va2llLmR1cmF0aW9uX3NlY29uZHNcIjtcbiAgc3RhdGljIHN0aWNraW5lc3NMQkNvb2tpZUR1cmF0aW9uU2Vjb25kcyA9XG4gICAgXCJzdGlja2luZXNzLmxiX2Nvb2tpZS5kdXJhdGlvbl9zZWNvbmRzXCI7XG5cbiAgLy8gVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGUgaXMgc3VwcG9ydGVkIG9ubHkgaWYgdGhlIGxvYWQgYmFsYW5jZXIgaXMgYW4gQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciBhbmQgdGhlIHRhcmdldCBpcyBhIExhbWJkYSBmdW5jdGlvbjpcbiAgc3RhdGljIGxhbWJkYU11bHRpVmFsdWVIZWFkZXJzRW5hYmxlZCA9IFwibGFtYmRhLm11bHRpX3ZhbHVlX2hlYWRlcnMuZW5hYmxlZFwiO1xuXG4gIC8vIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgc3VwcG9ydGVkIG9ubHkgYnkgTmV0d29yayBMb2FkIEJhbGFuY2VyczpcbiAgc3RhdGljIGRlcmVnaXN0cmF0aW9uRGVsYXlDb25uZWN0aW9uVGVybWluYXRpb25FbmFibGVkID1cbiAgICBcImRlcmVnaXN0cmF0aW9uX2RlbGF5LmNvbm5lY3Rpb25fdGVybWluYXRpb24uZW5hYmxlZFwiO1xuICBzdGF0aWMgcHJlc2VydmVDbGllbnRJUEVuYWJsZWQgPSBcInByZXNlcnZlX2NsaWVudF9pcC5lbmFibGVkXCI7XG4gIHN0YXRpYyBwcm94eVByb3RvY29sVjJFbmFibGVkID0gXCJwcm94eV9wcm90b2NvbF92Mi5lbmFibGVkXCI7XG4gIHN0YXRpYyB0YXJnZXRIZWFsdGhTdGF0ZVVuaGVhbHRoeUNvbm5lY3Rpb25UZXJtaW5hdGlvbkVuYWJsZWQgPVxuICAgIFwidGFyZ2V0X2hlYWx0aF9zdGF0ZS51bmhlYWx0aHkuY29ubmVjdGlvbl90ZXJtaW5hdGlvbi5lbmFibGVkXCI7XG4gIHN0YXRpYyB0YXJnZXRIZWFsdGhTdGF0ZVVuaGVhbHRoeURyYWluaW5nSW50ZXJ2YWxTZWNvbmRzID1cbiAgICBcInRhcmdldF9oZWFsdGhfc3RhdGUudW5oZWFsdGh5LmRyYWluaW5nX2ludGVydmFsX3NlY29uZHNcIjtcblxuICAvLyBUaGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgYXJlIHN1cHBvcnRlZCBvbmx5IGJ5IEdhdGV3YXkgTG9hZCBCYWxhbmNlcnM6XG4gIHN0YXRpYyB0YXJnZXRGYWlsb3Zlck9uRGVyZWdpc3RyYXRpb24gPSBcInRhcmdldF9mYWlsb3Zlci5vbl9kZXJlZ2lzdHJhdGlvblwiO1xuICBzdGF0aWMgdGFyZ2V0RmFpbG92ZXJPblVuaGVhbHRoeSA9IFwidGFyZ2V0X2ZhaWxvdmVyLm9uX3VuaGVhbHRoeVwiO1xufVxuXG4vLyBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xvYWRCYWxhbmNlckF0dHJpYnV0ZS5odG1sI0FQSV9Mb2FkQmFsYW5jZXJBdHRyaWJ1dGVfQ29udGVudHMuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1wcm92aWRlci1hd3MvYmxvYi9tYWluL2ludGVybmFsL3NlcnZpY2UvZWxidjIvY29uc3QuZ28jTDMyXG5leHBvcnQgY2xhc3MgTG9hZEJhbGFuY2VyQXR0cmlidXRlIHtcbiAgLy8gVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBzdXBwb3J0ZWQgYnkgYWxsIGxvYWQgYmFsYW5jZXJzOlxuICBzdGF0aWMgZGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZCA9IFwiZGVsZXRpb25fcHJvdGVjdGlvbi5lbmFibGVkXCI7XG4gIHN0YXRpYyBsb2FkQmFsYW5jaW5nQ3Jvc3Nab25lRW5hYmxlZCA9IFwibG9hZF9iYWxhbmNpbmcuY3Jvc3Nfem9uZS5lbmFibGVkXCI7XG5cbiAgLy8gVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBzdXBwb3J0ZWQgYnkgYm90aCBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycyBhbmQgTmV0d29yayBMb2FkIEJhbGFuY2VyczpcbiAgc3RhdGljIGFjY2Vzc0xvZ3NTM0VuYWJsZWQgPSBcImFjY2Vzc19sb2dzLnMzLmVuYWJsZWRcIjtcbiAgc3RhdGljIGFjY2Vzc0xvZ3NTM0J1Y2tldCA9IFwiYWNjZXNzX2xvZ3MuczMuYnVja2V0XCI7XG4gIHN0YXRpYyBhY2Nlc3NMb2dzUzNQcmVmaXggPSBcImFjY2Vzc19sb2dzLnMzLnByZWZpeFwiO1xuICBzdGF0aWMgaVB2NkRlbnlBbGxJR1dUcmFmZmljID0gXCJpcHY2LmRlbnlfYWxsX2lnd190cmFmZmljXCI7XG5cbiAgLy8gVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBzdXBwb3J0ZWQgYnkgb25seSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyczpcbiAgc3RhdGljIGlkbGVUaW1lb3V0VGltZW91dFNlY29uZHMgPSBcImlkbGVfdGltZW91dC50aW1lb3V0X3NlY29uZHNcIjtcbiAgc3RhdGljIGNsaWVudEtlZXBBbGl2ZVNlY29uZHMgPSBcImNsaWVudF9rZWVwX2FsaXZlLnNlY29uZHNcIjtcbiAgc3RhdGljIGNvbm5lY3Rpb25Mb2dzUzNFbmFibGVkID0gXCJjb25uZWN0aW9uX2xvZ3MuczMuZW5hYmxlZFwiO1xuICBzdGF0aWMgY29ubmVjdGlvbkxvZ3NTM0J1Y2tldCA9IFwiY29ubmVjdGlvbl9sb2dzLnMzLmJ1Y2tldFwiO1xuICBzdGF0aWMgY29ubmVjdGlvbkxvZ3NTM1ByZWZpeCA9IFwiY29ubmVjdGlvbl9sb2dzLnMzLnByZWZpeFwiO1xuICBzdGF0aWMgcm91dGluZ0hUVFBEZXN5bmNNaXRpZ2F0aW9uTW9kZSA9XG4gICAgXCJyb3V0aW5nLmh0dHAuZGVzeW5jX21pdGlnYXRpb25fbW9kZVwiO1xuICBzdGF0aWMgcm91dGluZ0hUVFBEcm9wSW52YWxpZEhlYWRlckZpZWxkc0VuYWJsZWQgPVxuICAgIFwicm91dGluZy5odHRwLmRyb3BfaW52YWxpZF9oZWFkZXJfZmllbGRzLmVuYWJsZWRcIjtcbiAgc3RhdGljIHJvdXRpbmdIVFRQUHJlc2VydmVIb3N0SGVhZGVyRW5hYmxlZCA9XG4gICAgXCJyb3V0aW5nLmh0dHAucHJlc2VydmVfaG9zdF9oZWFkZXIuZW5hYmxlZFwiO1xuICBzdGF0aWMgcm91dGluZ0hUVFBYQW16blRMU1ZlcnNpb25BbmRDaXBoZXJTdWl0ZUVuYWJsZWQgPVxuICAgIFwicm91dGluZy5odHRwLnhfYW16bl90bHNfdmVyc2lvbl9hbmRfY2lwaGVyX3N1aXRlLmVuYWJsZWRcIjtcbiAgc3RhdGljIHJvdXRpbmdIVFRQWEZGQ2xpZW50UG9ydEVuYWJsZWQgPVxuICAgIFwicm91dGluZy5odHRwLnhmZl9jbGllbnRfcG9ydC5lbmFibGVkXCI7XG4gIHN0YXRpYyByb3V0aW5nSFRUUFhGRkhlYWRlclByb2Nlc3NpbmdNb2RlID1cbiAgICBcInJvdXRpbmcuaHR0cC54ZmZfaGVhZGVyX3Byb2Nlc3NpbmcubW9kZVwiO1xuICBzdGF0aWMgcm91dGluZ0hUVFAyRW5hYmxlZCA9IFwicm91dGluZy5odHRwMi5lbmFibGVkXCI7XG4gIHN0YXRpYyB3QUZGYWlsT3BlbkVuYWJsZWQgPSBcIndhZi5mYWlsX29wZW4uZW5hYmxlZFwiO1xuICBzdGF0aWMgem9uYWxTaGlmdENvbmZpZ0VuYWJsZWQgPSBcInpvbmFsX3NoaWZ0LmNvbmZpZy5lbmFibGVkXCI7XG5cbiAgLy8gVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBzdXBwb3J0ZWQgYnkgb25seSBOZXR3b3JrIExvYWQgQmFsYW5jZXJzOlxuICBzdGF0aWMgZE5TUmVjb3JkQ2xpZW50Um91dGluZ1BvbGljeSA9IFwiZG5zX3JlY29yZC5jbGllbnRfcm91dGluZ19wb2xpY3lcIjtcbn1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2Jsb2IvdjUuODguMC9pbnRlcm5hbC9zZXJ2aWNlL2VsYnYyL2xpc3RlbmVyLmdvI0w4ODBcbi8vIHNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi1saXN0ZW5lci1saXN0ZW5lcmF0dHJpYnV0ZS5odG1sXG5leHBvcnQgY2xhc3MgTGlzdGVuZXJBdHRyaWJ1dGUge1xuICAvLyBBdHRyaWJ1dGUgb25seSBzdXBwb3J0ZWQgb24gVENQIGFuZCBHRU5FVkUgbGlzdGVuZXJzLlxuICBzdGF0aWMgdGNwSWRsZVRpbWVvdXRTZWNvbmRzID0gXCJ0Y3AuaWRsZV90aW1lb3V0LnNlY29uZHNcIjtcblxuICAvLyBBdHRyaWJ1dGVzIG9ubHkgc3VwcG9ydGVkIG9uIEhUVFBTIGxpc3RlbmVycy5cbiAgc3RhdGljIHJvdXRpbmdIVFRQUmVxdWVzdFhBbXpuTXRsc0NsaWVudGNlcnRIZWFkZXJOYW1lID1cbiAgICBcInJvdXRpbmcuaHR0cC5yZXF1ZXN0LnhfYW16bl9tdGxzX2NsaWVudGNlcnQuaGVhZGVyX25hbWVcIjtcbiAgc3RhdGljIHJvdXRpbmdIVFRQUmVxdWVzdFhBbXpuTXRsc0NsaWVudGNlcnRJc3N1ZXJIZWFkZXJOYW1lID1cbiAgICBcInJvdXRpbmcuaHR0cC5yZXF1ZXN0LnhfYW16bl9tdGxzX2NsaWVudGNlcnRfaXNzdWVyLmhlYWRlcl9uYW1lXCI7XG4gIHN0YXRpYyByb3V0aW5nSFRUUFJlcXVlc3RYQW16bk10bHNDbGllbnRjZXJ0TGVhZkhlYWRlck5hbWUgPVxuICAgIFwicm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX210bHNfY2xpZW50Y2VydF9sZWFmLmhlYWRlcl9uYW1lXCI7XG4gIHN0YXRpYyByb3V0aW5nSFRUUFJlcXVlc3RYQW16bk10bHNDbGllbnRjZXJ0U2VyaWFsTnVtYmVySGVhZGVyTmFtZSA9XG4gICAgXCJyb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fbXRsc19jbGllbnRjZXJ0X3NlcmlhbF9udW1iZXIuaGVhZGVyX25hbWVcIjtcbiAgc3RhdGljIHJvdXRpbmdIVFRQUmVxdWVzdFhBbXpuTXRsc0NsaWVudGNlcnRTdWJqZWN0SGVhZGVyTmFtZSA9XG4gICAgXCJyb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fbXRsc19jbGllbnRjZXJ0X3N1YmplY3QuaGVhZGVyX25hbWVcIjtcbiAgc3RhdGljIHJvdXRpbmdIVFRQUmVxdWVzdFhBbXpuTXRsc0NsaWVudGNlcnRWYWxpZGl0eUhlYWRlck5hbWUgPVxuICAgIFwicm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX210bHNfY2xpZW50Y2VydF92YWxpZGl0eS5oZWFkZXJfbmFtZVwiO1xuICBzdGF0aWMgcm91dGluZ0hUVFBSZXF1ZXN0WEFtem5UbHNDaXBoZXJTdWl0ZUhlYWRlck5hbWUgPVxuICAgIFwicm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX3Rsc19jaXBoZXJfc3VpdGUuaGVhZGVyX25hbWVcIjtcbiAgc3RhdGljIHJvdXRpbmdIVFRQUmVxdWVzdFhBbXpuVGxzVmVyc2lvbkhlYWRlck5hbWUgPVxuICAgIFwicm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX3Rsc192ZXJzaW9uLmhlYWRlcl9uYW1lXCI7XG5cbiAgLy8gQXR0cmlidXRlcyBvbmx5IHN1cHBvcnRlZCBvbiBIVFRQUyBhbmQgSFRUUFMgbGlzdGVuZXJzLlxuICBzdGF0aWMgcm91dGluZ0hUVFBSZXNwb25zZUFjY2Vzc0NvbnRyb2xBbGxvd0NyZWRlbnRpYWxzSGVhZGVyVmFsdWUgPVxuICAgIFwicm91dGluZy5odHRwLnJlc3BvbnNlLmFjY2Vzc19jb250cm9sX2FsbG93X2NyZWRlbnRpYWxzLmhlYWRlcl92YWx1ZVwiO1xuICBzdGF0aWMgcm91dGluZ0hUVFBSZXNwb25zZUFjY2Vzc0NvbnRyb2xBbGxvd0hlYWRlcnNIZWFkZXJWYWx1ZSA9XG4gICAgXCJyb3V0aW5nLmh0dHAucmVzcG9uc2UuYWNjZXNzX2NvbnRyb2xfYWxsb3dfaGVhZGVycy5oZWFkZXJfdmFsdWVcIjtcbiAgc3RhdGljIHJvdXRpbmdIVFRQUmVzcG9uc2VBY2Nlc3NDb250cm9sQWxsb3dNZXRob2RzSGVhZGVyVmFsdWUgPVxuICAgIFwicm91dGluZy5odHRwLnJlc3BvbnNlLmFjY2Vzc19jb250cm9sX2FsbG93X21ldGhvZHMuaGVhZGVyX3ZhbHVlXCI7XG4gIHN0YXRpYyByb3V0aW5nSFRUUFJlc3BvbnNlQWNjZXNzQ29udHJvbEFsbG93T3JpZ2luSGVhZGVyVmFsdWUgPVxuICAgIFwicm91dGluZy5odHRwLnJlc3BvbnNlLmFjY2Vzc19jb250cm9sX2FsbG93X29yaWdpbi5oZWFkZXJfdmFsdWVcIjtcblxuICAvLyBBdHRyaWJ1dGVzIG9ubHkgc3VwcG9ydGVkIG9uIEhUVFBTIGxpc3RlbmVycy5cbiAgc3RhdGljIHJvdXRpbmdIVFRQUmVzcG9uc2VBY2Nlc3NDb250cm9sRXhwb3NlSGVhZGVyc0hlYWRlclZhbHVlID1cbiAgICBcInJvdXRpbmcuaHR0cC5yZXNwb25zZS5hY2Nlc3NfY29udHJvbF9leHBvc2VfaGVhZGVycy5oZWFkZXJfdmFsdWVcIjtcbiAgc3RhdGljIHJvdXRpbmdIVFRQUmVzcG9uc2VBY2Nlc3NDb250cm9sTWF4QWdlSGVhZGVyVmFsdWUgPVxuICAgIFwicm91dGluZy5odHRwLnJlc3BvbnNlLmFjY2Vzc19jb250cm9sX21heF9hZ2UuaGVhZGVyX3ZhbHVlXCI7XG4gIHN0YXRpYyByb3V0aW5nSFRUUFJlc3BvbnNlQ29udGVudFNlY3VyaXR5UG9saWN5SGVhZGVyVmFsdWUgPVxuICAgIFwicm91dGluZy5odHRwLnJlc3BvbnNlLmNvbnRlbnRfc2VjdXJpdHlfcG9saWN5LmhlYWRlcl92YWx1ZVwiO1xuICBzdGF0aWMgcm91dGluZ0hUVFBSZXNwb25zZVNlcnZlckVuYWJsZWQgPVxuICAgIFwicm91dGluZy5odHRwLnJlc3BvbnNlLnNlcnZlci5lbmFibGVkXCI7XG4gIHN0YXRpYyByb3V0aW5nSFRUUFJlc3BvbnNlU3RyaWN0VHJhbnNwb3J0U2VjdXJpdHlIZWFkZXJWYWx1ZSA9XG4gICAgXCJyb3V0aW5nLmh0dHAucmVzcG9uc2Uuc3RyaWN0X3RyYW5zcG9ydF9zZWN1cml0eS5oZWFkZXJfdmFsdWVcIjtcbiAgc3RhdGljIHJvdXRpbmdIVFRQUmVzcG9uc2VYQ29udGVudFR5cGVPcHRpb25zSGVhZGVyVmFsdWUgPVxuICAgIFwicm91dGluZy5odHRwLnJlc3BvbnNlLnhfY29udGVudF90eXBlX29wdGlvbnMuaGVhZGVyX3ZhbHVlXCI7XG4gIHN0YXRpYyByb3V0aW5nSFRUUFJlc3BvbnNlWEZyYW1lT3B0aW9uc0hlYWRlclZhbHVlID1cbiAgICBcInJvdXRpbmcuaHR0cC5yZXNwb25zZS54X2ZyYW1lX29wdGlvbnMuaGVhZGVyX3ZhbHVlXCI7XG59XG4iXX0=
@@ -0,0 +1,67 @@
1
+ import * as compute from "../";
2
+ /**
3
+ * A single Application Load Balancer as the target for load balancing.
4
+ */
5
+ export declare class AlbArnTarget implements compute.INetworkLoadBalancerTarget {
6
+ private readonly albArn;
7
+ private readonly port;
8
+ /**
9
+ * Create a new alb target.
10
+ * Note that the ALB must have a listener on the provided target port.
11
+ *
12
+ * @param albArn The ARN of the application load balancer to load balance to
13
+ * @param port The port on which the target is listening
14
+ */
15
+ constructor(albArn: string, port: number);
16
+ /**
17
+ * Register this alb target with a load balancer
18
+ *
19
+ * Don't call this, it is called automatically when you add the target to a
20
+ * load balancer.
21
+ */
22
+ attachToNetworkTargetGroup(targetGroup: compute.INetworkTargetGroup): compute.LoadBalancerTargetProps;
23
+ /**
24
+ * @internal
25
+ */
26
+ protected _attach(_targetGroup: compute.ITargetGroup): compute.LoadBalancerTargetProps;
27
+ }
28
+ /**
29
+ * A single Application Load Balancer as the target for load balancing.
30
+ * @deprecated Use `AlbListenerTarget` instead or
31
+ * `AlbArnTarget` for an imported load balancer. This target does not automatically
32
+ * add a dependency between the ALB listener and resulting NLB target group,
33
+ * without which may cause stack deployments to fail if the NLB target group is provisioned
34
+ * before the listener has been fully created.
35
+ */
36
+ export declare class AlbTarget extends AlbArnTarget {
37
+ /**
38
+ * @param alb The application load balancer to load balance to
39
+ * @param port The port on which the target is listening
40
+ */
41
+ constructor(alb: compute.IApplicationLoadBalancer, port: number);
42
+ }
43
+ /**
44
+ * A single Application Load Balancer's listener as the target for load balancing.
45
+ */
46
+ export declare class AlbListenerTarget extends AlbArnTarget {
47
+ private albListener;
48
+ /**
49
+ * Create a new ALB target.
50
+ * The associated target group will automatically have a dependency added
51
+ * against the ALB's listener.
52
+ *
53
+ * @param albListener The application load balancer listener to target.
54
+ */
55
+ constructor(albListener: compute.ApplicationListener);
56
+ private attach;
57
+ /**
58
+ * Register this ALB target with a load balancer.
59
+ *
60
+ * Don't call this, it is called automatically when you add the target to a
61
+ * load balancer.
62
+ *
63
+ * This adds dependency on albListener because creation of ALB listener and NLB can vary during runtime.
64
+ * More Details on - https://github.com/aws/aws-cdk/issues/17208
65
+ */
66
+ attachToNetworkTargetGroup(targetGroup: compute.INetworkTargetGroup): compute.LoadBalancerTargetProps;
67
+ }