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,184 @@
1
+ import { Construct } from "constructs";
2
+ import { AwsConstructBase, AwsConstructProps, IAwsConstruct } from "..";
3
+ import { IRestApi } from "./restapi";
4
+ import { IStage } from "./stage";
5
+ import { QuotaSettings, ThrottleSettings, UsagePlan, UsagePlanPerApiStage } from "./usage-plan";
6
+ import * as iam from "../iam";
7
+ /**
8
+ * API keys are alphanumeric string values that you distribute to
9
+ * app developer customers to grant access to your API
10
+ */
11
+ export interface IApiKey extends IAwsConstruct {
12
+ /**
13
+ * The API key ID.
14
+ * @attribute
15
+ */
16
+ readonly keyId: string;
17
+ /**
18
+ * The API key ARN.
19
+ */
20
+ readonly keyArn: string;
21
+ }
22
+ /**
23
+ * The options for creating an API Key.
24
+ */
25
+ export interface ApiKeyOptions extends AwsConstructProps {
26
+ /**
27
+ * A name for the API key. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the API key name.
28
+ * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-name
29
+ * @default automically generated name
30
+ */
31
+ readonly apiKeyName?: string;
32
+ /**
33
+ * The value of the API key. Must be at least 20 characters long.
34
+ * @link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-value
35
+ * @default none
36
+ */
37
+ readonly value?: string;
38
+ /**
39
+ * A description of the purpose of the API key.
40
+ * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-description
41
+ * @default none
42
+ */
43
+ readonly description?: string;
44
+ }
45
+ /**
46
+ * ApiKey Properties.
47
+ */
48
+ export interface ApiKeyProps extends ApiKeyOptions {
49
+ /**
50
+ * A list of resources this api key is associated with.
51
+ * Note: This property is not used by the ApiKey construct itself as direct stage association is deprecated.
52
+ * Stage association is handled via Usage Plans.
53
+ * It is kept for compatibility with RateLimitedApiKeyProps.
54
+ * @default none
55
+ * @deprecated - use `stages` instead, and associate via a UsagePlan.
56
+ */
57
+ readonly resources?: IRestApi[];
58
+ /**
59
+ * A list of Stages this api key is associated with.
60
+ * Note: This property is not used by the ApiKey construct itself as direct stage association is deprecated.
61
+ * Stage association is handled via Usage Plans.
62
+ * It is kept for compatibility with RateLimitedApiKeyProps.
63
+ * @default - the api key is not associated with any stages
64
+ */
65
+ readonly stages?: IStage[];
66
+ /**
67
+ * An AWS Marketplace customer identifier to use when integrating with the AWS SaaS Marketplace.
68
+ * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-customerid
69
+ * @default none
70
+ */
71
+ readonly customerId?: string;
72
+ /**
73
+ * Indicates whether the API key can be used by clients.
74
+ * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-enabled
75
+ * @default true
76
+ */
77
+ readonly enabled?: boolean;
78
+ /**
79
+ * Specifies whether the key identifier is distinct from the created API key value.
80
+ * This property is deprecated and not supported in the TerraConstruct.
81
+ * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-generatedistinctid
82
+ * @default false
83
+ * @deprecated This property is deprecated and not used.
84
+ */
85
+ readonly generateDistinctId?: boolean;
86
+ }
87
+ /**
88
+ * Base implementation that is common to the various implementations of IApiKey
89
+ */
90
+ declare abstract class ApiKeyBase extends AwsConstructBase implements IApiKey {
91
+ abstract readonly keyId: string;
92
+ abstract readonly keyArn: string;
93
+ get outputs(): Record<string, any>;
94
+ /**
95
+ * Permits the IAM principal all read operations through this key
96
+ *
97
+ * @param grantee The principal to grant access to
98
+ */
99
+ grantRead(grantee: iam.IGrantable): iam.Grant;
100
+ /**
101
+ * Permits the IAM principal all write operations through this key
102
+ *
103
+ * @param grantee The principal to grant access to
104
+ */
105
+ grantWrite(grantee: iam.IGrantable): iam.Grant;
106
+ /**
107
+ * Permits the IAM principal all read and write operations through this key
108
+ *
109
+ * @param grantee The principal to grant access to
110
+ */
111
+ grantReadWrite(grantee: iam.IGrantable): iam.Grant;
112
+ }
113
+ /**
114
+ * An API Gateway ApiKey.
115
+ *
116
+ * An ApiKey can be distributed to API clients that are executing requests
117
+ * for Method resources that require an Api Key.
118
+ *
119
+ * @resource aws_api_gateway_api_key
120
+ */
121
+ export declare class ApiKey extends ApiKeyBase {
122
+ /**
123
+ * Import an ApiKey by its Id
124
+ */
125
+ static fromApiKeyId(scope: Construct, id: string, apiKeyId: string): IApiKey;
126
+ readonly keyId: string;
127
+ readonly keyArn: string;
128
+ /**
129
+ * Auto created Usage Plan for backwards compatibility.
130
+ * Since August 11, 2016 usage plans are now required to associate an API key with an API stage.
131
+ *
132
+ * Note: This property may be udnefined as direct stage association is deprecated.
133
+ * Stage association is handled via Usage Plans instead.
134
+ * It is kept for compatibility with RateLimitedApiKeyProps.
135
+ */
136
+ readonly usagePlan?: UsagePlan;
137
+ private readonly resource;
138
+ constructor(scope: Construct, id: string, props?: ApiKeyProps);
139
+ /**
140
+ * Render the stage keys for the ApiKey.
141
+ * This method handles the association of the ApiKey with either
142
+ * RestApi resources or Stages, depending on the provided parameters.
143
+ *
144
+ * @param resources - Optional list of RestApi resources to associate with the ApiKey.
145
+ * @param stages - Optional list of Stages to associate with the ApiKey.
146
+ */
147
+ private renderStageKeys;
148
+ }
149
+ /**
150
+ * RateLimitedApiKey properties.
151
+ */
152
+ export interface RateLimitedApiKeyProps extends ApiKeyProps {
153
+ /**
154
+ * API Stages to be associated with the RateLimitedApiKey.
155
+ * If you already prepared UsagePlan resource explicitly, you should use `stages` property.
156
+ * If you prefer to prepare UsagePlan resource implicitly via RateLimitedApiKey,
157
+ * or you should specify throttle settings at each stage individually, you should use `apiStages` property.
158
+ *
159
+ * @default none
160
+ */
161
+ readonly apiStages?: UsagePlanPerApiStage[];
162
+ /**
163
+ * Number of requests clients can make in a given time period.
164
+ * @default none
165
+ */
166
+ readonly quota?: QuotaSettings;
167
+ /**
168
+ * Overall throttle settings for the API.
169
+ * @default none
170
+ */
171
+ readonly throttle?: ThrottleSettings;
172
+ }
173
+ /**
174
+ * An API Gateway ApiKey, for which a rate limiting configuration can be specified.
175
+ *
176
+ * @resource aws_api_gateway_api_key
177
+ */
178
+ export declare class RateLimitedApiKey extends ApiKeyBase {
179
+ readonly keyId: string;
180
+ readonly keyArn: string;
181
+ readonly apiKey: ApiKey;
182
+ constructor(scope: Construct, id: string, props?: RateLimitedApiKeyProps);
183
+ }
184
+ export {};
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ var _a, _b;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.RateLimitedApiKey = exports.ApiKey = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const provider_aws_1 = require("@cdktf/provider-aws");
7
+ const cdktf_1 = require("cdktf");
8
+ const __1 = require("..");
9
+ const usage_plan_1 = require("./usage-plan");
10
+ const iam = require("../iam");
11
+ /**
12
+ * Base implementation that is common to the various implementations of IApiKey
13
+ */
14
+ class ApiKeyBase extends __1.AwsConstructBase {
15
+ get outputs() {
16
+ return {
17
+ keyId: this.keyId,
18
+ keyArn: this.keyArn,
19
+ };
20
+ }
21
+ /**
22
+ * Permits the IAM principal all read operations through this key
23
+ *
24
+ * @param grantee The principal to grant access to
25
+ */
26
+ grantRead(grantee) {
27
+ return iam.Grant.addToPrincipal({
28
+ grantee,
29
+ actions: readPermissions,
30
+ resourceArns: [this.keyArn],
31
+ });
32
+ }
33
+ /**
34
+ * Permits the IAM principal all write operations through this key
35
+ *
36
+ * @param grantee The principal to grant access to
37
+ */
38
+ grantWrite(grantee) {
39
+ return iam.Grant.addToPrincipal({
40
+ grantee,
41
+ actions: writePermissions,
42
+ resourceArns: [this.keyArn],
43
+ });
44
+ }
45
+ /**
46
+ * Permits the IAM principal all read and write operations through this key
47
+ *
48
+ * @param grantee The principal to grant access to
49
+ */
50
+ grantReadWrite(grantee) {
51
+ return iam.Grant.addToPrincipal({
52
+ grantee,
53
+ actions: [...readPermissions, ...writePermissions],
54
+ resourceArns: [this.keyArn],
55
+ });
56
+ }
57
+ }
58
+ /**
59
+ * An API Gateway ApiKey.
60
+ *
61
+ * An ApiKey can be distributed to API clients that are executing requests
62
+ * for Method resources that require an Api Key.
63
+ *
64
+ * @resource aws_api_gateway_api_key
65
+ */
66
+ class ApiKey extends ApiKeyBase {
67
+ /**
68
+ * Import an ApiKey by its Id
69
+ */
70
+ static fromApiKeyId(scope, id, apiKeyId) {
71
+ class Import extends ApiKeyBase {
72
+ constructor() {
73
+ super(...arguments);
74
+ this.keyId = apiKeyId;
75
+ this.keyArn = this.stack.formatArn({
76
+ service: "apigateway",
77
+ account: "", // API Key ARNs typically don't include account ID in this segment
78
+ resource: "/apikeys",
79
+ arnFormat: __1.ArnFormat.SLASH_RESOURCE_NAME,
80
+ resourceName: apiKeyId,
81
+ });
82
+ }
83
+ }
84
+ return new Import(scope, id);
85
+ }
86
+ constructor(scope, id, props = {}) {
87
+ super(scope, id, props);
88
+ const name = props.apiKeyName ?? this.stack.uniqueResourceName(this);
89
+ this.resource = new provider_aws_1.apiGatewayApiKey.ApiGatewayApiKey(this, "Resource", {
90
+ name,
91
+ customerId: props.customerId,
92
+ description: props.description,
93
+ enabled: props.enabled ?? true,
94
+ value: props.value,
95
+ });
96
+ this.keyId = this.resource.id;
97
+ this.keyArn = this.resource.arn;
98
+ // copy legacy renderStageKeys logic from AWSCDK for ease of migration.
99
+ this.usagePlan = this.renderStageKeys(props.resources, props.stages);
100
+ }
101
+ /**
102
+ * Render the stage keys for the ApiKey.
103
+ * This method handles the association of the ApiKey with either
104
+ * RestApi resources or Stages, depending on the provided parameters.
105
+ *
106
+ * @param resources - Optional list of RestApi resources to associate with the ApiKey.
107
+ * @param stages - Optional list of Stages to associate with the ApiKey.
108
+ */
109
+ renderStageKeys(resources, stages) {
110
+ if (!resources && !stages) {
111
+ return undefined;
112
+ }
113
+ if (resources && stages) {
114
+ // throw new ValidationError(
115
+ throw new Error(`Only one of "resources" or "stages" should be provided. (${this.node.path})`);
116
+ }
117
+ if (resources) {
118
+ // Handle Deprecated case of associating ApiKey with RestApi resources
119
+ // This creates a single Usage Plan for all stages, but is deprecated.
120
+ const apiStages = [];
121
+ resources.forEach((resource) => {
122
+ const restApi = resource;
123
+ if (!restApi.deploymentStage) {
124
+ // throw new ValidationError(
125
+ throw new Error('Cannot add an ApiKey to a RestApi that does not contain a "deploymentStage".\n' +
126
+ "Either set the RestApi.deploymentStage or create an ApiKey from a Stage");
127
+ }
128
+ apiStages.push({
129
+ api: restApi,
130
+ stage: restApi.deploymentStage,
131
+ });
132
+ });
133
+ const usagePlan = new usage_plan_1.UsagePlan(this, "UsagePlan", {
134
+ apiStages,
135
+ name: `${this.resource.nameInput}-usage-plan`,
136
+ description: `Usage Plan for ${this.friendlyName}`,
137
+ });
138
+ usagePlan.addApiKey(this);
139
+ return usagePlan;
140
+ }
141
+ if (stages && stages.length > 0) {
142
+ // Handle Deprecated case of associating ApiKey with multiple Stages
143
+ // This creates a single Usage Plan for all stages, but is also deprecated.
144
+ const usagePlan = new usage_plan_1.UsagePlan(this, `UsagePlan`, {
145
+ apiStages: stages.map((stage) => ({
146
+ api: stage.restApi,
147
+ // NOTE: UsagePlanPerApiStage expects Stage instead of IStage
148
+ // https://github.com/aws/aws-cdk/blob/v2.186.0/packages/aws-cdk-lib/aws-apigateway/lib/usage-plan.ts#L97-L102
149
+ stage: stage,
150
+ })),
151
+ });
152
+ usagePlan.addApiKey(this);
153
+ return usagePlan;
154
+ }
155
+ return undefined;
156
+ }
157
+ }
158
+ exports.ApiKey = ApiKey;
159
+ _a = JSII_RTTI_SYMBOL_1;
160
+ ApiKey[_a] = { fqn: "terraconstructs.aws.compute.ApiKey", version: "0.1.0" };
161
+ /**
162
+ * An API Gateway ApiKey, for which a rate limiting configuration can be specified.
163
+ *
164
+ * @resource aws_api_gateway_api_key
165
+ */
166
+ class RateLimitedApiKey extends ApiKeyBase {
167
+ constructor(scope, id, props = {}) {
168
+ super(scope, id, props);
169
+ this.apiKey = new ApiKey(this, "Resource", props);
170
+ if (props.apiStages || props.quota || props.throttle) {
171
+ if (this.apiKey.usagePlan) {
172
+ // NOTE: Creating an additional usage plan is default AWSCDK behavior.
173
+ // https://github.com/aws/aws-cdk/blob/v2.186.0/packages/aws-cdk-lib/aws-apigateway/lib/api-key.ts#L268-L275
174
+ cdktf_1.Annotations.of(this.apiKey).addWarning("UsagePlan is already created for this ApiKey. A separate UsagePlan with rate limiting will be created separately");
175
+ }
176
+ const usagePlan = new usage_plan_1.UsagePlan(this, "RateLimitedUsagePlan", {
177
+ apiStages: props.apiStages,
178
+ quota: props.quota,
179
+ throttle: props.throttle,
180
+ });
181
+ usagePlan.addApiKey(this.apiKey);
182
+ }
183
+ this.keyId = this.apiKey.keyId;
184
+ this.keyArn = this.apiKey.keyArn;
185
+ }
186
+ }
187
+ exports.RateLimitedApiKey = RateLimitedApiKey;
188
+ _b = JSII_RTTI_SYMBOL_1;
189
+ RateLimitedApiKey[_b] = { fqn: "terraconstructs.aws.compute.RateLimitedApiKey", version: "0.1.0" };
190
+ const readPermissions = ["apigateway:GET"];
191
+ const writePermissions = [
192
+ "apigateway:POST",
193
+ "apigateway:PUT",
194
+ "apigateway:PATCH",
195
+ "apigateway:DELETE",
196
+ ];
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9hcGkta2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0RBQXVEO0FBQ3ZELGlDQUFvQztBQUVwQywwQkFLWTtBQUdaLDZDQUtzQjtBQUN0Qiw4QkFBOEI7QUE0RjlCOztHQUVHO0FBQ0gsTUFBZSxVQUFXLFNBQVEsb0JBQWdCO0lBSWhELElBQVcsT0FBTztRQUNoQixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxTQUFTLENBQUMsT0FBdUI7UUFDdEMsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUM5QixPQUFPO1lBQ1AsT0FBTyxFQUFFLGVBQWU7WUFDeEIsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFVBQVUsQ0FBQyxPQUF1QjtRQUN2QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzlCLE9BQU87WUFDUCxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsT0FBdUI7UUFDM0MsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUM5QixPQUFPO1lBQ1AsT0FBTyxFQUFFLENBQUMsR0FBRyxlQUFlLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQztZQUNsRCxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUVE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QyxRQUFRLEVBQUUsQ0FBQztZQUNyRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQzFCLHNFQUFzRTtnQkFDdEUsNEdBQTRHO2dCQUM1RyxtQkFBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUNwQyxrSEFBa0gsQ0FDbkgsQ0FBQztZQUNKLENBQUM7WUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLHNCQUFTLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO2dCQUM1RCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7Z0JBQzFCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDbEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO2FBQ3pCLENBQUMsQ0FBQztZQUNILFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDbkMsQ0FBQzs7QUFoQ0gsOENBaUNDOzs7QUFFRCxNQUFNLGVBQWUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFM0MsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixpQkFBaUI7SUFDakIsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQixtQkFBbUI7Q0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwaUdhdGV3YXlBcGlLZXkgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQW5ub3RhdGlvbnMgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBBcm5Gb3JtYXQsXG4gIEF3c0NvbnN0cnVjdEJhc2UsXG4gIEF3c0NvbnN0cnVjdFByb3BzLFxuICBJQXdzQ29uc3RydWN0LFxufSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IElSZXN0QXBpIH0gZnJvbSBcIi4vcmVzdGFwaVwiO1xuaW1wb3J0IHsgSVN0YWdlLCBTdGFnZSB9IGZyb20gXCIuL3N0YWdlXCI7XG5pbXBvcnQge1xuICBRdW90YVNldHRpbmdzLFxuICBUaHJvdHRsZVNldHRpbmdzLFxuICBVc2FnZVBsYW4sXG4gIFVzYWdlUGxhblBlckFwaVN0YWdlLFxufSBmcm9tIFwiLi91c2FnZS1wbGFuXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuXG4vKipcbiAqIEFQSSBrZXlzIGFyZSBhbHBoYW51bWVyaWMgc3RyaW5nIHZhbHVlcyB0aGF0IHlvdSBkaXN0cmlidXRlIHRvXG4gKiBhcHAgZGV2ZWxvcGVyIGN1c3RvbWVycyB0byBncmFudCBhY2Nlc3MgdG8geW91ciBBUElcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQXBpS2V5IGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgQVBJIGtleSBJRC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkga2V5SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFQSSBrZXkgQVJOLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5QXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIG9wdGlvbnMgZm9yIGNyZWF0aW5nIGFuIEFQSSBLZXkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpS2V5T3B0aW9ucyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIEEgbmFtZSBmb3IgdGhlIEFQSSBrZXkuIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgbmFtZSwgQVdTIENsb3VkRm9ybWF0aW9uIGdlbmVyYXRlcyBhIHVuaXF1ZSBwaHlzaWNhbCBJRCBhbmQgdXNlcyB0aGF0IElEIGZvciB0aGUgQVBJIGtleSBuYW1lLlxuICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1hcGlnYXRld2F5LWFwaWtleS5odG1sI2Nmbi1hcGlnYXRld2F5LWFwaWtleS1uYW1lXG4gICAqIEBkZWZhdWx0IGF1dG9taWNhbGx5IGdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSBhcGlLZXlOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIEFQSSBrZXkuIE11c3QgYmUgYXQgbGVhc3QgMjAgY2hhcmFjdGVycyBsb25nLlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtYXBpZ2F0ZXdheS1hcGlrZXkuaHRtbCNjZm4tYXBpZ2F0ZXdheS1hcGlrZXktdmFsdWVcbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gb2YgdGhlIHB1cnBvc2Ugb2YgdGhlIEFQSSBrZXkuXG4gICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWFwaWdhdGV3YXktYXBpa2V5Lmh0bWwjY2ZuLWFwaWdhdGV3YXktYXBpa2V5LWRlc2NyaXB0aW9uXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFwaUtleSBQcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaUtleVByb3BzIGV4dGVuZHMgQXBpS2V5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgcmVzb3VyY2VzIHRoaXMgYXBpIGtleSBpcyBhc3NvY2lhdGVkIHdpdGguXG4gICAqIE5vdGU6IFRoaXMgcHJvcGVydHkgaXMgbm90IHVzZWQgYnkgdGhlIEFwaUtleSBjb25zdHJ1Y3QgaXRzZWxmIGFzIGRpcmVjdCBzdGFnZSBhc3NvY2lhdGlvbiBpcyBkZXByZWNhdGVkLlxuICAgKiBTdGFnZSBhc3NvY2lhdGlvbiBpcyBoYW5kbGVkIHZpYSBVc2FnZSBQbGFucy5cbiAgICogSXQgaXMga2VwdCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFJhdGVMaW1pdGVkQXBpS2V5UHJvcHMuXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICogQGRlcHJlY2F0ZWQgLSB1c2UgYHN0YWdlc2AgaW5zdGVhZCwgYW5kIGFzc29jaWF0ZSB2aWEgYSBVc2FnZVBsYW4uXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZXM/OiBJUmVzdEFwaVtdO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgU3RhZ2VzIHRoaXMgYXBpIGtleSBpcyBhc3NvY2lhdGVkIHdpdGguXG4gICAqIE5vdGU6IFRoaXMgcHJvcGVydHkgaXMgbm90IHVzZWQgYnkgdGhlIEFwaUtleSBjb25zdHJ1Y3QgaXRzZWxmIGFzIGRpcmVjdCBzdGFnZSBhc3NvY2lhdGlvbiBpcyBkZXByZWNhdGVkLlxuICAgKiBTdGFnZSBhc3NvY2lhdGlvbiBpcyBoYW5kbGVkIHZpYSBVc2FnZSBQbGFucy5cbiAgICogSXQgaXMga2VwdCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFJhdGVMaW1pdGVkQXBpS2V5UHJvcHMuXG4gICAqIEBkZWZhdWx0IC0gdGhlIGFwaSBrZXkgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBhbnkgc3RhZ2VzXG4gICAqL1xuICByZWFkb25seSBzdGFnZXM/OiBJU3RhZ2VbXTtcblxuICAvKipcbiAgICogQW4gQVdTIE1hcmtldHBsYWNlIGN1c3RvbWVyIGlkZW50aWZpZXIgdG8gdXNlIHdoZW4gaW50ZWdyYXRpbmcgd2l0aCB0aGUgQVdTIFNhYVMgTWFya2V0cGxhY2UuXG4gICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWFwaWdhdGV3YXktYXBpa2V5Lmh0bWwjY2ZuLWFwaWdhdGV3YXktYXBpa2V5LWN1c3RvbWVyaWRcbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tZXJJZD86IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIEFQSSBrZXkgY2FuIGJlIHVzZWQgYnkgY2xpZW50cy5cbiAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtYXBpZ2F0ZXdheS1hcGlrZXkuaHRtbCNjZm4tYXBpZ2F0ZXdheS1hcGlrZXktZW5hYmxlZFxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGtleSBpZGVudGlmaWVyIGlzIGRpc3RpbmN0IGZyb20gdGhlIGNyZWF0ZWQgQVBJIGtleSB2YWx1ZS5cbiAgICogVGhpcyBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkIGFuZCBub3Qgc3VwcG9ydGVkIGluIHRoZSBUZXJyYUNvbnN0cnVjdC5cbiAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtYXBpZ2F0ZXdheS1hcGlrZXkuaHRtbCNjZm4tYXBpZ2F0ZXdheS1hcGlrZXktZ2VuZXJhdGVkaXN0aW5jdGlkXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHVzZWQuXG4gICAqL1xuICByZWFkb25seSBnZW5lcmF0ZURpc3RpbmN0SWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEJhc2UgaW1wbGVtZW50YXRpb24gdGhhdCBpcyBjb21tb24gdG8gdGhlIHZhcmlvdXMgaW1wbGVtZW50YXRpb25zIG9mIElBcGlLZXlcbiAqL1xuYWJzdHJhY3QgY2xhc3MgQXBpS2V5QmFzZSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJQXBpS2V5IHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBrZXlBcm46IHN0cmluZztcblxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleUlkOiB0aGlzLmtleUlkLFxuICAgICAga2V5QXJuOiB0aGlzLmtleUFybixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcm1pdHMgdGhlIElBTSBwcmluY2lwYWwgYWxsIHJlYWQgb3BlcmF0aW9ucyB0aHJvdWdoIHRoaXMga2V5XG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgYWNjZXNzIHRvXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiByZWFkUGVybWlzc2lvbnMsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLmtleUFybl0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUGVybWl0cyB0aGUgSUFNIHByaW5jaXBhbCBhbGwgd3JpdGUgb3BlcmF0aW9ucyB0aHJvdWdoIHRoaXMga2V5XG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgYWNjZXNzIHRvXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRXcml0ZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogd3JpdGVQZXJtaXNzaW9ucyxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMua2V5QXJuXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJtaXRzIHRoZSBJQU0gcHJpbmNpcGFsIGFsbCByZWFkIGFuZCB3cml0ZSBvcGVyYXRpb25zIHRocm91Z2ggdGhpcyBrZXlcbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCB0byBncmFudCBhY2Nlc3MgdG9cbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWRXcml0ZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogWy4uLnJlYWRQZXJtaXNzaW9ucywgLi4ud3JpdGVQZXJtaXNzaW9uc10sXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLmtleUFybl0sXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBBUEkgR2F0ZXdheSBBcGlLZXkuXG4gKlxuICogQW4gQXBpS2V5IGNhbiBiZSBkaXN0cmlidXRlZCB0byBBUEkgY2xpZW50cyB0aGF0IGFyZSBleGVjdXRpbmcgcmVxdWVzdHNcbiAqIGZvciBNZXRob2QgcmVzb3VyY2VzIHRoYXQgcmVxdWlyZSBhbiBBcGkgS2V5LlxuICpcbiAqIEByZXNvdXJjZSBhd3NfYXBpX2dhdGV3YXlfYXBpX2tleVxuICovXG5leHBvcnQgY2xhc3MgQXBpS2V5IGV4dGVuZHMgQXBpS2V5QmFzZSB7XG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gQXBpS2V5IGJ5IGl0cyBJZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQXBpS2V5SWQoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGFwaUtleUlkOiBzdHJpbmcsXG4gICk6IElBcGlLZXkge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIEFwaUtleUJhc2Uge1xuICAgICAgcHVibGljIGtleUlkID0gYXBpS2V5SWQ7XG4gICAgICBwdWJsaWMga2V5QXJuID0gdGhpcy5zdGFjay5mb3JtYXRBcm4oe1xuICAgICAgICBzZXJ2aWNlOiBcImFwaWdhdGV3YXlcIixcbiAgICAgICAgYWNjb3VudDogXCJcIiwgLy8gQVBJIEtleSBBUk5zIHR5cGljYWxseSBkb24ndCBpbmNsdWRlIGFjY291bnQgSUQgaW4gdGhpcyBzZWdtZW50XG4gICAgICAgIHJlc291cmNlOiBcIi9hcGlrZXlzXCIsXG4gICAgICAgIGFybkZvcm1hdDogQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgICAgIHJlc291cmNlTmFtZTogYXBpS2V5SWQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBrZXlBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIEF1dG8gY3JlYXRlZCBVc2FnZSBQbGFuIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICogU2luY2UgQXVndXN0IDExLCAyMDE2IHVzYWdlIHBsYW5zIGFyZSBub3cgcmVxdWlyZWQgdG8gYXNzb2NpYXRlIGFuIEFQSSBrZXkgd2l0aCBhbiBBUEkgc3RhZ2UuXG4gICAqXG4gICAqIE5vdGU6IFRoaXMgcHJvcGVydHkgbWF5IGJlIHVkbmVmaW5lZCBhcyBkaXJlY3Qgc3RhZ2UgYXNzb2NpYXRpb24gaXMgZGVwcmVjYXRlZC5cbiAgICogU3RhZ2UgYXNzb2NpYXRpb24gaXMgaGFuZGxlZCB2aWEgVXNhZ2UgUGxhbnMgaW5zdGVhZC5cbiAgICogSXQgaXMga2VwdCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFJhdGVMaW1pdGVkQXBpS2V5UHJvcHMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNhZ2VQbGFuPzogVXNhZ2VQbGFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBhcGlHYXRld2F5QXBpS2V5LkFwaUdhdGV3YXlBcGlLZXk7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwaUtleVByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGNvbnN0IG5hbWUgPSBwcm9wcy5hcGlLZXlOYW1lID8/IHRoaXMuc3RhY2sudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMpO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBhcGlHYXRld2F5QXBpS2V5LkFwaUdhdGV3YXlBcGlLZXkodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBuYW1lLFxuICAgICAgY3VzdG9tZXJJZDogcHJvcHMuY3VzdG9tZXJJZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGVuYWJsZWQ6IHByb3BzLmVuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgIHZhbHVlOiBwcm9wcy52YWx1ZSxcbiAgICB9KTtcbiAgICB0aGlzLmtleUlkID0gdGhpcy5yZXNvdXJjZS5pZDtcbiAgICB0aGlzLmtleUFybiA9IHRoaXMucmVzb3VyY2UuYXJuO1xuXG4gICAgLy8gY29weSBsZWdhY3kgcmVuZGVyU3RhZ2VLZXlzIGxvZ2ljIGZyb20gQVdTQ0RLIGZvciBlYXNlIG9mIG1pZ3JhdGlvbi5cbiAgICB0aGlzLnVzYWdlUGxhbiA9IHRoaXMucmVuZGVyU3RhZ2VLZXlzKHByb3BzLnJlc291cmNlcywgcHJvcHMuc3RhZ2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIHN0YWdlIGtleXMgZm9yIHRoZSBBcGlLZXkuXG4gICAqIFRoaXMgbWV0aG9kIGhhbmRsZXMgdGhlIGFzc29jaWF0aW9uIG9mIHRoZSBBcGlLZXkgd2l0aCBlaXRoZXJcbiAgICogUmVzdEFwaSByZXNvdXJjZXMgb3IgU3RhZ2VzLCBkZXBlbmRpbmcgb24gdGhlIHByb3ZpZGVkIHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZXMgLSBPcHRpb25hbCBsaXN0IG9mIFJlc3RBcGkgcmVzb3VyY2VzIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBBcGlLZXkuXG4gICAqIEBwYXJhbSBzdGFnZXMgLSBPcHRpb25hbCBsaXN0IG9mIFN0YWdlcyB0byBhc3NvY2lhdGUgd2l0aCB0aGUgQXBpS2V5LlxuICAgKi9cbiAgcHJpdmF0ZSByZW5kZXJTdGFnZUtleXMoXG4gICAgcmVzb3VyY2VzPzogSVJlc3RBcGlbXSxcbiAgICBzdGFnZXM/OiBJU3RhZ2VbXSxcbiAgKTogVXNhZ2VQbGFuIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXJlc291cmNlcyAmJiAhc3RhZ2VzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmIChyZXNvdXJjZXMgJiYgc3RhZ2VzKSB7XG4gICAgICAvLyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgT25seSBvbmUgb2YgXCJyZXNvdXJjZXNcIiBvciBcInN0YWdlc1wiIHNob3VsZCBiZSBwcm92aWRlZC4gKCR7dGhpcy5ub2RlLnBhdGh9KWAsXG4gICAgICAgIC8vIHRoaXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChyZXNvdXJjZXMpIHtcbiAgICAgIC8vIEhhbmRsZSBEZXByZWNhdGVkIGNhc2Ugb2YgYXNzb2NpYXRpbmcgQXBpS2V5IHdpdGggUmVzdEFwaSByZXNvdXJjZXNcbiAgICAgIC8vIFRoaXMgY3JlYXRlcyBhIHNpbmdsZSBVc2FnZSBQbGFuIGZvciBhbGwgc3RhZ2VzLCBidXQgaXMgZGVwcmVjYXRlZC5cbiAgICAgIGNvbnN0IGFwaVN0YWdlczogVXNhZ2VQbGFuUGVyQXBpU3RhZ2VbXSA9IFtdO1xuICAgICAgcmVzb3VyY2VzLmZvckVhY2goKHJlc291cmNlOiBJUmVzdEFwaSkgPT4ge1xuICAgICAgICBjb25zdCByZXN0QXBpID0gcmVzb3VyY2U7XG4gICAgICAgIGlmICghcmVzdEFwaS5kZXBsb3ltZW50U3RhZ2UpIHtcbiAgICAgICAgICAvLyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICdDYW5ub3QgYWRkIGFuIEFwaUtleSB0byBhIFJlc3RBcGkgdGhhdCBkb2VzIG5vdCBjb250YWluIGEgXCJkZXBsb3ltZW50U3RhZ2VcIi5cXG4nICtcbiAgICAgICAgICAgICAgXCJFaXRoZXIgc2V0IHRoZSBSZXN0QXBpLmRlcGxveW1lbnRTdGFnZSBvciBjcmVhdGUgYW4gQXBpS2V5IGZyb20gYSBTdGFnZVwiLFxuICAgICAgICAgICAgLy8gdGhpcyxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGFwaVN0YWdlcy5wdXNoKHtcbiAgICAgICAgICBhcGk6IHJlc3RBcGksXG4gICAgICAgICAgc3RhZ2U6IHJlc3RBcGkuZGVwbG95bWVudFN0YWdlLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB1c2FnZVBsYW4gPSBuZXcgVXNhZ2VQbGFuKHRoaXMsIFwiVXNhZ2VQbGFuXCIsIHtcbiAgICAgICAgYXBpU3RhZ2VzLFxuICAgICAgICBuYW1lOiBgJHt0aGlzLnJlc291cmNlLm5hbWVJbnB1dH0tdXNhZ2UtcGxhbmAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgVXNhZ2UgUGxhbiBmb3IgJHt0aGlzLmZyaWVuZGx5TmFtZX1gLFxuICAgICAgfSk7XG4gICAgICB1c2FnZVBsYW4uYWRkQXBpS2V5KHRoaXMpO1xuICAgICAgcmV0dXJuIHVzYWdlUGxhbjtcbiAgICB9XG5cbiAgICBpZiAoc3RhZ2VzICYmIHN0YWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBIYW5kbGUgRGVwcmVjYXRlZCBjYXNlIG9mIGFzc29jaWF0aW5nIEFwaUtleSB3aXRoIG11bHRpcGxlIFN0YWdlc1xuICAgICAgLy8gVGhpcyBjcmVhdGVzIGEgc2luZ2xlIFVzYWdlIFBsYW4gZm9yIGFsbCBzdGFnZXMsIGJ1dCBpcyBhbHNvIGRlcHJlY2F0ZWQuXG4gICAgICBjb25zdCB1c2FnZVBsYW4gPSBuZXcgVXNhZ2VQbGFuKHRoaXMsIGBVc2FnZVBsYW5gLCB7XG4gICAgICAgIGFwaVN0YWdlczogc3RhZ2VzLm1hcCgoc3RhZ2UpID0+ICh7XG4gICAgICAgICAgYXBpOiBzdGFnZS5yZXN0QXBpLFxuICAgICAgICAgIC8vIE5PVEU6IFVzYWdlUGxhblBlckFwaVN0YWdlIGV4cGVjdHMgU3RhZ2UgaW5zdGVhZCBvZiBJU3RhZ2VcbiAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xODYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheS9saWIvdXNhZ2UtcGxhbi50cyNMOTctTDEwMlxuICAgICAgICAgIHN0YWdlOiBzdGFnZSBhcyBTdGFnZSxcbiAgICAgICAgfSkpLFxuICAgICAgfSk7XG4gICAgICB1c2FnZVBsYW4uYWRkQXBpS2V5KHRoaXMpO1xuICAgICAgcmV0dXJuIHVzYWdlUGxhbjtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFJhdGVMaW1pdGVkQXBpS2V5IHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmF0ZUxpbWl0ZWRBcGlLZXlQcm9wcyBleHRlbmRzIEFwaUtleVByb3BzIHtcbiAgLyoqXG4gICAqIEFQSSBTdGFnZXMgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBSYXRlTGltaXRlZEFwaUtleS5cbiAgICogSWYgeW91IGFscmVhZHkgcHJlcGFyZWQgVXNhZ2VQbGFuIHJlc291cmNlIGV4cGxpY2l0bHksIHlvdSBzaG91bGQgdXNlIGBzdGFnZXNgIHByb3BlcnR5LlxuICAgKiBJZiB5b3UgcHJlZmVyIHRvIHByZXBhcmUgVXNhZ2VQbGFuIHJlc291cmNlIGltcGxpY2l0bHkgdmlhIFJhdGVMaW1pdGVkQXBpS2V5LFxuICAgKiBvciB5b3Ugc2hvdWxkIHNwZWNpZnkgdGhyb3R0bGUgc2V0dGluZ3MgYXQgZWFjaCBzdGFnZSBpbmRpdmlkdWFsbHksIHlvdSBzaG91bGQgdXNlIGBhcGlTdGFnZXNgIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqL1xuICByZWFkb25seSBhcGlTdGFnZXM/OiBVc2FnZVBsYW5QZXJBcGlTdGFnZVtdO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgcmVxdWVzdHMgY2xpZW50cyBjYW4gbWFrZSBpbiBhIGdpdmVuIHRpbWUgcGVyaW9kLlxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqL1xuICByZWFkb25seSBxdW90YT86IFF1b3RhU2V0dGluZ3M7XG5cbiAgLyoqXG4gICAqIE92ZXJhbGwgdGhyb3R0bGUgc2V0dGluZ3MgZm9yIHRoZSBBUEkuXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHRocm90dGxlPzogVGhyb3R0bGVTZXR0aW5ncztcbn1cblxuLyoqXG4gKiBBbiBBUEkgR2F0ZXdheSBBcGlLZXksIGZvciB3aGljaCBhIHJhdGUgbGltaXRpbmcgY29uZmlndXJhdGlvbiBjYW4gYmUgc3BlY2lmaWVkLlxuICpcbiAqIEByZXNvdXJjZSBhd3NfYXBpX2dhdGV3YXlfYXBpX2tleVxuICovXG5leHBvcnQgY2xhc3MgUmF0ZUxpbWl0ZWRBcGlLZXkgZXh0ZW5kcyBBcGlLZXlCYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBrZXlBcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGFwaUtleTogQXBpS2V5O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogUmF0ZUxpbWl0ZWRBcGlLZXlQcm9wcyA9IHt9LFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMuYXBpS2V5ID0gbmV3IEFwaUtleSh0aGlzLCBcIlJlc291cmNlXCIsIHByb3BzKTtcblxuICAgIGlmIChwcm9wcy5hcGlTdGFnZXMgfHwgcHJvcHMucXVvdGEgfHwgcHJvcHMudGhyb3R0bGUpIHtcbiAgICAgIGlmICh0aGlzLmFwaUtleS51c2FnZVBsYW4pIHtcbiAgICAgICAgLy8gTk9URTogQ3JlYXRpbmcgYW4gYWRkaXRpb25hbCB1c2FnZSBwbGFuIGlzIGRlZmF1bHQgQVdTQ0RLIGJlaGF2aW9yLlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xODYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheS9saWIvYXBpLWtleS50cyNMMjY4LUwyNzVcbiAgICAgICAgQW5ub3RhdGlvbnMub2YodGhpcy5hcGlLZXkpLmFkZFdhcm5pbmcoXG4gICAgICAgICAgXCJVc2FnZVBsYW4gaXMgYWxyZWFkeSBjcmVhdGVkIGZvciB0aGlzIEFwaUtleS4gQSBzZXBhcmF0ZSBVc2FnZVBsYW4gd2l0aCByYXRlIGxpbWl0aW5nIHdpbGwgYmUgY3JlYXRlZCBzZXBhcmF0ZWx5XCIsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCB1c2FnZVBsYW4gPSBuZXcgVXNhZ2VQbGFuKHRoaXMsIFwiUmF0ZUxpbWl0ZWRVc2FnZVBsYW5cIiwge1xuICAgICAgICBhcGlTdGFnZXM6IHByb3BzLmFwaVN0YWdlcyxcbiAgICAgICAgcXVvdGE6IHByb3BzLnF1b3RhLFxuICAgICAgICB0aHJvdHRsZTogcHJvcHMudGhyb3R0bGUsXG4gICAgICB9KTtcbiAgICAgIHVzYWdlUGxhbi5hZGRBcGlLZXkodGhpcy5hcGlLZXkpO1xuICAgIH1cblxuICAgIHRoaXMua2V5SWQgPSB0aGlzLmFwaUtleS5rZXlJZDtcbiAgICB0aGlzLmtleUFybiA9IHRoaXMuYXBpS2V5LmtleUFybjtcbiAgfVxufVxuXG5jb25zdCByZWFkUGVybWlzc2lvbnMgPSBbXCJhcGlnYXRld2F5OkdFVFwiXTtcblxuY29uc3Qgd3JpdGVQZXJtaXNzaW9ucyA9IFtcbiAgXCJhcGlnYXRld2F5OlBPU1RcIixcbiAgXCJhcGlnYXRld2F5OlBVVFwiLFxuICBcImFwaWdhdGV3YXk6UEFUQ0hcIixcbiAgXCJhcGlnYXRld2F5OkRFTEVURVwiLFxuXTtcbiJdfQ==
@@ -0,0 +1,169 @@
1
+ export interface MetricWithDims<D> {
2
+ readonly namespace: string;
3
+ readonly metricName: string;
4
+ readonly statistic: string;
5
+ readonly dimensionsMap: D;
6
+ }
7
+ export declare class ApiGatewayMetrics {
8
+ static _4XxErrorSum(dimensions: {
9
+ ApiName: string;
10
+ Stage: string;
11
+ }): MetricWithDims<{
12
+ ApiName: string;
13
+ Stage: string;
14
+ }>;
15
+ static _4XxErrorSum(dimensions: {
16
+ ApiName: string;
17
+ }): MetricWithDims<{
18
+ ApiName: string;
19
+ }>;
20
+ static _4XxErrorSum(dimensions: {
21
+ ApiName: string;
22
+ Method: string;
23
+ Resource: string;
24
+ Stage: string;
25
+ }): MetricWithDims<{
26
+ ApiName: string;
27
+ Method: string;
28
+ Resource: string;
29
+ Stage: string;
30
+ }>;
31
+ static _5XxErrorSum(dimensions: {
32
+ ApiName: string;
33
+ Stage: string;
34
+ }): MetricWithDims<{
35
+ ApiName: string;
36
+ Stage: string;
37
+ }>;
38
+ static _5XxErrorSum(dimensions: {
39
+ ApiName: string;
40
+ }): MetricWithDims<{
41
+ ApiName: string;
42
+ }>;
43
+ static _5XxErrorSum(dimensions: {
44
+ ApiName: string;
45
+ Method: string;
46
+ Resource: string;
47
+ Stage: string;
48
+ }): MetricWithDims<{
49
+ ApiName: string;
50
+ Method: string;
51
+ Resource: string;
52
+ Stage: string;
53
+ }>;
54
+ static cacheHitCountSum(dimensions: {
55
+ ApiName: string;
56
+ Stage: string;
57
+ }): MetricWithDims<{
58
+ ApiName: string;
59
+ Stage: string;
60
+ }>;
61
+ static cacheHitCountSum(dimensions: {
62
+ ApiName: string;
63
+ }): MetricWithDims<{
64
+ ApiName: string;
65
+ }>;
66
+ static cacheHitCountSum(dimensions: {
67
+ ApiName: string;
68
+ Method: string;
69
+ Resource: string;
70
+ Stage: string;
71
+ }): MetricWithDims<{
72
+ ApiName: string;
73
+ Method: string;
74
+ Resource: string;
75
+ Stage: string;
76
+ }>;
77
+ static cacheMissCountSum(dimensions: {
78
+ ApiName: string;
79
+ Stage: string;
80
+ }): MetricWithDims<{
81
+ ApiName: string;
82
+ Stage: string;
83
+ }>;
84
+ static cacheMissCountSum(dimensions: {
85
+ ApiName: string;
86
+ }): MetricWithDims<{
87
+ ApiName: string;
88
+ }>;
89
+ static cacheMissCountSum(dimensions: {
90
+ ApiName: string;
91
+ Method: string;
92
+ Resource: string;
93
+ Stage: string;
94
+ }): MetricWithDims<{
95
+ ApiName: string;
96
+ Method: string;
97
+ Resource: string;
98
+ Stage: string;
99
+ }>;
100
+ static countSum(dimensions: {
101
+ ApiName: string;
102
+ Stage: string;
103
+ }): MetricWithDims<{
104
+ ApiName: string;
105
+ Stage: string;
106
+ }>;
107
+ static countSum(dimensions: {
108
+ ApiName: string;
109
+ }): MetricWithDims<{
110
+ ApiName: string;
111
+ }>;
112
+ static countSum(dimensions: {
113
+ ApiName: string;
114
+ Method: string;
115
+ Resource: string;
116
+ Stage: string;
117
+ }): MetricWithDims<{
118
+ ApiName: string;
119
+ Method: string;
120
+ Resource: string;
121
+ Stage: string;
122
+ }>;
123
+ static integrationLatencyAverage(dimensions: {
124
+ ApiName: string;
125
+ Stage: string;
126
+ }): MetricWithDims<{
127
+ ApiName: string;
128
+ Stage: string;
129
+ }>;
130
+ static integrationLatencyAverage(dimensions: {
131
+ ApiName: string;
132
+ }): MetricWithDims<{
133
+ ApiName: string;
134
+ }>;
135
+ static integrationLatencyAverage(dimensions: {
136
+ ApiName: string;
137
+ Method: string;
138
+ Resource: string;
139
+ Stage: string;
140
+ }): MetricWithDims<{
141
+ ApiName: string;
142
+ Method: string;
143
+ Resource: string;
144
+ Stage: string;
145
+ }>;
146
+ static latencyAverage(dimensions: {
147
+ ApiName: string;
148
+ Stage: string;
149
+ }): MetricWithDims<{
150
+ ApiName: string;
151
+ Stage: string;
152
+ }>;
153
+ static latencyAverage(dimensions: {
154
+ ApiName: string;
155
+ }): MetricWithDims<{
156
+ ApiName: string;
157
+ }>;
158
+ static latencyAverage(dimensions: {
159
+ ApiName: string;
160
+ Method: string;
161
+ Resource: string;
162
+ Stage: string;
163
+ }): MetricWithDims<{
164
+ ApiName: string;
165
+ Method: string;
166
+ Resource: string;
167
+ Stage: string;
168
+ }>;
169
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiGatewayMetrics = void 0;
4
+ class ApiGatewayMetrics {
5
+ static _4XxErrorSum(dimensions) {
6
+ return {
7
+ "namespace": "AWS/ApiGateway",
8
+ "metricName": "4XXError",
9
+ "dimensionsMap": dimensions,
10
+ "statistic": "Sum"
11
+ };
12
+ }
13
+ static _5XxErrorSum(dimensions) {
14
+ return {
15
+ "namespace": "AWS/ApiGateway",
16
+ "metricName": "5XXError",
17
+ "dimensionsMap": dimensions,
18
+ "statistic": "Sum"
19
+ };
20
+ }
21
+ static cacheHitCountSum(dimensions) {
22
+ return {
23
+ "namespace": "AWS/ApiGateway",
24
+ "metricName": "CacheHitCount",
25
+ "dimensionsMap": dimensions,
26
+ "statistic": "Sum"
27
+ };
28
+ }
29
+ static cacheMissCountSum(dimensions) {
30
+ return {
31
+ "namespace": "AWS/ApiGateway",
32
+ "metricName": "CacheMissCount",
33
+ "dimensionsMap": dimensions,
34
+ "statistic": "Sum"
35
+ };
36
+ }
37
+ static countSum(dimensions) {
38
+ return {
39
+ "namespace": "AWS/ApiGateway",
40
+ "metricName": "Count",
41
+ "dimensionsMap": dimensions,
42
+ "statistic": "Sum"
43
+ };
44
+ }
45
+ static integrationLatencyAverage(dimensions) {
46
+ return {
47
+ "namespace": "AWS/ApiGateway",
48
+ "metricName": "IntegrationLatency",
49
+ "dimensionsMap": dimensions,
50
+ "statistic": "Average"
51
+ };
52
+ }
53
+ static latencyAverage(dimensions) {
54
+ return {
55
+ "namespace": "AWS/ApiGateway",
56
+ "metricName": "Latency",
57
+ "dimensionsMap": dimensions,
58
+ "statistic": "Average"
59
+ };
60
+ }
61
+ }
62
+ exports.ApiGatewayMetrics = ApiGatewayMetrics;
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpZ2F0ZXdheS1jYW5uZWQtbWV0cmljcy5nZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvYXBpZ2F0ZXdheS1jYW5uZWQtbWV0cmljcy5nZW5lcmF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBV0EsTUFBYSxpQkFBaUI7SUFPckIsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFlO1FBQ3hDLE9BQU87WUFDTCxXQUFXLEVBQUUsZ0JBQWdCO1lBQzdCLFlBQVksRUFBRSxVQUFVO1lBQ3hCLGVBQWUsRUFBRSxVQUFVO1lBQzNCLFdBQVcsRUFBRSxLQUFLO1NBQ25CLENBQUM7SUFDSixDQUFDO0lBUU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFlO1FBQ3hDLE9BQU87WUFDTCxXQUFXLEVBQUUsZ0JBQWdCO1lBQzdCLFlBQVksRUFBRSxVQUFVO1lBQ3hCLGVBQWUsRUFBRSxVQUFVO1lBQzNCLFdBQVcsRUFBRSxLQUFLO1NBQ25CLENBQUM7SUFDSixDQUFDO0lBUU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQWU7UUFDNUMsT0FBTztZQUNMLFdBQVcsRUFBRSxnQkFBZ0I7WUFDN0IsWUFBWSxFQUFFLGVBQWU7WUFDN0IsZUFBZSxFQUFFLFVBQVU7WUFDM0IsV0FBVyxFQUFFLEtBQUs7U0FDbkIsQ0FBQztJQUNKLENBQUM7SUFRTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsVUFBZTtRQUM3QyxPQUFPO1lBQ0wsV0FBVyxFQUFFLGdCQUFnQjtZQUM3QixZQUFZLEVBQUUsZ0JBQWdCO1lBQzlCLGVBQWUsRUFBRSxVQUFVO1lBQzNCLFdBQVcsRUFBRSxLQUFLO1NBQ25CLENBQUM7SUFDSixDQUFDO0lBUU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFlO1FBQ3BDLE9BQU87WUFDTCxXQUFXLEVBQUUsZ0JBQWdCO1lBQzdCLFlBQVksRUFBRSxPQUFPO1lBQ3JCLGVBQWUsRUFBRSxVQUFVO1lBQzNCLFdBQVcsRUFBRSxLQUFLO1NBQ25CLENBQUM7SUFDSixDQUFDO0lBUU0sTUFBTSxDQUFDLHlCQUF5QixDQUFDLFVBQWU7UUFDckQsT0FBTztZQUNMLFdBQVcsRUFBRSxnQkFBZ0I7WUFDN0IsWUFBWSxFQUFFLG9CQUFvQjtZQUNsQyxlQUFlLEVBQUUsVUFBVTtZQUMzQixXQUFXLEVBQUUsU0FBUztTQUN2QixDQUFDO0lBQ0osQ0FBQztJQVFNLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBZTtRQUMxQyxPQUFPO1lBQ0wsV0FBVyxFQUFFLGdCQUFnQjtZQUM3QixZQUFZLEVBQUUsU0FBUztZQUN2QixlQUFlLEVBQUUsVUFBVTtZQUMzQixXQUFXLEVBQUUsU0FBUztTQUN2QixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBekdELDhDQXlHQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHByZXR0aWVyL3ByZXR0aWVyLG1heC1sZW4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cmljV2l0aERpbXM8RD4ge1xuICByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZztcblxuICByZWFkb25seSBtZXRyaWNOYW1lOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgc3RhdGlzdGljOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgZGltZW5zaW9uc01hcDogRDtcbn1cblxuZXhwb3J0IGNsYXNzIEFwaUdhdGV3YXlNZXRyaWNzIHtcbiAgcHVibGljIHN0YXRpYyBfNFh4RXJyb3JTdW0oZGltZW5zaW9uczogeyBBcGlOYW1lOiBzdHJpbmc7IFN0YWdlOiBzdHJpbmc7IH0pOiBNZXRyaWNXaXRoRGltczx7IEFwaU5hbWU6IHN0cmluZzsgU3RhZ2U6IHN0cmluZzsgfT47XG5cbiAgcHVibGljIHN0YXRpYyBfNFh4RXJyb3JTdW0oZGltZW5zaW9uczogeyBBcGlOYW1lOiBzdHJpbmc7IH0pOiBNZXRyaWNXaXRoRGltczx7IEFwaU5hbWU6IHN0cmluZzsgfT47XG5cbiAgcHVibGljIHN0YXRpYyBfNFh4RXJyb3JTdW0oZGltZW5zaW9uczogeyBBcGlOYW1lOiBzdHJpbmc7IE1ldGhvZDogc3RyaW5nOyBSZXNvdXJjZTogc3RyaW5nOyBTdGFnZTogc3RyaW5nOyB9KTogTWV0cmljV2l0aERpbXM8eyBBcGlOYW1lOiBzdHJpbmc7IE1ldGhvZDogc3RyaW5nOyBSZXNvdXJjZTogc3RyaW5nOyBTdGFnZTogc3RyaW5nOyB9PjtcblxuICBwdWJsaWMgc3RhdGljIF80WHhFcnJvclN1bShkaW1lbnNpb25zOiBhbnkpOiBNZXRyaWNXaXRoRGltczxhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgXCJuYW1lc3BhY2VcIjogXCJBV1MvQXBpR2F0ZXdheVwiLFxuICAgICAgXCJtZXRyaWNOYW1lXCI6IFwiNFhYRXJyb3JcIixcbiAgICAgIFwiZGltZW5zaW9uc01hcFwiOiBkaW1lbnNpb25zLFxuICAgICAgXCJzdGF0aXN0aWNcIjogXCJTdW1cIlxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIF81WHhFcnJvclN1bShkaW1lbnNpb25zOiB7IEFwaU5hbWU6IHN0cmluZzsgU3RhZ2U6IHN0cmluZzsgfSk6IE1ldHJpY1dpdGhEaW1zPHsgQXBpTmFtZTogc3RyaW5nOyBTdGFnZTogc3RyaW5nOyB9PjtcblxuICBwdWJsaWMgc3RhdGljIF81WHhFcnJvclN1bShkaW1lbnNpb25zOiB7IEFwaU5hbWU6IHN0cmluZzsgfSk6IE1ldHJpY1dpdGhEaW1zPHsgQXBpTmFtZTogc3RyaW5nOyB9PjtcblxuICBwdWJsaWMgc3RhdGljIF81WHhFcnJvclN1bShkaW1lbnNpb25zOiB7IEFwaU5hbWU6IHN0cmluZzsgTWV0aG9kOiBzdHJpbmc7IFJlc291cmNlOiBzdHJpbmc7IFN0YWdlOiBzdHJpbmc7IH0pOiBNZXRyaWNXaXRoRGltczx7IEFwaU5hbWU6IHN0cmluZzsgTWV0aG9kOiBzdHJpbmc7IFJlc291cmNlOiBzdHJpbmc7IFN0YWdlOiBzdHJpbmc7IH0+O1xuXG4gIHB1YmxpYyBzdGF0aWMgXzVYeEVycm9yU3VtKGRpbWVuc2lvbnM6IGFueSk6IE1ldHJpY1dpdGhEaW1zPGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICBcIm5hbWVzcGFjZVwiOiBcIkFXUy9BcGlHYXRld2F5XCIsXG4gICAgICBcIm1ldHJpY05hbWVcIjogXCI1WFhFcnJvclwiLFxuICAgICAgXCJkaW1lbnNpb25zTWFwXCI6IGRpbWVuc2lvbnMsXG4gICAgICBcInN0YXRpc3RpY1wiOiBcIlN1bVwiXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY2FjaGVIaXRDb3VudFN1bShkaW1lbnNpb25zOiB7IEFwaU5hbWU6IHN0cmluZzsgU3RhZ2U6IHN0cmluZzsgfSk6IE1ldHJpY1dpdGhEaW1zPHsgQXBpTmFtZTogc3RyaW5nOyBTdGFnZTogc3RyaW5nOyB9PjtcblxuICBwdWJsaWMgc3RhdGljIGNhY2hlSGl0Q291bnRTdW0oZGltZW5zaW9uczogeyBBcGlOYW1lOiBzdHJpbmc7IH0pOiBNZXRyaWNXaXRoRGltczx7IEFwaU5hbWU6IHN0cmluZzsgfT47XG5cbiAgcHVibGljIHN0YXRpYyBjYWNoZUhpdENvdW50U3VtKGRpbWVuc2lvbnM6IHsgQXBpTmFtZTogc3RyaW5nOyBNZXRob2Q6IHN0cmluZzsgUmVzb3VyY2U6IHN0cmluZzsgU3RhZ2U6IHN0cmluZzsgfSk6IE1ldHJpY1dpdGhEaW1zPHsgQXBpTmFtZTogc3RyaW5nOyBNZXRob2Q6IHN0cmluZzsgUmVzb3VyY2U6IHN0cmluZzsgU3RhZ2U6IHN0cmluZzsgfT47XG5cbiAgcHVibGljIHN0YXRpYyBjYWNoZUhpdENvdW50U3VtKGRpbWVuc2lvbnM6IGFueSk6IE1ldHJpY1dpdGhEaW1zPGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICBcIm5hbWVzcGFjZVwiOiBcIkFXUy9BcGlHYXRld2F5XCIsXG4gICAgICBcIm1ldHJpY05hbWVcIjogXCJDYWNoZUhpdENvdW50XCIsXG4gICAgICBcImRpbWVuc2lvbnNNYXBcIjogZGltZW5zaW9ucyxcbiAgICAgIFwic3RhdGlzdGljXCI6IFwiU3VtXCJcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjYWNoZU1pc3NDb3VudFN1bShkaW1lbnNpb25zOiB7IEFwaU5hbWU6IHN0cmluZzsgU3RhZ2U6IHN0cmluZzsgfSk6IE1ldHJpY1dpdGhEaW1zPHsgQXBpTmFtZTogc3RyaW5nOyBTdGFnZTogc3RyaW5nOyB9PjtcblxuICBwdWJsaWMgc3RhdGljIGNhY2hlTWlzc0NvdW50U3VtKGRpbWVuc2lvbnM6IHsgQXBpTmFtZTogc3RyaW5nOyB9KTogTWV0cmljV2l0aERpbXM8eyBBcGlOYW1lOiBzdHJpbmc7IH0+O1xuXG4gIHB1YmxpYyBzdGF0aWMgY2FjaGVNaXNzQ291bnRTdW0oZGltZW5zaW9uczogeyBBcGlOYW1lOiBzdHJpbmc7IE1ldGhvZDogc3RyaW5nOyBSZXNvdXJjZTogc3RyaW5nOyBTdGFnZTogc3RyaW5nOyB9KTogTWV0cmljV2l0aERpbXM8eyBBcGlOYW1lOiBzdHJpbmc7IE1ldGhvZDogc3RyaW5nOyBSZXNvdXJjZTogc3RyaW5nOyBTdGFnZTogc3RyaW5nOyB9PjtcblxuICBwdWJsaWMgc3RhdGljIGNhY2hlTWlzc0NvdW50U3VtKGRpbWVuc2lvbnM6IGFueSk6IE1ldHJpY1dpdGhEaW1zPGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICBcIm5hbWVzcGFjZVwiOiBcIkFXUy9BcGlHYXRld2F5XCIsXG4gICAgICBcIm1ldHJpY05hbWVcIjogXCJDYWNoZU1pc3NDb3VudFwiLFxuICAgICAgXCJkaW1lbnNpb25zTWFwXCI6IGRpbWVuc2lvbnMsXG4gICAgICBcInN0YXRpc3RpY1wiOiBcIlN1bVwiXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY291bnRTdW0oZGltZW5zaW9uczogeyBBcGlOYW1lOiBzdHJpbmc7IFN0YWdlOiBzdHJpbmc7IH0pOiBNZXRyaWNXaXRoRGltczx7IEFwaU5hbWU6IHN0cmluZzsgU3RhZ2U6IHN0cmluZzsgfT47XG5cbiAgcHVibGljIHN0YXRpYyBjb3VudFN1bShkaW1lbnNpb25zOiB7IEFwaU5hbWU6IHN0cmluZzsgfSk6IE1ldHJpY1dpdGhEaW1zPHsgQXBpTmFtZTogc3RyaW5nOyB9PjtcblxuICBwdWJsaWMgc3RhdGljIGNvdW50U3VtKGRpbWVuc2lvbnM6IHsgQXBpTmFtZTogc3RyaW5nOyBNZXRob2Q6IHN0cmluZzsgUmVzb3VyY2U6IHN0cmluZzsgU3RhZ2U6IHN0cmluZzsgfSk6IE1ldHJpY1dpdGhEaW1zPHsgQXBpTmFtZTogc3RyaW5nOyBNZXRob2Q6IHN0cmluZzsgUmVzb3VyY2U6IHN0cmluZzsgU3RhZ2U6IHN0cmluZzsgfT47XG5cbiAgcHVibGljIHN0YXRpYyBjb3VudFN1bShkaW1lbnNpb25zOiBhbnkpOiBNZXRyaWNXaXRoRGltczxhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgXCJuYW1lc3BhY2VcIjogXCJBV1MvQXBpR2F0ZXdheVwiLFxuICAgICAgXCJtZXRyaWNOYW1lXCI6IFwiQ291bnRcIixcbiAgICAgIFwiZGltZW5zaW9uc01hcFwiOiBkaW1lbnNpb25zLFxuICAgICAgXCJzdGF0aXN0aWNcIjogXCJTdW1cIlxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGludGVncmF0aW9uTGF0ZW5jeUF2ZXJhZ2UoZGltZW5zaW9uczogeyBBcGlOYW1lOiBzdHJpbmc7IFN0YWdlOiBzdHJpbmc7IH0pOiBNZXRyaWNXaXRoRGltczx7IEFwaU5hbWU6IHN0cmluZzsgU3RhZ2U6IHN0cmluZzsgfT47XG5cbiAgcHVibGljIHN0YXRpYyBpbnRlZ3JhdGlvbkxhdGVuY3lBdmVyYWdlKGRpbWVuc2lvbnM6IHsgQXBpTmFtZTogc3RyaW5nOyB9KTogTWV0cmljV2l0aERpbXM8eyBBcGlOYW1lOiBzdHJpbmc7IH0+O1xuXG4gIHB1YmxpYyBzdGF0aWMgaW50ZWdyYXRpb25MYXRlbmN5QXZlcmFnZShkaW1lbnNpb25zOiB7IEFwaU5hbWU6IHN0cmluZzsgTWV0aG9kOiBzdHJpbmc7IFJlc291cmNlOiBzdHJpbmc7IFN0YWdlOiBzdHJpbmc7IH0pOiBNZXRyaWNXaXRoRGltczx7IEFwaU5hbWU6IHN0cmluZzsgTWV0aG9kOiBzdHJpbmc7IFJlc291cmNlOiBzdHJpbmc7IFN0YWdlOiBzdHJpbmc7IH0+O1xuXG4gIHB1YmxpYyBzdGF0aWMgaW50ZWdyYXRpb25MYXRlbmN5QXZlcmFnZShkaW1lbnNpb25zOiBhbnkpOiBNZXRyaWNXaXRoRGltczxhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgXCJuYW1lc3BhY2VcIjogXCJBV1MvQXBpR2F0ZXdheVwiLFxuICAgICAgXCJtZXRyaWNOYW1lXCI6IFwiSW50ZWdyYXRpb25MYXRlbmN5XCIsXG4gICAgICBcImRpbWVuc2lvbnNNYXBcIjogZGltZW5zaW9ucyxcbiAgICAgIFwic3RhdGlzdGljXCI6IFwiQXZlcmFnZVwiXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgbGF0ZW5jeUF2ZXJhZ2UoZGltZW5zaW9uczogeyBBcGlOYW1lOiBzdHJpbmc7IFN0YWdlOiBzdHJpbmc7IH0pOiBNZXRyaWNXaXRoRGltczx7IEFwaU5hbWU6IHN0cmluZzsgU3RhZ2U6IHN0cmluZzsgfT47XG5cbiAgcHVibGljIHN0YXRpYyBsYXRlbmN5QXZlcmFnZShkaW1lbnNpb25zOiB7IEFwaU5hbWU6IHN0cmluZzsgfSk6IE1ldHJpY1dpdGhEaW1zPHsgQXBpTmFtZTogc3RyaW5nOyB9PjtcblxuICBwdWJsaWMgc3RhdGljIGxhdGVuY3lBdmVyYWdlKGRpbWVuc2lvbnM6IHsgQXBpTmFtZTogc3RyaW5nOyBNZXRob2Q6IHN0cmluZzsgUmVzb3VyY2U6IHN0cmluZzsgU3RhZ2U6IHN0cmluZzsgfSk6IE1ldHJpY1dpdGhEaW1zPHsgQXBpTmFtZTogc3RyaW5nOyBNZXRob2Q6IHN0cmluZzsgUmVzb3VyY2U6IHN0cmluZzsgU3RhZ2U6IHN0cmluZzsgfT47XG5cbiAgcHVibGljIHN0YXRpYyBsYXRlbmN5QXZlcmFnZShkaW1lbnNpb25zOiBhbnkpOiBNZXRyaWNXaXRoRGltczxhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgXCJuYW1lc3BhY2VcIjogXCJBV1MvQXBpR2F0ZXdheVwiLFxuICAgICAgXCJtZXRyaWNOYW1lXCI6IFwiTGF0ZW5jeVwiLFxuICAgICAgXCJkaW1lbnNpb25zTWFwXCI6IGRpbWVuc2lvbnMsXG4gICAgICBcInN0YXRpc3RpY1wiOiBcIkF2ZXJhZ2VcIlxuICAgIH07XG4gIH1cbn0iXX0=