terraconstructs 0.0.25 → 0.1.0

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 (420) hide show
  1. package/.jsii +83665 -54911
  2. package/.mise.toml +1 -1
  3. package/.nvmrc +1 -1
  4. package/LICENSE +202 -674
  5. package/lib/asset-manager.d.ts +23 -0
  6. package/lib/asset-manager.js +3 -0
  7. package/lib/asset-staging.d.ts +178 -0
  8. package/lib/asset-staging.js +589 -0
  9. package/lib/assets.d.ts +359 -0
  10. package/lib/assets.js +55 -0
  11. package/lib/aws/arn.js +16 -15
  12. package/lib/aws/aws-asset-manager.d.ts +91 -0
  13. package/lib/aws/aws-asset-manager.js +244 -0
  14. package/lib/aws/aws-construct.js +1 -1
  15. package/lib/aws/aws-stack.d.ts +37 -0
  16. package/lib/aws/aws-stack.js +30 -9
  17. package/lib/aws/aws-tags.js +2 -2
  18. package/lib/aws/cloudwatch/actions/appscaling.d.ts +15 -0
  19. package/lib/aws/cloudwatch/actions/appscaling.js +24 -0
  20. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  21. package/lib/aws/cloudwatch/actions/index.d.ts +3 -0
  22. package/lib/aws/cloudwatch/actions/index.js +4 -4
  23. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  24. package/lib/aws/cloudwatch/actions/sns.d.ts +14 -0
  25. package/lib/aws/cloudwatch/actions/sns.js +23 -0
  26. package/lib/aws/cloudwatch/actions/ssm.d.ts +72 -0
  27. package/lib/aws/cloudwatch/actions/ssm.js +104 -0
  28. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  29. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  30. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  31. package/lib/aws/cloudwatch/alarm.js +1 -1
  32. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  33. package/lib/aws/cloudwatch/dashboard.js +1 -1
  34. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  35. package/lib/aws/cloudwatch/graph.js +8 -8
  36. package/lib/aws/cloudwatch/layout.js +3 -3
  37. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  38. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  39. package/lib/aws/cloudwatch/log-group.js +1 -1
  40. package/lib/aws/cloudwatch/log-query.js +1 -1
  41. package/lib/aws/cloudwatch/log-stream.js +1 -1
  42. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  43. package/lib/aws/cloudwatch/metric.js +2 -2
  44. package/lib/aws/cloudwatch/pattern.js +3 -3
  45. package/lib/aws/cloudwatch/policy.js +1 -1
  46. package/lib/aws/cloudwatch/query-definition.js +2 -2
  47. package/lib/aws/cloudwatch/stats.js +1 -1
  48. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  49. package/lib/aws/cloudwatch/text.js +1 -1
  50. package/lib/aws/cloudwatch/variable.js +3 -3
  51. package/lib/aws/cloudwatch/widget.js +1 -1
  52. package/lib/aws/compute/access-log.d.ts +478 -0
  53. package/lib/aws/compute/access-log.js +649 -0
  54. package/lib/aws/compute/activity.js +1 -1
  55. package/lib/aws/compute/alb/application-listener-action.js +1 -1
  56. package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
  57. package/lib/aws/compute/alb/application-listener-rule.js +1 -1
  58. package/lib/aws/compute/alb/application-listener.js +1 -1
  59. package/lib/aws/compute/alb/application-load-balancer.js +1 -1
  60. package/lib/aws/compute/alb/application-target-group.js +1 -1
  61. package/lib/aws/compute/alb/conditions.js +1 -1
  62. package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
  63. package/lib/aws/compute/alb/trust-store.js +1 -1
  64. package/lib/aws/compute/api-definition.d.ts +106 -0
  65. package/lib/aws/compute/api-definition.js +200 -0
  66. package/lib/aws/compute/api-key.d.ts +184 -0
  67. package/lib/aws/compute/api-key.js +197 -0
  68. package/lib/aws/compute/apigateway-canned-metrics.generated.d.ts +169 -0
  69. package/lib/aws/compute/apigateway-canned-metrics.generated.js +63 -0
  70. package/lib/aws/compute/apigateway-util.d.ts +31 -0
  71. package/lib/aws/compute/apigateway-util.js +152 -0
  72. package/lib/aws/compute/architecture.js +1 -1
  73. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
  74. package/lib/aws/compute/authorizer.d.ts +35 -0
  75. package/lib/aws/compute/authorizer.js +28 -0
  76. package/lib/aws/compute/authorizers/identity-source.d.ts +37 -0
  77. package/lib/aws/compute/authorizers/identity-source.js +61 -0
  78. package/lib/aws/compute/authorizers/index.d.ts +2 -0
  79. package/lib/aws/compute/authorizers/index.js +20 -0
  80. package/lib/aws/compute/authorizers/lambda.d.ts +140 -0
  81. package/lib/aws/compute/authorizers/lambda.js +208 -0
  82. package/lib/aws/compute/base-path-mapping.d.ts +49 -0
  83. package/lib/aws/compute/base-path-mapping.js +52 -0
  84. package/lib/aws/compute/base-scalable-attribute.js +3 -3
  85. package/lib/aws/compute/bastion-host.js +1 -1
  86. package/lib/aws/compute/chain.js +1 -1
  87. package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
  88. package/lib/aws/compute/client-vpn-endpoint.js +2 -2
  89. package/lib/aws/compute/client-vpn-route.js +2 -2
  90. package/lib/aws/compute/code.d.ts +415 -0
  91. package/lib/aws/compute/code.js +424 -0
  92. package/lib/aws/compute/condition.js +1 -1
  93. package/lib/aws/compute/connections.js +1 -1
  94. package/lib/aws/compute/cors.d.ts +102 -0
  95. package/lib/aws/compute/cors.js +33 -0
  96. package/lib/aws/compute/deployment.d.ts +83 -0
  97. package/lib/aws/compute/deployment.js +158 -0
  98. package/lib/aws/compute/domain-name.d.ts +153 -0
  99. package/lib/aws/compute/domain-name.js +158 -0
  100. package/lib/aws/compute/event-invoke-config.d.ts +2 -2
  101. package/lib/aws/compute/event-invoke-config.js +4 -4
  102. package/lib/aws/compute/event-source-filter.js +2 -2
  103. package/lib/aws/compute/event-source-mapping.d.ts +2 -2
  104. package/lib/aws/compute/event-source-mapping.js +9 -7
  105. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  106. package/lib/aws/compute/event-sources/s3.js +1 -1
  107. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  108. package/lib/aws/compute/event-sources/sqs.js +3 -2
  109. package/lib/aws/compute/fields.js +4 -4
  110. package/lib/aws/compute/function-alias.d.ts +1 -0
  111. package/lib/aws/compute/function-alias.js +8 -2
  112. package/lib/aws/compute/function-base.d.ts +15 -0
  113. package/lib/aws/compute/function-base.js +4 -4
  114. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  115. package/lib/aws/compute/function-destinations/function.js +1 -1
  116. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  117. package/lib/aws/compute/function-nodejs/bundling.d.ts +75 -0
  118. package/lib/aws/compute/function-nodejs/bundling.js +405 -0
  119. package/lib/aws/compute/function-nodejs/function.d.ts +99 -0
  120. package/lib/aws/compute/function-nodejs/function.js +175 -0
  121. package/lib/aws/compute/function-nodejs/index.d.ts +2 -0
  122. package/lib/aws/compute/function-nodejs/index.js +19 -0
  123. package/lib/aws/compute/function-nodejs/package-installation.d.ts +8 -0
  124. package/lib/aws/compute/function-nodejs/package-installation.js +36 -0
  125. package/lib/aws/compute/function-nodejs/package-manager.d.ts +33 -0
  126. package/lib/aws/compute/function-nodejs/package-manager.js +99 -0
  127. package/lib/aws/compute/function-nodejs/types.d.ts +410 -0
  128. package/lib/aws/compute/function-nodejs/types.js +81 -0
  129. package/lib/aws/compute/function-nodejs/util.d.ts +60 -0
  130. package/lib/aws/compute/function-nodejs/util.js +202 -0
  131. package/lib/aws/compute/function-url.d.ts +2 -2
  132. package/lib/aws/compute/function-url.js +4 -4
  133. package/lib/aws/compute/function.d.ts +34 -4
  134. package/lib/aws/compute/function.js +91 -17
  135. package/lib/aws/compute/gateway-response.d.ts +157 -0
  136. package/lib/aws/compute/gateway-response.js +156 -0
  137. package/lib/aws/compute/handler.d.ts +10 -0
  138. package/lib/aws/compute/handler.js +20 -0
  139. package/lib/aws/compute/index.d.ts +27 -0
  140. package/lib/aws/compute/index.js +29 -1
  141. package/lib/aws/compute/instance-types.js +1 -1
  142. package/lib/aws/compute/instance.js +1 -1
  143. package/lib/aws/compute/integration.d.ts +311 -0
  144. package/lib/aws/compute/integration.js +165 -0
  145. package/lib/aws/compute/integrations/aws.d.ts +72 -0
  146. package/lib/aws/compute/integrations/aws.js +55 -0
  147. package/lib/aws/compute/integrations/http.d.ts +37 -0
  148. package/lib/aws/compute/integrations/http.js +35 -0
  149. package/lib/aws/compute/integrations/index.d.ts +6 -0
  150. package/lib/aws/compute/integrations/index.js +24 -0
  151. package/lib/aws/compute/integrations/lambda.d.ts +40 -0
  152. package/lib/aws/compute/integrations/lambda.js +73 -0
  153. package/lib/aws/compute/integrations/mock.d.ts +16 -0
  154. package/lib/aws/compute/integrations/mock.js +30 -0
  155. package/lib/aws/compute/integrations/request-context.d.ts +144 -0
  156. package/lib/aws/compute/integrations/request-context.js +3 -0
  157. package/lib/aws/compute/integrations/stepfunctions.d.ts +102 -0
  158. package/lib/aws/compute/integrations/stepfunctions.js +268 -0
  159. package/lib/aws/compute/ip-addresses.js +2 -2
  160. package/lib/aws/compute/ipam.js +1 -1
  161. package/lib/aws/compute/json-schema.d.ts +75 -0
  162. package/lib/aws/compute/json-schema.js +23 -0
  163. package/lib/aws/compute/key-pair.js +1 -1
  164. package/lib/aws/compute/lambda-api.d.ts +46 -0
  165. package/lib/aws/compute/lambda-api.js +64 -0
  166. package/lib/aws/compute/launch-template.js +2 -2
  167. package/lib/aws/compute/lb-shared/base-listener.js +1 -1
  168. package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
  169. package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
  170. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  171. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  172. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  173. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  174. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  175. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  176. package/lib/aws/compute/load-balancer.js +3 -3
  177. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  178. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  179. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  180. package/lib/aws/compute/machine-image/common.js +1 -1
  181. package/lib/aws/compute/machine-image/machine-image.js +8 -8
  182. package/lib/aws/compute/method.d.ts +219 -0
  183. package/lib/aws/compute/method.js +396 -0
  184. package/lib/aws/compute/methodresponse.d.ts +28 -0
  185. package/lib/aws/compute/methodresponse.js +3 -0
  186. package/lib/aws/compute/model.d.ts +143 -0
  187. package/lib/aws/compute/model.js +141 -0
  188. package/lib/aws/compute/nat.js +5 -5
  189. package/lib/aws/compute/network-acl-types.js +2 -2
  190. package/lib/aws/compute/network-acl.js +3 -3
  191. package/lib/aws/compute/nlb/network-listener-action.js +1 -1
  192. package/lib/aws/compute/nlb/network-listener.js +1 -1
  193. package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
  194. package/lib/aws/compute/nlb/network-target-group.js +1 -1
  195. package/lib/aws/compute/peer.js +1 -1
  196. package/lib/aws/compute/placement-group.js +1 -1
  197. package/lib/aws/compute/port.js +1 -1
  198. package/lib/aws/compute/prefix-list.js +1 -1
  199. package/lib/aws/compute/requestvalidator.d.ts +50 -0
  200. package/lib/aws/compute/requestvalidator.js +59 -0
  201. package/lib/aws/compute/resource.d.ts +223 -0
  202. package/lib/aws/compute/resource.js +316 -0
  203. package/lib/aws/compute/restapi.d.ts +510 -0
  204. package/lib/aws/compute/restapi.js +626 -0
  205. package/lib/aws/compute/route.js +8 -8
  206. package/lib/aws/compute/runtime.d.ts +282 -0
  207. package/lib/aws/compute/runtime.js +337 -0
  208. package/lib/aws/compute/scalable-target.js +3 -3
  209. package/lib/aws/compute/schedule.js +3 -3
  210. package/lib/aws/compute/security-group.js +1 -1
  211. package/lib/aws/compute/stage.d.ts +350 -0
  212. package/lib/aws/compute/stage.js +304 -0
  213. package/lib/aws/compute/state-graph.js +1 -1
  214. package/lib/aws/compute/state-machine-fragment.js +1 -1
  215. package/lib/aws/compute/state-machine.js +4 -4
  216. package/lib/aws/compute/states/choice.js +1 -1
  217. package/lib/aws/compute/states/custom-state.js +1 -1
  218. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  219. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  220. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  221. package/lib/aws/compute/states/distributed-map.js +1 -1
  222. package/lib/aws/compute/states/fail.js +1 -1
  223. package/lib/aws/compute/states/map-base.js +1 -1
  224. package/lib/aws/compute/states/map.js +1 -1
  225. package/lib/aws/compute/states/parallel.js +1 -1
  226. package/lib/aws/compute/states/pass.js +2 -2
  227. package/lib/aws/compute/states/state.js +1 -1
  228. package/lib/aws/compute/states/succeed.js +1 -1
  229. package/lib/aws/compute/states/task-base.js +2 -2
  230. package/lib/aws/compute/states/task.js +1 -1
  231. package/lib/aws/compute/states/wait.js +2 -2
  232. package/lib/aws/compute/step-scaling-action.js +3 -3
  233. package/lib/aws/compute/step-scaling-policy.js +1 -1
  234. package/lib/aws/compute/stepfunctions-api.d.ts +103 -0
  235. package/lib/aws/compute/stepfunctions-api.js +39 -0
  236. package/lib/aws/compute/subnet-v2.js +2 -2
  237. package/lib/aws/compute/subnet.js +1 -1
  238. package/lib/aws/compute/target-tracking-scaling-policy.js +3 -3
  239. package/lib/aws/compute/task-credentials.js +1 -1
  240. package/lib/aws/compute/task-input.js +1 -1
  241. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  242. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  243. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  244. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  245. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  246. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  247. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  248. package/lib/aws/compute/types.js +1 -1
  249. package/lib/aws/compute/usage-plan.d.ts +194 -0
  250. package/lib/aws/compute/usage-plan.js +174 -0
  251. package/lib/aws/compute/user-data.js +3 -3
  252. package/lib/aws/compute/volume.js +2 -2
  253. package/lib/aws/compute/vpc-endpoint-service.js +1 -1
  254. package/lib/aws/compute/vpc-endpoint.js +6 -6
  255. package/lib/aws/compute/vpc-flow-logs.js +4 -4
  256. package/lib/aws/compute/vpc-link.d.ts +104 -0
  257. package/lib/aws/compute/vpc-link.js +137 -0
  258. package/lib/aws/compute/vpc-v2-base.js +1 -1
  259. package/lib/aws/compute/vpc-v2.js +2 -2
  260. package/lib/aws/compute/vpc.js +4 -4
  261. package/lib/aws/compute/vpn.js +3 -3
  262. package/lib/aws/edge/certificate.js +1 -1
  263. package/lib/aws/edge/distribution.js +3 -3
  264. package/lib/aws/edge/dns-alias-record-targets.js +3 -3
  265. package/lib/aws/edge/dns-record.js +13 -13
  266. package/lib/aws/edge/dns-zone.js +1 -1
  267. package/lib/aws/edge/function.js +2 -2
  268. package/lib/aws/edge/key-value-store.js +4 -4
  269. package/lib/aws/edge/origin.js +3 -3
  270. package/lib/aws/edge/response-headers-policy.js +1 -1
  271. package/lib/aws/encryption/alias.js +1 -1
  272. package/lib/aws/encryption/key.js +1 -1
  273. package/lib/aws/encryption/via-service-principal.js +1 -1
  274. package/lib/aws/iam/grant.js +2 -2
  275. package/lib/aws/iam/group.js +1 -1
  276. package/lib/aws/iam/instance-profile.js +1 -1
  277. package/lib/aws/iam/managed-policy.js +1 -1
  278. package/lib/aws/iam/oidc-provider.js +1 -1
  279. package/lib/aws/iam/policy-document.js +1 -1
  280. package/lib/aws/iam/policy-statement.js +1 -1
  281. package/lib/aws/iam/policy.js +1 -1
  282. package/lib/aws/iam/principals.js +20 -20
  283. package/lib/aws/iam/role.js +1 -1
  284. package/lib/aws/iam/saml-provider.js +2 -2
  285. package/lib/aws/iam/unknown-principal.js +1 -1
  286. package/lib/aws/iam/user.js +5 -5
  287. package/lib/aws/index.d.ts +1 -0
  288. package/lib/aws/index.js +4 -1
  289. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  290. package/lib/aws/network/subnet-group.js +3 -3
  291. package/lib/aws/network/subnet.js +4 -4
  292. package/lib/aws/notify/archive.js +1 -1
  293. package/lib/aws/notify/connection.js +3 -3
  294. package/lib/aws/notify/event-bus.js +3 -3
  295. package/lib/aws/notify/event-pattern.js +1 -1
  296. package/lib/aws/notify/input.js +2 -2
  297. package/lib/aws/notify/kinesis-stream.js +1 -1
  298. package/lib/aws/notify/notification-rule.d.ts +1 -1
  299. package/lib/aws/notify/notification-rule.js +5 -5
  300. package/lib/aws/notify/policy.js +1 -1
  301. package/lib/aws/notify/queue-policy.js +1 -1
  302. package/lib/aws/notify/queue.js +1 -1
  303. package/lib/aws/notify/resource-policy.js +1 -1
  304. package/lib/aws/notify/rule.js +1 -1
  305. package/lib/aws/notify/schedule.js +1 -1
  306. package/lib/aws/notify/subscription-filter.js +1 -1
  307. package/lib/aws/notify/subscription.js +4 -4
  308. package/lib/aws/notify/subscriptions/email.js +1 -1
  309. package/lib/aws/notify/subscriptions/lambda.js +1 -1
  310. package/lib/aws/notify/subscriptions/sms.js +1 -1
  311. package/lib/aws/notify/subscriptions/sqs.js +1 -1
  312. package/lib/aws/notify/subscriptions/url.js +1 -1
  313. package/lib/aws/notify/targets/event-bus.js +1 -1
  314. package/lib/aws/notify/targets/function.js +1 -1
  315. package/lib/aws/notify/targets/log-group.js +2 -2
  316. package/lib/aws/notify/targets/sqs.js +1 -1
  317. package/lib/aws/notify/targets/state-machine.js +1 -1
  318. package/lib/aws/notify/topic-base.js +1 -1
  319. package/lib/aws/notify/topic.js +6 -5
  320. package/lib/aws/partition.d.ts +21 -0
  321. package/lib/aws/partition.js +42 -0
  322. package/lib/aws/storage/assets/image-asset.d.ts +379 -0
  323. package/lib/aws/storage/assets/image-asset.js +247 -0
  324. package/lib/aws/storage/assets/index.d.ts +2 -0
  325. package/lib/aws/storage/assets/index.js +21 -0
  326. package/lib/aws/storage/assets/s3.d.ts +125 -0
  327. package/lib/aws/storage/assets/s3.js +80 -0
  328. package/lib/aws/storage/auth-token.d.ts +25 -0
  329. package/lib/aws/storage/auth-token.js +54 -0
  330. package/lib/aws/storage/billing.js +1 -1
  331. package/lib/aws/storage/bucket-notifications.js +1 -1
  332. package/lib/aws/storage/bucket-policy.js +1 -1
  333. package/lib/aws/storage/bucket-source.d.ts +1 -1
  334. package/lib/aws/storage/bucket-source.js +4 -4
  335. package/lib/aws/storage/bucket.d.ts +14 -6
  336. package/lib/aws/storage/bucket.js +48 -40
  337. package/lib/aws/storage/capacity.js +1 -1
  338. package/lib/aws/storage/ecr-lifecycle.d.ts +88 -0
  339. package/lib/aws/storage/ecr-lifecycle.js +23 -0
  340. package/lib/aws/storage/ecr-repository.d.ts +446 -0
  341. package/lib/aws/storage/ecr-repository.js +685 -0
  342. package/lib/aws/storage/encryption.js +1 -1
  343. package/lib/aws/storage/index.d.ts +5 -0
  344. package/lib/aws/storage/index.js +10 -3
  345. package/lib/aws/storage/location.d.ts +17 -0
  346. package/lib/aws/storage/location.js +4 -0
  347. package/lib/aws/storage/notification-targets/function.js +1 -1
  348. package/lib/aws/storage/notification-targets/queue.js +1 -1
  349. package/lib/aws/storage/origin-access-identity.js +1 -1
  350. package/lib/aws/storage/parameter.js +2 -2
  351. package/lib/aws/storage/table.js +3 -3
  352. package/lib/aws/storage/util.d.ts +8 -20
  353. package/lib/aws/storage/util.js +56 -34
  354. package/lib/aws/util.d.ts +1 -0
  355. package/lib/aws/util.js +6 -1
  356. package/lib/bundling.d.ts +434 -0
  357. package/lib/bundling.js +368 -0
  358. package/lib/construct-base.js +2 -2
  359. package/lib/duration.js +1 -1
  360. package/lib/expiration.js +1 -1
  361. package/lib/fs/copy.d.ts +2 -0
  362. package/lib/fs/copy.js +57 -0
  363. package/lib/fs/fingerprint.d.ts +21 -0
  364. package/lib/fs/fingerprint.js +165 -0
  365. package/lib/fs/ignore.d.ts +107 -0
  366. package/lib/fs/ignore.js +190 -0
  367. package/lib/fs/index.d.ts +47 -0
  368. package/lib/fs/index.js +88 -0
  369. package/lib/fs/options.d.ts +110 -0
  370. package/lib/fs/options.js +60 -0
  371. package/lib/fs/utils.d.ts +11 -0
  372. package/lib/fs/utils.js +34 -0
  373. package/lib/index.d.ts +5 -0
  374. package/lib/index.js +7 -1
  375. package/lib/private/asset-staging.d.ts +83 -0
  376. package/lib/private/asset-staging.js +205 -0
  377. package/lib/private/cache.d.ts +17 -0
  378. package/lib/private/cache.js +35 -0
  379. package/lib/private/jsii-deprecated.d.ts +2 -0
  380. package/lib/private/jsii-deprecated.js +19 -0
  381. package/lib/private/unique-resource-name.js +3 -2
  382. package/lib/size.js +1 -1
  383. package/lib/stack-base.js +1 -1
  384. package/lib/terra-func.js +2 -2
  385. package/lib/time-zone.js +1 -1
  386. package/node_modules/@balena/dockerignore/CHANGELOG.md +31 -0
  387. package/node_modules/@balena/dockerignore/LICENSE.md +206 -0
  388. package/node_modules/@balena/dockerignore/README.md +261 -0
  389. package/node_modules/@balena/dockerignore/ignore.js +363 -0
  390. package/node_modules/@balena/dockerignore/index.d.ts +45 -0
  391. package/node_modules/@balena/dockerignore/package.json +49 -0
  392. package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  393. package/node_modules/balanced-match/LICENSE.md +21 -0
  394. package/node_modules/balanced-match/README.md +97 -0
  395. package/node_modules/balanced-match/index.js +62 -0
  396. package/node_modules/balanced-match/package.json +48 -0
  397. package/node_modules/concat-map/.travis.yml +4 -0
  398. package/node_modules/concat-map/LICENSE +18 -0
  399. package/node_modules/concat-map/README.markdown +62 -0
  400. package/node_modules/concat-map/example/map.js +6 -0
  401. package/node_modules/concat-map/index.js +13 -0
  402. package/node_modules/concat-map/package.json +43 -0
  403. package/node_modules/concat-map/test/map.js +39 -0
  404. package/node_modules/ignore/LICENSE-MIT +21 -0
  405. package/node_modules/ignore/README.md +412 -0
  406. package/node_modules/ignore/index.d.ts +61 -0
  407. package/node_modules/ignore/index.js +636 -0
  408. package/node_modules/ignore/legacy.js +559 -0
  409. package/node_modules/ignore/package.json +74 -0
  410. package/node_modules/minimatch/LICENSE +15 -0
  411. package/node_modules/minimatch/README.md +230 -0
  412. package/node_modules/minimatch/minimatch.js +947 -0
  413. package/node_modules/minimatch/node_modules/brace-expansion/LICENSE +21 -0
  414. package/node_modules/minimatch/node_modules/brace-expansion/README.md +129 -0
  415. package/node_modules/minimatch/node_modules/brace-expansion/index.js +201 -0
  416. package/node_modules/minimatch/node_modules/brace-expansion/package.json +47 -0
  417. package/node_modules/minimatch/package.json +33 -0
  418. package/package.json +14 -5
  419. package/lib/aws/compute/function-nodejs.d.ts +0 -55
  420. package/lib/aws/compute/function-nodejs.js +0 -70
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.callsites = callsites;
4
+ exports.findUp = findUp;
5
+ exports.findUpMultiple = findUpMultiple;
6
+ exports.exec = exec;
7
+ exports.tryGetModuleVersionFromRequire = tryGetModuleVersionFromRequire;
8
+ exports.tryGetModuleVersionFromPkg = tryGetModuleVersionFromPkg;
9
+ exports.extractDependencies = extractDependencies;
10
+ exports.getTsconfigCompilerOptions = getTsconfigCompilerOptions;
11
+ exports.isSdkV2Runtime = isSdkV2Runtime;
12
+ const child_process_1 = require("child_process");
13
+ const fs = require("fs");
14
+ const path = require("path");
15
+ const runtime_1 = require("../runtime");
16
+ /**
17
+ * Get callsites from the V8 stack trace API
18
+ *
19
+ * https://github.com/sindresorhus/callsites
20
+ */
21
+ function callsites() {
22
+ const _prepareStackTrace = Error.prepareStackTrace;
23
+ Error.prepareStackTrace = (_, stack) => stack;
24
+ const stack = new Error().stack?.slice(1);
25
+ Error.prepareStackTrace = _prepareStackTrace;
26
+ return stack;
27
+ }
28
+ /**
29
+ * Find a file by walking up parent directories
30
+ */
31
+ function findUp(name, directory = process.cwd()) {
32
+ return findUpMultiple([name], directory)[0];
33
+ }
34
+ /**
35
+ * Find the lowest of multiple files by walking up parent directories. If
36
+ * multiple files exist at the same level, they will all be returned.
37
+ */
38
+ function findUpMultiple(names, directory = process.cwd()) {
39
+ const absoluteDirectory = path.resolve(directory);
40
+ const files = [];
41
+ for (const name of names) {
42
+ const file = path.join(directory, name);
43
+ if (fs.existsSync(file)) {
44
+ files.push(file);
45
+ }
46
+ }
47
+ if (files.length > 0) {
48
+ return files;
49
+ }
50
+ const { root } = path.parse(absoluteDirectory);
51
+ if (absoluteDirectory === root) {
52
+ return [];
53
+ }
54
+ return findUpMultiple(names, path.dirname(absoluteDirectory));
55
+ }
56
+ /**
57
+ * Spawn sync with error handling
58
+ */
59
+ function exec(cmd, args, options) {
60
+ const proc = (0, child_process_1.spawnSync)(cmd, args, options);
61
+ if (proc.error) {
62
+ throw proc.error;
63
+ }
64
+ if (proc.status !== 0) {
65
+ if (proc.stdout || proc.stderr) {
66
+ throw new Error(`[Status ${proc.status}] stdout: ${proc.stdout?.toString().trim()}\n\n\nstderr: ${proc.stderr?.toString().trim()}`);
67
+ }
68
+ throw new Error(`${cmd} ${args.join(" ")} ${options?.cwd ? `run in directory ${options.cwd}` : ""} exited with status ${proc.status}`);
69
+ }
70
+ return proc;
71
+ }
72
+ /**
73
+ * Returns a module version by requiring its package.json file
74
+ */
75
+ function tryGetModuleVersionFromRequire(mod) {
76
+ try {
77
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
78
+ return require(`${mod}/package.json`).version;
79
+ }
80
+ catch (err) {
81
+ return undefined;
82
+ }
83
+ }
84
+ /**
85
+ * Gets module version from package.json content
86
+ */
87
+ function tryGetModuleVersionFromPkg(mod, pkgJson, pkgPath) {
88
+ const dependencies = {
89
+ ...(pkgJson.dependencies ?? {}),
90
+ ...(pkgJson.devDependencies ?? {}),
91
+ ...(pkgJson.peerDependencies ?? {}),
92
+ };
93
+ if (!dependencies[mod]) {
94
+ return undefined;
95
+ }
96
+ // If it's a "file:" version, make it absolute
97
+ const fileMatch = dependencies[mod].match(/file:(.+)/);
98
+ if (fileMatch && !path.isAbsolute(fileMatch[1])) {
99
+ const absoluteFilePath = path.join(path.dirname(pkgPath), fileMatch[1]);
100
+ return `file:${absoluteFilePath}`;
101
+ }
102
+ return dependencies[mod];
103
+ }
104
+ /**
105
+ * Extract versions for a list of modules.
106
+ *
107
+ * First lookup the version in the package.json and then fallback to requiring
108
+ * the module's package.json. The fallback is needed for transitive dependencies.
109
+ */
110
+ function extractDependencies(pkgPath, modules) {
111
+ const dependencies = {};
112
+ // Use require for cache
113
+ const pkgJson = require(pkgPath); // eslint-disable-line @typescript-eslint/no-require-imports
114
+ for (const mod of modules) {
115
+ const version = tryGetModuleVersionFromPkg(mod, pkgJson, pkgPath) ??
116
+ tryGetModuleVersionFromRequire(mod);
117
+ if (!version) {
118
+ throw new Error(`Cannot extract version for module '${mod}'. Check that it's referenced in your package.json or installed.`);
119
+ }
120
+ dependencies[mod] = version;
121
+ }
122
+ return dependencies;
123
+ }
124
+ function getTsconfigCompilerOptions(tsconfigPath) {
125
+ const compilerOptions = extractTsConfig(tsconfigPath);
126
+ const excludedCompilerOptions = [
127
+ "composite",
128
+ "charset",
129
+ "noEmit",
130
+ "tsBuildInfoFile",
131
+ ];
132
+ const options = {
133
+ ...compilerOptions,
134
+ // Overrides
135
+ incremental: false,
136
+ // Intentionally Setting rootDir and outDir, so that the compiled js file always end up next to .ts file.
137
+ rootDir: "./",
138
+ outDir: "./",
139
+ };
140
+ let compilerOptionsString = "";
141
+ Object.keys(options)
142
+ .sort()
143
+ .forEach((key) => {
144
+ if (excludedCompilerOptions.includes(key)) {
145
+ return;
146
+ }
147
+ const value = options[key];
148
+ const option = "--" + key;
149
+ const type = typeof value;
150
+ if (type === "boolean") {
151
+ if (value) {
152
+ compilerOptionsString += option + " ";
153
+ }
154
+ else {
155
+ compilerOptionsString += option + " false ";
156
+ }
157
+ }
158
+ else if (type === "string") {
159
+ compilerOptionsString += option + " " + value + " ";
160
+ }
161
+ else if (type === "object") {
162
+ if (Array.isArray(value)) {
163
+ compilerOptionsString += option + " " + value.join(",") + " ";
164
+ }
165
+ }
166
+ else {
167
+ throw new Error(`Missing support for compilerOption: [${key}]: { ${type}, ${value}} \n`);
168
+ }
169
+ });
170
+ return compilerOptionsString.trim();
171
+ }
172
+ function extractTsConfig(tsconfigPath, previousCompilerOptions) {
173
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
174
+ const { extends: extendedConfig, compilerOptions } = require(tsconfigPath);
175
+ const updatedCompilerOptions = {
176
+ ...compilerOptions,
177
+ ...(previousCompilerOptions ?? {}),
178
+ };
179
+ if (extendedConfig) {
180
+ return extractTsConfig(path.resolve(tsconfigPath.replace(/[^\/]+$/, ""), extendedConfig), updatedCompilerOptions);
181
+ }
182
+ return updatedCompilerOptions;
183
+ }
184
+ /**
185
+ * Detect if a given Node.js runtime uses SDKv2
186
+ */
187
+ function isSdkV2Runtime(runtime) {
188
+ const sdkV2RuntimeList = [
189
+ runtime_1.Runtime.NODEJS,
190
+ runtime_1.Runtime.NODEJS_4_3,
191
+ runtime_1.Runtime.NODEJS_6_10,
192
+ runtime_1.Runtime.NODEJS_8_10,
193
+ runtime_1.Runtime.NODEJS_10_X,
194
+ runtime_1.Runtime.NODEJS_12_X,
195
+ runtime_1.Runtime.NODEJS_14_X,
196
+ runtime_1.Runtime.NODEJS_16_X,
197
+ ];
198
+ return sdkV2RuntimeList.some((r) => {
199
+ return r.family === runtime.family && r.name === runtime.name;
200
+ });
201
+ }
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9mdW5jdGlvbi1ub2RlanMvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTBCQSw4QkFNQztBQUtELHdCQUtDO0FBTUQsd0NBd0JDO0FBS0Qsb0JBbUJDO0FBS0Qsd0VBU0M7QUFLRCxnRUF1QkM7QUFRRCxrREFzQkM7QUFFRCxnRUFrREM7QUF3QkQsd0NBZUM7QUFuUUQsaURBQTREO0FBQzVELHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0Isd0NBQXFDO0FBa0JyQzs7OztHQUlHO0FBQ0gsU0FBZ0IsU0FBUztJQUN2QixNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztJQUNuRCxLQUFLLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7SUFDOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztJQUM3QyxPQUFPLEtBQThCLENBQUM7QUFDeEMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsTUFBTSxDQUNwQixJQUFZLEVBQ1osWUFBb0IsT0FBTyxDQUFDLEdBQUcsRUFBRTtJQUVqQyxPQUFPLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixjQUFjLENBQzVCLEtBQWUsRUFDZixZQUFvQixPQUFPLENBQUMsR0FBRyxFQUFFO0lBRWpDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVsRCxNQUFNLEtBQUssR0FBYSxFQUFFLENB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Q0FBQyxFQUFFLEVBQUU7UUFDakMsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ2hFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduU3luYywgU3Bhd25TeW5jT3B0aW9ucyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFJ1bnRpbWUgfSBmcm9tIFwiLi4vcnVudGltZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhbGxTaXRlIHtcbiAgZ2V0VGhpcygpOiBhbnk7XG4gIGdldFR5cGVOYW1lKCk6IHN0cmluZztcbiAgZ2V0RnVuY3Rpb25OYW1lKCk6IHN0cmluZztcbiAgZ2V0TWV0aG9kTmFtZSgpOiBzdHJpbmc7XG4gIGdldEZpbGVOYW1lKCk6IHN0cmluZztcbiAgZ2V0TGluZU51bWJlcigpOiBudW1iZXI7XG4gIGdldENvbHVtbk51bWJlcigpOiBudW1iZXI7XG4gIGdldEZ1bmN0aW9uKCk6IEZ1bmN0aW9uO1xuICBnZXRFdmFsT3JpZ2luKCk6IHN0cmluZztcbiAgaXNOYXRpdmUoKTogYm9vbGVhbjtcbiAgaXNUb3BsZXZlbCgpOiBib29sZWFuO1xuICBpc0V2YWwoKTogYm9vbGVhbjtcbiAgaXNDb25zdHJ1Y3RvcigpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEdldCBjYWxsc2l0ZXMgZnJvbSB0aGUgVjggc3RhY2sgdHJhY2UgQVBJXG4gKlxuICogaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9jYWxsc2l0ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGxzaXRlcygpOiBDYWxsU2l0ZVtdIHtcbiAgY29uc3QgX3ByZXBhcmVTdGFja1RyYWNlID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7XG4gIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gKF8sIHN0YWNrKSA9PiBzdGFjaztcbiAgY29uc3Qgc3RhY2sgPSBuZXcgRXJyb3IoKS5zdGFjaz8uc2xpY2UoMSk7XG4gIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gX3ByZXBhcmVTdGFja1RyYWNlO1xuICByZXR1cm4gc3RhY2sgYXMgdW5rbm93biBhcyBDYWxsU2l0ZVtdO1xufVxuXG4vKipcbiAqIEZpbmQgYSBmaWxlIGJ5IHdhbGtpbmcgdXAgcGFyZW50IGRpcmVjdG9yaWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kVXAoXG4gIG5hbWU6IHN0cmluZyxcbiAgZGlyZWN0b3J5OiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGZpbmRVcE11bHRpcGxlKFtuYW1lXSwgZGlyZWN0b3J5KVswXTtcbn1cblxuLyoqXG4gKiBGaW5kIHRoZSBsb3dlc3Qgb2YgbXVsdGlwbGUgZmlsZXMgYnkgd2Fsa2luZyB1cCBwYXJlbnQgZGlyZWN0b3JpZXMuIElmXG4gKiBtdWx0aXBsZSBmaWxlcyBleGlzdCBhdCB0aGUgc2FtZSBsZXZlbCwgdGhleSB3aWxsIGFsbCBiZSByZXR1cm5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRVcE11bHRpcGxlKFxuICBuYW1lczogc3RyaW5nW10sXG4gIGRpcmVjdG9yeTogc3RyaW5nID0gcHJvY2Vzcy5jd2QoKSxcbik6IHN0cmluZ1tdIHtcbiAgY29uc3QgYWJzb2x1dGVEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZGlyZWN0b3J5KTtcblxuICBjb25zdCBmaWxlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XG4gICAgY29uc3QgZmlsZSA9IHBhdGguam9pbihkaXJlY3RvcnksIG5hbWUpO1xuICAgIGlmIChmcy5leGlzdHNTeW5jKGZpbGUpKSB7XG4gICAgICBmaWxlcy5wdXNoKGZpbGUpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIGZpbGVzO1xuICB9XG5cbiAgY29uc3QgeyByb290IH0gPSBwYXRoLnBhcnNlKGFic29sdXRlRGlyZWN0b3J5KTtcbiAgaWYgKGFic29sdXRlRGlyZWN0b3J5ID09PSByb290KSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcmV0dXJuIGZpbmRVcE11bHRpcGxlKG5hbWVzLCBwYXRoLmRpcm5hbWUoYWJzb2x1dGVEaXJlY3RvcnkpKTtcbn1cblxuLyoqXG4gKiBTcGF3biBzeW5jIHdpdGggZXJyb3IgaGFuZGxpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWMoY21kOiBzdHJpbmcsIGFyZ3M6IHN0cmluZ1tdLCBvcHRpb25zPzogU3Bhd25TeW5jT3B0aW9ucykge1xuICBjb25zdCBwcm9jID0gc3Bhd25TeW5jKGNtZCwgYXJncywgb3B0aW9ucyk7XG5cbiAgaWYgKHByb2MuZXJyb3IpIHtcbiAgICB0aHJvdyBwcm9jLmVycm9yO1xuICB9XG5cbiAgaWYgKHByb2Muc3RhdHVzICE9PSAwKSB7XG4gICAgaWYgKHByb2Muc3Rkb3V0IHx8IHByb2Muc3RkZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBbU3RhdHVzICR7cHJvYy5zdGF0dXN9XSBzdGRvdXQ6ICR7cHJvYy5zdGRvdXQ/LnRvU3RyaW5nKCkudHJpbSgpfVxcblxcblxcbnN0ZGVycjogJHtwcm9jLnN0ZGVycj8udG9TdHJpbmcoKS50cmltKCl9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGAke2NtZH0gJHthcmdzLmpvaW4oXCIgXCIpfSAke29wdGlvbnM/LmN3ZCA/IGBydW4gaW4gZGlyZWN0b3J5ICR7b3B0aW9ucy5jd2R9YCA6IFwiXCJ9IGV4aXRlZCB3aXRoIHN0YXR1cyAke3Byb2Muc3RhdHVzfWAsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBwcm9jO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBtb2R1bGUgdmVyc2lvbiBieSByZXF1aXJpbmcgaXRzIHBhY2thZ2UuanNvbiBmaWxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cnlHZXRNb2R1bGVWZXJzaW9uRnJvbVJlcXVpcmUoXG4gIG1vZDogc3RyaW5nLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICAgIHJldHVybiByZXF1aXJlKGAke21vZH0vcGFja2FnZS5qc29uYCkudmVyc2lvbjtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIEdldHMgbW9kdWxlIHZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb24gY29udGVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJ5R2V0TW9kdWxlVmVyc2lvbkZyb21Qa2coXG4gIG1vZDogc3RyaW5nLFxuICBwa2dKc29uOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICBwa2dQYXRoOiBzdHJpbmcsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSB7XG4gICAgLi4uKHBrZ0pzb24uZGVwZW5kZW5jaWVzID8/IHt9KSxcbiAgICAuLi4ocGtnSnNvbi5kZXZEZXBlbmRlbmNpZXMgPz8ge30pLFxuICAgIC4uLihwa2dKc29uLnBlZXJEZXBlbmRlbmNpZXMgPz8ge30pLFxuICB9O1xuXG4gIGlmICghZGVwZW5kZW5jaWVzW21vZF0pIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gSWYgaXQncyBhIFwiZmlsZTpcIiB2ZXJzaW9uLCBtYWtlIGl0IGFic29sdXRlXG4gIGNvbnN0IGZpbGVNYXRjaCA9IGRlcGVuZGVuY2llc1ttb2RdLm1hdGNoKC9maWxlOiguKykvKTtcbiAgaWYgKGZpbGVNYXRjaCAmJiAhcGF0aC5pc0Fic29sdXRlKGZpbGVNYXRjaFsxXSkpIHtcbiAgICBjb25zdCBhYnNvbHV0ZUZpbGVQYXRoID0gcGF0aC5qb2luKHBhdGguZGlybmFtZShwa2dQYXRoKSwgZmlsZU1hdGNoWzFdKTtcbiAgICByZXR1cm4gYGZpbGU6JHthYnNvbHV0ZUZpbGVQYXRofWA7XG4gIH1cblxuICByZXR1cm4gZGVwZW5kZW5jaWVzW21vZF07XG59XG5cbi8qKlxuICogRXh0cmFjdCB2ZXJzaW9ucyBmb3IgYSBsaXN0IG9mIG1vZHVsZXMuXG4gKlxuICogRmlyc3QgbG9va3VwIHRoZSB2ZXJzaW9uIGluIHRoZSBwYWNrYWdlLmpzb24gYW5kIHRoZW4gZmFsbGJhY2sgdG8gcmVxdWlyaW5nXG4gKiB0aGUgbW9kdWxlJ3MgcGFja2FnZS5qc29uLiBUaGUgZmFsbGJhY2sgaXMgbmVlZGVkIGZvciB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3REZXBlbmRlbmNpZXMoXG4gIHBrZ1BhdGg6IHN0cmluZyxcbiAgbW9kdWxlczogc3RyaW5nW10sXG4pOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgY29uc3QgZGVwZW5kZW5jaWVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgLy8gVXNlIHJlcXVpcmUgZm9yIGNhY2hlXG4gIGNvbnN0IHBrZ0pzb24gPSByZXF1aXJlKHBrZ1BhdGgpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcblxuICBmb3IgKGNvbnN0IG1vZCBvZiBtb2R1bGVzKSB7XG4gICAgY29uc3QgdmVyc2lvbiA9XG4gICAgICB0cnlHZXRNb2R1bGVWZXJzaW9uRnJvbVBrZyhtb2QsIHBrZ0pzb24sIHBrZ1BhdGgpID8/XG4gICAgICB0cnlHZXRNb2R1bGVWZXJzaW9uRnJvbVJlcXVpcmUobW9kKTtcbiAgICBpZiAoIXZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENhbm5vdCBleHRyYWN0IHZlcnNpb24gZm9yIG1vZHVsZSAnJHttb2R9Jy4gQ2hlY2sgdGhhdCBpdCdzIHJlZmVyZW5jZWQgaW4geW91ciBwYWNrYWdlLmpzb24gb3IgaW5zdGFsbGVkLmAsXG4gICAgICApO1xuICAgIH1cbiAgICBkZXBlbmRlbmNpZXNbbW9kXSA9IHZlcnNpb247XG4gIH1cblxuICByZXR1cm4gZGVwZW5kZW5jaWVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHNjb25maWdDb21waWxlck9wdGlvbnModHNjb25maWdQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBjb21waWxlck9wdGlvbnMgPSBleHRyYWN0VHNDb25maWcodHNjb25maWdQYXRoKTtcbiAgY29uc3QgZXhjbHVkZWRDb21waWxlck9wdGlvbnMgPSBbXG4gICAgXCJjb21wb3NpdGVcIixcbiAgICBcImNoYXJzZXRcIixcbiAgICBcIm5vRW1pdFwiLFxuICAgIFwidHNCdWlsZEluZm9GaWxlXCIsXG4gIF07XG5cbiAgY29uc3Qgb3B0aW9uczogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcbiAgICAuLi5jb21waWxlck9wdGlvbnMsXG4gICAgLy8gT3ZlcnJpZGVzXG4gICAgaW5jcmVtZW50YWw6IGZhbHNlLFxuICAgIC8vIEludGVudGlvbmFsbHkgU2V0dGluZyByb290RGlyIGFuZCBvdXREaXIsIHNvIHRoYXQgdGhlIGNvbXBpbGVkIGpzIGZpbGUgYWx3YXlzIGVuZCB1cCBuZXh0IHRvIC50cyBmaWxlLlxuICAgIHJvb3REaXI6IFwiLi9cIixcbiAgICBvdXREaXI6IFwiLi9cIixcbiAgfTtcblxuICBsZXQgY29tcGlsZXJPcHRpb25zU3RyaW5nID0gXCJcIjtcbiAgT2JqZWN0LmtleXMob3B0aW9ucylcbiAgICAuc29ydCgpXG4gICAgLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoZXhjbHVkZWRDb21waWxlck9wdGlvbnMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gb3B0aW9uc1trZXldO1xuICAgICAgY29uc3Qgb3B0aW9uID0gXCItLVwiICsga2V5O1xuICAgICAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcblxuICAgICAgaWYgKHR5cGUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIGNvbXBpbGVyT3B0aW9uc1N0cmluZyArPSBvcHRpb24gKyBcIiBcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb21waWxlck9wdGlvbnNTdHJpbmcgKz0gb3B0aW9uICsgXCIgZmFsc2UgXCI7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb21waWxlck9wdGlvbnNTdHJpbmcgKz0gb3B0aW9uICsgXCIgXCIgKyB2YWx1ZSArIFwiIFwiO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGNvbXBpbGVyT3B0aW9uc1N0cmluZyArPSBvcHRpb24gKyBcIiBcIiArIHZhbHVlLmpvaW4oXCIsXCIpICsgXCIgXCI7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgTWlzc2luZyBzdXBwb3J0IGZvciBjb21waWxlck9wdGlvbjogWyR7a2V5fV06IHsgJHt0eXBlfSwgJHt2YWx1ZX19IFxcbmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgcmV0dXJuIGNvbXBpbGVyT3B0aW9uc1N0cmluZy50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUc0NvbmZpZyhcbiAgdHNjb25maWdQYXRoOiBzdHJpbmcsXG4gIHByZXZpb3VzQ29tcGlsZXJPcHRpb25zPzogUmVjb3JkPHN0cmluZywgYW55Pixcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICBjb25zdCB7IGV4dGVuZHM6IGV4dGVuZGVkQ29uZmlnLCBjb21waWxlck9wdGlvbnMgfSA9IHJlcXVpcmUodHNjb25maWdQYXRoKTtcbiAgY29uc3QgdXBkYXRlZENvbXBpbGVyT3B0aW9ucyA9IHtcbiAgICAuLi5jb21waWxlck9wdGlvbnMsXG4gICAgLi4uKHByZXZpb3VzQ29tcGlsZXJPcHRpb25zID8/IHt9KSxcbiAgfTtcbiAgaWYgKGV4dGVuZGVkQ29uZmlnKSB7XG4gICAgcmV0dXJuIGV4dHJhY3RUc0NvbmZpZyhcbiAgICAgIHBhdGgucmVzb2x2ZSh0c2NvbmZpZ1BhdGgucmVwbGFjZSgvW15cXC9dKyQvLCBcIlwiKSwgZXh0ZW5kZWRDb25maWcpLFxuICAgICAgdXBkYXRlZENvbXBpbGVyT3B0aW9ucyxcbiAgICApO1xuICB9XG4gIHJldHVybiB1cGRhdGVkQ29tcGlsZXJPcHRpb25zO1xufVxuXG4vKipcbiAqIERldGVjdCBpZiBhIGdpdmVuIE5vZGUuanMgcnVudGltZSB1c2VzIFNES3YyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Nka1YyUnVudGltZShydW50aW1lOiBSdW50aW1lKTogYm9vbGVhbiB7XG4gIGNvbnN0IHNka1YyUnVudGltZUxpc3QgPSBbXG4gICAgUnVudGltZS5OT0RFSlMsXG4gICAgUnVudGltZS5OT0RFSlNfNF8zLFxuICAgIFJ1bnRpbWUuTk9ERUpTXzZfMTAsXG4gICAgUnVudGltZS5OT0RFSlNfOF8xMCxcbiAgICBSdW50aW1lLk5PREVKU18xMF9YLFxuICAgIFJ1bnRpbWUuTk9ERUpTXzEyX1gsXG4gICAgUnVudGltZS5OT0RFSlNfMTRfWCxcbiAgICBSdW50aW1lLk5PREVKU18xNl9YLFxuICBdO1xuXG4gIHJldHVybiBzZGtWMlJ1bnRpbWVMaXN0LnNvbWUoKHIpID0+IHtcbiAgICByZXR1cm4gci5mYW1pbHkgPT09IHJ1bnRpbWUuZmFtaWx5ICYmIHIubmFtZSA9PT0gcnVudGltZS5uYW1lO1xuICB9KTtcbn1cbiJdfQ==
@@ -1,8 +1,8 @@
1
1
  import { lambdaFunctionUrl } from "@cdktf/provider-aws";
2
2
  import { Construct } from "constructs";
3
- import { IAwsConstruct, AwsConstructBase } from "..";
3
+ import { IAwsConstruct, AwsConstructBase } from "../aws-construct";
4
4
  import { IFunction } from "./function-base";
5
- import { Duration } from "../..";
5
+ import { Duration } from "../../duration";
6
6
  import * as iam from "../iam";
7
7
  /**
8
8
  * The auth types for a function url
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.FunctionUrl = exports.HttpMethod = exports.InvokeMode = exports.FunctionUrlAuthType = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const provider_aws_1 = require("@cdktf/provider-aws");
7
- const __1 = require("..");
7
+ const aws_construct_1 = require("../aws-construct");
8
8
  const iam = require("../iam");
9
9
  /**
10
10
  * The auth types for a function url
@@ -81,7 +81,7 @@ var HttpMethod;
81
81
  *
82
82
  * @resource aws_lambda_function_url
83
83
  */
84
- class FunctionUrl extends __1.AwsConstructBase {
84
+ class FunctionUrl extends aws_construct_1.AwsConstructBase {
85
85
  get outputs() {
86
86
  return this.functionUrlOutputs;
87
87
  }
@@ -144,5 +144,5 @@ class FunctionUrl extends __1.AwsConstructBase {
144
144
  }
145
145
  exports.FunctionUrl = FunctionUrl;
146
146
  _a = JSII_RTTI_SYMBOL_1;
147
- FunctionUrl[_a] = { fqn: "terraconstructs.aws.compute.FunctionUrl", version: "0.0.25" };
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tdXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2Z1bmN0aW9uLXVybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQUF3RDtBQUV4RCwwQkFBcUQ7QUFJckQsOEJBQThCO0FBRTlCOztHQUVHO0FBQ0gsSUFBWSxtQkFVWDtBQVZELFdBQVksbUJBQW1CO0lBQzdCOztPQUVHO0lBQ0gsMENBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxvQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQVZXLG1CQUFtQixtQ0FBbkIsbUJBQW1CLFFBVTlCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFVBY1g7QUFkRCxXQUFZLFVBQVU7SUFDcEI7Ozs7T0FJRztJQUNILG1DQUFxQixDQUFBO0lBRXJCOzs7O09BSUc7SUFDSCxpREFBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBZFcsVUFBVSwwQkFBVixVQUFVLFFBY3JCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFVBaUNYO0FBakNELFdBQVksVUFBVTtJQUNwQjs7T0FFRztJQUNILHlCQUFXLENBQUE7SUFDWDs7T0FFRztJQUNILHlCQUFXLENBQUE7SUFDWDs7T0FFRztJQUNILDJCQUFhLENBQUE7SUFDYjs7T0FFRztJQUNILDJCQUFhLENBQUE7SUFDYjs7T0FFRztJQUNILCtCQUFpQixDQUFBO0lBQ2pCOztPQUVHO0lBQ0gsNkJBQWUsQ0FBQTtJQUNmOztPQUVHO0lBQ0gsaUNBQW1CLENBQUE7SUFDbkI7O09BRUc7SUFDSCx1QkFBUyxDQUFBO0FBQ1gsQ0FBQyxFQWpDVyxVQUFVLDBCQUFWLFVBQVUsUUFpQ3JCO0FBZ0lEOzs7O0dBSUc7QUFDSCxNQUFhLFdBQVksU0FBUSxvQkFBZ0I7SUFFL0MsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFtQkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1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LElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsWUFBWSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ2pDLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztZQUNyRCxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDakMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ2xDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRTtTQUNqQyxDQUFDO0lBQ0osQ0FBQzs7QUE3Rkgsa0NBOEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbGFtYmRhRnVuY3Rpb25VcmwgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IElBd3NDb25zdHJ1Y3QsIEF3c0NvbnN0cnVjdEJhc2UgfSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IElBbGlhcyB9IGZyb20gXCIuL2Z1bmN0aW9uLWFsaWFzXCI7XG5pbXBvcnQgeyBJRnVuY3Rpb24gfSBmcm9tIFwiLi9mdW5jdGlvbi1iYXNlXCI7XG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCIuLi8uLlwiO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gXCIuLi9pYW1cIjtcblxuLyoqXG4gKiBUaGUgYXV0aCB0eXBlcyBmb3IgYSBmdW5jdGlvbiB1cmxcbiAqL1xuZXhwb3J0IGVudW0gRnVuY3Rpb25VcmxBdXRoVHlwZSB7XG4gIC8qKlxuICAgKiBSZXN0cmljdCBhY2Nlc3MgdG8gYXV0aGVudGljYXRlZCBJQU0gdXNlcnMgb25seVxuICAgKi9cbiAgQVdTX0lBTSA9IFwiQVdTX0lBTVwiLFxuXG4gIC8qKlxuICAgKiBCeXBhc3MgSUFNIGF1dGhlbnRpY2F0aW9uIHRvIGNyZWF0ZSBhIHB1YmxpYyBlbmRwb2ludFxuICAgKi9cbiAgTk9ORSA9IFwiTk9ORVwiLFxufVxuXG4vKipcbiAqIFRoZSBpbnZva2UgbW9kZXMgZm9yIGEgTGFtYmRhIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBlbnVtIEludm9rZU1vZGUge1xuICAvKipcbiAgICogRGVmYXVsdCBvcHRpb24uIExhbWJkYSBpbnZva2VzIHlvdXIgZnVuY3Rpb24gdXNpbmcgdGhlIEludm9rZSBBUEkgb3BlcmF0aW9uLlxuICAgKiBJbnZvY2F0aW9uIHJlc3VsdHMgYXJlIGF2YWlsYWJsZSB3aGVuIHRoZSBwYXlsb2FkIGlzIGNvbXBsZXRlLlxuICAgKiBUaGUgbWF4aW11bSBwYXlsb2FkIHNpemUgaXMgNiBNQi5cbiAgICovXG4gIEJVRkZFUkVEID0gXCJCVUZGRVJFRFwiLFxuXG4gIC8qKlxuICAgKiBZb3VyIGZ1bmN0aW9uIHN0cmVhbXMgcGF5bG9hZCByZXN1bHRzIGFzIHRoZXkgYmVjb21lIGF2YWlsYWJsZS5cbiAgICogTGFtYmRhIGludm9rZXMgeW91ciBmdW5jdGlvbiB1c2luZyB0aGUgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtIEFQSSBvcGVyYXRpb24uXG4gICAqIFRoZSBtYXhpbXVtIHJlc3BvbnNlIHBheWxvYWQgc2l6ZSBpcyAyMCBNQiwgaG93ZXZlciwgeW91IGNhbiByZXF1ZXN0IGEgcXVvdGEgaW5jcmVhc2UuXG4gICAqL1xuICBSRVNQT05TRV9TVFJFQU0gPSBcIlJFU1BPTlNFX1NUUkVBTVwiLFxufVxuXG4vKipcbiAqIEFsbCBodHRwIHJlcXVlc3QgbWV0aG9kc1xuICovXG5leHBvcnQgZW51bSBIdHRwTWV0aG9kIHtcbiAgLyoqXG4gICAqIFRoZSBHRVQgbWV0aG9kIHJlcXVlc3RzIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIHNwZWNpZmllZCByZXNvdXJjZS5cbiAgICovXG4gIEdFVCA9IFwiR0VUXCIsXG4gIC8qKlxuICAgKiBUaGUgUFVUIG1ldGhvZCByZXBsYWNlcyBhbGwgY3VycmVudCByZXByZXNlbnRhdGlvbnMgb2YgdGhlIHRhcmdldCByZXNvdXJjZSB3aXRoIHRoZSByZXF1ZXN0IHBheWxvYWQuXG4gICAqL1xuICBQVVQgPSBcIlBVVFwiLFxuICAvKipcbiAgICogVGhlIEhFQUQgbWV0aG9kIGFza3MgZm9yIGEgcmVzcG9uc2UgaWRlbnRpY2FsIHRvIHRoYXQgb2YgYSBHRVQgcmVxdWVzdCwgYnV0IHdpdGhvdXQgdGhlIHJlc3BvbnNlIGJvZHkuXG4gICAqL1xuICBIRUFEID0gXCJIRUFEXCIsXG4gIC8qKlxuICAgKiBUaGUgUE9TVCBtZXRob2QgaXMgdXNlZCB0byBzdWJtaXQgYW4gZW50aXR5IHRvIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UsIG9mdGVuIGNhdXNpbmcgYSBjaGFuZ2UgaW4gc3RhdGUgb3Igc2lkZSBlZmZlY3RzIG9uIHRoZSBzZXJ2ZXIuXG4gICAqL1xuICBQT1NUID0gXCJQT1NUXCIsXG4gIC8qKlxuICAgKiBUaGUgREVMRVRFIG1ldGhvZCBkZWxldGVzIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UuXG4gICAqL1xuICBERUxFVEUgPSBcIkRFTEVURVwiLFxuICAvKipcbiAgICogVGhlIFBBVENIIG1ldGhvZCBhcHBsaWVzIHBhcnRpYWwgbW9kaWZpY2F0aW9ucyB0byBhIHJlc291cmNlLlxuICAgKi9cbiAgUEFUQ0ggPSBcIlBBVENIXCIsXG4gIC8qKlxuICAgKiBUaGUgT1BUSU9OUyBtZXRob2QgZGVzY3JpYmVzIHRoZSBjb21tdW5pY2F0aW9uIG9wdGlvbnMgZm9yIHRoZSB0YXJnZXQgcmVzb3VyY2UuXG4gICAqL1xuICBPUFRJT05TID0gXCJPUFRJT05TXCIsXG4gIC8qKlxuICAgKiBUaGUgd2lsZGNhcmQgZW50cnkgdG8gYWxsb3cgYWxsIG1ldGhvZHMuXG4gICAqL1xuICBBTEwgPSBcIipcIixcbn1cblxuLyoqXG4gKiBTcGVjaWZpZXMgYSBjcm9zcy1vcmlnaW4gYWNjZXNzIHByb3BlcnR5IGZvciBhIGZ1bmN0aW9uIFVSTFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uVXJsQ29yc09wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBhbGxvdyBjb29raWVzIG9yIG90aGVyIGNyZWRlbnRpYWxzIGluIHJlcXVlc3RzIHRvIHlvdXIgZnVuY3Rpb24gVVJMLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dDcmVkZW50aWFscz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEhlYWRlcnMgdGhhdCBhcmUgc3BlY2lmaWVkIGluIHRoZSBBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LUhlYWRlcnMgaGVhZGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGhlYWRlcnMgYWxsb3dlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRIZWFkZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFuIEhUVFAgbWV0aG9kIHRoYXQgeW91IGFsbG93IHRoZSBvcmlnaW4gdG8gZXhlY3V0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBbSHR0cE1ldGhvZC5BTExdXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkTWV0aG9kcz86IEh0dHBNZXRob2RbXTtcblxuICAvKipcbiAgICogT25lIG9yIG1vcmUgb3JpZ2lucyB5b3Ugd2FudCBjdXN0b21lcnMgdG8gYmUgYWJsZSB0byBhY2Nlc3MgdGhlIGJ1Y2tldCBmcm9tLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIG9yaWdpbnMgYWxsb3dlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRPcmlnaW5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE9uZSBvciBtb3JlIGhlYWRlcnMgaW4gdGhlIHJlc3BvbnNlIHRoYXQgeW91IHdhbnQgY3VzdG9tZXJzIHRvIGJlIGFibGUgdG8gYWNjZXNzIGZyb20gdGhlaXIgYXBwbGljYXRpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGhlYWRlcnMgZXhwb3NlZC5cbiAgICovXG4gIHJlYWRvbmx5IGV4cG9zZWRIZWFkZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGluIHNlY29uZHMgdGhhdCB5b3VyIGJyb3dzZXIgaXMgdG8gY2FjaGUgdGhlIHByZWZsaWdodCByZXNwb25zZSBmb3IgdGhlIHNwZWNpZmllZCByZXNvdXJjZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBCcm93c2VyIGRlZmF1bHQgb2YgNSBzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4QWdlPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogT3V0cHV0cyB0aGF0IGNhbiBiZSBleHBvc2VkIHRocm91Z2ggdGhlIGdyaWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblVybE91dHB1dHMge1xuICAvKipcbiAgICogVGhlIHVybCBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGZ1bmN0aW9uIHRoaXMgVVJMIHJlZmVycyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIExhbWJkYSBmdW5jdGlvbiBVcmxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRnVuY3Rpb25VcmwgZXh0ZW5kcyBJQXdzQ29uc3RydWN0IHtcbiAgLyoqIHN0cm9uZ2x5IHR5cGVkIEZ1bmN0aW9uVXJsT3V0cHV0cyAqL1xuICByZWFkb25seSBmdW5jdGlvblVybE91dHB1dHM6IEZ1bmN0aW9uVXJsT3V0cHV0cztcblxuICAvKipcbiAgICogVGhlIHVybCBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAYXR0cmlidXRlIEZ1bmN0aW9uVXJsXG4gICAqL1xuICByZWFkb25seSB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZnVuY3Rpb24gdGhpcyBVUkwgcmVmZXJzIHRvXG4gICAqXG4gICAqIEBhdHRyaWJ1dGUgRnVuY3Rpb25Bcm5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBpbnZva2UgdGhpcyBMYW1iZGEgRnVuY3Rpb24gVVJMXG4gICAqL1xuICBncmFudEludm9rZVVybChpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogT3B0aW9ucyB0byBhZGQgYSB1cmwgdG8gYSBMYW1iZGEgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblVybE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgYXV0aGVudGljYXRpb24gdGhhdCB5b3VyIGZ1bmN0aW9uIFVSTCB1c2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBGdW5jdGlvblVybEF1dGhUeXBlLkFXU19JQU1cbiAgICovXG4gIHJlYWRvbmx5IGF1dGhUeXBlPzogRnVuY3Rpb25VcmxBdXRoVHlwZTtcblxuICAvKipcbiAgICogVGhlIGNyb3NzLW9yaWdpbiByZXNvdXJjZSBzaGFyaW5nIChDT1JTKSBzZXR0aW5ncyBmb3IgeW91ciBmdW5jdGlvbiBVUkwuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gQ09SUyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY29ycz86IEZ1bmN0aW9uVXJsQ29yc09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGludm9jYXRpb24gbW9kZSB0aGF0IHlvdXIgTGFtYmRhIGZ1bmN0aW9uIHVzZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IEludm9rZU1vZGUuQlVGRkVSRURcbiAgICovXG4gIHJlYWRvbmx5IGludm9rZU1vZGU/OiBJbnZva2VNb2RlO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgRnVuY3Rpb25VcmxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblVybFByb3BzIGV4dGVuZHMgRnVuY3Rpb25VcmxPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0byB3aGljaCB0aGlzIHVybCByZWZlcnMuXG4gICAqIEl0IGNhbiBhbHNvIGJlIGFuIGBBbGlhc2AgYnV0IG5vdCBhIGBWZXJzaW9uYC5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uOiBJRnVuY3Rpb247XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIExhbWJkYSBmdW5jdGlvbiB1cmxcbiAqXG4gKiBAcmVzb3VyY2UgYXdzX2xhbWJkYV9mdW5jdGlvbl91cmxcbiAqL1xuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uVXJsIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElGdW5jdGlvblVybCB7XG4gIHB1YmxpYyByZWFkb25seSBmdW5jdGlvblVybE91dHB1dHM6IEZ1bmN0aW9uVXJsT3V0cHV0cztcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmZ1bmN0aW9uVXJsT3V0cHV0cztcbiAgfVxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGxhbWJkYUZ1bmN0aW9uVXJsLkxhbWJkYUZ1bmN0aW9uVXJsO1xuICAvKipcbiAgICogVGhlIHVybCBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBmdW5jdGlvbiB0aGlzIFVSTCByZWZlcnMgdG9cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmdW5jdGlvbkFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXV0aGVudGljYXRpb24gdHlwZSB1c2VkIGZvciB0aGlzIEZ1bmN0aW9uIFVSTFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF1dGhUeXBlOiBGdW5jdGlvblVybEF1dGhUeXBlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRnVuY3Rpb25VcmxQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBJZiB0aGUgdGFyZ2V0IGZ1bmN0aW9uIGlzIGFuIGFsaWFzLCB0aGVuIGl0IG11c3QgYmUgY29uZmlndXJlZCB1c2luZyB0aGUgdW5kZXJseWluZyBmdW5jdGlvblxuICAgIC8vIEFSTiwgYW5kIHRoZSBhbGlhcyBuYW1lIGFzIGEgcXVhbGlmaWVyLlxuICAgIGNvbnN0IHsgdGFyZ2V0RnVuY3Rpb24sIGFsaWFzIH0gPSB0aGlzLmluc3RhbmNlT2ZBbGlhcyhwcm9wcy5mdW5jdGlvbilcbiAgICAgID8geyB0YXJnZXRGdW5jdGlvbjogcHJvcHMuZnVuY3Rpb24ubGFtYmRhLCBhbGlhczogcHJvcHMuZnVuY3Rpb24gfVxuICAgICAgOiB7IHRhcmdldEZ1bmN0aW9uOiBwcm9wcy5mdW5jdGlvbiwgYWxpYXM6IHVuZGVmaW5lZCB9O1xuXG4gICAgdGhpcy5hdXRoVHlwZSA9IHByb3BzLmF1dGhUeXBlID8/IEZ1bmN0aW9uVXJsQXV0aFR5cGUuQVdTX0lBTTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgbGFtYmRhRnVuY3Rpb25VcmwuTGFtYmRhRnVuY3Rpb25VcmwodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBhdXRob3JpemF0aW9uVHlwZTogdGhpcy5hdXRoVHlwZSxcbiAgICAgIGNvcnM6IHByb3BzLmNvcnMgPyB0aGlzLnJlbmRlckNvcnMocHJvcHMuY29ycykgOiB1bmRlZmluZWQsXG4gICAgICBpbnZva2VNb2RlOiBwcm9wcy5pbnZva2VNb2RlLFxuICAgICAgZnVuY3Rpb25OYW1lOiB0YXJnZXRGdW5jdGlvbi5mdW5jdGlvbkFybiwgLy8gVGhlIG5hbWUgKG9yIEFSTikgb2YgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAgICAgIHF1YWxpZmllcjogYWxpYXM/LmFsaWFzTmFtZSxcbiAgICB9KTtcbiAgICAvLyBUaGUgYWxpYXNOYW1lIGlzIGEgcmVxdWlyZWQgcGh5c2ljYWwgbmFtZSwgc28gdXNpbmcgaXQgZG9lcyBub3QgaW1wbHkgYSBkZXBlbmRlbmN5LCBzbyB3ZVxuICAgIC8vIG11c3QgXCJtYW51YWxseVwiIHJlZ2lzdGVyIHRoZSBkZXBlbmRlbmN5LCBvciBlbHNlIFRGIG1heSBhdHRlbXB0IHRvIHVzZSBiZWZvcmUgaXQgZXhpc3RzLlxuICAgIGlmIChhbGlhcz8ubm9kZS5kZWZhdWx0Q2hpbGQgIT0gbnVsbCkge1xuICAgICAgdGhpcy5yZXNvdXJjZS5ub2RlLmFkZERlcGVuZGVuY3koYWxpYXMubm9kZS5kZWZhdWx0Q2hpbGQpO1xuICAgIH1cblxuICAgIHRoaXMudXJsID0gdGhpcy5yZXNvdXJjZS5mdW5jdGlvblVybDtcbiAgICB0aGlzLmZ1bmN0aW9uQXJuID0gdGhpcy5yZXNvdXJjZS5mdW5jdGlvbkFybjtcbiAgICB0aGlzLmZ1bmN0aW9uID0gcHJvcHMuZnVuY3Rpb247XG5cbiAgICBpZiAocHJvcHMuYXV0aFR5cGUgPT09IEZ1bmN0aW9uVXJsQXV0aFR5cGUuTk9ORSkge1xuICAgICAgcHJvcHMuZnVuY3Rpb24uYWRkUGVybWlzc2lvbihcImludm9rZS1mdW5jdGlvbi11cmxcIiwge1xuICAgICAgICBwcmluY2lwYWw6IG5ldyBpYW0uQW55UHJpbmNpcGFsKCksXG4gICAgICAgIGFjdGlvbjogXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25VcmxcIixcbiAgICAgICAgZnVuY3Rpb25VcmxBdXRoVHlwZTogcHJvcHMuYXV0aFR5cGUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5mdW5jdGlvblVybE91dHB1dHMgPSB7XG4gICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgZnVuY3Rpb25Bcm46IHRoaXMuZnVuY3Rpb25Bcm4sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBncmFudEludm9rZVVybChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZnVuY3Rpb24uZ3JhbnRJbnZva2VVcmwoZ3JhbnRlZSk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbmNlT2ZBbGlhcyhmbjogSUZ1bmN0aW9uKTogZm4gaXMgSUFsaWFzIHtcbiAgICByZXR1cm4gXCJhbGlhc05hbWVcIiBpbiBmbjtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQ29ycyhcbiAgICBjb3JzOiBGdW5jdGlvblVybENvcnNPcHRpb25zLFxuICApOiBsYW1iZGFGdW5jdGlvblVybC5MYW1iZGFGdW5jdGlvblVybENvcnMge1xuICAgIGlmIChcbiAgICAgIGNvcnMubWF4QWdlICYmXG4gICAgICAhY29ycy5tYXhBZ2UuaXNVbnJlc29sdmVkKCkgJiZcbiAgICAgIGNvcnMubWF4QWdlLnRvU2Vjb25kcygpID4gODY0MDBcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEZ1bmN0aW9uVXJsIENPUlMgbWF4QWdlIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gODY0MDAgc2VjcyAoZ290ICR7Y29ycy5tYXhBZ2UudG9TZWNvbmRzKCl9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBhbGxvd0NyZWRlbnRpYWxzOiBjb3JzLmFsbG93Q3JlZGVudGlhbHMsXG4gICAgICBhbGxvd0hlYWRlcnM6IGNvcnMuYWxsb3dlZEhlYWRlcnMsXG4gICAgICBhbGxvd01ldGhvZHM6IGNvcnMuYWxsb3dlZE1ldGhvZHMgPz8gW0h0dHBNZXRob2QuQUxMXSxcbiAgICAgIGFsbG93T3JpZ2luczogY29ycy5hbGxvd2VkT3JpZ2lucyxcbiAgICAgIGV4cG9zZUhlYWRlcnM6IGNvcnMuZXhwb3NlZEhlYWRlcnMsXG4gICAgICBtYXhBZ2U6IGNvcnMubWF4QWdlPy50b1NlY29uZHMoKSxcbiAgICB9O1xuICB9XG59XG4iXX0=
147
+ FunctionUrl[_a] = { fqn: "terraconstructs.aws.compute.FunctionUrl", version: "0.1.0" };
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tdXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2Z1bmN0aW9uLXVybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQUF3RDtBQUV4RCxvREFBbUU7QUFJbkUsOEJBQThCO0FBRTlCOztHQUVHO0FBQ0gsSUFBWSxtQkFVWDtBQVZELFdBQVksbUJBQW1CO0lBQzdCOztPQUVHO0lBQ0gsMENBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxvQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQVZXLG1CQUFtQixtQ0FBbkIsbUJBQW1CLFFBVTlCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFVBY1g7QUFkRCxXQUFZLFVBQVU7SUFDcEI7Ozs7T0FJRztJQUNILG1DQUFxQixDQUFBO0lBRXJCOzs7O09BSUc7SUFDSCxpREFBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBZFcsVUFBVSwwQkFBVixVQUFVLFFBY3JCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFVBaUNYO0FBakNELFdBQVksVUFBVTtJQUNwQjs7T0FFRztJQUNILHlCQUFXLENBQUE7SUFDWDs7T0FFRztJQUNILHlCQUFXLENBQUE7SUFDWDs7T0FFRztJQUNILDJCQUFhLENBQUE7SUFDYjs7T0FFRztJQUNILDJCQUFhLENBQUE7SUFDYjs7T0FFRztJQUNILCtCQUFpQixDQUFBO0lBQ2pCOztPQUVHO0lBQ0gsNkJBQWUsQ0FBQTtJQUNmOztPQUVHO0lBQ0gsaUNBQW1CLENBQUE7SUFDbkI7O09BRUc7SUFDSCx1QkFBUyxDQUFBO0FBQ1gsQ0FBQyxFQWpDVyxVQUFVLDBCQUFWLFVBQVUsUUFpQ3JCO0FBZ0lEOzs7O0dBSUc7QUFDSCxNQUFhLFdBQVksU0FBUSxnQ0FBZ0I7SUFFL0MsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFtQkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1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LElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsWUFBWSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ2pDLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztZQUNyRCxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDakMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ2xDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRTtTQUNqQyxDQUFDO0lBQ0osQ0FBQzs7QUE3Rkgsa0NBOEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbGFtYmRhRnVuY3Rpb25VcmwgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IElBd3NDb25zdHJ1Y3QsIEF3c0NvbnN0cnVjdEJhc2UgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgSUFsaWFzIH0gZnJvbSBcIi4vZnVuY3Rpb24tYWxpYXNcIjtcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gXCIuL2Z1bmN0aW9uLWJhc2VcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2R1cmF0aW9uXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuXG4vKipcbiAqIFRoZSBhdXRoIHR5cGVzIGZvciBhIGZ1bmN0aW9uIHVybFxuICovXG5leHBvcnQgZW51bSBGdW5jdGlvblVybEF1dGhUeXBlIHtcbiAgLyoqXG4gICAqIFJlc3RyaWN0IGFjY2VzcyB0byBhdXRoZW50aWNhdGVkIElBTSB1c2VycyBvbmx5XG4gICAqL1xuICBBV1NfSUFNID0gXCJBV1NfSUFNXCIsXG5cbiAgLyoqXG4gICAqIEJ5cGFzcyBJQU0gYXV0aGVudGljYXRpb24gdG8gY3JlYXRlIGEgcHVibGljIGVuZHBvaW50XG4gICAqL1xuICBOT05FID0gXCJOT05FXCIsXG59XG5cbi8qKlxuICogVGhlIGludm9rZSBtb2RlcyBmb3IgYSBMYW1iZGEgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGVudW0gSW52b2tlTW9kZSB7XG4gIC8qKlxuICAgKiBEZWZhdWx0IG9wdGlvbi4gTGFtYmRhIGludm9rZXMgeW91ciBmdW5jdGlvbiB1c2luZyB0aGUgSW52b2tlIEFQSSBvcGVyYXRpb24uXG4gICAqIEludm9jYXRpb24gcmVzdWx0cyBhcmUgYXZhaWxhYmxlIHdoZW4gdGhlIHBheWxvYWQgaXMgY29tcGxldGUuXG4gICAqIFRoZSBtYXhpbXVtIHBheWxvYWQgc2l6ZSBpcyA2IE1CLlxuICAgKi9cbiAgQlVGRkVSRUQgPSBcIkJVRkZFUkVEXCIsXG5cbiAgLyoqXG4gICAqIFlvdXIgZnVuY3Rpb24gc3RyZWFtcyBwYXlsb2FkIHJlc3VsdHMgYXMgdGhleSBiZWNvbWUgYXZhaWxhYmxlLlxuICAgKiBMYW1iZGEgaW52b2tlcyB5b3VyIGZ1bmN0aW9uIHVzaW5nIHRoZSBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW0gQVBJIG9wZXJhdGlvbi5cbiAgICogVGhlIG1heGltdW0gcmVzcG9uc2UgcGF5bG9hZCBzaXplIGlzIDIwIE1CLCBob3dldmVyLCB5b3UgY2FuIHJlcXVlc3QgYSBxdW90YSBpbmNyZWFzZS5cbiAgICovXG4gIFJFU1BPTlNFX1NUUkVBTSA9IFwiUkVTUE9OU0VfU1RSRUFNXCIsXG59XG5cbi8qKlxuICogQWxsIGh0dHAgcmVxdWVzdCBtZXRob2RzXG4gKi9cbmV4cG9ydCBlbnVtIEh0dHBNZXRob2Qge1xuICAvKipcbiAgICogVGhlIEdFVCBtZXRob2QgcmVxdWVzdHMgYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3BlY2lmaWVkIHJlc291cmNlLlxuICAgKi9cbiAgR0VUID0gXCJHRVRcIixcbiAgLyoqXG4gICAqIFRoZSBQVVQgbWV0aG9kIHJlcGxhY2VzIGFsbCBjdXJyZW50IHJlcHJlc2VudGF0aW9ucyBvZiB0aGUgdGFyZ2V0IHJlc291cmNlIHdpdGggdGhlIHJlcXVlc3QgcGF5bG9hZC5cbiAgICovXG4gIFBVVCA9IFwiUFVUXCIsXG4gIC8qKlxuICAgKiBUaGUgSEVBRCBtZXRob2QgYXNrcyBmb3IgYSByZXNwb25zZSBpZGVudGljYWwgdG8gdGhhdCBvZiBhIEdFVCByZXF1ZXN0LCBidXQgd2l0aG91dCB0aGUgcmVzcG9uc2UgYm9keS5cbiAgICovXG4gIEhFQUQgPSBcIkhFQURcIixcbiAgLyoqXG4gICAqIFRoZSBQT1NUIG1ldGhvZCBpcyB1c2VkIHRvIHN1Ym1pdCBhbiBlbnRpdHkgdG8gdGhlIHNwZWNpZmllZCByZXNvdXJjZSwgb2Z0ZW4gY2F1c2luZyBhIGNoYW5nZSBpbiBzdGF0ZSBvciBzaWRlIGVmZmVjdHMgb24gdGhlIHNlcnZlci5cbiAgICovXG4gIFBPU1QgPSBcIlBPU1RcIixcbiAgLyoqXG4gICAqIFRoZSBERUxFVEUgbWV0aG9kIGRlbGV0ZXMgdGhlIHNwZWNpZmllZCByZXNvdXJjZS5cbiAgICovXG4gIERFTEVURSA9IFwiREVMRVRFXCIsXG4gIC8qKlxuICAgKiBUaGUgUEFUQ0ggbWV0aG9kIGFwcGxpZXMgcGFydGlhbCBtb2RpZmljYXRpb25zIHRvIGEgcmVzb3VyY2UuXG4gICAqL1xuICBQQVRDSCA9IFwiUEFUQ0hcIixcbiAgLyoqXG4gICAqIFRoZSBPUFRJT05TIG1ldGhvZCBkZXNjcmliZXMgdGhlIGNvbW11bmljYXRpb24gb3B0aW9ucyBmb3IgdGhlIHRhcmdldCByZXNvdXJjZS5cbiAgICovXG4gIE9QVElPTlMgPSBcIk9QVElPTlNcIixcbiAgLyoqXG4gICAqIFRoZSB3aWxkY2FyZCBlbnRyeSB0byBhbGxvdyBhbGwgbWV0aG9kcy5cbiAgICovXG4gIEFMTCA9IFwiKlwiLFxufVxuXG4vKipcbiAqIFNwZWNpZmllcyBhIGNyb3NzLW9yaWdpbiBhY2Nlc3MgcHJvcGVydHkgZm9yIGEgZnVuY3Rpb24gVVJMXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25VcmxDb3JzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFsbG93IGNvb2tpZXMgb3Igb3RoZXIgY3JlZGVudGlhbHMgaW4gcmVxdWVzdHMgdG8geW91ciBmdW5jdGlvbiBVUkwuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhbGxvd0NyZWRlbnRpYWxzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSGVhZGVycyB0aGF0IGFyZSBzcGVjaWZpZWQgaW4gdGhlIEFjY2Vzcy1Db250cm9sLVJlcXVlc3QtSGVhZGVycyBoZWFkZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gaGVhZGVycyBhbGxvd2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZEhlYWRlcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQW4gSFRUUCBtZXRob2QgdGhhdCB5b3UgYWxsb3cgdGhlIG9yaWdpbiB0byBleGVjdXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFtIdHRwTWV0aG9kLkFMTF1cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRNZXRob2RzPzogSHR0cE1ldGhvZFtdO1xuXG4gIC8qKlxuICAgKiBPbmUgb3IgbW9yZSBvcmlnaW5zIHlvdSB3YW50IGN1c3RvbWVycyB0byBiZSBhYmxlIHRvIGFjY2VzcyB0aGUgYnVja2V0IGZyb20uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gb3JpZ2lucyBhbGxvd2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZE9yaWdpbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT25lIG9yIG1vcmUgaGVhZGVycyBpbiB0aGUgcmVzcG9uc2UgdGhhdCB5b3Ugd2FudCBjdXN0b21lcnMgdG8gYmUgYWJsZSB0byBhY2Nlc3MgZnJvbSB0aGVpciBhcHBsaWNhdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gaGVhZGVycyBleHBvc2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhwb3NlZEhlYWRlcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHRpbWUgaW4gc2Vjb25kcyB0aGF0IHlvdXIgYnJvd3NlciBpcyB0byBjYWNoZSB0aGUgcHJlZmxpZ2h0IHJlc3BvbnNlIGZvciB0aGUgc3BlY2lmaWVkIHJlc291cmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEJyb3dzZXIgZGVmYXVsdCBvZiA1IHNlY29uZHMuXG4gICAqL1xuICByZWFkb25seSBtYXhBZ2U/OiBEdXJhdGlvbjtcbn1cblxuLyoqXG4gKiBPdXRwdXRzIHRoYXQgY2FuIGJlIGV4cG9zZWQgdGhyb3VnaCB0aGUgZ3JpZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uVXJsT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBUaGUgdXJsIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZnVuY3Rpb24gdGhpcyBVUkwgcmVmZXJzIHRvXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbkFybjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgTGFtYmRhIGZ1bmN0aW9uIFVybFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElGdW5jdGlvblVybCBleHRlbmRzIElBd3NDb25zdHJ1Y3Qge1xuICAvKiogc3Ryb25nbHkgdHlwZWQgRnVuY3Rpb25VcmxPdXRwdXRzICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uVXJsT3V0cHV0czogRnVuY3Rpb25VcmxPdXRwdXRzO1xuXG4gIC8qKlxuICAgKiBUaGUgdXJsIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBhdHRyaWJ1dGUgRnVuY3Rpb25VcmxcbiAgICovXG4gIHJlYWRvbmx5IHVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBmdW5jdGlvbiB0aGlzIFVSTCByZWZlcnMgdG9cbiAgICpcbiAgICogQGF0dHJpYnV0ZSBGdW5jdGlvbkFyblxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIGludm9rZSB0aGlzIExhbWJkYSBGdW5jdGlvbiBVUkxcbiAgICovXG4gIGdyYW50SW52b2tlVXJsKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIGFkZCBhIHVybCB0byBhIExhbWJkYSBmdW5jdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uVXJsT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBhdXRoZW50aWNhdGlvbiB0aGF0IHlvdXIgZnVuY3Rpb24gVVJMIHVzZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IEZ1bmN0aW9uVXJsQXV0aFR5cGUuQVdTX0lBTVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aFR5cGU/OiBGdW5jdGlvblVybEF1dGhUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgY3Jvc3Mtb3JpZ2luIHJlc291cmNlIHNoYXJpbmcgKENPUlMpIHNldHRpbmdzIGZvciB5b3VyIGZ1bmN0aW9uIFVSTC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBDT1JTIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBjb3JzPzogRnVuY3Rpb25VcmxDb3JzT3B0aW9ucztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgaW52b2NhdGlvbiBtb2RlIHRoYXQgeW91ciBMYW1iZGEgZnVuY3Rpb24gdXNlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgSW52b2tlTW9kZS5CVUZGRVJFRFxuICAgKi9cbiAgcmVhZG9ubHkgaW52b2tlTW9kZT86IEludm9rZU1vZGU7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBGdW5jdGlvblVybFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uVXJsUHJvcHMgZXh0ZW5kcyBGdW5jdGlvblVybE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIHdoaWNoIHRoaXMgdXJsIHJlZmVycy5cbiAgICogSXQgY2FuIGFsc28gYmUgYW4gYEFsaWFzYCBidXQgbm90IGEgYFZlcnNpb25gLlxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvbjtcbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgTGFtYmRhIGZ1bmN0aW9uIHVybFxuICpcbiAqIEByZXNvdXJjZSBhd3NfbGFtYmRhX2Z1bmN0aW9uX3VybFxuICovXG5leHBvcnQgY2xhc3MgRnVuY3Rpb25VcmwgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSUZ1bmN0aW9uVXJsIHtcbiAgcHVibGljIHJlYWRvbmx5IGZ1bmN0aW9uVXJsT3V0cHV0czogRnVuY3Rpb25VcmxPdXRwdXRzO1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZnVuY3Rpb25VcmxPdXRwdXRzO1xuICB9XG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogbGFtYmRhRnVuY3Rpb25VcmwuTGFtYmRhRnVuY3Rpb25Vcmw7XG4gIC8qKlxuICAgKiBUaGUgdXJsIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGZ1bmN0aW9uIHRoaXMgVVJMIHJlZmVycyB0b1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHVzZWQgZm9yIHRoaXMgRnVuY3Rpb24gVVJMXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXV0aFR5cGU6IEZ1bmN0aW9uVXJsQXV0aFR5cGU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBmdW5jdGlvbjogSUZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBGdW5jdGlvblVybFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIElmIHRoZSB0YXJnZXQgZnVuY3Rpb24gaXMgYW4gYWxpYXMsIHRoZW4gaXQgbXVzdCBiZSBjb25maWd1cmVkIHVzaW5nIHRoZSB1bmRlcmx5aW5nIGZ1bmN0aW9uXG4gICAgLy8gQVJOLCBhbmQgdGhlIGFsaWFzIG5hbWUgYXMgYSBxdWFsaWZpZXIuXG4gICAgY29uc3QgeyB0YXJnZXRGdW5jdGlvbiwgYWxpYXMgfSA9IHRoaXMuaW5zdGFuY2VPZkFsaWFzKHByb3BzLmZ1bmN0aW9uKVxuICAgICAgPyB7IHRhcmdldEZ1bmN0aW9uOiBwcm9wcy5mdW5jdGlvbi5sYW1iZGEsIGFsaWFzOiBwcm9wcy5mdW5jdGlvbiB9XG4gICAgICA6IHsgdGFyZ2V0RnVuY3Rpb246IHByb3BzLmZ1bmN0aW9uLCBhbGlhczogdW5kZWZpbmVkIH07XG5cbiAgICB0aGlzLmF1dGhUeXBlID0gcHJvcHMuYXV0aFR5cGUgPz8gRnVuY3Rpb25VcmxBdXRoVHlwZS5BV1NfSUFNO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBsYW1iZGFGdW5jdGlvblVybC5MYW1iZGFGdW5jdGlvblVybCh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIGF1dGhvcml6YXRpb25UeXBlOiB0aGlzLmF1dGhUeXBlLFxuICAgICAgY29yczogcHJvcHMuY29ycyA/IHRoaXMucmVuZGVyQ29ycyhwcm9wcy5jb3JzKSA6IHVuZGVmaW5lZCxcbiAgICAgIGludm9rZU1vZGU6IHByb3BzLmludm9rZU1vZGUsXG4gICAgICBmdW5jdGlvbk5hbWU6IHRhcmdldEZ1bmN0aW9uLmZ1bmN0aW9uQXJuLCAvLyBUaGUgbmFtZSAob3IgQVJOKSBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICAgICAgcXVhbGlmaWVyOiBhbGlhcz8uYWxpYXNOYW1lLFxuICAgIH0pO1xuICAgIC8vIFRoZSBhbGlhc05hbWUgaXMgYSByZXF1aXJlZCBwaHlzaWNhbCBuYW1lLCBzbyB1c2luZyBpdCBkb2VzIG5vdCBpbXBseSBhIGRlcGVuZGVuY3ksIHNvIHdlXG4gICAgLy8gbXVzdCBcIm1hbnVhbGx5XCIgcmVnaXN0ZXIgdGhlIGRlcGVuZGVuY3ksIG9yIGVsc2UgVEYgbWF5IGF0dGVtcHQgdG8gdXNlIGJlZm9yZSBpdCBleGlzdHMuXG4gICAgaWYgKGFsaWFzPy5ub2RlLmRlZmF1bHRDaGlsZCAhPSBudWxsKSB7XG4gICAgICB0aGlzLnJlc291cmNlLm5vZGUuYWRkRGVwZW5kZW5jeShhbGlhcy5ub2RlLmRlZmF1bHRDaGlsZCk7XG4gICAgfVxuXG4gICAgdGhpcy51cmwgPSB0aGlzLnJlc291cmNlLmZ1bmN0aW9uVXJsO1xuICAgIHRoaXMuZnVuY3Rpb25Bcm4gPSB0aGlzLnJlc291cmNlLmZ1bmN0aW9uQXJuO1xuICAgIHRoaXMuZnVuY3Rpb24gPSBwcm9wcy5mdW5jdGlvbjtcblxuICAgIGlmIChwcm9wcy5hdXRoVHlwZSA9PT0gRnVuY3Rpb25VcmxBdXRoVHlwZS5OT05FKSB7XG4gICAgICBwcm9wcy5mdW5jdGlvbi5hZGRQZXJtaXNzaW9uKFwiaW52b2tlLWZ1bmN0aW9uLXVybFwiLCB7XG4gICAgICAgIHByaW5jaXBhbDogbmV3IGlhbS5BbnlQcmluY2lwYWwoKSxcbiAgICAgICAgYWN0aW9uOiBcImxhbWJkYTpJbnZva2VGdW5jdGlvblVybFwiLFxuICAgICAgICBmdW5jdGlvblVybEF1dGhUeXBlOiBwcm9wcy5hdXRoVHlwZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmZ1bmN0aW9uVXJsT3V0cHV0cyA9IHtcbiAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICBmdW5jdGlvbkFybjogdGhpcy5mdW5jdGlvbkFybixcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdyYW50SW52b2tlVXJsKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5mdW5jdGlvbi5ncmFudEludm9rZVVybChncmFudGVlKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zdGFuY2VPZkFsaWFzKGZuOiBJRnVuY3Rpb24pOiBmbiBpcyBJQWxpYXMge1xuICAgIHJldHVybiBcImFsaWFzTmFtZVwiIGluIGZuO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJDb3JzKFxuICAgIGNvcnM6IEZ1bmN0aW9uVXJsQ29yc09wdGlvbnMsXG4gICk6IGxhbWJkYUZ1bmN0aW9uVXJsLkxhbWJkYUZ1bmN0aW9uVXJsQ29ycyB7XG4gICAgaWYgKFxuICAgICAgY29ycy5tYXhBZ2UgJiZcbiAgICAgICFjb3JzLm1heEFnZS5pc1VucmVzb2x2ZWQoKSAmJlxuICAgICAgY29ycy5tYXhBZ2UudG9TZWNvbmRzKCkgPiA4NjQwMFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRnVuY3Rpb25VcmwgQ09SUyBtYXhBZ2Ugc2hvdWxkIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA4NjQwMCBzZWNzIChnb3QgJHtjb3JzLm1heEFnZS50b1NlY29uZHMoKX0pYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFsbG93Q3JlZGVudGlhbHM6IGNvcnMuYWxsb3dDcmVkZW50aWFscyxcbiAgICAgIGFsbG93SGVhZGVyczogY29ycy5hbGxvd2VkSGVhZGVycyxcbiAgICAgIGFsbG93TWV0aG9kczogY29ycy5hbGxvd2VkTWV0aG9kcyA/PyBbSHR0cE1ldGhvZC5BTExdLFxuICAgICAgYWxsb3dPcmlnaW5zOiBjb3JzLmFsbG93ZWRPcmlnaW5zLFxuICAgICAgZXhwb3NlSGVhZGVyczogY29ycy5leHBvc2VkSGVhZGVycyxcbiAgICAgIG1heEFnZTogY29ycy5tYXhBZ2U/LnRvU2Vjb25kcygpLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,8 +1,9 @@
1
1
  import { lambdaFunction, cloudwatchLogGroup, securityGroup, lambdaEventSourceMapping } from "@cdktf/provider-aws";
2
2
  import { IResolvable } from "cdktf";
3
3
  import { Construct } from "constructs";
4
- import { RetentionDays } from "..";
4
+ import { RetentionDays } from "../log-retention";
5
5
  import { Architecture } from "./architecture";
6
+ import { Code, CodeConfig } from "./code";
6
7
  import { EventInvokeConfigOptions } from "./event-invoke-config";
7
8
  import { IEventSourceMapping } from "./event-source-mapping";
8
9
  import { AliasOptions, Alias } from "./function-alias";
@@ -12,6 +13,7 @@ import { VpcConfig } from "./function-vpc-config.generated";
12
13
  import { Duration } from "../../duration";
13
14
  import * as iam from "../iam";
14
15
  import { IQueue } from "../notify";
16
+ import { Runtime } from "./runtime";
15
17
  export interface FunctionOutputs {
16
18
  /**
17
19
  * AWS Lambda function name
@@ -34,7 +36,7 @@ export interface FunctionOutputs {
34
36
  */
35
37
  readonly defaultSecurityGroup?: string | IResolvable;
36
38
  }
37
- export interface FunctionProps extends EventInvokeConfigOptions {
39
+ export interface FunctionOptions extends EventInvokeConfigOptions {
38
40
  /**
39
41
  * Force function name (for adoption of existing resources).
40
42
  *
@@ -211,6 +213,35 @@ export interface FunctionProps extends EventInvokeConfigOptions {
211
213
  */
212
214
  readonly publish?: boolean | IResolvable;
213
215
  }
216
+ export interface FunctionProps extends FunctionOptions {
217
+ /**
218
+ * The runtime environment for the Lambda function that you are uploading.
219
+ * For valid values, see the Runtime property in the AWS Lambda Developer
220
+ * Guide.
221
+ *
222
+ * Use `Runtime.FROM_IMAGE` when defining a function from a Docker image.
223
+ */
224
+ readonly runtime: Runtime;
225
+ /**
226
+ * The source code of your Lambda function. You can point to a file in an
227
+ * Amazon Simple Storage Service (Amazon S3) bucket or specify your source
228
+ * code as inline text.
229
+ */
230
+ readonly code: Code;
231
+ /**
232
+ * The name of the method within your code that Lambda calls to execute
233
+ * your function. The format includes the file name. It can also include
234
+ * namespaces and other qualifiers, depending on the runtime.
235
+ * For more information, see https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html.
236
+ *
237
+ * Use `Handler.FROM_IMAGE` when defining a function from a Docker image.
238
+ *
239
+ * NOTE: If you specify your source code as inline text by specifying the
240
+ * ZipFile property within the Code property, specify index.function_name as
241
+ * the handler.
242
+ */
243
+ readonly handler: string;
244
+ }
214
245
  /**
215
246
  * Provides a Lambda Function resource. Lambda allows you to trigger execution
216
247
  * of code in response to events in AWS, enabling serverless backend solutions.
@@ -259,8 +290,6 @@ export declare class LambdaFunction extends LambdaFunctionBase implements IFunct
259
290
  get outputs(): Record<string, any>;
260
291
  /**
261
292
  * The name of the function.
262
- *
263
- * (not a TOKEN)
264
293
  */
265
294
  readonly functionName: string;
266
295
  /**
@@ -490,3 +519,4 @@ export interface IEventSourceDlq {
490
519
  */
491
520
  bind(target: IEventSourceMapping, targetHandler: IFunction): DlqDestinationConfig;
492
521
  }
522
+ export declare function verifyCodeConfig(code: CodeConfig, props: FunctionProps): void;