terraconstructs 0.0.11 → 0.0.13

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 (411) hide show
  1. package/.jsii +105205 -35113
  2. package/lib/aws/arn.js +1 -1
  3. package/lib/aws/aws-construct.d.ts +1 -1
  4. package/lib/aws/aws-construct.js +28 -2
  5. package/lib/aws/aws-stack.d.ts +2 -4
  6. package/lib/aws/aws-stack.js +21 -8
  7. package/lib/aws/aws-tags.d.ts +58 -0
  8. package/lib/aws/aws-tags.js +77 -0
  9. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  10. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  11. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  12. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  13. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  14. package/lib/aws/cloudwatch/alarm.js +1 -1
  15. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  16. package/lib/aws/cloudwatch/dashboard.js +1 -1
  17. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  18. package/lib/aws/cloudwatch/graph.js +8 -8
  19. package/lib/aws/cloudwatch/layout.js +3 -3
  20. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  21. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  22. package/lib/aws/cloudwatch/log-group.js +1 -1
  23. package/lib/aws/cloudwatch/log-query.js +1 -1
  24. package/lib/aws/cloudwatch/log-stream.js +1 -1
  25. package/lib/aws/cloudwatch/metric-filter.d.ts +1 -1
  26. package/lib/aws/cloudwatch/metric-filter.js +4 -4
  27. package/lib/aws/cloudwatch/metric.js +2 -2
  28. package/lib/aws/cloudwatch/pattern.js +3 -3
  29. package/lib/aws/cloudwatch/policy.js +1 -1
  30. package/lib/aws/cloudwatch/private/env-tokens.js +5 -6
  31. package/lib/aws/cloudwatch/private/metric-util.js +4 -5
  32. package/lib/aws/cloudwatch/private/object.js +2 -3
  33. package/lib/aws/cloudwatch/private/rendering.js +3 -3
  34. package/lib/aws/cloudwatch/private/statistic.js +6 -7
  35. package/lib/aws/cloudwatch/query-definition.js +2 -2
  36. package/lib/aws/cloudwatch/stats.js +1 -1
  37. package/lib/aws/cloudwatch/subscription-filter.d.ts +1 -1
  38. package/lib/aws/cloudwatch/subscription-filter.js +4 -4
  39. package/lib/aws/cloudwatch/text.js +1 -1
  40. package/lib/aws/cloudwatch/variable.js +3 -3
  41. package/lib/aws/cloudwatch/widget.d.ts +1 -1
  42. package/lib/aws/cloudwatch/widget.js +4 -4
  43. package/lib/aws/compute/activity.js +3 -2
  44. package/lib/aws/compute/alb/application-listener-action.d.ts +334 -0
  45. package/lib/aws/compute/alb/application-listener-action.js +281 -0
  46. package/lib/aws/compute/alb/application-listener-certificate.d.ts +35 -0
  47. package/lib/aws/compute/alb/application-listener-certificate.js +35 -0
  48. package/lib/aws/compute/alb/application-listener-rule.d.ts +233 -0
  49. package/lib/aws/compute/alb/application-listener-rule.js +220 -0
  50. package/lib/aws/compute/alb/application-listener.d.ts +574 -0
  51. package/lib/aws/compute/alb/application-listener.js +538 -0
  52. package/lib/aws/compute/alb/application-load-balancer.d.ts +715 -0
  53. package/lib/aws/compute/alb/application-load-balancer.js +780 -0
  54. package/lib/aws/compute/alb/application-target-group.d.ts +339 -0
  55. package/lib/aws/compute/alb/application-target-group.js +427 -0
  56. package/lib/aws/compute/alb/conditions.d.ts +61 -0
  57. package/lib/aws/compute/alb/conditions.js +164 -0
  58. package/lib/aws/compute/alb/trust-store-revocation.d.ts +59 -0
  59. package/lib/aws/compute/alb/trust-store-revocation.js +46 -0
  60. package/lib/aws/compute/alb/trust-store.d.ts +86 -0
  61. package/lib/aws/compute/alb/trust-store.js +79 -0
  62. package/lib/aws/compute/architecture.js +1 -1
  63. package/lib/aws/compute/aspects/require-imdsv2-aspect.d.ts +75 -0
  64. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +106 -0
  65. package/lib/aws/compute/bastion-host.d.ts +172 -0
  66. package/lib/aws/compute/bastion-host.js +114 -0
  67. package/lib/aws/compute/chain.js +1 -1
  68. package/lib/aws/compute/cidr-splits.d.ts +49 -0
  69. package/lib/aws/compute/cidr-splits.js +59 -0
  70. package/lib/aws/compute/client-vpn-authorization-rule.d.ts +43 -0
  71. package/lib/aws/compute/client-vpn-authorization-rule.js +30 -0
  72. package/lib/aws/compute/client-vpn-endpoint-types.d.ts +62 -0
  73. package/lib/aws/compute/client-vpn-endpoint-types.js +25 -0
  74. package/lib/aws/compute/client-vpn-endpoint.d.ts +239 -0
  75. package/lib/aws/compute/client-vpn-endpoint.js +259 -0
  76. package/lib/aws/compute/client-vpn-route.d.ts +67 -0
  77. package/lib/aws/compute/client-vpn-route.js +57 -0
  78. package/lib/aws/compute/condition.js +1 -1
  79. package/lib/aws/compute/connections.d.ts +137 -0
  80. package/lib/aws/compute/connections.js +208 -0
  81. package/lib/aws/compute/ec2-augmentations.generated.d.ts +53 -0
  82. package/lib/aws/compute/ec2-augmentations.generated.js +35 -0
  83. package/lib/aws/compute/ec2-canned-metrics.generated.d.ts +555 -0
  84. package/lib/aws/compute/ec2-canned-metrics.generated.js +681 -0
  85. package/lib/aws/compute/ec2-util-v2.d.ts +141 -0
  86. package/lib/aws/compute/ec2-util-v2.js +286 -0
  87. package/lib/aws/compute/ec2-util.d.ts +52 -0
  88. package/lib/aws/compute/ec2-util.js +138 -0
  89. package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.d.ts +176 -0
  90. package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.js +119 -0
  91. package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.d.ts +860 -0
  92. package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.js +597 -0
  93. package/lib/aws/compute/event-invoke-config.js +1 -1
  94. package/lib/aws/compute/event-source-filter.js +2 -2
  95. package/lib/aws/compute/event-source-mapping.js +1 -1
  96. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  97. package/lib/aws/compute/event-sources/s3.js +1 -1
  98. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  99. package/lib/aws/compute/event-sources/sqs.js +1 -1
  100. package/lib/aws/compute/fields.js +4 -4
  101. package/lib/aws/compute/function-alias.js +1 -1
  102. package/lib/aws/compute/function-base.js +2 -2
  103. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  104. package/lib/aws/compute/function-destinations/function.js +1 -1
  105. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  106. package/lib/aws/compute/function-nodejs.js +1 -1
  107. package/lib/aws/compute/function-url.js +1 -1
  108. package/lib/aws/compute/function-vpc-config.generated.d.ts +3 -3
  109. package/lib/aws/compute/function-vpc-config.generated.js +1 -1
  110. package/lib/aws/compute/function.d.ts +1 -1
  111. package/lib/aws/compute/function.js +5 -5
  112. package/lib/aws/compute/index-alpha.d.ts +5 -0
  113. package/lib/aws/compute/index-alpha.js +22 -0
  114. package/lib/aws/compute/index.d.ts +60 -0
  115. package/lib/aws/compute/index.js +70 -2
  116. package/lib/aws/compute/instance-types.d.ts +1354 -0
  117. package/lib/aws/compute/instance-types.js +1683 -0
  118. package/lib/aws/compute/instance.d.ts +436 -0
  119. package/lib/aws/compute/instance.js +262 -0
  120. package/lib/aws/compute/ip-addresses.d.ts +249 -0
  121. package/lib/aws/compute/ip-addresses.js +248 -0
  122. package/lib/aws/compute/ipam.d.ts +309 -0
  123. package/lib/aws/compute/ipam.js +306 -0
  124. package/lib/aws/compute/key-pair.d.ts +178 -0
  125. package/lib/aws/compute/key-pair.js +194 -0
  126. package/lib/aws/compute/lambda-augmentations.generated.d.ts +65 -0
  127. package/lib/aws/compute/lambda-augmentations.generated.js +41 -0
  128. package/lib/aws/compute/lambda-canned-metrics.generated.d.ts +316 -0
  129. package/lib/aws/compute/lambda-canned-metrics.generated.js +119 -0
  130. package/lib/aws/compute/launch-template.d.ts +540 -0
  131. package/lib/aws/compute/launch-template.js +468 -0
  132. package/lib/aws/compute/lb-shared/access-logs-accounts.d.ts +7 -0
  133. package/lib/aws/compute/lb-shared/access-logs-accounts.js +46 -0
  134. package/lib/aws/compute/lb-shared/base-listener.d.ts +113 -0
  135. package/lib/aws/compute/lb-shared/base-listener.js +181 -0
  136. package/lib/aws/compute/lb-shared/base-load-balancer.d.ts +212 -0
  137. package/lib/aws/compute/lb-shared/base-load-balancer.js +290 -0
  138. package/lib/aws/compute/lb-shared/base-target-group.d.ts +382 -0
  139. package/lib/aws/compute/lb-shared/base-target-group.js +364 -0
  140. package/lib/aws/compute/lb-shared/enums.d.ts +282 -0
  141. package/lib/aws/compute/lb-shared/enums.js +301 -0
  142. package/lib/aws/compute/lb-shared/grid-lookup-types.d.ts +42 -0
  143. package/lib/aws/compute/lb-shared/grid-lookup-types.js +53 -0
  144. package/lib/aws/compute/lb-shared/imported.d.ts +24 -0
  145. package/lib/aws/compute/lb-shared/imported.js +27 -0
  146. package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +194 -0
  147. package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +3 -0
  148. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +56 -0
  149. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +3 -0
  150. package/lib/aws/compute/lb-shared/listener-action.d.ts +14 -0
  151. package/lib/aws/compute/lb-shared/listener-action.js +4 -0
  152. package/lib/aws/compute/lb-shared/listener-certificate.d.ts +28 -0
  153. package/lib/aws/compute/lb-shared/listener-certificate.js +29 -0
  154. package/lib/aws/compute/lb-shared/load-balancer-targets.d.ts +93 -0
  155. package/lib/aws/compute/lb-shared/load-balancer-targets.js +127 -0
  156. package/lib/aws/compute/lb-shared/util.d.ts +113 -0
  157. package/lib/aws/compute/lb-shared/util.js +264 -0
  158. package/lib/aws/compute/lb-targets/alb-target.d.ts +67 -0
  159. package/lib/aws/compute/lb-targets/alb-target.js +100 -0
  160. package/lib/aws/compute/lb-targets/index.d.ts +4 -0
  161. package/lib/aws/compute/lb-targets/index.js +22 -0
  162. package/lib/aws/compute/lb-targets/instance-target.d.ts +42 -0
  163. package/lib/aws/compute/lb-targets/instance-target.js +67 -0
  164. package/lib/aws/compute/lb-targets/ip-target.d.ts +55 -0
  165. package/lib/aws/compute/lb-targets/ip-target.js +79 -0
  166. package/lib/aws/compute/lb-targets/lambda-target.d.ts +25 -0
  167. package/lib/aws/compute/lb-targets/lambda-target.js +50 -0
  168. package/lib/aws/compute/load-balancer.d.ts +336 -0
  169. package/lib/aws/compute/load-balancer.js +287 -0
  170. package/lib/aws/compute/machine-image/amazon-linux-2022.d.ts +63 -0
  171. package/lib/aws/compute/machine-image/amazon-linux-2022.js +84 -0
  172. package/lib/aws/compute/machine-image/amazon-linux-2023.d.ts +63 -0
  173. package/lib/aws/compute/machine-image/amazon-linux-2023.js +84 -0
  174. package/lib/aws/compute/machine-image/amazon-linux2.d.ts +76 -0
  175. package/lib/aws/compute/machine-image/amazon-linux2.js +87 -0
  176. package/lib/aws/compute/machine-image/common.d.ts +181 -0
  177. package/lib/aws/compute/machine-image/common.js +122 -0
  178. package/lib/aws/compute/machine-image/index.d.ts +5 -0
  179. package/lib/aws/compute/machine-image/index.js +22 -0
  180. package/lib/aws/compute/machine-image/machine-image.d.ts +463 -0
  181. package/lib/aws/compute/machine-image/machine-image.js +566 -0
  182. package/lib/aws/compute/machine-image/utils.d.ts +2 -0
  183. package/lib/aws/compute/machine-image/utils.js +17 -0
  184. package/lib/aws/compute/nat.d.ts +325 -0
  185. package/lib/aws/compute/nat.js +455 -0
  186. package/lib/aws/compute/network-acl-types.d.ts +152 -0
  187. package/lib/aws/compute/network-acl-types.js +156 -0
  188. package/lib/aws/compute/network-acl.d.ts +285 -0
  189. package/lib/aws/compute/network-acl.js +207 -0
  190. package/lib/aws/compute/network-util.d.ts +116 -0
  191. package/lib/aws/compute/network-util.js +241 -0
  192. package/lib/aws/compute/nlb/network-listener-action.d.ts +92 -0
  193. package/lib/aws/compute/nlb/network-listener-action.js +146 -0
  194. package/lib/aws/compute/nlb/network-listener-certificate.d.ts +24 -0
  195. package/lib/aws/compute/nlb/network-listener-certificate.js +25 -0
  196. package/lib/aws/compute/nlb/network-listener.d.ts +248 -0
  197. package/lib/aws/compute/nlb/network-listener.js +217 -0
  198. package/lib/aws/compute/nlb/network-load-balancer.d.ts +315 -0
  199. package/lib/aws/compute/nlb/network-load-balancer.js +360 -0
  200. package/lib/aws/compute/nlb/network-target-group.d.ts +153 -0
  201. package/lib/aws/compute/nlb/network-target-group.js +223 -0
  202. package/lib/aws/compute/peer.d.ts +64 -0
  203. package/lib/aws/compute/peer.js +235 -0
  204. package/lib/aws/compute/placement-group.d.ts +161 -0
  205. package/lib/aws/compute/placement-group.js +133 -0
  206. package/lib/aws/compute/port.d.ts +287 -0
  207. package/lib/aws/compute/port.js +390 -0
  208. package/lib/aws/compute/prefix-list.d.ts +131 -0
  209. package/lib/aws/compute/prefix-list.js +114 -0
  210. package/lib/aws/compute/private/context-stub.d.ts +7 -0
  211. package/lib/aws/compute/private/context-stub.js +43 -0
  212. package/lib/aws/compute/private/ebs-util.d.ts +14 -0
  213. package/lib/aws/compute/private/ebs-util.js +145 -0
  214. package/lib/aws/compute/private/intrinstics.js +2 -1
  215. package/lib/aws/compute/private/json-path.js +8 -8
  216. package/lib/aws/compute/private/util.js +2 -3
  217. package/lib/aws/compute/route.d.ts +547 -0
  218. package/lib/aws/compute/route.js +469 -0
  219. package/lib/aws/compute/security-group.d.ts +414 -0
  220. package/lib/aws/compute/security-group.js +538 -0
  221. package/lib/aws/compute/state-graph.js +1 -1
  222. package/lib/aws/compute/state-machine-fragment.js +1 -1
  223. package/lib/aws/compute/state-machine.d.ts +2 -2
  224. package/lib/aws/compute/state-machine.js +14 -12
  225. package/lib/aws/compute/states/choice.js +1 -1
  226. package/lib/aws/compute/states/custom-state.js +1 -1
  227. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  228. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  229. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  230. package/lib/aws/compute/states/distributed-map.js +1 -1
  231. package/lib/aws/compute/states/fail.js +1 -1
  232. package/lib/aws/compute/states/map-base.js +1 -1
  233. package/lib/aws/compute/states/map.js +1 -1
  234. package/lib/aws/compute/states/parallel.js +1 -1
  235. package/lib/aws/compute/states/pass.js +2 -2
  236. package/lib/aws/compute/states/state.js +5 -5
  237. package/lib/aws/compute/states/succeed.js +1 -1
  238. package/lib/aws/compute/states/task-base.js +2 -2
  239. package/lib/aws/compute/states/task.js +1 -1
  240. package/lib/aws/compute/states/wait.js +2 -2
  241. package/lib/aws/compute/stepfunctions-canned-metrics.generated.d.ts +83 -0
  242. package/lib/aws/compute/stepfunctions-canned-metrics.generated.js +127 -0
  243. package/lib/aws/compute/subnet-v2.d.ts +213 -0
  244. package/lib/aws/compute/subnet-v2.js +405 -0
  245. package/lib/aws/compute/subnet.d.ts +37 -0
  246. package/lib/aws/compute/subnet.js +181 -0
  247. package/lib/aws/compute/task-credentials.js +1 -1
  248. package/lib/aws/compute/task-input.js +1 -1
  249. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  250. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  251. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  252. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  253. package/lib/aws/compute/tasks/private/task-utils.js +3 -4
  254. package/lib/aws/compute/tasks/resource-arn-suffix.js +2 -3
  255. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  256. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  257. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  258. package/lib/aws/compute/types.js +2 -2
  259. package/lib/aws/compute/user-data.d.ts +270 -0
  260. package/lib/aws/compute/user-data.js +487 -0
  261. package/lib/aws/compute/util.d.ts +1 -1
  262. package/lib/aws/compute/util.js +4 -5
  263. package/lib/aws/compute/volume.d.ts +480 -0
  264. package/lib/aws/compute/volume.js +426 -0
  265. package/lib/aws/compute/vpc-endpoint-service.d.ts +149 -0
  266. package/lib/aws/compute/vpc-endpoint-service.js +90 -0
  267. package/lib/aws/compute/vpc-endpoint.d.ts +742 -0
  268. package/lib/aws/compute/vpc-endpoint.js +811 -0
  269. package/lib/aws/compute/vpc-flow-logs.d.ts +551 -0
  270. package/lib/aws/compute/vpc-flow-logs.js +693 -0
  271. package/lib/aws/compute/vpc-lookup.d.ts +73 -0
  272. package/lib/aws/compute/vpc-lookup.js +3 -0
  273. package/lib/aws/compute/vpc-v2-base.d.ts +353 -0
  274. package/lib/aws/compute/vpc-v2-base.js +493 -0
  275. package/lib/aws/compute/vpc-v2.d.ts +385 -0
  276. package/lib/aws/compute/vpc-v2.js +408 -0
  277. package/lib/aws/compute/vpc.d.ts +1448 -0
  278. package/lib/aws/compute/vpc.js +1495 -0
  279. package/lib/aws/compute/vpn.d.ts +443 -0
  280. package/lib/aws/compute/vpn.js +397 -0
  281. package/lib/aws/compute/windows-versions.d.ts +418 -0
  282. package/lib/aws/compute/windows-versions.js +426 -0
  283. package/lib/aws/edge/certificate-base.d.ts +20 -0
  284. package/lib/aws/edge/certificate-base.js +28 -0
  285. package/lib/aws/edge/certificate.d.ts +23 -2
  286. package/lib/aws/edge/certificate.js +54 -4
  287. package/lib/aws/edge/distribution.js +3 -3
  288. package/lib/aws/edge/dns-alias-record-targets.js +2 -2
  289. package/lib/aws/edge/dns-record.js +16 -16
  290. package/lib/aws/edge/dns-zone.d.ts +20 -2
  291. package/lib/aws/edge/dns-zone.js +25 -10
  292. package/lib/aws/edge/function.js +2 -2
  293. package/lib/aws/edge/index.d.ts +1 -0
  294. package/lib/aws/edge/index.js +2 -1
  295. package/lib/aws/edge/key-value-store.js +4 -4
  296. package/lib/aws/edge/origin.js +7 -5
  297. package/lib/aws/edge/response-headers-policy.js +1 -1
  298. package/lib/aws/encryption/alias.js +1 -1
  299. package/lib/aws/encryption/key.js +1 -1
  300. package/lib/aws/encryption/via-service-principal.js +1 -1
  301. package/lib/aws/iam/grant.js +2 -2
  302. package/lib/aws/iam/index.d.ts +1 -0
  303. package/lib/aws/iam/index.js +2 -1
  304. package/lib/aws/iam/instance-profile.d.ts +155 -0
  305. package/lib/aws/iam/instance-profile.js +124 -0
  306. package/lib/aws/iam/managed-policy.js +1 -1
  307. package/lib/aws/iam/oidc-provider.js +1 -1
  308. package/lib/aws/iam/policy-document-config.generated.d.ts +8 -8
  309. package/lib/aws/iam/policy-document-config.generated.js +1 -1
  310. package/lib/aws/iam/policy-document.js +1 -1
  311. package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
  312. package/lib/aws/iam/policy-statement-props.generated.js +1 -1
  313. package/lib/aws/iam/policy-statement.js +9 -9
  314. package/lib/aws/iam/policy.js +1 -1
  315. package/lib/aws/iam/principals.js +26 -26
  316. package/lib/aws/iam/private/assume-role-policy.js +2 -3
  317. package/lib/aws/iam/private/comparable-principal.js +2 -3
  318. package/lib/aws/iam/private/immutable-role.d.ts +2 -1
  319. package/lib/aws/iam/private/immutable-role.js +3 -3
  320. package/lib/aws/iam/private/imported-role.d.ts +1 -1
  321. package/lib/aws/iam/private/imported-role.js +3 -3
  322. package/lib/aws/iam/private/merge-statements.js +2 -3
  323. package/lib/aws/iam/private/util.js +4 -4
  324. package/lib/aws/iam/role.js +1 -1
  325. package/lib/aws/iam/saml-provider.d.ts +1 -1
  326. package/lib/aws/iam/saml-provider.js +6 -6
  327. package/lib/aws/iam/unknown-principal.js +1 -1
  328. package/lib/aws/iam/utils.js +2 -3
  329. package/lib/aws/index.d.ts +1 -0
  330. package/lib/aws/index.js +4 -1
  331. package/lib/aws/network/simple-ipv4-vpc.js +5 -5
  332. package/lib/aws/network/subnet-group.js +3 -3
  333. package/lib/aws/network/subnet.d.ts +1 -1
  334. package/lib/aws/network/subnet.js +7 -7
  335. package/lib/aws/notify/archive.js +3 -2
  336. package/lib/aws/notify/connection.js +5 -4
  337. package/lib/aws/notify/event-bus.js +5 -4
  338. package/lib/aws/notify/event-pattern.d.ts +26 -1
  339. package/lib/aws/notify/event-pattern.js +49 -5
  340. package/lib/aws/notify/index.js +3 -1
  341. package/lib/aws/notify/input.js +4 -3
  342. package/lib/aws/notify/kinesis-stream.js +3 -2
  343. package/lib/aws/notify/on-event-options.js +2 -1
  344. package/lib/aws/notify/queue-config.generated.d.ts +18 -11
  345. package/lib/aws/notify/queue-config.generated.js +1 -1
  346. package/lib/aws/notify/queue-policy.js +1 -1
  347. package/lib/aws/notify/queue.js +1 -1
  348. package/lib/aws/notify/resource-policy.js +1 -1
  349. package/lib/aws/notify/rule.js +3 -2
  350. package/lib/aws/notify/schedule.js +2 -2
  351. package/lib/aws/notify/sqs-augmentations.generated.d.ts +125 -0
  352. package/lib/aws/notify/sqs-augmentations.generated.js +74 -0
  353. package/lib/aws/notify/target.js +2 -1
  354. package/lib/aws/notify/targets/event-bus.js +1 -1
  355. package/lib/aws/notify/targets/function.js +1 -1
  356. package/lib/aws/notify/targets/log-group.js +2 -2
  357. package/lib/aws/notify/targets/sqs.js +1 -1
  358. package/lib/aws/notify/targets/state-machine.js +1 -1
  359. package/lib/aws/notify/targets/util.d.ts +1 -1
  360. package/lib/aws/notify/targets/util.js +10 -11
  361. package/lib/aws/notify/util.js +4 -4
  362. package/lib/aws/provider-config.generated.d.ts +33 -33
  363. package/lib/aws/provider-config.generated.js +1 -1
  364. package/lib/aws/storage/bucket-notifications.js +1 -1
  365. package/lib/aws/storage/bucket-policy.js +1 -1
  366. package/lib/aws/storage/bucket-source.js +1 -1
  367. package/lib/aws/storage/bucket.d.ts +298 -65
  368. package/lib/aws/storage/bucket.js +548 -225
  369. package/lib/aws/storage/cors-config.generated.d.ts +3 -3
  370. package/lib/aws/storage/cors-config.generated.js +1 -1
  371. package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
  372. package/lib/aws/storage/cors-rule-config.generated.js +1 -1
  373. package/lib/aws/storage/index.d.ts +1 -0
  374. package/lib/aws/storage/index.js +2 -1
  375. package/lib/aws/storage/lifecycle-config.generated.d.ts +11 -11
  376. package/lib/aws/storage/lifecycle-config.generated.js +1 -1
  377. package/lib/aws/storage/notification-targets/function.js +6 -6
  378. package/lib/aws/storage/notification-targets/queue.js +1 -1
  379. package/lib/aws/storage/origin-access-identity.d.ts +1 -1
  380. package/lib/aws/storage/origin-access-identity.js +5 -4
  381. package/lib/aws/storage/parameter-util.d.ts +12 -0
  382. package/lib/aws/storage/parameter-util.js +65 -0
  383. package/lib/aws/storage/parameter.d.ts +526 -0
  384. package/lib/aws/storage/parameter.js +606 -0
  385. package/lib/aws/storage/s3-canned-metrics.generated.d.ts +22 -0
  386. package/lib/aws/storage/s3-canned-metrics.generated.js +23 -0
  387. package/lib/aws/storage/util.d.ts +25 -3
  388. package/lib/aws/storage/util.js +84 -17
  389. package/lib/aws/storage/website-config.generated.d.ts +5 -5
  390. package/lib/aws/storage/website-config.generated.js +1 -1
  391. package/lib/aws/util.js +2 -3
  392. package/lib/construct-base.d.ts +10 -1
  393. package/lib/construct-base.js +9 -6
  394. package/lib/duration.js +1 -1
  395. package/lib/expiration.d.ts +48 -0
  396. package/lib/expiration.js +68 -0
  397. package/lib/helpers-internal/index.d.ts +1 -0
  398. package/lib/helpers-internal/index.js +7 -0
  399. package/lib/index.d.ts +2 -0
  400. package/lib/index.js +3 -1
  401. package/lib/private/md5.d.ts +4 -0
  402. package/lib/private/md5.js +14 -0
  403. package/lib/private/unique-resource-name.js +3 -4
  404. package/lib/size.js +2 -2
  405. package/lib/stack-base.d.ts +4 -23
  406. package/lib/stack-base.js +9 -30
  407. package/lib/terra-func.d.ts +103 -0
  408. package/lib/terra-func.js +170 -0
  409. package/lib/token.js +5 -5
  410. package/package.json +15 -8
  411. package/bun.lockb +0 -0
package/lib/aws/arn.js CHANGED
@@ -272,7 +272,7 @@ class Arn {
272
272
  }
273
273
  exports.Arn = Arn;
274
274
  _a = JSII_RTTI_SYMBOL_1;
275
- Arn[_a] = { fqn: "terraconstructs.aws.Arn", version: "0.0.11" };
275
+ Arn[_a] = { fqn: "terraconstructs.aws.Arn", version: "0.0.13" };
276
276
  /**
277
277
  * Given a Token evaluating to ARN, parses it and returns components.
278
278
  *
@@ -24,7 +24,7 @@ export interface AwsEnvironment {
24
24
  */
25
25
  export interface IAwsConstruct extends ITerraConstruct {
26
26
  /**
27
- * The stack into which this resource is contructed by the TerraConstruct.
27
+ * The stack into which this resource is constructed by the TerraConstruct.
28
28
  */
29
29
  readonly stack: AwsStack;
30
30
  /**
@@ -5,14 +5,35 @@ exports.AwsConstructBase = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const arn_1 = require("./arn");
7
7
  const aws_stack_1 = require("./aws-stack");
8
+ // import { TagManager, AwsTag } from "./tag-manager";
8
9
  const construct_base_1 = require("../construct-base");
9
10
  // ref: https://github.com/aws/aws-cdk/blob/v2.150.0/packages/aws-cdk-lib/core/lib/resource.ts#L15
10
11
  const RESOURCE_SYMBOL = Symbol.for("terraconstructs/lib/aws.AwsConstruct");
12
+ // export enum TagType {
13
+ // /**
14
+ // * Standard tags are a list of { key, value } objects
15
+ // */
16
+ // STANDARD = "StandardTag",
17
+ // /**
18
+ // * ASG tags are a list of { key, value, propagateAtLaunch } objects
19
+ // */
20
+ // AUTOSCALING_GROUP = "AutoScalingGroupTag",
21
+ // /**
22
+ // * Some constructs use a { key: value } map for tags
23
+ // */
24
+ // MAP = "StringToStringMap",
25
+ // /**
26
+ // * StackTags are of the format { key: value }
27
+ // */
28
+ // KEY_VALUE = "KeyValue",
29
+ // NOT_TAGGABLE = "NotTaggable",
30
+ // }
11
31
  // ref: https://github.com/aws/aws-cdk/blob/v2.150.0/packages/aws-cdk-lib/core/lib/resource.ts#L122
12
32
  /**
13
33
  * Represents an AWS resource similar to the AWS CDK `Resource` class but backed by CDKTF.
14
34
  */
15
35
  class AwsConstructBase extends construct_base_1.TerraConstructBase {
36
+ // public readonly cdkTagManager: TagManager;
16
37
  constructor(scope, id, props = {}) {
17
38
  super(scope, id, props);
18
39
  if ((props.account !== undefined || props.region !== undefined) &&
@@ -21,6 +42,11 @@ class AwsConstructBase extends construct_base_1.TerraConstructBase {
21
42
  }
22
43
  Object.defineProperty(this, RESOURCE_SYMBOL, { value: true });
23
44
  this.stack = aws_stack_1.AwsStack.ofAwsConstruct(this);
45
+ // this.cdkTagManager = new TagManager(
46
+ // TagType.STANDARD,
47
+ // "AwsConstruct",
48
+ // props.tags,
49
+ // );
24
50
  const parsedArn = props.environmentFromArn
25
51
  ? // Since we only want the region and account, NO_RESOURCE_NAME is good enough
26
52
  this.stack.splitArn(props.environmentFromArn, arn_1.ArnFormat.NO_RESOURCE_NAME)
@@ -34,5 +60,5 @@ class AwsConstructBase extends construct_base_1.TerraConstructBase {
34
60
  }
35
61
  exports.AwsConstructBase = AwsConstructBase;
36
62
  _a = JSII_RTTI_SYMBOL_1;
37
- AwsConstructBase[_a] = { fqn: "terraconstructs.aws.AwsConstructBase", version: "0.0.11" };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWNvbnN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3MvYXdzLWNvbnN0cnVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLCtCQUFrQztBQUNsQywyQ0FBdUM7QUFDdkMsc0RBSTJCO0FBRTNCLGtHQUFrRztBQUNsRyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7QUFpRjNFLG1HQUFtRztBQUVuRzs7R0FFRztBQUNILE1BQXNCLGdCQUNwQixTQUFRLG1DQUFrQjtJQU0xQixZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQTJCLEVBQUU7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFDRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDO1lBQzNELEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLEVBQ3RDLENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLDZDQUE2QyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLCtCQUErQixLQUFLLENBQUMsa0JBQWtCLEdBQUcsQ0FDckksQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsS0FBSyxHQUFHLG9CQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxrQkFBa0I7WUFDeEMsQ0FBQyxDQUFDLDZFQUE2RTtnQkFDN0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLEtBQUssQ0FBQyxrQkFBa0IsRUFDeEIsZUFBUyxDQUFDLGdCQUFnQixDQUMzQjtZQUNILENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDZCxJQUFJLENBQUMsR0FBRyxHQUFHO1lBQ1QsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO1lBQ3ZELE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO1lBQ2xFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1NBQy9ELENBQUM7SUFDSixDQUFDOztBQW5DSCw0Q0FvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXJuRm9ybWF0IH0gZnJvbSBcIi4vYXJuXCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuL2F3cy1zdGFja1wiO1xuaW1wb3J0IHtcbiAgVGVycmFDb25zdHJ1Y3RCYXNlLFxuICBUZXJyYUNvbnN0cnVjdFByb3BzLFxuICBJVGVycmFDb25zdHJ1Y3QsXG59IGZyb20gXCIuLi9jb25zdHJ1Y3QtYmFzZVwiO1xuXG4vLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2NvcmUvbGliL3Jlc291cmNlLnRzI0wxNVxuY29uc3QgUkVTT1VSQ0VfU1lNQk9MID0gU3ltYm9sLmZvcihcInRlcnJhY29uc3RydWN0cy9saWIvYXdzLkF3c0NvbnN0cnVjdFwiKTtcblxuLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNTAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi9yZXNvdXJjZS50cyNMMjFcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBlbnZpcm9ubWVudCBhIGdpdmVuIEF3c0NvbnN0cnVjdCBsaXZlcyBpbi5cbiAqIFVzZWQgYXMgdGhlIHJldHVybiB2YWx1ZSBmb3IgdGhlIGBJUmVzb3VyY2UuZW52YCBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NFbnZpcm9ubWVudCB7XG4gIC8qKlxuICAgKiBUaGUgQVdTIHBhcnRpdGlvbiB0aGF0IHRoaXMgcmVzb3VyY2UgYmVsb25ncyB0by5cbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIGFjY291bnQgSUQgdGhhdCB0aGlzIHJlc291cmNlIGJlbG9uZ3MgdG8uXG4gICAqL1xuICByZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgcmVnaW9uIHRoYXQgdGhpcyByZXNvdXJjZSBiZWxvbmdzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG59XG5cbi8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTUwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvcmVzb3VyY2UudHMjTDQ0XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBBV1MgcmVzb3VyY2Ugc2ltaWxhciB0byB0aGUgQVdTIENESyBgUmVzb3VyY2VgIGNsYXNzIGJ1dCBiYWNrZWQgYnkgQ0RLVEYuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUF3c0NvbnN0cnVjdCBleHRlbmRzIElUZXJyYUNvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgaW50byB3aGljaCB0aGlzIHJlc291cmNlIGlzIGNvbnRydWN0ZWQgYnkgdGhlIFRlcnJhQ29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IEF3c1N0YWNrO1xuXG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgdGhpcyByZXNvdXJjZSBiZWxvbmdzIHRvLlxuICAgKiBGb3IgcmVzb3VyY2VzIHRoYXQgYXJlIGNyZWF0ZWQgYW5kIG1hbmFnZWQgYnkgdGhlIENES1RGXG4gICAqIChnZW5lcmFsbHksIHRob3NlIGNyZWF0ZWQgYnkgY3JlYXRpbmcgbmV3IGNsYXNzIGluc3RhbmNlcyBsaWtlIEVudmlyb25tZW50LCBFY3NEZXBsb3ltZW50LCBldGMuKSxcbiAgICogdGhpcyBpcyBhbHdheXMgdGhlIHNhbWUgYXMgdGhlIGVudmlyb25tZW50IG9mIHRoZSBzdGFjayB0aGV5IGJlbG9uZyB0bztcbiAgICogaG93ZXZlciwgZm9yIGltcG9ydGVkIHJlc291cmNlc1xuICAgKiAodGhvc2Ugb2J0YWluZWQgZnJvbSBzdGF0aWMgbWV0aG9kcyBsaWtlIGZyb21Sb2xlQXJuLCBmcm9tQnVja2V0TmFtZSwgZXRjLiksXG4gICAqIHRoYXQgbWlnaHQgYmUgZGlmZmVyZW50IHRoYW4gdGhlIHN0YWNrIHRoZXkgd2VyZSBpbXBvcnRlZCBpbnRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52OiBBd3NFbnZpcm9ubWVudDtcbn1cblxuLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNTAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi9yZXNvdXJjZS50cyNMNzhcblxuLyoqXG4gKiBDb25zdHJ1Y3Rpb24gcHJvcGVydGllcyBmb3IgYFJlc291cmNlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NDb25zdHJ1Y3RQcm9wcyBleHRlbmRzIFRlcnJhQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIEFXUyBhY2NvdW50IElEIHRoaXMgcmVzb3VyY2UgYmVsb25ncyB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgcmVzb3VyY2UgaXMgaW4gdGhlIHNhbWUgYWNjb3VudCBhcyB0aGUgc3RhY2sgaXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFXUyByZWdpb24gdGhpcyByZXNvdXJjZSBiZWxvbmdzIHRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSByZXNvdXJjZSBpcyBpbiB0aGUgc2FtZSByZWdpb24gYXMgdGhlIHN0YWNrIGl0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQVJOIHRvIGRlZHVjZSByZWdpb24gYW5kIGFjY291bnQgZnJvbVxuICAgKlxuICAgKiBUaGUgQVJOIGlzIHBhcnNlZCBhbmQgdGhlIGFjY291bnQgYW5kIHJlZ2lvbiBhcmUgdGFrZW4gZnJvbSB0aGUgQVJOLlxuICAgKiBUaGlzIHNob3VsZCBiZSB1c2VkIGZvciBpbXBvcnRlZCByZXNvdXJjZXMuXG4gICAqXG4gICAqIENhbm5vdCBiZSBzdXBwbGllZCB0b2dldGhlciB3aXRoIGVpdGhlciBgYWNjb3VudGAgb3IgYHJlZ2lvbmAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGFrZSBlbnZpcm9ubWVudCBmcm9tIGBhY2NvdW50YCwgYHJlZ2lvbmAgcGFyYW1ldGVycywgb3IgdXNlIFN0YWNrIGVudmlyb25tZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnRGcm9tQXJuPzogc3RyaW5nO1xufVxuXG4vLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2NvcmUvbGliL3Jlc291cmNlLnRzI0wxMjJcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIEFXUyByZXNvdXJjZSBzaW1pbGFyIHRvIHRoZSBBV1MgQ0RLIGBSZXNvdXJjZWAgY2xhc3MgYnV0IGJhY2tlZCBieSBDREtURi5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF3c0NvbnN0cnVjdEJhc2VcbiAgZXh0ZW5kcyBUZXJyYUNvbnN0cnVjdEJhc2VcbiAgaW1wbGVtZW50cyBJQXdzQ29uc3RydWN0XG57XG4gIHB1YmxpYyByZWFkb25seSBzdGFjazogQXdzU3RhY2s7XG4gIHB1YmxpYyByZWFkb25seSBlbnY6IEF3c0Vudmlyb25tZW50O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBd3NDb25zdHJ1Y3RQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBpZiAoXG4gICAgICAocHJvcHMuYWNjb3VudCAhPT0gdW5kZWZpbmVkIHx8IHByb3BzLnJlZ2lvbiAhPT0gdW5kZWZpbmVkKSAmJlxuICAgICAgcHJvcHMuZW52aXJvbm1lbnRGcm9tQXJuICE9PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFN1cHBseSBhdCBtb3N0IG9uZSBvZiAnYWNjb3VudCcvJ3JlZ2lvbicgKCR7cHJvcHMuYWNjb3VudH0vJHtwcm9wcy5yZWdpb259KSBhbmQgJ2Vudmlyb25tZW50RnJvbUFybicgKCR7cHJvcHMuZW52aXJvbm1lbnRGcm9tQXJufSlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgUkVTT1VSQ0VfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuXG4gICAgdGhpcy5zdGFjayA9IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpO1xuXG4gICAgY29uc3QgcGFyc2VkQXJuID0gcHJvcHMuZW52aXJvbm1lbnRGcm9tQXJuXG4gICAgICA/IC8vIFNpbmNlIHdlIG9ubHkgd2FudCB0aGUgcmVnaW9uIGFuZCBhY2NvdW50LCBOT19SRVNPVVJDRV9OQU1FIGlzIGdvb2QgZW5vdWdoXG4gICAgICAgIHRoaXMuc3RhY2suc3BsaXRBcm4oXG4gICAgICAgICAgcHJvcHMuZW52aXJvbm1lbnRGcm9tQXJuLFxuICAgICAgICAgIEFybkZvcm1hdC5OT19SRVNPVVJDRV9OQU1FLFxuICAgICAgICApXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLmVudiA9IHtcbiAgICAgIHBhcnRpdGlvbjogcGFyc2VkQXJuPy5wYXJ0aXRpb24gPz8gdGhpcy5zdGFjay5wYXJ0aXRpb24sXG4gICAgICBhY2NvdW50OiBwcm9wcy5hY2NvdW50ID8/IHBhcnNlZEFybj8uYWNjb3VudCA/PyB0aGlzLnN0YWNrLmFjY291bnQsXG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvbiA/PyBwYXJzZWRBcm4/LnJlZ2lvbiA/PyB0aGlzLnN0YWNrLnJlZ2lvbixcbiAgICB9O1xuICB9XG59XG4iXX0=
63
+ AwsConstructBase[_a] = { fqn: "terraconstructs.aws.AwsConstructBase", version: "0.0.13" };
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWNvbnN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3MvYXdzLWNvbnN0cnVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLCtCQUFrQztBQUNsQywyQ0FBdUM7QUFDdkMsc0RBQXNEO0FBQ3RELHNEQUkyQjtBQUUzQixrR0FBa0c7QUFDbEcsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0FBc0YzRSx3QkFBd0I7QUFDeEIsUUFBUTtBQUNSLDBEQUEwRDtBQUMxRCxRQUFRO0FBQ1IsOEJBQThCO0FBQzlCLFFBQVE7QUFDUix3RUFBd0U7QUFDeEUsUUFBUTtBQUNSLCtDQUErQztBQUMvQyxRQUFRO0FBQ1IseURBQXlEO0FBQ3pELFFBQVE7QUFDUiwrQkFBK0I7QUFDL0IsUUFBUTtBQUNSLGtEQUFrRDtBQUNsRCxRQUFRO0FBQ1IsNEJBQTRCO0FBQzVCLGtDQUFrQztBQUNsQyxJQUFJO0FBRUosbUdBQW1HO0FBRW5HOztHQUVHO0FBQ0gsTUFBc0IsZ0JBQ3BCLFNBQVEsbUNBQWtCO0lBSzFCLDZDQUE2QztJQUU3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQTJCLEVBQUU7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFDRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDO1lBQzNELEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLEVBQ3RDLENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLDZDQUE2QyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLCtCQUErQixLQUFLLENBQUMsa0JBQWtCLEdBQUcsQ0FDckksQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsS0FBSyxHQUFHLG9CQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNDLHVDQUF1QztRQUN2QyxzQkFBc0I7UUFDdEIsb0JBQW9CO1FBQ3BCLGdCQUFnQjtRQUNoQixLQUFLO1FBQ0wsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLGtCQUFrQjtZQUN4QyxDQUFDLENBQUMsNkVBQTZFO2dCQUM3RSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsS0FBSyxDQUFDLGtCQUFrQixFQUN4QixlQUFTLENBQUMsZ0JBQWdCLENBQzNCO1lBQ0gsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNkLElBQUksQ0FBQyxHQUFHLEdBQUc7WUFDVCxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7WUFDdkQsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksU0FBUyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87WUFDbEUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07U0FDL0QsQ0FBQztJQUNKLENBQUM7O0FBekNILDRDQTBDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcm5Gb3JtYXQgfSBmcm9tIFwiLi9hcm5cIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4vYXdzLXN0YWNrXCI7XG4vLyBpbXBvcnQgeyBUYWdNYW5hZ2VyLCBBd3NUYWcgfSBmcm9tIFwiLi90YWctbWFuYWdlclwiO1xuaW1wb3J0IHtcbiAgVGVycmFDb25zdHJ1Y3RCYXNlLFxuICBUZXJyYUNvbnN0cnVjdFByb3BzLFxuICBJVGVycmFDb25zdHJ1Y3QsXG59IGZyb20gXCIuLi9jb25zdHJ1Y3QtYmFzZVwiO1xuXG4vLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2NvcmUvbGliL3Jlc291cmNlLnRzI0wxNVxuY29uc3QgUkVTT1VSQ0VfU1lNQk9MID0gU3ltYm9sLmZvcihcInRlcnJhY29uc3RydWN0cy9saWIvYXdzLkF3c0NvbnN0cnVjdFwiKTtcblxuLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNTAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi9yZXNvdXJjZS50cyNMMjFcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBlbnZpcm9ubWVudCBhIGdpdmVuIEF3c0NvbnN0cnVjdCBsaXZlcyBpbi5cbiAqIFVzZWQgYXMgdGhlIHJldHVybiB2YWx1ZSBmb3IgdGhlIGBJUmVzb3VyY2UuZW52YCBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NFbnZpcm9ubWVudCB7XG4gIC8qKlxuICAgKiBUaGUgQVdTIHBhcnRpdGlvbiB0aGF0IHRoaXMgcmVzb3VyY2UgYmVsb25ncyB0by5cbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIGFjY291bnQgSUQgdGhhdCB0aGlzIHJlc291cmNlIGJlbG9uZ3MgdG8uXG4gICAqL1xuICByZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgcmVnaW9uIHRoYXQgdGhpcyByZXNvdXJjZSBiZWxvbmdzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG59XG5cbi8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTUwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvcmVzb3VyY2UudHMjTDQ0XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBBV1MgcmVzb3VyY2Ugc2ltaWxhciB0byB0aGUgQVdTIENESyBgUmVzb3VyY2VgIGNsYXNzIGJ1dCBiYWNrZWQgYnkgQ0RLVEYuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUF3c0NvbnN0cnVjdCBleHRlbmRzIElUZXJyYUNvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgaW50byB3aGljaCB0aGlzIHJlc291cmNlIGlzIGNvbnN0cnVjdGVkIGJ5IHRoZSBUZXJyYUNvbnN0cnVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrOiBBd3NTdGFjaztcblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IHRoaXMgcmVzb3VyY2UgYmVsb25ncyB0by5cbiAgICogRm9yIHJlc291cmNlcyB0aGF0IGFyZSBjcmVhdGVkIGFuZCBtYW5hZ2VkIGJ5IHRoZSBDREtURlxuICAgKiAoZ2VuZXJhbGx5LCB0aG9zZSBjcmVhdGVkIGJ5IGNyZWF0aW5nIG5ldyBjbGFzcyBpbnN0YW5jZXMgbGlrZSBFbnZpcm9ubWVudCwgRWNzRGVwbG95bWVudCwgZXRjLiksXG4gICAqIHRoaXMgaXMgYWx3YXlzIHRoZSBzYW1lIGFzIHRoZSBlbnZpcm9ubWVudCBvZiB0aGUgc3RhY2sgdGhleSBiZWxvbmcgdG87XG4gICAqIGhvd2V2ZXIsIGZvciBpbXBvcnRlZCByZXNvdXJjZXNcbiAgICogKHRob3NlIG9idGFpbmVkIGZyb20gc3RhdGljIG1ldGhvZHMgbGlrZSBmcm9tUm9sZUFybiwgZnJvbUJ1Y2tldE5hbWUsIGV0Yy4pLFxuICAgKiB0aGF0IG1pZ2h0IGJlIGRpZmZlcmVudCB0aGFuIHRoZSBzdGFjayB0aGV5IHdlcmUgaW1wb3J0ZWQgaW50by5cbiAgICovXG4gIHJlYWRvbmx5IGVudjogQXdzRW52aXJvbm1lbnQ7XG5cbiAgLy8gLyoqXG4gIC8vICAqIFRhZyBNYW5hZ2VyIHdoaWNoIG1hbmFnZXMgdGhlIHRhZ3MgZm9yIHRoaXMgcmVzb3VyY2VcbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IGNka1RhZ01hbmFnZXI6IFRhZ01hbmFnZXI7XG59XG5cbi8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTUwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvcmVzb3VyY2UudHMjTDc4XG5cbi8qKlxuICogQ29uc3RydWN0aW9uIHByb3BlcnRpZXMgZm9yIGBSZXNvdXJjZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXdzQ29uc3RydWN0UHJvcHMgZXh0ZW5kcyBUZXJyYUNvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBV1MgYWNjb3VudCBJRCB0aGlzIHJlc291cmNlIGJlbG9uZ3MgdG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIHJlc291cmNlIGlzIGluIHRoZSBzYW1lIGFjY291bnQgYXMgdGhlIHN0YWNrIGl0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgcmVnaW9uIHRoaXMgcmVzb3VyY2UgYmVsb25ncyB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgcmVzb3VyY2UgaXMgaW4gdGhlIHNhbWUgcmVnaW9uIGFzIHRoZSBzdGFjayBpdCBiZWxvbmdzIHRvXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFSTiB0byBkZWR1Y2UgcmVnaW9uIGFuZCBhY2NvdW50IGZyb21cbiAgICpcbiAgICogVGhlIEFSTiBpcyBwYXJzZWQgYW5kIHRoZSBhY2NvdW50IGFuZCByZWdpb24gYXJlIHRha2VuIGZyb20gdGhlIEFSTi5cbiAgICogVGhpcyBzaG91bGQgYmUgdXNlZCBmb3IgaW1wb3J0ZWQgcmVzb3VyY2VzLlxuICAgKlxuICAgKiBDYW5ub3QgYmUgc3VwcGxpZWQgdG9nZXRoZXIgd2l0aCBlaXRoZXIgYGFjY291bnRgIG9yIGByZWdpb25gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRha2UgZW52aXJvbm1lbnQgZnJvbSBgYWNjb3VudGAsIGByZWdpb25gIHBhcmFtZXRlcnMsIG9yIHVzZSBTdGFjayBlbnZpcm9ubWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50RnJvbUFybj86IHN0cmluZztcbn1cblxuLy8gZXhwb3J0IGVudW0gVGFnVHlwZSB7XG4vLyAgIC8qKlxuLy8gICAgKiBTdGFuZGFyZCB0YWdzIGFyZSBhIGxpc3Qgb2YgeyBrZXksIHZhbHVlIH0gb2JqZWN0c1xuLy8gICAgKi9cbi8vICAgU1RBTkRBUkQgPSBcIlN0YW5kYXJkVGFnXCIsXG4vLyAgIC8qKlxuLy8gICAgKiBBU0cgdGFncyBhcmUgYSBsaXN0IG9mIHsga2V5LCB2YWx1ZSwgcHJvcGFnYXRlQXRMYXVuY2ggfSBvYmplY3RzXG4vLyAgICAqL1xuLy8gICBBVVRPU0NBTElOR19HUk9VUCA9IFwiQXV0b1NjYWxpbmdHcm91cFRhZ1wiLFxuLy8gICAvKipcbi8vICAgICogU29tZSBjb25zdHJ1Y3RzIHVzZSBhIHsga2V5OiB2YWx1ZSB9IG1hcCBmb3IgdGFnc1xuLy8gICAgKi9cbi8vICAgTUFQID0gXCJTdHJpbmdUb1N0cmluZ01hcFwiLFxuLy8gICAvKipcbi8vICAgICogU3RhY2tUYWdzIGFyZSBvZiB0aGUgZm9ybWF0IHsga2V5OiB2YWx1ZSB9XG4vLyAgICAqL1xuLy8gICBLRVlfVkFMVUUgPSBcIktleVZhbHVlXCIsXG4vLyAgIE5PVF9UQUdHQUJMRSA9IFwiTm90VGFnZ2FibGVcIixcbi8vIH1cblxuLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNTAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi9yZXNvdXJjZS50cyNMMTIyXG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBBV1MgcmVzb3VyY2Ugc2ltaWxhciB0byB0aGUgQVdTIENESyBgUmVzb3VyY2VgIGNsYXNzIGJ1dCBiYWNrZWQgYnkgQ0RLVEYuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBd3NDb25zdHJ1Y3RCYXNlXG4gIGV4dGVuZHMgVGVycmFDb25zdHJ1Y3RCYXNlXG4gIGltcGxlbWVudHMgSUF3c0NvbnN0cnVjdFxue1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhY2s6IEF3c1N0YWNrO1xuICBwdWJsaWMgcmVhZG9ubHkgZW52OiBBd3NFbnZpcm9ubWVudDtcbiAgLy8gcHVibGljIHJlYWRvbmx5IGNka1RhZ01hbmFnZXI6IFRhZ01hbmFnZXI7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEF3c0NvbnN0cnVjdFByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGlmIChcbiAgICAgIChwcm9wcy5hY2NvdW50ICE9PSB1bmRlZmluZWQgfHwgcHJvcHMucmVnaW9uICE9PSB1bmRlZmluZWQpICYmXG4gICAgICBwcm9wcy5lbnZpcm9ubWVudEZyb21Bcm4gIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgU3VwcGx5IGF0IG1vc3Qgb25lIG9mICdhY2NvdW50Jy8ncmVnaW9uJyAoJHtwcm9wcy5hY2NvdW50fS8ke3Byb3BzLnJlZ2lvbn0pIGFuZCAnZW52aXJvbm1lbnRGcm9tQXJuJyAoJHtwcm9wcy5lbnZpcm9ubWVudEZyb21Bcm59KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBSRVNPVVJDRV9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG5cbiAgICB0aGlzLnN0YWNrID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QodGhpcyk7XG5cbiAgICAvLyB0aGlzLmNka1RhZ01hbmFnZXIgPSBuZXcgVGFnTWFuYWdlcihcbiAgICAvLyAgIFRhZ1R5cGUuU1RBTkRBUkQsXG4gICAgLy8gICBcIkF3c0NvbnN0cnVjdFwiLFxuICAgIC8vICAgcHJvcHMudGFncyxcbiAgICAvLyApO1xuICAgIGNvbnN0IHBhcnNlZEFybiA9IHByb3BzLmVudmlyb25tZW50RnJvbUFyblxuICAgICAgPyAvLyBTaW5jZSB3ZSBvbmx5IHdhbnQgdGhlIHJlZ2lvbiBhbmQgYWNjb3VudCwgTk9fUkVTT1VSQ0VfTkFNRSBpcyBnb29kIGVub3VnaFxuICAgICAgICB0aGlzLnN0YWNrLnNwbGl0QXJuKFxuICAgICAgICAgIHByb3BzLmVudmlyb25tZW50RnJvbUFybixcbiAgICAgICAgICBBcm5Gb3JtYXQuTk9fUkVTT1VSQ0VfTkFNRSxcbiAgICAgICAgKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy5lbnYgPSB7XG4gICAgICBwYXJ0aXRpb246IHBhcnNlZEFybj8ucGFydGl0aW9uID8/IHRoaXMuc3RhY2sucGFydGl0aW9uLFxuICAgICAgYWNjb3VudDogcHJvcHMuYWNjb3VudCA/PyBwYXJzZWRBcm4/LmFjY291bnQgPz8gdGhpcy5zdGFjay5hY2NvdW50LFxuICAgICAgcmVnaW9uOiBwcm9wcy5yZWdpb24gPz8gcGFyc2VkQXJuPy5yZWdpb24gPz8gdGhpcy5zdGFjay5yZWdpb24sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -188,12 +188,10 @@ export declare class AwsStack extends StackBase implements IAwsStack {
188
188
  */
189
189
  get availabilityZoneIterator(): ResourceTerraformIterator;
190
190
  /**
191
- * Returns a Token as List of AZ names that are available in the stack's
191
+ * Returns a List of Tokens for AZ names available in the stack's
192
192
  * AWS environment (account/region).
193
193
  *
194
- * The list is slized by `maxCount` which defaults to 2.
195
- *
196
- * Note: Must use `Fn.element` to access the AZ names.
194
+ * The list length is `maxCount` which defaults to 2.
197
195
  *
198
196
  * @param maxCount the maximum number of AZs to return
199
197
  */
@@ -9,6 +9,8 @@ const change_case_1 = require("change-case");
9
9
  const arn_1 = require("./arn");
10
10
  const terraform_dependables_aspect_1 = require("../private/terraform-dependables-aspect");
11
11
  const stack_base_1 = require("../stack-base");
12
+ // import { TagType } from "./aws-construct";
13
+ // import { TagManager, ITaggableV2 } from "./tag-manager";
12
14
  const AWS_STACK_SYMBOL = Symbol.for("terraconstructs/lib/aws.AwsStack");
13
15
  /**
14
16
  * A Terraform stack constrained to a single AWS Account/Region to simulate CFN behavior.
@@ -38,8 +40,16 @@ class AwsStack extends stack_base_1.StackBase {
38
40
  constructor(scope, id, props) {
39
41
  super(scope, id, props);
40
42
  this.regionalAwsProviders = {};
43
+ // this.cdkTagManager = new TagManager(
44
+ // TagType.KEY_VALUE,
45
+ // "cdktf:stack",
46
+ // props.providerConfig.defaultTags,
47
+ // );
41
48
  this.lookup = {
42
- awsProvider: new provider_aws_1.provider.AwsProvider(this, "defaultAwsProvider", props.providerConfig),
49
+ awsProvider: new provider_aws_1.provider.AwsProvider(this, "defaultAwsProvider", {
50
+ // defaultTags: this.cdkTagManager.renderedTags,
51
+ ...props.providerConfig,
52
+ }),
43
53
  dataAwsServicePrincipals: {},
44
54
  };
45
55
  // these should never depend on anything (HACK to avoid cycles)
@@ -280,24 +290,27 @@ class AwsStack extends stack_base_1.StackBase {
280
290
  return cdktf_1.TerraformIterator.fromDataSources(azs);
281
291
  }
282
292
  /**
283
- * Returns a Token as List of AZ names that are available in the stack's
293
+ * Returns a List of Tokens for AZ names available in the stack's
284
294
  * AWS environment (account/region).
285
295
  *
286
- * The list is slized by `maxCount` which defaults to 2.
287
- *
288
- * Note: Must use `Fn.element` to access the AZ names.
296
+ * The list length is `maxCount` which defaults to 2.
289
297
  *
290
298
  * @param maxCount the maximum number of AZs to return
291
299
  */
292
300
  availabilityZones(maxCount = 2) {
301
+ // TODO: Implement ContextProvider
293
302
  const azs = this.dataAwsAvailabilityZones;
294
- return cdktf_1.Token.asList(cdktf_1.Fn.slice(azs.names, 0, maxCount));
303
+ const azLookups = [];
304
+ for (let i = 0; i < maxCount; i++) {
305
+ azLookups.push(cdktf_1.Fn.element(azs.names, i));
306
+ }
307
+ return azLookups;
295
308
  }
296
309
  }
297
310
  exports.AwsStack = AwsStack;
298
311
  _a = JSII_RTTI_SYMBOL_1;
299
- AwsStack[_a] = { fqn: "terraconstructs.aws.AwsStack", version: "0.0.11" };
312
+ AwsStack[_a] = { fqn: "terraconstructs.aws.AwsStack", version: "0.0.13" };
300
313
  function toTerraformIdentifier(identifier) {
301
314
  return (0, change_case_1.snakeCase)(identifier).replace(/-/g, "_");
302
315
  }
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3cy9hd3Mtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFPNkI7QUFDN0IsaUNBTWU7QUFDZiw2Q0FBd0M7QUFFeEMsK0JBQXNEO0FBRXRELDBGQUFzRjtBQUN0Riw4Q0FBa0U7QUFFbEUsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7QUFpRHhFOztHQUVHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsc0JBQVM7SUFDckMsZ0dBQWdHO0lBRWhHOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQU07UUFDN0IsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxnQkFBZ0IsSUFBSSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELGdHQUFnRztJQUVoRzs7O09BR0c7SUFDSSxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQXFCO1FBQ2hELE1BQU0sQ0FBQyxHQUFHLHNCQUFjLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IsYUFBYSxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksU0FBUyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksd0VBQXdFLENBQzdJLENBQUM7SUFDSixDQUFDO0lBcUJELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFuQmxCLHlCQUFvQixHQUErQyxFQUFFLENBQUM7UUFvQjVFLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixX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Q0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILElBQVcsd0JBQXdCO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztRQUMxQyxPQUFPLHlCQUFpQixDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksaUJBQWlCLENBQUMsV0FBbUIsQ0FBQztRQUMzQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUM7UUFDMUMsT0FBTyxhQUFLLENBQUMsTUFBTSxDQUFDLFVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDOztBQWpXSCw0QkEyV0M7OztBQUVELFNBQVMscUJBQXFCLENBQUMsVUFBa0I7SUFDL0MsT0FBTyxJQUFBLHVCQUFTLEVBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZGF0YUF3c0F2YWlsYWJpbGl0eVpvbmVzLFxuICBkYXRhQXdzQ2FsbGVySWRlbnRpdHksXG4gIGRhdGFBd3NQYXJ0aXRpb24sXG4gIGRhdGFBd3NSZWdpb24sXG4gIGRhdGFBd3NTZXJ2aWNlUHJpbmNpcGFsLFxuICBwcm92aWRlcixcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7XG4gIFRlcnJhZm9ybVN0YWNrLFxuICBUZXJyYWZvcm1JdGVyYXRvcixcbiAgVG9rZW4sXG4gIEZuLFxuICBSZXNvdXJjZVRlcnJhZm9ybUl0ZXJhdG9yLFxufSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IHNuYWtlQ2FzZSB9IGZyb20gXCJjaGFuZ2UtY2FzZVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFybiwgQXJuQ29tcG9uZW50cywgQXJuRm9ybWF0IH0gZnJvbSBcIi4vYXJuXCI7XG5pbXBvcnQgeyBBd3NQcm92aWRlckNvbmZpZyB9IGZyb20gXCIuL3Byb3ZpZGVyLWNvbmZpZy5nZW5lcmF0ZWRcIjtcbmltcG9ydCB7IFNLSVBfREVQRU5ERU5DWV9QUk9QQUdBVElPTiB9IGZyb20gXCIuLi9wcml2YXRlL3RlcnJhZm9ybS1kZXBlbmRhYmxlcy1hc3BlY3RcIjtcbmltcG9ydCB7IFN0YWNrQmFzZVByb3BzLCBTdGFja0Jhc2UsIElTdGFjayB9IGZyb20gXCIuLi9zdGFjay1iYXNlXCI7XG5cbmNvbnN0IEFXU19TVEFDS19TWU1CT0wgPSBTeW1ib2wuZm9yKFwidGVycmFjb25zdHJ1Y3RzL2xpYi9hd3MuQXdzU3RhY2tcIik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdzU3RhY2tQcm9wcyBleHRlbmRzIFN0YWNrQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBV1MgUHJvdmlkZXIgY29uZmlndXJhdGlvbiAod2l0aG91dCB0aGUgYWxpYXMgZmllbGQpXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlckNvbmZpZzogQXdzUHJvdmlkZXJDb25maWc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUF3c1N0YWNrIGV4dGVuZHMgSVN0YWNrIHtcbiAgLyoqXG4gICAqIFRoZSBBV1MgUmVnaW9uIGZvciB0aGUgVGVycmFDb25zdHJ1Y3RcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFXUyBBY2NvdW50IGZvciB0aGUgVGVycmFDb25zdHJ1Y3RcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBV1MgUGFydGl0aW9uIGZvciB0aGUgVGVycmFDb25zdHJ1Y3RcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBQcmluY2lwYWwgSWQgZm9yIGEgc3BlY2lmaWMgc2VydmljZVxuICAgKlxuICAgKiBAcGFyYW0gc2VydmljZU5hbWUgVGhlIHNlcnZpY2UgbmFtZSB0byBnZXQgdGhlIHNlcnZpY2UgcHJpbmNpcGFsIElEIGZvclxuICAgKiBAcGFyYW0gcmVnaW9uIFRoZSByZWdpb24gdG8gZ2V0IHRoZSBzZXJ2aWNlIHByaW5jaXBhbCBJRCBmb3JcbiAgICovXG4gIHNlcnZpY2VQcmluY2lwYWxOYW1lKHNlcnZpY2VOYW1lOiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZyk6IHN0cmluZztcbiAgLy8gLyoqXG4gIC8vICAqIFByb2R1Y2UgdGhlIFRva2VuJ3MgdmFsdWUgYXQgcmVzb2x1dGlvbiB0aW1lXG4gIC8vICAqL1xuICAvLyByZXNvbHZlPFQ+KG9iajogVCk6IFQ7XG59XG5cbmludGVyZmFjZSBBd3NMb29rdXAge1xuICBhd3NQcm92aWRlcjogcHJvdmlkZXIuQXdzUHJvdmlkZXI7XG4gIGRhdGFBd3NSZWdpb24/OiBkYXRhQXdzUmVnaW9uLkRhdGFBd3NSZWdpb247XG4gIGRhdGFBd3NDYWxsZXJJZGVudGl0eT86IGRhdGFBd3NDYWxsZXJJZGVudGl0eS5EYXRhQXdzQ2FsbGVySWRlbnRpdHk7XG4gIGRhdGFBd3NQYXJ0aXRpb24/OiBkYXRhQXdzUGFydGl0aW9uLkRhdGFBd3NQYXJ0aXRpb247XG4gIGRhdGFBd3NBdmFpbGFiaWxpdHlab25lcz86IGRhdGFBd3NBdmFpbGFiaWxpdHlab25lcy5EYXRhQXdzQXZhaWxhYmlsaXR5Wm9uZXM7XG4gIC8vIEFXUyBTZXJ2aWNlIFByaW5jaXBhbHMgYnkgcmVnaW9uIGFuZCBieSBzZXJ2aWNlXG4gIGRhdGFBd3NTZXJ2aWNlUHJpbmNpcGFsczogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICBSZWNvcmQ8c3RyaW5nLCBkYXRhQXdzU2VydmljZVByaW5jaXBhbC5EYXRhQXdzU2VydmljZVByaW5jaXBhbD5cbiAgPjtcbn1cblxuLyoqXG4gKiBBIFRlcnJhZm9ybSBzdGFjayBjb25zdHJhaW5lZCB0byBhIHNpbmdsZSBBV1MgQWNjb3VudC9SZWdpb24gdG8gc2ltdWxhdGUgQ0ZOIGJlaGF2aW9yLlxuICovXG5leHBvcnQgY2xhc3MgQXdzU3RhY2sgZXh0ZW5kcyBTdGFja0Jhc2UgaW1wbGVtZW50cyBJQXdzU3RhY2sge1xuICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2NvcmUvbGliL3N0YWNrLnRzI0wyMDRcblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIG9iamVjdCBpcyBhIFN0YWNrLlxuICAgKlxuICAgKiBhdHRyaWJ1dGUgZGV0ZWN0aW9uIHNpbmNlIGFzICdpbnN0YW5jZW9mJyBwb3RlbnRpYWxseSBmYWlscyBhY3Jvc3MgTGlicmFyeSByZWxlYXNlcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNBd3NTdGFjayh4OiBhbnkpOiB4IGlzIEF3c1N0YWNrIHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiAmJiBBV1NfU1RBQ0tfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2NvcmUvbGliL3N0YWNrLnRzI0wyMTJcblxuICAvKipcbiAgICogTG9va3MgdXAgdGhlIGZpcnN0IHN0YWNrIHNjb3BlIGluIHdoaWNoIGBjb25zdHJ1Y3RgIGlzIGRlZmluZWQuIEZhaWxzIGlmIHRoZXJlIGlzIG5vIHN0YWNrIHVwIHRoZSB0cmVlIG9yIHRoZSBzdGFjayBpcyBub3QgYW4gQXdzU3RhY2suXG4gICAqIEBwYXJhbSBjb25zdHJ1Y3QgVGhlIGNvbnN0cnVjdCB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mQXdzQ29uc3RydWN0KGNvbnN0cnVjdDogSUNvbnN0cnVjdCk6IEF3c1N0YWNrIHtcbiAgICBjb25zdCBzID0gVGVycmFmb3JtU3RhY2sub2YoY29uc3RydWN0KTtcbiAgICBpZiAoQXdzU3RhY2suaXNBd3NTdGFjayhzKSkge1xuICAgICAgcmV0dXJuIHM7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBSZXNvdXJjZSAnJHtjb25zdHJ1Y3QuY29uc3RydWN0b3I/Lm5hbWV9JyBhdCAnJHtjb25zdHJ1Y3Qubm9kZS5wYXRofScgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIHNjb3BlIG9mIGFuIEF3c1N0YWNrLCBidXQgbm8gQXdzU3RhY2sgZm91bmRgLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvb2t1cDogQXdzTG9va3VwO1xuICBwcml2YXRlIHJlZ2lvbmFsQXdzUHJvdmlkZXJzOiB7IFtyZWdpb246IHN0cmluZ106IHByb3ZpZGVyLkF3c1Byb3ZpZGVyIH0gPSB7fTtcblxuICAvKipcbiAgICogQ2FjaGUgdGhlc2UgdG9rZW5zIGZvciByZWxpYWJsZSBjb21wYXJpc29ucy5cbiAgICpcbiAgICogRXZlcnkgY2FsbCBmb3IgdGhlIHNhbWUgVG9rZW4gd2lsbCBwcm9kdWNlIGEgbmV3IHVuaXF1ZSBzdHJpbmcsIG5vXG4gICAqIGF0dGVtcHQgaXMgbWFkZSB0byBkZWR1cGxpY2F0ZS4gVG9rZW4gb2JqZWN0cyBzaG91bGQgY2FjaGUgdGhlXG4gICAqIHZhbHVlIHRoZW1zZWx2ZXMsIGlmIHJlcXVpcmVkLlxuICAgKlxuICAgKiBkYXRhU291cmNlLmdldFNUcmluZ2F0dHJpYnV0ZSAtPiBUb2tlbi5hc1N0cmluZyAtPiB0b2tlbk1hcC5yZWdpc3RlclN0cmluZ1xuICAgKiByZWY6XG4gICAqIC0gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2Jsb2IvdjAuMjAuMTAvcGFja2FnZXMvY2RrdGYvbGliL3RlcnJhZm9ybS1kYXRhLXNvdXJjZS50cyNMNjhcbiAgICogLSBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvYmxvYi92MC4yMC4xMC9wYWNrYWdlcy9jZGt0Zi9saWIvdG9rZW5zL3ByaXZhdGUvdG9rZW4tbWFwLnRzI0w1MC1MNjZcbiAgICovXG4gIHByaXZhdGUgX2FjY291bnRJZFRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX3Bhcml0aW9uVG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfdXJsU3VmZml4VG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXdzU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMubG9va3VwID0ge1xuICAgICAgYXdzUHJvdmlkZXI6IG5ldyBwcm92aWRlci5Bd3NQcm92aWRlcihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJkZWZhdWx0QXdzUHJvdmlkZXJcIixcbiAgICAgICAgcHJvcHMucHJvdmlkZXJDb25maWcsXG4gICAgICApLFxuICAgICAgZGF0YUF3c1NlcnZpY2VQcmluY2lwYWxzOiB7fSxcbiAgICB9O1xuICAgIC8vIHRoZXNlIHNob3VsZCBuZXZlciBkZXBlbmQgb24gYW55dGhpbmcgKEhBQ0sgdG8gYXZvaWQgY3ljbGVzKVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBV1NfU1RBQ0tfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBwcm92aWRlcigpOiBwcm92aWRlci5Bd3NQcm92aWRlciB7XG4gICAgcmV0dXJuIHRoaXMubG9va3VwLmF3c1Byb3ZpZGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgUmVnaW9uIG9mIHRoZSBBV1MgU3RhY2tcbiAgICovXG4gIHB1YmxpYyBnZXQgcmVnaW9uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubG9va3VwLmF3c1Byb3ZpZGVyLnJlZ2lvbikge1xuICAgICAgcmV0dXJuIHRoaXMubG9va3VwLmF3c1Byb3ZpZGVyLnJlZ2lvbjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmxvb2t1cC5kYXRhQXdzUmVnaW9uKSB7XG4gICAgICBjb25zdCByZWdpb24gPSBuZXcgZGF0YUF3c1JlZ2lvbi5EYXRhQXdzUmVnaW9uKHRoaXMsIFwiUmVnaW9uXCIsIHtcbiAgICAgICAgcHJvdmlkZXI6IHRoaXMubG9va3VwLmF3c1Byb3ZpZGVyLFxuICAgICAgfSk7XG4gICAgICAvLyB0aGVzZSBzaG91bGQgbmV2ZXIgZGVwZW5kIG9uIGFueXRoaW5nIChIQUNLIHRvIGF2b2lkIGN5Y2xlcylcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZWdpb24sIFNLSVBfREVQRU5ERU5DWV9QUk9QQUdBVElPTiwge1xuICAgICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5sb29rdXAuZGF0YUF3c1JlZ2lvbiA9IHJlZ2lvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubG9va3VwLmRhdGFBd3NSZWdpb24ubmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGRhdGFBd3NDYWxsZXJJZGVudGl0eSgpOiBkYXRhQXdzQ2FsbGVySWRlbnRpdHkuRGF0YUF3c0NhbGxlcklkZW50aXR5IHtcbiAgICBpZiAoIXRoaXMubG9va3VwLmRhdGFBd3NDYWxsZXJJZGVudGl0eSkge1xuICAgICAgY29uc3QgaWRlbnRpdHkgPSBuZXcgZGF0YUF3c0NhbGxlcklkZW50aXR5LkRhdGFBd3NDYWxsZXJJZGVudGl0eShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJDYWxsZXJJZGVudGl0eVwiLFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZXI6IHRoaXMubG9va3VwLmF3c1Byb3ZpZGVyLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIC8vIHRoZXNlIHNob3VsZCBuZXZlciBkZXBlbmQgb24gYW55dGhpbmcgKEhBQ0sgdG8gYXZvaWQgY3ljbGVzKVxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGlkZW50aXR5LCBTS0lQX0RFUEVOREVOQ1lfUFJPUEFHQVRJT04sIHtcbiAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubG9va3VwLmRhdGFBd3NDYWxsZXJJZGVudGl0eSA9IGlkZW50aXR5O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sb29rdXAuZGF0YUF3c0NhbGxlcklkZW50aXR5O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZGF0YUF3c0F2YWlsYWJpbGl0eVpvbmVzKCk6IGRhdGFBd3NBdmFpbGFiaWxpdHlab25lcy5EYXRhQXdzQXZhaWxhYmlsaXR5Wm9uZXMge1xuICAgIGlmICghdGhpcy5sb29rdXAuZGF0YUF3c0F2YWlsYWJpbGl0eVpvbmVzKSB7XG4gICAgICBjb25zdCBhenMgPSBuZXcgZGF0YUF3c0F2YWlsYWJpbGl0eVpvbmVzLkRhdGFBd3NBdmFpbGFiaWxpdHlab25lcyhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiLFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZXI6IHRoaXMubG9va3VwLmF3c1Byb3ZpZGVyLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIC8vIHRoZXNlIHNob3VsZCBuZXZlciBkZXBlbmQgb24gYW55dGhpbmcgKEhBQ0sgdG8gYXZvaWQgY3ljbGVzKVxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGF6cywgU0tJUF9ERVBFTkRFTkNZX1BST1BBR0FUSU9OLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5sb29rdXAuZGF0YUF3c0F2YWlsYWJpbGl0eVpvbmVzID0gYXpzO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sb29rdXAuZGF0YUF3c0F2YWlsYWJpbGl0eVpvbmVzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZGF0YUF3c1BhcnRpdGlvbigpOiBkYXRhQXdzUGFydGl0aW9uLkRhdGFBd3NQYXJ0aXRpb24ge1xuICAgIGlmICghdGhpcy5sb29rdXAuZGF0YUF3c1BhcnRpdGlvbikge1xuICAgICAgY29uc3QgcGFydGl0aW9uID0gbmV3IGRhdGFBd3NQYXJ0aXRpb24uRGF0YUF3c1BhcnRpdGlvbihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJQYXJ0aXRpdGlvblwiLFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZXI6IHRoaXMubG9va3VwLmF3c1Byb3ZpZGVyLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIC8vIHRoZXNlIHNob3VsZCBuZXZlciBkZXBlbmQgb24gYW55dGhpbmcgKEhBQ0sgdG8gYXZvaWQgY3ljbGVzKVxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBhcnRpdGlvbiwgU0tJUF9ERVBFTkRFTkNZX1BST1BBR0FUSU9OLCB7XG4gICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmxvb2t1cC5kYXRhQXdzUGFydGl0aW9uID0gcGFydGl0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sb29rdXAuZGF0YUF3c1BhcnRpdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVnaW9uYWxBd3NQcm92aWRlcihyZWdpb246IHN0cmluZyk6IHByb3ZpZGVyLkF3c1Byb3ZpZGVyIHtcbiAgICBpZiAoIXRoaXMucmVnaW9uYWxBd3NQcm92aWRlcnNbcmVnaW9uXSkge1xuICAgICAgdGhpcy5yZWdpb25hbEF3c1Byb3ZpZGVyc1tyZWdpb25dID0gbmV3IHByb3ZpZGVyLkF3c1Byb3ZpZGVyKFxuICAgICAgICB0aGlzLFxuICAgICAgICBgYXdzXyR7dG9UZXJyYWZvcm1JZGVudGlmaWVyKHJlZ2lvbil9YCxcbiAgICAgICAge1xuICAgICAgICAgIHJlZ2lvbixcbiAgICAgICAgICBhbGlhczogdG9UZXJyYWZvcm1JZGVudGlmaWVyKHJlZ2lvbiksXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZWdpb25hbEF3c1Byb3ZpZGVyc1tyZWdpb25dO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgQWNjb3VudCBvZiB0aGUgQVdTIFN0YWNrXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFjY291bnQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX2FjY291bnRJZFRva2VuKSB7XG4gICAgICB0aGlzLl9hY2NvdW50SWRUb2tlbiA9IHRoaXMuZGF0YUF3c0NhbGxlcklkZW50aXR5LmFjY291bnRJZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2FjY291bnRJZFRva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgUGFydGl0aW9uIG9mIHRoZSBBV1MgU3RhY2tcbiAgICovXG4gIHB1YmxpYyBnZXQgcGFydGl0aW9uKCkge1xuICAgIGlmICghdGhpcy5fcGFyaXRpb25Ub2tlbikge1xuICAgICAgdGhpcy5fcGFyaXRpb25Ub2tlbiA9IHRoaXMuZGF0YUF3c1BhcnRpdGlvbi5wYXJ0aXRpb247XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9wYXJpdGlvblRva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIEJhc2UgRE5TIGRvbWFpbiBuYW1lIGZvciB0aGUgY3VycmVudCBwYXJ0aXRpb24gKGUuZy4sIGFtYXpvbmF3cy5jb20gaW4gQVdTIENvbW1lcmNpYWwsIGFtYXpvbmF3cy5jb20uY24gaW4gQVdTIENoaW5hKS5cbiAgICovXG4gIHB1YmxpYyBnZXQgdXJsU3VmZml4KCkge1xuICAgIGlmICghdGhpcy5fdXJsU3VmZml4VG9rZW4pIHtcbiAgICAgIHRoaXMuX3VybFN1ZmZpeFRva2VuID0gdGhpcy5kYXRhQXdzUGFydGl0aW9uLmRuc1N1ZmZpeDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3VybFN1ZmZpeFRva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgc2VydmljZSBwcmluY2lwYWwgbmFtZSBiYXNlZCBvbiB0aGUgcmVnaW9uIGl0J3MgdXNlZCBpbi5cbiAgICpcbiAgICogU29tZSBzZXJ2aWNlIHByaW5jaXBhbCBuYW1lcyB1c2VkIHRvIGJlIGRpZmZlcmVudCBmb3IgZGlmZmVyZW50IHBhcnRpdGlvbnMsXG4gICAqIGFuZCBzb21lIHdlcmUgbm90LlxuICAgKlxuICAgKiBUaGVzZSBkYXlzIGFsbCBzZXJ2aWNlIHByaW5jaXBhbCBuYW1lcyBhcmUgc3RhbmRhcmRpemVkLCBhbmQgdGhleSBhcmUgYWxsXG4gICAqIG9mIHRoZSBmb3JtIGA8c2VydmljZW5hbWU+LmFtYXpvbmF3cy5jb21gLlxuICAgKlxuICAgKiBUbyBhdm9pZCBicmVha2luZyBjaGFuZ2VzLCBoYW5kbGluZyBpcyBwcm92aWRlZCBmb3Igc2VydmljZXMgYWRkZWQgd2l0aCB0aGUgZm9ybWF0cyBiZWxvdyxcbiAgICogaG93ZXZlciwgbm8gYWRkaXRpb25hbCBoYW5kbGluZyB3aWxsIGJlIGFkZGVkIGZvciBuZXcgcmVnaW9ucyBvciBwYXJ0aXRpb25zLlxuICAgKiAgIC0gczNcbiAgICogICAtIHMzLmFtYXpvbmF3cy5jb21cbiAgICogICAtIHMzLmFtYXpvbmF3cy5jb20uY25cbiAgICogICAtIHMzLmMycy5pYy5nb3ZcbiAgICogICAtIHMzLnNjMnMuc2dvdi5nb3ZcbiAgICpcbiAgICogQHBhcmFtIHNlcnZpY2UgVGhlIHNlcnZpY2UgbmFtZSB0byBnZXQgdGhlIHNlcnZpY2UgcHJpbmNpcGFsIElEIGZvclxuICAgKiBAcGFyYW0gcmVnaW9uIFRoZSByZWdpb24gdG8gZ2V0IHRoZSBzZXJ2aWNlIHByaW5jaXBhbCBJRCBmb3JcbiAgICovXG4gIHB1YmxpYyBzZXJ2aWNlUHJpbmNpcGFsTmFtZShzZXJ2aWNlOiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgREVGQVVMVF9SRUdJT05fS0VZID0gXCJkZWZhdWx0X3JlZ2lvblwiO1xuICAgIGlmICghcmVnaW9uKSB7XG4gICAgICByZWdpb24gPSBERUZBVUxUX1JFR0lPTl9LRVk7XG4gICAgfVxuXG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChyZWdpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ2Fubm90IGRldGVybWluZSB0aGUgc2VydmljZSBwcmluY2lwYWwgSUQgYmVjYXVzZSB0aGUgcmVnaW9uIGlzIGEgdG9rZW4uIFwiICtcbiAgICAgICAgICBcIllvdSBtdXN0IHNwZWNpZnkgdGhlIHJlZ2lvbiBleHBsaWNpdGx5LlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBpZiBmdWxsIHNlcnZpY2UgbmFtZSBpcyBwcm92aWRlZCwgZXh0cmFjdCBqdXN0IHRoZSBzZXJ2aWNlIG5hbWVcbiAgICAvLyBmb3Igc3VwcG9ydGVkIGNhc2VzIChhcyByZXF1aXJlZCBieSBUZXJyYWZvcm0gYXdzX3NlcnZpY2VfcHJpbmNpcGFsIERhdGEgU291cmNlKVxuICAgIGNvbnN0IG1hdGNoID0gc2VydmljZS5tYXRjaChcbiAgICAgIC9eKFteLl0rKSg/Oig/OlxcLmFtYXpvbmF3c1xcLmNvbSg/OlxcLmNuKT8pfCg/OlxcLmMyc1xcLmljXFwuZ292KXwoPzpcXC5zYzJzXFwuc2dvdlxcLmdvdikpPyQvLFxuICAgICk7XG4gICAgY29uc3Qgc2VydmljZU5hbWUgPSBtYXRjaCA/IG1hdGNoWzFdIDogc2VydmljZTtcbiAgICBpZiAoIXRoaXMubG9va3VwLmRhdGFBd3NTZXJ2aWNlUHJpbmNpcGFsc1tyZWdpb25dKSB7XG4gICAgICB0aGlzLmxvb2t1cC5kYXRhQXdzU2VydmljZVByaW5jaXBhbHNbcmVnaW9uXSA9IHt9O1xuICAgIH1cbiAgICBpZiAoIXRoaXMubG9va3VwLmRhdGFBd3NTZXJ2aWNlUHJpbmNpcGFsc1tyZWdpb25dW3NlcnZpY2VOYW1lXSkge1xuICAgICAgY29uc3Qgc3ZjcCA9IG5ldyBkYXRhQXdzU2VydmljZVByaW5jaXBhbC5EYXRhQXdzU2VydmljZVByaW5jaXBhbChcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYGF3c19zdmNwXyR7dG9UZXJyYWZvcm1JZGVudGlmaWVyKHJlZ2lvbil9XyR7c2VydmljZU5hbWV9fWAsXG4gICAgICAgIHtcbiAgICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgICBwcm92aWRlcjpcbiAgICAgICAgICAgIHJlZ2lvbiA9PT0gREVGQVVMVF9SRUdJT05fS0VZXG4gICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgIDogdGhpcy5nZXRSZWdpb25hbEF3c1Byb3ZpZGVyKHJlZ2lvbiksXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgICAgLy8gdGhlc2Ugc2hvdWxkIG5ldmVyIGRlcGVuZCBvbiBhbnl0aGluZyAoSEFDSyB0byBhdm9pZCBjeWNsZXMpXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc3ZjcCwgU0tJUF9ERVBFTkRFTkNZX1BST1BBR0FUSU9OLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5sb29rdXAuZGF0YUF3c1NlcnZpY2VQcmluY2lwYWxzW3JlZ2lvbl1bc2VydmljZU5hbWVdID0gc3ZjcDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubG9va3VwLmRhdGFBd3NTZXJ2aWNlUHJpbmNpcGFsc1tyZWdpb25dW3NlcnZpY2VOYW1lXS5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gQVJOIGZyb20gY29tcG9uZW50cy5cbiAgICpcbiAgICogSWYgYHBhcnRpdGlvbmAsIGByZWdpb25gIG9yIGBhY2NvdW50YCBhcmUgbm90IHNwZWNpZmllZCwgdGhlIHN0YWNrJ3NcbiAgICogcGFydGl0aW9uLCByZWdpb24gYW5kIGFjY291bnQgd2lsbCBiZSB1c2VkLlxuICAgKlxuICAgKiBJZiBhbnkgY29tcG9uZW50IGlzIHRoZSBlbXB0eSBzdHJpbmcsIGFuIGVtcHR5IHN0cmluZyB3aWxsIGJlIGluc2VydGVkXG4gICAqIGludG8gdGhlIGdlbmVyYXRlZCBBUk4gYXQgdGhlIGxvY2F0aW9uIHRoYXQgY29tcG9uZW50IGNvcnJlc3BvbmRzIHRvLlxuICAgKlxuICAgKiBUaGUgQVJOIHdpbGwgYmUgZm9ybWF0dGVkIGFzIGZvbGxvd3M6XG4gICAqXG4gICAqICAgYXJuOntwYXJ0aXRpb259OntzZXJ2aWNlfTp7cmVnaW9ufTp7YWNjb3VudH06e3Jlc291cmNlfXtzZXB9e3Jlc291cmNlLW5hbWV9XG4gICAqXG4gICAqIFRoZSByZXF1aXJlZCBBUk4gcGllY2VzIHRoYXQgYXJlIG9taXR0ZWQgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBzdGFjayB0aGF0XG4gICAqIHRoZSAnc2NvcGUnIGlzIGF0dGFjaGVkIHRvLiBJZiBhbGwgQVJOIHBpZWNlcyBhcmUgc3VwcGxpZWQsIHRoZSBzdXBwbGllZCBzY29wZVxuICAgKiBjYW4gYmUgJ3VuZGVmaW5lZCcuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0QXJuKGNvbXBvbmVudHM6IEFybkNvbXBvbmVudHMpOiBzdHJpbmcge1xuICAgIHJldHVybiBBcm4uZm9ybWF0KGNvbXBvbmVudHMsIHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIGFuIEFSTiwgcGFyc2VzIGl0IGFuZCByZXR1cm5zIGNvbXBvbmVudHMuXG4gICAqXG4gICAqIElGIFRIRSBBUk4gSVMgQSBDT05DUkVURSBTVFJJTkcuLi5cbiAgICpcbiAgICogLi4uaXQgd2lsbCBiZSBwYXJzZWQgYW5kIHZhbGlkYXRlZC4gVGhlIHNlcGFyYXRvciAoYHNlcGApIHdpbGwgYmUgc2V0IHRvICcvJ1xuICAgKiBpZiB0aGUgNnRoIGNvbXBvbmVudCBpbmNsdWRlcyBhICcvJywgaW4gd2hpY2ggY2FzZSwgYHJlc291cmNlYCB3aWxsIGJlIHNldFxuICAgKiB0byB0aGUgdmFsdWUgYmVmb3JlIHRoZSAnLycgYW5kIGByZXNvdXJjZU5hbWVgIHdpbGwgYmUgdGhlIHJlc3QuIEluIGNhc2VcbiAgICogdGhlcmUgaXMgbm8gJy8nLCBgcmVzb3VyY2VgIHdpbGwgYmUgc2V0IHRvIHRoZSA2dGggY29tcG9uZW50cyBhbmRcbiAgICogYHJlc291cmNlTmFtZWAgd2lsbCBiZSBzZXQgdG8gdGhlIHJlc3Qgb2YgdGhlIHN0cmluZy5cbiAgICpcbiAgICogSUYgVEhFIEFSTiBJUyBBIFRPS0VOLi4uXG4gICAqXG4gICAqIC4uLml0IGNhbm5vdCBiZSB2YWxpZGF0ZWQsIHNpbmNlIHdlIGRvbid0IGhhdmUgdGhlIGFjdHVhbCB2YWx1ZSB5ZXQgYXQgdGhlXG4gICAqIHRpbWUgb2YgdGhpcyBmdW5jdGlvbiBjYWxsLiBZb3Ugd2lsbCBoYXZlIHRvIHN1cHBseSBgc2VwSWZUb2tlbmAgYW5kXG4gICAqIHdoZXRoZXIgb3Igbm90IEFSTnMgb2YgdGhlIGV4cGVjdGVkIGZvcm1hdCB1c3VhbGx5IGhhdmUgcmVzb3VyY2UgbmFtZXNcbiAgICogaW4gb3JkZXIgdG8gcGFyc2UgaXQgcHJvcGVybHkuIFRoZSByZXN1bHRpbmcgYEFybkNvbXBvbmVudHNgIG9iamVjdCB3aWxsXG4gICAqIGNvbnRhaW4gdG9rZW5zIGZvciB0aGUgc3ViZXhwcmVzc2lvbnMgb2YgdGhlIEFSTiwgbm90IHN0cmluZyBsaXRlcmFscy5cbiAgICpcbiAgICogSWYgdGhlIHJlc291cmNlIG5hbWUgY291bGQgcG9zc2libHkgY29udGFpbiB0aGUgc2VwYXJhdG9yIGNoYXIsIHRoZSBhY3R1YWxcbiAgICogcmVzb3VyY2UgbmFtZSBjYW5ub3QgYmUgcHJvcGVybHkgcGFyc2VkLiBUaGlzIG9ubHkgb2NjdXJzIGlmIHRoZSBzZXBhcmF0b3JcbiAgICogY2hhciBpcyAnLycsIGFuZCBoYXBwZW5zIGZvciBleGFtcGxlIGZvciBTMyBvYmplY3QgQVJOcywgSUFNIFJvbGUgQVJOcyxcbiAgICogSUFNIE9JREMgUHJvdmlkZXIgQVJOcywgZXRjLiBUbyBwcm9wZXJseSBleHRyYWN0IHRoZSByZXNvdXJjZSBuYW1lIGZyb20gYVxuICAgKiBUb2tlbml6ZWQgQVJOLCB5b3UgbXVzdCBrbm93IHRoZSByZXNvdXJjZSB0eXBlIGFuZCBjYWxsXG4gICAqIGBBcm4uZXh0cmFjdFJlc291cmNlTmFtZWAuXG4gICAqXG4gICAqIEBwYXJhbSBhcm4gVGhlIEFSTiBzdHJpbmcgdG8gcGFyc2VcbiAgICogQHBhcmFtIHNlcElmVG9rZW4gVGhlIHNlcGFyYXRvciB1c2VkIHRvIHNlcGFyYXRlIHJlc291cmNlIGZyb20gcmVzb3VyY2VOYW1lXG4gICAqIEBwYXJhbSBoYXNOYW1lIFdoZXRoZXIgdGhlcmUgaXMgYSBuYW1lIGNvbXBvbmVudCBpbiB0aGUgQVJOIGF0IGFsbC4gRm9yXG4gICAqIGV4YW1wbGUsIFNOUyBUb3BpY3MgQVJOcyBoYXZlIHRoZSAncmVzb3VyY2UnIGNvbXBvbmVudCBjb250YWluIHRoZSB0b3BpY1xuICAgKiBuYW1lLCBhbmQgbm8gJ3Jlc291cmNlTmFtZScgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBhbiBBcm5Db21wb25lbnRzIG9iamVjdCB3aGljaCBhbGxvd3MgYWNjZXNzIHRvIHRoZSB2YXJpb3VzXG4gICAqIGNvbXBvbmVudHMgb2YgdGhlIEFSTi5cbiAgICpcbiAgICogQHJldHVybnMgYW4gQXJuQ29tcG9uZW50cyBvYmplY3Qgd2hpY2ggYWxsb3dzIGFjY2VzcyB0byB0aGUgdmFyaW91c1xuICAgKiAgICAgIGNvbXBvbmVudHMgb2YgdGhlIEFSTi5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHNwbGl0QXJuIGluc3RlYWRcbiAgICovXG4gIHB1YmxpYyBwYXJzZUFybihcbiAgICBhcm46IHN0cmluZyxcbiAgICBzZXBJZlRva2VuOiBzdHJpbmcgPSBcIi9cIixcbiAgICBoYXNOYW1lOiBib29sZWFuID0gdHJ1ZSxcbiAgKTogQXJuQ29tcG9uZW50cyB7XG4gICAgcmV0dXJuIEFybi5wYXJzZShhcm4sIHNlcElmVG9rZW4sIGhhc05hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0cyB0aGUgcHJvdmlkZWQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG4gICAqIFdvcmtzIGJvdGggaWYgJ2FybicgaXMgYSBzdHJpbmcgbGlrZSAnYXJuOmF3czpzMzo6OmJ1Y2tldCcsXG4gICAqIGFuZCBhIFRva2VuIHJlcHJlc2VudGluZyBhIGR5bmFtaWMgQ2xvdWRGb3JtYXRpb24gZXhwcmVzc2lvblxuICAgKiAoaW4gd2hpY2ggY2FzZSB0aGUgcmV0dXJuZWQgY29tcG9uZW50cyB3aWxsIGFsc28gYmUgZHluYW1pYyBDbG91ZEZvcm1hdGlvbiBleHByZXNzaW9ucyxcbiAgICogZW5jb2RlZCBhcyBUb2tlbnMpLlxuICAgKlxuICAgKiBAcGFyYW0gYXJuIHRoZSBBUk4gdG8gc3BsaXQgaW50byBpdHMgY29tcG9uZW50c1xuICAgKiBAcGFyYW0gYXJuRm9ybWF0IHRoZSBleHBlY3RlZCBmb3JtYXQgb2YgJ2FybicgLSBkZXBlbmRzIG9uIHdoYXQgZm9ybWF0IHRoZSBzZXJ2aWNlICdhcm4nIHJlcHJlc2VudHMgdXNlc1xuICAgKi9cbiAgcHVibGljIHNwbGl0QXJuKGFybjogc3RyaW5nLCBhcm5Gb3JtYXQ6IEFybkZvcm1hdCk6IEFybkNvbXBvbmVudHMge1xuICAgIHJldHVybiBBcm4uc3BsaXQoYXJuLCBhcm5Gb3JtYXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgaXRlcmF0b3IgZm9yIGFsbCBBWnMgdGhhdCBhcmUgYXZhaWxhYmxlIGluIHRoZSBBV1MgZW52aXJvbm1lbnRcbiAgICogKGFjY291bnQvcmVnaW9uKSBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdGFjayAoZGVmYXVsdCBvciBhbGlhc2VkIHByb3ZpZGVyKS5cbiAgICpcbiAgICogdGhpcyB3aWxsIHJldHVybiBhIGNka3RmIGl0ZXJhdG9yXG4gICAqXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLmhhc2hpY29ycC5jb20vdGVycmFmb3JtL2Nka3RmL2NvbmNlcHRzL2l0ZXJhdG9ycyNkZWZpbmUtaXRlcmF0b3JzXG4gICAqXG4gICAqIFRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgc3RyYXRlZ3kgZm9yIHNlbGVjdGluZyBhdmFpbGFiaWxpdHkgem9uZXMgb3ZlcnJpZGUgdGhpcyBtZXRob2QuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGF2YWlsYWJpbGl0eVpvbmVJdGVyYXRvcigpOiBSZXNvdXJjZVRlcnJhZm9ybUl0ZXJhdG9yIHtcbiAgICBjb25zdCBhenMgPSB0aGlzLmRhdGFBd3NBdmFpbGFiaWxpdHlab25lcztcbiAgICByZXR1cm4gVGVycmFmb3JtSXRlcmF0b3IuZnJvbURhdGFTb3VyY2VzKGF6cyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIFRva2VuIGFzIExpc3Qgb2YgQVogbmFtZXMgdGhhdCBhcmUgYXZhaWxhYmxlIGluIHRoZSBzdGFjaydzXG4gICAqIEFXUyBlbnZpcm9ubWVudCAoYWNjb3VudC9yZWdpb24pLlxuICAgKlxuICAgKiBUaGUgbGlzdCBpcyBzbGl6ZWQgYnkgYG1heENvdW50YCB3aGljaCBkZWZhdWx0cyB0byAyLlxuICAgKlxuICAgKiBOb3RlOiBNdXN0IHVzZSBgRm4uZWxlbWVudGAgdG8gYWNjZXNzIHRoZSBBWiBuYW1lcy5cbiAgICpcbiAgICogQHBhcmFtIG1heENvdW50IHRoZSBtYXhpbXVtIG51bWJlciBvZiBBWnMgdG8gcmV0dXJuXG4gICAqL1xuICBwdWJsaWMgYXZhaWxhYmlsaXR5Wm9uZXMobWF4Q291bnQ6IG51bWJlciA9IDIpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgYXpzID0gdGhpcy5kYXRhQXdzQXZhaWxhYmlsaXR5Wm9uZXM7XG4gICAgcmV0dXJuIFRva2VuLmFzTGlzdChGbi5zbGljZShhenMubmFtZXMsIDAsIG1heENvdW50KSk7XG4gIH1cblxuICAvLyAvKipcbiAgLy8gICogUmVzb2x2ZSBhIHRva2VuaXplZCB2YWx1ZSBpbiB0aGUgY29udGV4dCBvZiB0aGUgY3VycmVudCBzdGFjay5cbiAgLy8gICovXG4gIC8vIHB1YmxpYyByZXNvbHZlPFQ+KG9iajogVCk6IFQge1xuICAvLyAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2Jsb2IvdjAuMjAuNy9wYWNrYWdlcy9jZGt0Zi9saWIvdGVycmFmb3JtLXN0YWNrLnRzI0wxNTFcbiAgLy8gICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2NvcmUvbGliL3N0YWNrLnRzI0w1NzJcbiAgLy8gICByZXR1cm4gcmVzb2x2ZSh0aGlzLCBvYmopO1xuICAvLyB9XG59XG5cbmZ1bmN0aW9uIHRvVGVycmFmb3JtSWRlbnRpZmllcihpZGVudGlmaWVyOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHNuYWtlQ2FzZShpZGVudGlmaWVyKS5yZXBsYWNlKC8tL2csIFwiX1wiKTtcbn1cbiJdfQ==
316
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3cy9hd3Mtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFPNkI7QUFDN0IsaUNBTWU7QUFDZiw2Q0FBd0M7QUFFeEMsK0JBQXNEO0FBRXRELDBGQUFzRjtBQUN0Riw4Q0FBa0U7QUFDbEUsNkNBQTZDO0FBQzdDLDJEQUEyRDtBQUUzRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsQ0FBQztBQWtEeEU7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxzQkFBUztJQUNyQyxnR0FBZ0c7SUFFaEc7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBTTtRQUM3QixPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLGdCQUFnQixJQUFJLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsZ0dBQWdHO0lBRWhHOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBcUI7UUFDaEQsTUFBTSxDQUFDLEdBQUcsc0JBQWMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixhQUFhLFNBQVMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxTQUFTLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSx3RUFBd0UsQ0FDN0ksQ0FBQztJQUNKLENBQUM7SUEwQkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjtRQUM1RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQW5CbEIseUJBQW9CLEdBQStDLEVBQUUsQ0FBQztRQW9CNUUs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LENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxRQUFRLENBQUMsR0FBVyxFQUFFLFNBQW9CO1FBQy9DLE9BQU8sU0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILElBQVcsd0JBQXdCO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztRQUMxQyxPQUFPLHlCQUFpQixDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLGlCQUFpQixDQUFDLFdBQW1CLENBQUM7UUFDM0Msa0NBQWtDO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztRQUMxQyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O0FBN1dILDRCQXVYQzs7O0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxVQUFrQjtJQUMvQyxPQUFPLElBQUEsdUJBQVMsRUFBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBkYXRhQXdzQXZhaWxhYmlsaXR5Wm9uZXMsXG4gIGRhdGFBd3NDYWxsZXJJZGVudGl0eSxcbiAgZGF0YUF3c1BhcnRpdGlvbixcbiAgZGF0YUF3c1JlZ2lvbixcbiAgZGF0YUF3c1NlcnZpY2VQcmluY2lwYWwsXG4gIHByb3ZpZGVyLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHtcbiAgVGVycmFmb3JtU3RhY2ssXG4gIFRlcnJhZm9ybUl0ZXJhdG9yLFxuICBUb2tlbixcbiAgRm4sXG4gIFJlc291cmNlVGVycmFmb3JtSXRlcmF0b3IsXG59IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgc25ha2VDYXNlIH0gZnJvbSBcImNoYW5nZS1jYXNlXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXJuLCBBcm5Db21wb25lbnRzLCBBcm5Gb3JtYXQgfSBmcm9tIFwiLi9hcm5cIjtcbmltcG9ydCB7IEF3c1Byb3ZpZGVyQ29uZmlnIH0gZnJvbSBcIi4vcHJvdmlkZXItY29uZmlnLmdlbmVyYXRlZFwiO1xuaW1wb3J0IHsgU0tJUF9ERVBFTkRFTkNZX1BST1BBR0FUSU9OIH0gZnJvbSBcIi4uL3ByaXZhdGUvdGVycmFmb3JtLWRlcGVuZGFibGVzLWFzcGVjdFwiO1xuaW1wb3J0IHsgU3RhY2tCYXNlUHJvcHMsIFN0YWNrQmFzZSwgSVN0YWNrIH0gZnJvbSBcIi4uL3N0YWNrLWJhc2VcIjtcbi8vIGltcG9ydCB7IFRhZ1R5cGUgfSBmcm9tIFwiLi9hd3MtY29uc3RydWN0XCI7XG4vLyBpbXBvcnQgeyBUYWdNYW5hZ2VyLCBJVGFnZ2FibGVWMiB9IGZyb20gXCIuL3RhZy1tYW5hZ2VyXCI7XG5cbmNvbnN0IEFXU19TVEFDS19TWU1CT0wgPSBTeW1ib2wuZm9yKFwidGVycmFjb25zdHJ1Y3RzL2xpYi9hd3MuQXdzU3RhY2tcIik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdzU3RhY2tQcm9wcyBleHRlbmRzIFN0YWNrQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBV1MgUHJvdmlkZXIgY29uZmlndXJhdGlvbiAod2l0aG91dCB0aGUgYWxpYXMgZmllbGQpXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlckNvbmZpZzogQXdzUHJvdmlkZXJDb25maWc7XG59XG5cbi8vIFRPRE86IFJlLWFkZCBJVGFnZ2FibGVWMlxuZXhwb3J0IGludGVyZmFjZSBJQXdzU3RhY2sgZXh0ZW5kcyBJU3RhY2sge1xuICAvKipcbiAgICogVGhlIEFXUyBSZWdpb24gZm9yIHRoZSBUZXJyYUNvbnN0cnVjdFxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVdTIEFjY291bnQgZm9yIHRoZSBUZXJyYUNvbnN0cnVjdFxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFXUyBQYXJ0aXRpb24gZm9yIHRoZSBUZXJyYUNvbnN0cnVjdFxuICAgKi9cbiAgcmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIFByaW5jaXBhbCBJZCBmb3IgYSBzcGVjaWZpYyBzZXJ2aWNlXG4gICAqXG4gICAqIEBwYXJhbSBzZXJ2aWNlTmFtZSBUaGUgc2VydmljZSBuYW1lIHRvIGdldCB0aGUgc2VydmljZSBwcmluY2lwYWwgSUQgZm9yXG4gICAqIEBwYXJhbSByZWdpb24gVGhlIHJlZ2lvbiB0byBnZXQgdGhlIHNlcnZpY2UgcHJpbmNpcGFsIElEIGZvclxuICAgKi9cbiAgc2VydmljZVByaW5jaXBhbE5hbWUoc2VydmljZU5hbWU6IHN0cmluZywgcmVnaW9uPzogc3RyaW5nKTogc3RyaW5nO1xuICAvLyAvKipcbiAgLy8gICogUHJvZHVjZSB0aGUgVG9rZW4ncyB2YWx1ZSBhdCByZXNvbHV0aW9uIHRpbWVcbiAgLy8gICovXG4gIC8vIHJlc29sdmU8VD4ob2JqOiBUKTogVDtcbn1cblxuaW50ZXJmYWNlIEF3c0xvb2t1cCB7XG4gIGF3c1Byb3ZpZGVyOiBwcm92aWRlci5Bd3NQcm92aWRlcjtcbiAgZGF0YUF3c1JlZ2lvbj86IGRhdGFBd3NSZWdpb24uRGF0YUF3c1JlZ2lvbjtcbiAgZGF0YUF3c0NhbGxlcklkZW50aXR5PzogZGF0YUF3c0NhbGxlcklkZW50aXR5LkRhdGFBd3NDYWxsZXJJZGVudGl0eTtcbiAgZGF0YUF3c1BhcnRpdGlvbj86IGRhdGFBd3NQYXJ0aXRpb24uRGF0YUF3c1BhcnRpdGlvbjtcbiAgZGF0YUF3c0F2YWlsYWJpbGl0eVpvbmVzPzogZGF0YUF3c0F2YWlsYWJpbGl0eVpvbmVzLkRhdGFBd3NBdmFpbGFiaWxpdHlab25lcztcbiAgLy8gQVdTIFNlcnZpY2UgUHJpbmNpcGFscyBieSByZWdpb24gYW5kIGJ5IHNlcnZpY2VcbiAgZGF0YUF3c1NlcnZpY2VQcmluY2lwYWxzOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIFJlY29yZDxzdHJpbmcsIGRhdGFBd3NTZXJ2aWNlUHJpbmNpcGFsLkRhdGFBd3NTZXJ2aWNlUHJpbmNpcGFsPlxuICA+O1xufVxuXG4vKipcbiAqIEEgVGVycmFmb3JtIHN0YWNrIGNvbnN0cmFpbmVkIHRvIGEgc2luZ2xlIEFXUyBBY2NvdW50L1JlZ2lvbiB0byBzaW11bGF0ZSBDRk4gYmVoYXZpb3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBBd3NTdGFjayBleHRlbmRzIFN0YWNrQmFzZSBpbXBsZW1lbnRzIElBd3NTdGFjayB7XG4gIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTUwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvc3RhY2sudHMjTDIwNFxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgU3RhY2suXG4gICAqXG4gICAqIGF0dHJpYnV0ZSBkZXRlY3Rpb24gc2luY2UgYXMgJ2luc3RhbmNlb2YnIHBvdGVudGlhbGx5IGZhaWxzIGFjcm9zcyBMaWJyYXJ5IHJlbGVhc2VzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0F3c1N0YWNrKHg6IGFueSk6IHggaXMgQXdzU3RhY2sge1xuICAgIHJldHVybiB4ICE9PSBudWxsICYmIHR5cGVvZiB4ID09PSBcIm9iamVjdFwiICYmIEFXU19TVEFDS19TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTUwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvc3RhY2sudHMjTDIxMlxuXG4gIC8qKlxuICAgKiBMb29rcyB1cCB0aGUgZmlyc3Qgc3RhY2sgc2NvcGUgaW4gd2hpY2ggYGNvbnN0cnVjdGAgaXMgZGVmaW5lZC4gRmFpbHMgaWYgdGhlcmUgaXMgbm8gc3RhY2sgdXAgdGhlIHRyZWUgb3IgdGhlIHN0YWNrIGlzIG5vdCBhbiBBd3NTdGFjay5cbiAgICogQHBhcmFtIGNvbnN0cnVjdCBUaGUgY29uc3RydWN0IHRvIHN0YXJ0IHRoZSBzZWFyY2ggZnJvbS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2ZBd3NDb25zdHJ1Y3QoY29uc3RydWN0OiBJQ29uc3RydWN0KTogQXdzU3RhY2sge1xuICAgIGNvbnN0IHMgPSBUZXJyYWZvcm1TdGFjay5vZihjb25zdHJ1Y3QpO1xuICAgIGlmIChBd3NTdGFjay5pc0F3c1N0YWNrKHMpKSB7XG4gICAgICByZXR1cm4gcztcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFJlc291cmNlICcke2NvbnN0cnVjdC5jb25zdHJ1Y3Rvcj8ubmFtZX0nIGF0ICcke2NvbnN0cnVjdC5ub2RlLnBhdGh9JyBzaG91bGQgYmUgY3JlYXRlZCBpbiB0aGUgc2NvcGUgb2YgYW4gQXdzU3RhY2ssIGJ1dCBubyBBd3NTdGFjayBmb3VuZGAsXG4gICAgKTtcbiAgfVxuXG4gIC8vIC8qKlxuICAvLyAgKiBUYWdzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHN0YWNrLlxuICAvLyAgKi9cbiAgLy8gcHVibGljIHJlYWRvbmx5IGNka1RhZ01hbmFnZXI6IFRhZ01hbmFnZXI7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb29rdXA6IEF3c0xvb2t1cDtcbiAgcHJpdmF0ZSByZWdpb25hbEF3c1Byb3ZpZGVyczogeyBbcmVnaW9uOiBzdHJpbmddOiBwcm92aWRlci5Bd3NQcm92aWRlciB9ID0ge307XG5cbiAgLyoqXG4gICAqIENhY2hlIHRoZXNlIHRva2VucyBmb3IgcmVsaWFibGUgY29tcGFyaXNvbnMuXG4gICAqXG4gICAqIEV2ZXJ5IGNhbGwgZm9yIHRoZSBzYW1lIFRva2VuIHdpbGwgcHJvZHVjZSBhIG5ldyB1bmlxdWUgc3RyaW5nLCBub1xuICAgKiBhdHRlbXB0IGlzIG1hZGUgdG8gZGVkdXBsaWNhdGUuIFRva2VuIG9iamVjdHMgc2hvdWxkIGNhY2hlIHRoZVxuICAgKiB2YWx1ZSB0aGVtc2VsdmVzLCBpZiByZXF1aXJlZC5cbiAgICpcbiAgICogZGF0YVNvdXJjZS5nZXRTVHJpbmdhdHRyaWJ1dGUgLT4gVG9rZW4uYXNTdHJpbmcgLT4gdG9rZW5NYXAucmVnaXN0ZXJTdHJpbmdcbiAgICogcmVmOlxuICAgKiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay9ibG9iL3YwLjIwLjEwL3BhY2thZ2VzL2Nka3RmL2xpYi90ZXJyYWZvcm0tZGF0YS1zb3VyY2UudHMjTDY4XG4gICAqIC0gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2Jsb2IvdjAuMjAuMTAvcGFja2FnZXMvY2RrdGYvbGliL3Rva2Vucy9wcml2YXRlL3Rva2VuLW1hcC50cyNMNTAtTDY2XG4gICAqL1xuICBwcml2YXRlIF9hY2NvdW50SWRUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9wYXJpdGlvblRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX3VybFN1ZmZpeFRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEF3c1N0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICAvLyB0aGlzLmNka1RhZ01hbmFnZXIgPSBuZXcgVGFnTWFuYWdlcihcbiAgICAvLyAgIFRhZ1R5cGUuS0VZX1ZBTFVFLFxuICAgIC8vICAgXCJjZGt0ZjpzdGFja1wiLFxuICAgIC8vICAgcHJvcHMucHJvdmlkZXJDb25maWcuZGVmYXVsdFRhZ3MsXG4gICAgLy8gKTtcbiAgICB0aGlzLmxvb2t1cCA9IHtcbiAgICAgIGF3c1Byb3ZpZGVyOiBuZXcgcHJvdmlkZXIuQXdzUHJvdmlkZXIodGhpcywgXCJkZWZhdWx0QXdzUHJvdmlkZXJcIiwge1xuICAgICAgICAvLyBkZWZhdWx0VGFnczogdGhpcy5jZGtUYWdNYW5hZ2VyLnJlbmRlcmVkVGFncyxcbiAgICAgICAgLi4ucHJvcHMucHJvdmlkZXJDb25maWcsXG4gICAgICB9KSxcbiAgICAgIGRhdGFBd3NTZXJ2aWNlUHJpbmNpcGFsczoge30sXG4gICAgfTtcbiAgICAvLyB0aGVzZSBzaG91bGQgbmV2ZXIgZGVwZW5kIG9uIGFueXRoaW5nIChIQUNLIHRvIGF2b2lkIGN5Y2xlcylcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgQVdTX1NUQUNLX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJvdmlkZXIoKTogcHJvdmlkZXIuQXdzUHJvdmlkZXIge1xuICAgIHJldHVybiB0aGlzLmxvb2t1cC5hd3NQcm92aWRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIFJlZ2lvbiBvZiB0aGUgQVdTIFN0YWNrXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlZ2lvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmxvb2t1cC5hd3NQcm92aWRlci5yZWdpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmxvb2t1cC5hd3NQcm92aWRlci5yZWdpb247XG4gICAgfVxuICAgIGlmICghdGhpcy5sb29rdXAuZGF0YUF3c1JlZ2lvbikge1xuICAgICAgY29uc3QgcmVnaW9uID0gbmV3IGRhdGFBd3NSZWdpb24uRGF0YUF3c1JlZ2lvbih0aGlzLCBcIlJlZ2lvblwiLCB7XG4gICAgICAgIHByb3ZpZGVyOiB0aGlzLmxvb2t1cC5hd3NQcm92aWRlcixcbiAgICAgIH0pO1xuICAgICAgLy8gdGhlc2Ugc2hvdWxkIG5ldmVyIGRlcGVuZCBvbiBhbnl0aGluZyAoSEFDSyB0byBhdm9pZCBjeWNsZXMpXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVnaW9uLCBTS0lQX0RFUEVOREVOQ1lfUFJPUEFHQVRJT04sIHtcbiAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubG9va3VwLmRhdGFBd3NSZWdpb24gPSByZWdpb247XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxvb2t1cC5kYXRhQXdzUmVnaW9uLm5hbWU7XG4gIH1cblxuICBwcml2YXRlIGdldCBkYXRhQXdzQ2FsbGVySWRlbnRpdHkoKTogZGF0YUF3c0NhbGxlcklkZW50aXR5LkRhdGFBd3NDYWxsZXJJZGVudGl0eSB7XG4gICAgaWYgKCF0aGlzLmxvb2t1cC5kYXRhQXdzQ2FsbGVySWRlbnRpdHkpIHtcbiAgICAgIGNvbnN0IGlkZW50aXR5ID0gbmV3IGRhdGFBd3NDYWxsZXJJZGVudGl0eS5EYXRhQXdzQ2FsbGVySWRlbnRpdHkoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiQ2FsbGVySWRlbnRpdHlcIixcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGVyOiB0aGlzLmxvb2t1cC5hd3NQcm92aWRlcixcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgICAvLyB0aGVzZSBzaG91bGQgbmV2ZXIgZGVwZW5kIG9uIGFueXRoaW5nIChIQUNLIHRvIGF2b2lkIGN5Y2xlcylcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpZGVudGl0eSwgU0tJUF9ERVBFTkRFTkNZX1BST1BBR0FUSU9OLCB7XG4gICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmxvb2t1cC5kYXRhQXdzQ2FsbGVySWRlbnRpdHkgPSBpZGVudGl0eTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubG9va3VwLmRhdGFBd3NDYWxsZXJJZGVudGl0eTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGRhdGFBd3NBdmFpbGFiaWxpdHlab25lcygpOiBkYXRhQXdzQXZhaWxhYmlsaXR5Wm9uZXMuRGF0YUF3c0F2YWlsYWJpbGl0eVpvbmVzIHtcbiAgICBpZiAoIXRoaXMubG9va3VwLmRhdGFBd3NBdmFpbGFiaWxpdHlab25lcykge1xuICAgICAgY29uc3QgYXpzID0gbmV3IGRhdGFBd3NBdmFpbGFiaWxpdHlab25lcy5EYXRhQXdzQXZhaWxhYmlsaXR5Wm9uZXMoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIixcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGVyOiB0aGlzLmxvb2t1cC5hd3NQcm92aWRlcixcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgICAvLyB0aGVzZSBzaG91bGQgbmV2ZXIgZGVwZW5kIG9uIGFueXRoaW5nIChIQUNLIHRvIGF2b2lkIGN5Y2xlcylcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhenMsIFNLSVBfREVQRU5ERU5DWV9QUk9QQUdBVElPTiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgIHRoaXMubG9va3VwLmRhdGFBd3NBdmFpbGFiaWxpdHlab25lcyA9IGF6cztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubG9va3VwLmRhdGFBd3NBdmFpbGFiaWxpdHlab25lcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGRhdGFBd3NQYXJ0aXRpb24oKTogZGF0YUF3c1BhcnRpdGlvbi5EYXRhQXdzUGFydGl0aW9uIHtcbiAgICBpZiAoIXRoaXMubG9va3VwLmRhdGFBd3NQYXJ0aXRpb24pIHtcbiAgICAgIGNvbnN0IHBhcnRpdGlvbiA9IG5ldyBkYXRhQXdzUGFydGl0aW9uLkRhdGFBd3NQYXJ0aXRpb24oXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiUGFydGl0aXRpb25cIixcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGVyOiB0aGlzLmxvb2t1cC5hd3NQcm92aWRlcixcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgICAvLyB0aGVzZSBzaG91bGQgbmV2ZXIgZGVwZW5kIG9uIGFueXRoaW5nIChIQUNLIHRvIGF2b2lkIGN5Y2xlcylcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwYXJ0aXRpb24sIFNLSVBfREVQRU5ERU5DWV9QUk9QQUdBVElPTiwge1xuICAgICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5sb29rdXAuZGF0YUF3c1BhcnRpdGlvbiA9IHBhcnRpdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubG9va3VwLmRhdGFBd3NQYXJ0aXRpb247XG4gIH1cblxuICBwcml2YXRlIGdldFJlZ2lvbmFsQXdzUHJvdmlkZXIocmVnaW9uOiBzdHJpbmcpOiBwcm92aWRlci5Bd3NQcm92aWRlciB7XG4gICAgaWYgKCF0aGlzLnJlZ2lvbmFsQXdzUHJvdmlkZXJzW3JlZ2lvbl0pIHtcbiAgICAgIHRoaXMucmVnaW9uYWxBd3NQcm92aWRlcnNbcmVnaW9uXSA9IG5ldyBwcm92aWRlci5Bd3NQcm92aWRlcihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYGF3c18ke3RvVGVycmFmb3JtSWRlbnRpZmllcihyZWdpb24pfWAsXG4gICAgICAgIHtcbiAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgYWxpYXM6IHRvVGVycmFmb3JtSWRlbnRpZmllcihyZWdpb24pLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmVnaW9uYWxBd3NQcm92aWRlcnNbcmVnaW9uXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIEFjY291bnQgb2YgdGhlIEFXUyBTdGFja1xuICAgKi9cbiAgcHVibGljIGdldCBhY2NvdW50KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9hY2NvdW50SWRUb2tlbikge1xuICAgICAgdGhpcy5fYWNjb3VudElkVG9rZW4gPSB0aGlzLmRhdGFBd3NDYWxsZXJJZGVudGl0eS5hY2NvdW50SWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9hY2NvdW50SWRUb2tlbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIFBhcnRpdGlvbiBvZiB0aGUgQVdTIFN0YWNrXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBhcnRpdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuX3Bhcml0aW9uVG9rZW4pIHtcbiAgICAgIHRoaXMuX3Bhcml0aW9uVG9rZW4gPSB0aGlzLmRhdGFBd3NQYXJ0aXRpb24ucGFydGl0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcGFyaXRpb25Ub2tlbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBCYXNlIEROUyBkb21haW4gbmFtZSBmb3IgdGhlIGN1cnJlbnQgcGFydGl0aW9uIChlLmcuLCBhbWF6b25hd3MuY29tIGluIEFXUyBDb21tZXJjaWFsLCBhbWF6b25hd3MuY29tLmNuIGluIEFXUyBDaGluYSkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHVybFN1ZmZpeCgpIHtcbiAgICBpZiAoIXRoaXMuX3VybFN1ZmZpeFRva2VuKSB7XG4gICAgICB0aGlzLl91cmxTdWZmaXhUb2tlbiA9IHRoaXMuZGF0YUF3c1BhcnRpdGlvbi5kbnNTdWZmaXg7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl91cmxTdWZmaXhUb2tlbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHNlcnZpY2UgcHJpbmNpcGFsIG5hbWUgYmFzZWQgb24gdGhlIHJlZ2lvbiBpdCdzIHVzZWQgaW4uXG4gICAqXG4gICAqIFNvbWUgc2VydmljZSBwcmluY2lwYWwgbmFtZXMgdXNlZCB0byBiZSBkaWZmZXJlbnQgZm9yIGRpZmZlcmVudCBwYXJ0aXRpb25zLFxuICAgKiBhbmQgc29tZSB3ZXJlIG5vdC5cbiAgICpcbiAgICogVGhlc2UgZGF5cyBhbGwgc2VydmljZSBwcmluY2lwYWwgbmFtZXMgYXJlIHN0YW5kYXJkaXplZCwgYW5kIHRoZXkgYXJlIGFsbFxuICAgKiBvZiB0aGUgZm9ybSBgPHNlcnZpY2VuYW1lPi5hbWF6b25hd3MuY29tYC5cbiAgICpcbiAgICogVG8gYXZvaWQgYnJlYWtpbmcgY2hhbmdlcywgaGFuZGxpbmcgaXMgcHJvdmlkZWQgZm9yIHNlcnZpY2VzIGFkZGVkIHdpdGggdGhlIGZvcm1hdHMgYmVsb3csXG4gICAqIGhvd2V2ZXIsIG5vIGFkZGl0aW9uYWwgaGFuZGxpbmcgd2lsbCBiZSBhZGRlZCBmb3IgbmV3IHJlZ2lvbnMgb3IgcGFydGl0aW9ucy5cbiAgICogICAtIHMzXG4gICAqICAgLSBzMy5hbWF6b25hd3MuY29tXG4gICAqICAgLSBzMy5hbWF6b25hd3MuY29tLmNuXG4gICAqICAgLSBzMy5jMnMuaWMuZ292XG4gICAqICAgLSBzMy5zYzJzLnNnb3YuZ292XG4gICAqXG4gICAqIEBwYXJhbSBzZXJ2aWNlIFRoZSBzZXJ2aWNlIG5hbWUgdG8gZ2V0IHRoZSBzZXJ2aWNlIHByaW5jaXBhbCBJRCBmb3JcbiAgICogQHBhcmFtIHJlZ2lvbiBUaGUgcmVnaW9uIHRvIGdldCB0aGUgc2VydmljZSBwcmluY2lwYWwgSUQgZm9yXG4gICAqL1xuICBwdWJsaWMgc2VydmljZVByaW5jaXBhbE5hbWUoc2VydmljZTogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IERFRkFVTFRfUkVHSU9OX0tFWSA9IFwiZGVmYXVsdF9yZWdpb25cIjtcbiAgICBpZiAoIXJlZ2lvbikge1xuICAgICAgcmVnaW9uID0gREVGQVVMVF9SRUdJT05fS0VZO1xuICAgIH1cblxuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQocmVnaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkNhbm5vdCBkZXRlcm1pbmUgdGhlIHNlcnZpY2UgcHJpbmNpcGFsIElEIGJlY2F1c2UgdGhlIHJlZ2lvbiBpcyBhIHRva2VuLiBcIiArXG4gICAgICAgICAgXCJZb3UgbXVzdCBzcGVjaWZ5IHRoZSByZWdpb24gZXhwbGljaXRseS5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gaWYgZnVsbCBzZXJ2aWNlIG5hbWUgaXMgcHJvdmlkZWQsIGV4dHJhY3QganVzdCB0aGUgc2VydmljZSBuYW1lXG4gICAgLy8gZm9yIHN1cHBvcnRlZCBjYXNlcyAoYXMgcmVxdWlyZWQgYnkgVGVycmFmb3JtIGF3c19zZXJ2aWNlX3ByaW5jaXBhbCBEYXRhIFNvdXJjZSlcbiAgICBjb25zdCBtYXRjaCA9IHNlcnZpY2UubWF0Y2goXG4gICAgICAvXihbXi5dKykoPzooPzpcXC5hbWF6b25hd3NcXC5jb20oPzpcXC5jbik/KXwoPzpcXC5jMnNcXC5pY1xcLmdvdil8KD86XFwuc2Myc1xcLnNnb3ZcXC5nb3YpKT8kLyxcbiAgICApO1xuICAgIGNvbnN0IHNlcnZpY2VOYW1lID0gbWF0Y2ggPyBtYXRjaFsxXSA6IHNlcnZpY2U7XG4gICAgaWYgKCF0aGlzLmxvb2t1cC5kYXRhQXdzU2VydmljZVByaW5jaXBhbHNbcmVnaW9uXSkge1xuICAgICAgdGhpcy5sb29rdXAuZGF0YUF3c1NlcnZpY2VQcmluY2lwYWxzW3JlZ2lvbl0gPSB7fTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmxvb2t1cC5kYXRhQXdzU2VydmljZVByaW5jaXBhbHNbcmVnaW9uXVtzZXJ2aWNlTmFtZV0pIHtcbiAgICAgIGNvbnN0IHN2Y3AgPSBuZXcgZGF0YUF3c1NlcnZpY2VQcmluY2lwYWwuRGF0YUF3c1NlcnZpY2VQcmluY2lwYWwoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGBhd3Nfc3ZjcF8ke3RvVGVycmFmb3JtSWRlbnRpZmllcihyZWdpb24pfV8ke3NlcnZpY2VOYW1lfX1gLFxuICAgICAgICB7XG4gICAgICAgICAgc2VydmljZU5hbWUsXG4gICAgICAgICAgcHJvdmlkZXI6XG4gICAgICAgICAgICByZWdpb24gPT09IERFRkFVTFRfUkVHSU9OX0tFWVxuICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA6IHRoaXMuZ2V0UmVnaW9uYWxBd3NQcm92aWRlcihyZWdpb24pLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIC8vIHRoZXNlIHNob3VsZCBuZXZlciBkZXBlbmQgb24gYW55dGhpbmcgKEhBQ0sgdG8gYXZvaWQgY3ljbGVzKVxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHN2Y3AsIFNLSVBfREVQRU5ERU5DWV9QUk9QQUdBVElPTiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgIHRoaXMubG9va3VwLmRhdGFBd3NTZXJ2aWNlUHJpbmNpcGFsc1tyZWdpb25dW3NlcnZpY2VOYW1lXSA9IHN2Y3A7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxvb2t1cC5kYXRhQXdzU2VydmljZVByaW5jaXBhbHNbcmVnaW9uXVtzZXJ2aWNlTmFtZV0ubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIEFSTiBmcm9tIGNvbXBvbmVudHMuXG4gICAqXG4gICAqIElmIGBwYXJ0aXRpb25gLCBgcmVnaW9uYCBvciBgYWNjb3VudGAgYXJlIG5vdCBzcGVjaWZpZWQsIHRoZSBzdGFjaydzXG4gICAqIHBhcnRpdGlvbiwgcmVnaW9uIGFuZCBhY2NvdW50IHdpbGwgYmUgdXNlZC5cbiAgICpcbiAgICogSWYgYW55IGNvbXBvbmVudCBpcyB0aGUgZW1wdHkgc3RyaW5nLCBhbiBlbXB0eSBzdHJpbmcgd2lsbCBiZSBpbnNlcnRlZFxuICAgKiBpbnRvIHRoZSBnZW5lcmF0ZWQgQVJOIGF0IHRoZSBsb2NhdGlvbiB0aGF0IGNvbXBvbmVudCBjb3JyZXNwb25kcyB0by5cbiAgICpcbiAgICogVGhlIEFSTiB3aWxsIGJlIGZvcm1hdHRlZCBhcyBmb2xsb3dzOlxuICAgKlxuICAgKiAgIGFybjp7cGFydGl0aW9ufTp7c2VydmljZX06e3JlZ2lvbn06e2FjY291bnR9OntyZXNvdXJjZX17c2VwfXtyZXNvdXJjZS1uYW1lfVxuICAgKlxuICAgKiBUaGUgcmVxdWlyZWQgQVJOIHBpZWNlcyB0aGF0IGFyZSBvbWl0dGVkIHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgc3RhY2sgdGhhdFxuICAgKiB0aGUgJ3Njb3BlJyBpcyBhdHRhY2hlZCB0by4gSWYgYWxsIEFSTiBwaWVjZXMgYXJlIHN1cHBsaWVkLCB0aGUgc3VwcGxpZWQgc2NvcGVcbiAgICogY2FuIGJlICd1bmRlZmluZWQnLlxuICAgKi9cbiAgcHVibGljIGZvcm1hdEFybihjb21wb25lbnRzOiBBcm5Db21wb25lbnRzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQXJuLmZvcm1hdChjb21wb25lbnRzLCB0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhbiBBUk4sIHBhcnNlcyBpdCBhbmQgcmV0dXJucyBjb21wb25lbnRzLlxuICAgKlxuICAgKiBJRiBUSEUgQVJOIElTIEEgQ09OQ1JFVEUgU1RSSU5HLi4uXG4gICAqXG4gICAqIC4uLml0IHdpbGwgYmUgcGFyc2VkIGFuZCB2YWxpZGF0ZWQuIFRoZSBzZXBhcmF0b3IgKGBzZXBgKSB3aWxsIGJlIHNldCB0byAnLydcbiAgICogaWYgdGhlIDZ0aCBjb21wb25lbnQgaW5jbHVkZXMgYSAnLycsIGluIHdoaWNoIGNhc2UsIGByZXNvdXJjZWAgd2lsbCBiZSBzZXRcbiAgICogdG8gdGhlIHZhbHVlIGJlZm9yZSB0aGUgJy8nIGFuZCBgcmVzb3VyY2VOYW1lYCB3aWxsIGJlIHRoZSByZXN0LiBJbiBjYXNlXG4gICAqIHRoZXJlIGlzIG5vICcvJywgYHJlc291cmNlYCB3aWxsIGJlIHNldCB0byB0aGUgNnRoIGNvbXBvbmVudHMgYW5kXG4gICAqIGByZXNvdXJjZU5hbWVgIHdpbGwgYmUgc2V0IHRvIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcuXG4gICAqXG4gICAqIElGIFRIRSBBUk4gSVMgQSBUT0tFTi4uLlxuICAgKlxuICAgKiAuLi5pdCBjYW5ub3QgYmUgdmFsaWRhdGVkLCBzaW5jZSB3ZSBkb24ndCBoYXZlIHRoZSBhY3R1YWwgdmFsdWUgeWV0IGF0IHRoZVxuICAgKiB0aW1lIG9mIHRoaXMgZnVuY3Rpb24gY2FsbC4gWW91IHdpbGwgaGF2ZSB0byBzdXBwbHkgYHNlcElmVG9rZW5gIGFuZFxuICAgKiB3aGV0aGVyIG9yIG5vdCBBUk5zIG9mIHRoZSBleHBlY3RlZCBmb3JtYXQgdXN1YWxseSBoYXZlIHJlc291cmNlIG5hbWVzXG4gICAqIGluIG9yZGVyIHRvIHBhcnNlIGl0IHByb3Blcmx5LiBUaGUgcmVzdWx0aW5nIGBBcm5Db21wb25lbnRzYCBvYmplY3Qgd2lsbFxuICAgKiBjb250YWluIHRva2VucyBmb3IgdGhlIHN1YmV4cHJlc3Npb25zIG9mIHRoZSBBUk4sIG5vdCBzdHJpbmcgbGl0ZXJhbHMuXG4gICAqXG4gICAqIElmIHRoZSByZXNvdXJjZSBuYW1lIGNvdWxkIHBvc3NpYmx5IGNvbnRhaW4gdGhlIHNlcGFyYXRvciBjaGFyLCB0aGUgYWN0dWFsXG4gICAqIHJlc291cmNlIG5hbWUgY2Fubm90IGJlIHByb3Blcmx5IHBhcnNlZC4gVGhpcyBvbmx5IG9jY3VycyBpZiB0aGUgc2VwYXJhdG9yXG4gICAqIGNoYXIgaXMgJy8nLCBhbmQgaGFwcGVucyBmb3IgZXhhbXBsZSBmb3IgUzMgb2JqZWN0IEFSTnMsIElBTSBSb2xlIEFSTnMsXG4gICAqIElBTSBPSURDIFByb3ZpZGVyIEFSTnMsIGV0Yy4gVG8gcHJvcGVybHkgZXh0cmFjdCB0aGUgcmVzb3VyY2UgbmFtZSBmcm9tIGFcbiAgICogVG9rZW5pemVkIEFSTiwgeW91IG11c3Qga25vdyB0aGUgcmVzb3VyY2UgdHlwZSBhbmQgY2FsbFxuICAgKiBgQXJuLmV4dHJhY3RSZXNvdXJjZU5hbWVgLlxuICAgKlxuICAgKiBAcGFyYW0gYXJuIFRoZSBBUk4gc3RyaW5nIHRvIHBhcnNlXG4gICAqIEBwYXJhbSBzZXBJZlRva2VuIFRoZSBzZXBhcmF0b3IgdXNlZCB0byBzZXBhcmF0ZSByZXNvdXJjZSBmcm9tIHJlc291cmNlTmFtZVxuICAgKiBAcGFyYW0gaGFzTmFtZSBXaGV0aGVyIHRoZXJlIGlzIGEgbmFtZSBjb21wb25lbnQgaW4gdGhlIEFSTiBhdCBhbGwuIEZvclxuICAgKiBleGFtcGxlLCBTTlMgVG9waWNzIEFSTnMgaGF2ZSB0aGUgJ3Jlc291cmNlJyBjb21wb25lbnQgY29udGFpbiB0aGUgdG9waWNcbiAgICogbmFtZSwgYW5kIG5vICdyZXNvdXJjZU5hbWUnIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgYW4gQXJuQ29tcG9uZW50cyBvYmplY3Qgd2hpY2ggYWxsb3dzIGFjY2VzcyB0byB0aGUgdmFyaW91c1xuICAgKiBjb21wb25lbnRzIG9mIHRoZSBBUk4uXG4gICAqXG4gICAqIEByZXR1cm5zIGFuIEFybkNvbXBvbmVudHMgb2JqZWN0IHdoaWNoIGFsbG93cyBhY2Nlc3MgdG8gdGhlIHZhcmlvdXNcbiAgICogICAgICBjb21wb25lbnRzIG9mIHRoZSBBUk4uXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBzcGxpdEFybiBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgcGFyc2VBcm4oXG4gICAgYXJuOiBzdHJpbmcsXG4gICAgc2VwSWZUb2tlbjogc3RyaW5nID0gXCIvXCIsXG4gICAgaGFzTmFtZTogYm9vbGVhbiA9IHRydWUsXG4gICk6IEFybkNvbXBvbmVudHMge1xuICAgIHJldHVybiBBcm4ucGFyc2UoYXJuLCBzZXBJZlRva2VuLCBoYXNOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdHMgdGhlIHByb3ZpZGVkIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuICAgKiBXb3JrcyBib3RoIGlmICdhcm4nIGlzIGEgc3RyaW5nIGxpa2UgJ2Fybjphd3M6czM6OjpidWNrZXQnLFxuICAgKiBhbmQgYSBUb2tlbiByZXByZXNlbnRpbmcgYSBkeW5hbWljIENsb3VkRm9ybWF0aW9uIGV4cHJlc3Npb25cbiAgICogKGluIHdoaWNoIGNhc2UgdGhlIHJldHVybmVkIGNvbXBvbmVudHMgd2lsbCBhbHNvIGJlIGR5bmFtaWMgQ2xvdWRGb3JtYXRpb24gZXhwcmVzc2lvbnMsXG4gICAqIGVuY29kZWQgYXMgVG9rZW5zKS5cbiAgICpcbiAgICogQHBhcmFtIGFybiB0aGUgQVJOIHRvIHNwbGl0IGludG8gaXRzIGNvbXBvbmVudHNcbiAgICogQHBhcmFtIGFybkZvcm1hdCB0aGUgZXhwZWN0ZWQgZm9ybWF0IG9mICdhcm4nIC0gZGVwZW5kcyBvbiB3aGF0IGZvcm1hdCB0aGUgc2VydmljZSAnYXJuJyByZXByZXNlbnRzIHVzZXNcbiAgICovXG4gIHB1YmxpYyBzcGxpdEFybihhcm46IHN0cmluZywgYXJuRm9ybWF0OiBBcm5Gb3JtYXQpOiBBcm5Db21wb25lbnRzIHtcbiAgICByZXR1cm4gQXJuLnNwbGl0KGFybiwgYXJuRm9ybWF0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGl0ZXJhdG9yIGZvciBhbGwgQVpzIHRoYXQgYXJlIGF2YWlsYWJsZSBpbiB0aGUgQVdTIGVudmlyb25tZW50XG4gICAqIChhY2NvdW50L3JlZ2lvbikgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc3RhY2sgKGRlZmF1bHQgb3IgYWxpYXNlZCBwcm92aWRlcikuXG4gICAqXG4gICAqIHRoaXMgd2lsbCByZXR1cm4gYSBjZGt0ZiBpdGVyYXRvclxuICAgKlxuICAgKiBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9jZGt0Zi9jb25jZXB0cy9pdGVyYXRvcnMjZGVmaW5lLWl0ZXJhdG9yc1xuICAgKlxuICAgKiBUbyBzcGVjaWZ5IGEgZGlmZmVyZW50IHN0cmF0ZWd5IGZvciBzZWxlY3RpbmcgYXZhaWxhYmlsaXR5IHpvbmVzIG92ZXJyaWRlIHRoaXMgbWV0aG9kLlxuICAgKi9cbiAgcHVibGljIGdldCBhdmFpbGFiaWxpdHlab25lSXRlcmF0b3IoKTogUmVzb3VyY2VUZXJyYWZvcm1JdGVyYXRvciB7XG4gICAgY29uc3QgYXpzID0gdGhpcy5kYXRhQXdzQXZhaWxhYmlsaXR5Wm9uZXM7XG4gICAgcmV0dXJuIFRlcnJhZm9ybUl0ZXJhdG9yLmZyb21EYXRhU291cmNlcyhhenMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBMaXN0IG9mIFRva2VucyBmb3IgQVogbmFtZXMgYXZhaWxhYmxlIGluIHRoZSBzdGFjaydzXG4gICAqIEFXUyBlbnZpcm9ubWVudCAoYWNjb3VudC9yZWdpb24pLlxuICAgKlxuICAgKiBUaGUgbGlzdCBsZW5ndGggaXMgYG1heENvdW50YCB3aGljaCBkZWZhdWx0cyB0byAyLlxuICAgKlxuICAgKiBAcGFyYW0gbWF4Q291bnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIEFacyB0byByZXR1cm5cbiAgICovXG4gIHB1YmxpYyBhdmFpbGFiaWxpdHlab25lcyhtYXhDb3VudDogbnVtYmVyID0gMik6IHN0cmluZ1tdIHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgQ29udGV4dFByb3ZpZGVyXG4gICAgY29uc3QgYXpzID0gdGhpcy5kYXRhQXdzQXZhaWxhYmlsaXR5Wm9uZXM7XG4gICAgY29uc3QgYXpMb29rdXBzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhDb3VudDsgaSsrKSB7XG4gICAgICBhekxvb2t1cHMucHVzaChGbi5lbGVtZW50KGF6cy5uYW1lcywgaSkpO1xuICAgIH1cbiAgICByZXR1cm4gYXpMb29rdXBzO1xuICB9XG5cbiAgLy8gLyoqXG4gIC8vICAqIFJlc29sdmUgYSB0b2tlbml6ZWQgdmFsdWUgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGN1cnJlbnQgc3RhY2suXG4gIC8vICAqL1xuICAvLyBwdWJsaWMgcmVzb2x2ZTxUPihvYmo6IFQpOiBUIHtcbiAgLy8gICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay9ibG9iL3YwLjIwLjcvcGFja2FnZXMvY2RrdGYvbGliL3RlcnJhZm9ybS1zdGFjay50cyNMMTUxXG4gIC8vICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNTAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi9zdGFjay50cyNMNTcyXG4gIC8vICAgcmV0dXJuIHJlc29sdmUodGhpcywgb2JqKTtcbiAgLy8gfVxufVxuXG5mdW5jdGlvbiB0b1RlcnJhZm9ybUlkZW50aWZpZXIoaWRlbnRpZmllcjogc3RyaW5nKSB7XG4gIHJldHVybiBzbmFrZUNhc2UoaWRlbnRpZmllcikucmVwbGFjZSgvLS9nLCBcIl9cIik7XG59XG4iXX0=
@@ -0,0 +1,58 @@
1
+ import { IAspect } from "cdktf";
2
+ import { IConstruct } from "constructs";
3
+ import { TaggableConstruct } from "../construct-base";
4
+ /**
5
+ * TaggableConstruct is a Construct that can have tags
6
+ */
7
+ export declare function isTaggableConstruct(x: IConstruct): x is TaggableConstruct;
8
+ /**
9
+ * Properties for a tag
10
+ */
11
+ export interface TagProps {
12
+ /**
13
+ * An array of Resource Types that will not receive this tag
14
+ *
15
+ * An empty array will allow this tag to be applied to all resources. A
16
+ * non-empty array will apply this tag only if the Resource type is not in
17
+ * this array.
18
+ * @default []
19
+ */
20
+ readonly excludeResourceTypes?: string[];
21
+ /**
22
+ * An array of Resource Types that will receive this tag
23
+ *
24
+ * An empty array will match any Resource. A non-empty array will apply this
25
+ * tag only to Resource types that are included in this array.
26
+ * @default []
27
+ */
28
+ readonly includeResourceTypes?: string[];
29
+ }
30
+ /**
31
+ * CDKTF Aspect adding a single Key/Value Tag to all resources within a construct scope
32
+ *
33
+ * Add tags using `Tags.of(scope).add(key, value)`
34
+ */
35
+ export declare class AwsTag implements IAspect {
36
+ private key;
37
+ private value;
38
+ private readonly props;
39
+ constructor(key: string, value: string, props?: TagProps);
40
+ visit(node: IConstruct): void;
41
+ private applyTagAspectHere;
42
+ }
43
+ /**
44
+ * Manages AWS tags for all resources within a construct scope.
45
+ */
46
+ export declare class Tags {
47
+ private readonly scope;
48
+ /**
49
+ * Returns the tags API for this scope.
50
+ * @param scope The scope
51
+ */
52
+ static of(scope: IConstruct): Tags;
53
+ private constructor();
54
+ /**
55
+ * add tags to the node of a construct and all its the taggable children
56
+ */
57
+ add(key: string, value: string, props?: TagProps): void;
58
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var _a, _b;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Tags = exports.AwsTag = void 0;
5
+ exports.isTaggableConstruct = isTaggableConstruct;
6
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7
+ const cdktf_1 = require("cdktf");
8
+ /**
9
+ * TaggableConstruct is a Construct that can have tags
10
+ */
11
+ function isTaggableConstruct(x) {
12
+ return "tags" in x && "tagsInput" in x;
13
+ }
14
+ /**
15
+ * CDKTF Aspect adding a single Key/Value Tag to all resources within a construct scope
16
+ *
17
+ * Add tags using `Tags.of(scope).add(key, value)`
18
+ */
19
+ class AwsTag {
20
+ constructor(key, value, props = {}) {
21
+ this.key = key;
22
+ this.props = props;
23
+ if (value === undefined) {
24
+ throw new Error("Tag must have a value");
25
+ }
26
+ this.value = value;
27
+ }
28
+ visit(node) {
29
+ if (isTaggableConstruct(node) &&
30
+ this.applyTagAspectHere(node, this.props.includeResourceTypes, this.props.excludeResourceTypes)) {
31
+ // https://developer.hashicorp.com/terraform/cdktf/concepts/aspects
32
+ const currentTags = node.tagsInput || {};
33
+ node.tags = { ...currentTags, [this.key]: this.value };
34
+ }
35
+ }
36
+ applyTagAspectHere(node, include, exclude) {
37
+ if (exclude &&
38
+ exclude.length > 0 &&
39
+ exclude.indexOf(node.terraformResourceType) !== -1) {
40
+ return false;
41
+ }
42
+ if (include &&
43
+ include.length > 0 &&
44
+ include.indexOf(node.terraformResourceType) === -1) {
45
+ return false;
46
+ }
47
+ return true;
48
+ }
49
+ }
50
+ exports.AwsTag = AwsTag;
51
+ _a = JSII_RTTI_SYMBOL_1;
52
+ AwsTag[_a] = { fqn: "terraconstructs.aws.AwsTag", version: "0.0.13" };
53
+ /**
54
+ * Manages AWS tags for all resources within a construct scope.
55
+ */
56
+ class Tags {
57
+ /**
58
+ * Returns the tags API for this scope.
59
+ * @param scope The scope
60
+ */
61
+ static of(scope) {
62
+ return new Tags(scope);
63
+ }
64
+ constructor(scope) {
65
+ this.scope = scope;
66
+ }
67
+ /**
68
+ * add tags to the node of a construct and all its the taggable children
69
+ */
70
+ add(key, value, props = {}) {
71
+ cdktf_1.Aspects.of(this.scope).add(new AwsTag(key, value, props));
72
+ }
73
+ }
74
+ exports.Tags = Tags;
75
+ _b = JSII_RTTI_SYMBOL_1;
76
+ Tags[_b] = { fqn: "terraconstructs.aws.Tags", version: "0.0.13" };
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXRhZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzL2F3cy10YWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFPQSxrREFFQzs7QUFURCxpQ0FBeUM7QUFJekM7O0dBRUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxDQUFhO0lBQy9DLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxXQUFXLElBQUksQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUE4QkQ7Ozs7R0FJRztBQUNILE1BQWEsTUFBTTtJQUlqQixZQUNVLEdBQVcsRUFDbkIsS0FBYSxFQUNiLFFBQWtCLEVBQUU7UUFGWixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBSW5CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUNELEtBQUssQ0FBQyxJQUFnQjtRQUNwQixJQUNFLG1CQUFtQixDQUFDLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsa0JBQWtCLENBQ3JCLElBQUksRUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUNoQyxFQUNELENBQUM7WUFDRCxtRUFBbUU7WUFDbkUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUN4QixJQUF1QixFQUN2QixPQUFrQixFQUNsQixPQUFrQjtRQUVsQixJQUNFLE9BQU87WUFDUCxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDbEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDbEQsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQ0UsT0FBTztZQUNQLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNsQixPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNsRCxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOztBQW5ESCx3QkFvREM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxJQUFJO0lBQ2Y7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFpQjtRQUNoQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxZQUFxQyxLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO0lBQUcsQ0FBQztJQUUxRDs7T0FFRztJQUNJLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYSxFQUFFLFFBQWtCLEVBQUU7UUFDekQsZUFBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDOztBQWhCSCxvQkFpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQXNwZWN0LCBBc3BlY3RzIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRhZ2dhYmxlQ29uc3RydWN0IH0gZnJvbSBcIi4uL2NvbnN0cnVjdC1iYXNlXCI7XG5cbi8qKlxuICogVGFnZ2FibGVDb25zdHJ1Y3QgaXMgYSBDb25zdHJ1Y3QgdGhhdCBjYW4gaGF2ZSB0YWdzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RhZ2dhYmxlQ29uc3RydWN0KHg6IElDb25zdHJ1Y3QpOiB4IGlzIFRhZ2dhYmxlQ29uc3RydWN0IHtcbiAgcmV0dXJuIFwidGFnc1wiIGluIHggJiYgXCJ0YWdzSW5wdXRcIiBpbiB4O1xufVxuXG4vLyBUT0RPOiBJbXBsZW1lbnQgVGFnc01hbmFnZXI/XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi90YWctYXNwZWN0LnRzXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi90YWctbWFuYWdlci50c1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgdGFnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnUHJvcHMge1xuICAvKipcbiAgICogQW4gYXJyYXkgb2YgUmVzb3VyY2UgVHlwZXMgdGhhdCB3aWxsIG5vdCByZWNlaXZlIHRoaXMgdGFnXG4gICAqXG4gICAqIEFuIGVtcHR5IGFycmF5IHdpbGwgYWxsb3cgdGhpcyB0YWcgdG8gYmUgYXBwbGllZCB0byBhbGwgcmVzb3VyY2VzLiBBXG4gICAqIG5vbi1lbXB0eSBhcnJheSB3aWxsIGFwcGx5IHRoaXMgdGFnIG9ubHkgaWYgdGhlIFJlc291cmNlIHR5cGUgaXMgbm90IGluXG4gICAqIHRoaXMgYXJyYXkuXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBleGNsdWRlUmVzb3VyY2VUeXBlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBSZXNvdXJjZSBUeXBlcyB0aGF0IHdpbGwgcmVjZWl2ZSB0aGlzIHRhZ1xuICAgKlxuICAgKiBBbiBlbXB0eSBhcnJheSB3aWxsIG1hdGNoIGFueSBSZXNvdXJjZS4gQSBub24tZW1wdHkgYXJyYXkgd2lsbCBhcHBseSB0aGlzXG4gICAqIHRhZyBvbmx5IHRvIFJlc291cmNlIHR5cGVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoaXMgYXJyYXkuXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlUmVzb3VyY2VUeXBlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIENES1RGIEFzcGVjdCBhZGRpbmcgYSBzaW5nbGUgS2V5L1ZhbHVlIFRhZyB0byBhbGwgcmVzb3VyY2VzIHdpdGhpbiBhIGNvbnN0cnVjdCBzY29wZVxuICpcbiAqIEFkZCB0YWdzIHVzaW5nIGBUYWdzLm9mKHNjb3BlKS5hZGQoa2V5LCB2YWx1ZSlgXG4gKi9cbmV4cG9ydCBjbGFzcyBBd3NUYWcgaW1wbGVtZW50cyBJQXNwZWN0IHtcbiAgcHJpdmF0ZSB2YWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBUYWdQcm9wcztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGtleTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgcHJvcHM6IFRhZ1Byb3BzID0ge30sXG4gICkge1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGFnIG11c3QgaGF2ZSBhIHZhbHVlXCIpO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbiAgdmlzaXQobm9kZTogSUNvbnN0cnVjdCkge1xuICAgIGlmIChcbiAgICAgIGlzVGFnZ2FibGVDb25zdHJ1Y3Qobm9kZSkgJiZcbiAgICAgIHRoaXMuYXBwbHlUYWdBc3BlY3RIZXJlKFxuICAgICAgICBub2RlLFxuICAgICAgICB0aGlzLnByb3BzLmluY2x1ZGVSZXNvdXJjZVR5cGVzLFxuICAgICAgICB0aGlzLnByb3BzLmV4Y2x1ZGVSZXNvdXJjZVR5cGVzLFxuICAgICAgKVxuICAgICkge1xuICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vY2RrdGYvY29uY2VwdHMvYXNwZWN0c1xuICAgICAgY29uc3QgY3VycmVudFRhZ3MgPSBub2RlLnRhZ3NJbnB1dCB8fCB7fTtcbiAgICAgIG5vZGUudGFncyA9IHsgLi4uY3VycmVudFRhZ3MsIFt0aGlzLmtleV06IHRoaXMudmFsdWUgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5VGFnQXNwZWN0SGVyZShcbiAgICBub2RlOiBUYWdnYWJsZUNvbnN0cnVjdCxcbiAgICBpbmNsdWRlPzogc3RyaW5nW10sXG4gICAgZXhjbHVkZT86IHN0cmluZ1tdLFxuICApIHtcbiAgICBpZiAoXG4gICAgICBleGNsdWRlICYmXG4gICAgICBleGNsdWRlLmxlbmd0aCA+IDAgJiZcbiAgICAgIGV4Y2x1ZGUuaW5kZXhPZihub2RlLnRlcnJhZm9ybVJlc291cmNlVHlwZSkgIT09IC0xXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGluY2x1ZGUgJiZcbiAgICAgIGluY2x1ZGUubGVuZ3RoID4gMCAmJlxuICAgICAgaW5jbHVkZS5pbmRleE9mKG5vZGUudGVycmFmb3JtUmVzb3VyY2VUeXBlKSA9PT0gLTFcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vKipcbiAqIE1hbmFnZXMgQVdTIHRhZ3MgZm9yIGFsbCByZXNvdXJjZXMgd2l0aGluIGEgY29uc3RydWN0IHNjb3BlLlxuICovXG5leHBvcnQgY2xhc3MgVGFncyB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB0YWdzIEFQSSBmb3IgdGhpcyBzY29wZS5cbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihzY29wZTogSUNvbnN0cnVjdCk6IFRhZ3Mge1xuICAgIHJldHVybiBuZXcgVGFncyhzY29wZSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2NvcGU6IElDb25zdHJ1Y3QpIHt9XG5cbiAgLyoqXG4gICAqIGFkZCB0YWdzIHRvIHRoZSBub2RlIG9mIGEgY29uc3RydWN0IGFuZCBhbGwgaXRzIHRoZSB0YWdnYWJsZSBjaGlsZHJlblxuICAgKi9cbiAgcHVibGljIGFkZChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZywgcHJvcHM6IFRhZ1Byb3BzID0ge30pIHtcbiAgICBBc3BlY3RzLm9mKHRoaXMuc2NvcGUpLmFkZChuZXcgQXdzVGFnKGtleSwgdmFsdWUsIHByb3BzKSk7XG4gIH1cbn1cbiJdfQ==
@@ -44,5 +44,5 @@ class Ec2Action {
44
44
  }
45
45
  exports.Ec2Action = Ec2Action;
46
46
  _a = JSII_RTTI_SYMBOL_1;
47
- Ec2Action[_a] = { fqn: "terraconstructs.aws.cloudwatch.actions.Ec2Action", version: "0.0.11" };
47
+ Ec2Action[_a] = { fqn: "terraconstructs.aws.cloudwatch.actions.Ec2Action", version: "0.0.13" };
48
48
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWMyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jbG91ZHdhdGNoL2FjdGlvbnMvZWMyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsK0NBQTJDO0FBSTNDOztHQUVHO0FBQ0gsSUFBWSxpQkFpQlg7QUFqQkQsV0FBWSxpQkFBaUI7SUFDM0I7O09BRUc7SUFDSCxrQ0FBYSxDQUFBO0lBQ2I7O09BRUc7SUFDSCw0Q0FBdUIsQ0FBQTtJQUN2Qjs7T0FFRztJQUNILHdDQUFtQixDQUFBO0lBQ25COztPQUVHO0lBQ0gsc0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQWpCVyxpQkFBaUIsaUNBQWpCLGlCQUFpQixRQWlCNUI7QUFFRDs7R0FFRztBQUNILE1BQWEsU0FBUztJQUdwQixZQUFZLGNBQWlDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksQ0FBQyxNQUFpQixFQUFFLE1BQWM7UUFDcEMsT0FBTztZQUNMLGNBQWMsRUFBRSxPQUFPLG9CQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsYUFBYSxvQkFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRTtTQUM1SSxDQUFDO0lBQ0osQ0FBQzs7QUFkSCw4QkFlQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi8uLi9hd3Mtc3RhY2tcIjtcbmltcG9ydCB7IElBbGFybUFjdGlvbiwgQWxhcm1BY3Rpb25Db25maWcgfSBmcm9tIFwiLi4vYWxhcm0tYWN0aW9uXCI7XG5pbXBvcnQgeyBJQWxhcm0gfSBmcm9tIFwiLi4vYWxhcm0tYmFzZVwiO1xuXG4vKipcbiAqIFR5cGVzIG9mIEVDMiBhY3Rpb25zIGF2YWlsYWJsZVxuICovXG5leHBvcnQgZW51bSBFYzJJbnN0YW5jZUFjdGlvbiB7XG4gIC8qKlxuICAgKiBTdG9wIHRoZSBpbnN0YW5jZVxuICAgKi9cbiAgU1RPUCA9IFwic3RvcFwiLFxuICAvKipcbiAgICogVGVybWluYXRldGhlIGluc3RhbmNlXG4gICAqL1xuICBURVJNSU5BVEUgPSBcInRlcm1pbmF0ZVwiLFxuICAvKipcbiAgICogUmVjb3ZlciB0aGUgaW5zdGFuY2VcbiAgICovXG4gIFJFQ09WRVIgPSBcInJlY292ZXJcIixcbiAgLyoqXG4gICAqIFJlYm9vdCB0aGUgaW5zdGFuY2VcbiAgICovXG4gIFJFQk9PVCA9IFwicmVib290XCIsXG59XG5cbi8qKlxuICogVXNlIGFuIEVDMiBhY3Rpb24gYXMgYW4gQWxhcm0gYWN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBFYzJBY3Rpb24gaW1wbGVtZW50cyBJQWxhcm1BY3Rpb24ge1xuICBwcml2YXRlIGVjMkFjdGlvbjogRWMySW5zdGFuY2VBY3Rpb247XG5cbiAgY29uc3RydWN0b3IoaW5zdGFuY2VBY3Rpb246IEVjMkluc3RhbmNlQWN0aW9uKSB7XG4gICAgdGhpcy5lYzJBY3Rpb24gPSBpbnN0YW5jZUFjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFsYXJtIGFjdGlvbiBjb25maWd1cmF0aW9uIHRvIHVzZSBhbiBFQzIgYWN0aW9uIGFzIGFuIGFsYXJtIGFjdGlvblxuICAgKi9cbiAgYmluZChfc2NvcGU6IENvbnN0cnVjdCwgX2FsYXJtOiBJQWxhcm0pOiBBbGFybUFjdGlvbkNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFsYXJtQWN0aW9uQXJuOiBgYXJuOiR7QXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QoX3Njb3BlKS5wYXJ0aXRpb259OmF1dG9tYXRlOiR7QXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QoX3Njb3BlKS5yZWdpb259OmVjMjoke3RoaXMuZWMyQWN0aW9ufWAsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -44,5 +44,5 @@ class LambdaAction {
44
44
  }
45
45
  exports.LambdaAction = LambdaAction;
46
46
  _a = JSII_RTTI_SYMBOL_1;
47
- LambdaAction[_a] = { fqn: "terraconstructs.aws.cloudwatch.actions.LambdaAction", version: "0.0.11" };
47
+ LambdaAction[_a] = { fqn: "terraconstructs.aws.cloudwatch.actions.LambdaAction", version: "0.0.13" };
48
48
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jbG91ZHdhdGNoL2FjdGlvbnMvbGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EsK0NBQTJDO0FBRTNDLGlDQUFpQztBQUVqQzs7R0FFRztBQUNILE1BQWEsWUFBWTtJQUd2QixZQUFZLGNBQWdEO1FBQzFELElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxDQUNGLEtBQWdCLEVBQ2hCLEtBQXdCO1FBRXhCLDRDQUE0QztRQUM1QyxxREFBcUQ7UUFDckQsb0RBQW9EO1FBQ3BELElBQUk7UUFDSixvQkFBb0I7UUFDcEIsVUFBVTtRQUNWLE1BQU0sWUFBWSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLGlCQUFpQixDQUFDO1FBQ3ZELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FDckUsWUFBWSxDQUNvQyxDQUFDO1FBRW5ELG1FQUFtRTtRQUNuRSx1REFBdUQ7UUFDdkQsa0RBQWtEO1FBQ2xELElBQUksY0FBYyxFQUFFLGNBQWMsS0FBSyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFO2dCQUM5QyxhQUFhLEVBQUUsb0JBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTztnQkFDckQsTUFBTSxFQUFFLHVCQUF1QjtnQkFDL0IsU0FBUyxFQUFFLEtBQUssQ0FBQyxRQUFRO2dCQUN6QixTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQ2pDLHdDQUF3QyxDQUN6QzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPO1lBQ0wsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVztTQUNoRCxDQUFDO0lBQ0osQ0FBQzs7QUE1Q0gsb0NBNkNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvYTEyODg3YjU5M2VmNjc5NmY2M2JmNzU0YTNkMzgxNjc2ZDJlNTE1NS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaC1hY3Rpb25zL2xpYi9sYW1iZGEudHNcblxuaW1wb3J0IHsgbGFtYmRhUGVybWlzc2lvbiB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uLy4uL2F3cy1zdGFja1wiO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCIuLi8uLi9jb21wdXRlXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uLy4uL2lhbVwiO1xuXG4vKipcbiAqIFVzZSBhIExhbWJkYSBhY3Rpb24gYXMgYW4gQWxhcm0gYWN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBMYW1iZGFBY3Rpb24gaW1wbGVtZW50cyBjbG91ZHdhdGNoLklBbGFybUFjdGlvbiB7XG4gIC8vIGxhbWJkYS5JVmVyc2lvblxuICBwcml2YXRlIGxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuSUFsaWFzIHwgbGFtYmRhLklGdW5jdGlvbjtcbiAgY29uc3RydWN0b3IobGFtYmRhRnVuY3Rpb246IGxhbWJkYS5JQWxpYXMgfCBsYW1iZGEuSUZ1bmN0aW9uKSB7XG4gICAgdGhpcy5sYW1iZGFGdW5jdGlvbiA9IGxhbWJkYUZ1bmN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYWxhcm0gYWN0aW9uIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGEgTGFtYmRhIGFjdGlvbiBhcyBhbiBhbGFybSBhY3Rpb24uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUHV0TWV0cmljQWxhcm0uaHRtbFxuICAgKi9cbiAgYmluZChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGFsYXJtOiBjbG91ZHdhdGNoLklBbGFybSxcbiAgKTogY2xvdWR3YXRjaC5BbGFybUFjdGlvbkNvbmZpZyB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL3B1bGwvMjg3MTJcbiAgICAvLyBjb25zdCBpZFByZWZpeCA9IEZlYXR1cmVGbGFncy5vZihzY29wZSkuaXNFbmFibGVkKFxuICAgIC8vICAgTEFNQkRBX1BFUk1JU1NJT05fTE9HSUNBTF9JRF9GT1JfTEFNQkRBX0FDVElPTixcbiAgICAvLyApXG4gICAgLy8gICA/IGFsYXJtLm5vZGUuaWRcbiAgICAvLyAgIDogXCJcIjtcbiAgICBjb25zdCBwZXJtaXNzaW9uSWQgPSBgJHthbGFybS5ub2RlLmlkfUFsYXJtUGVybWlzc2lvbmA7XG4gICAgY29uc3QgcGVybWlzc2lvbk5vZGUgPSB0aGlzLmxhbWJkYUZ1bmN0aW9uLnBlcm1pc3Npb25zTm9kZS50cnlGaW5kQ2hpbGQoXG4gICAgICBwZXJtaXNzaW9uSWQsXG4gICAgKSBhcyBsYW1iZGFQZXJtaXNzaW9uLkxhbWJkYVBlcm1pc3Npb24gfCB1bmRlZmluZWQ7XG5cbiAgICAvLyBJZiB0aGUgTGFtYmRhIHBlcm1pc3Npb24gaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGlzIGZ1bmN0aW9uXG4gICAgLy8gd2Ugc2tpcCBhZGRpbmcgaXQgdG8gYXZvaWQgYW4gZXhjZXB0aW9uIGJlaW5nIHRocm93blxuICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzI5NTE0XG4gICAgaWYgKHBlcm1pc3Npb25Ob2RlPy5zb3VyY2VBcm5JbnB1dCAhPT0gYWxhcm0uYWxhcm1Bcm4pIHtcbiAgICAgIHRoaXMubGFtYmRhRnVuY3Rpb24uYWRkUGVybWlzc2lvbihwZXJtaXNzaW9uSWQsIHtcbiAgICAgICAgc291cmNlQWNjb3VudDogQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpLmFjY291bnQsXG4gICAgICAgIGFjdGlvbjogXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25cIixcbiAgICAgICAgc291cmNlQXJuOiBhbGFybS5hbGFybUFybixcbiAgICAgICAgcHJpbmNpcGFsOiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXG4gICAgICAgICAgXCJsYW1iZGEuYWxhcm1zLmNsb3Vkd2F0Y2guYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICApLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFsYXJtQWN0aW9uQXJuOiB0aGlzLmxhbWJkYUZ1bmN0aW9uLmZ1bmN0aW9uQXJuLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -60,5 +60,5 @@ class AlarmBase extends aws_construct_1.AwsConstructBase {
60
60
  }
61
61
  exports.AlarmBase = AlarmBase;
62
62
  _a = JSII_RTTI_SYMBOL_1;
63
- AlarmBase[_a] = { fqn: "terraconstructs.aws.cloudwatch.AlarmBase", version: "0.0.11" };
63
+ AlarmBase[_a] = { fqn: "terraconstructs.aws.cloudwatch.AlarmBase", version: "0.0.13" };
64
64
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY2xvdWR3YXRjaC9hbGFybS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUdBQXFHO0FBRXJHLG9EQUFtRTtBQXNEbkU7O0dBRUc7QUFDSCxNQUFzQixTQUFVLFNBQVEsZ0NBQWdCO0lBTXRELElBQVcsWUFBWTtRQUNyQixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztTQUMxQixDQUFDO0lBQ0osQ0FBQztJQUNELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQU1EOztPQUVHO0lBQ0ksZUFBZTtRQUNwQixPQUFPLFVBQVUsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksY0FBYyxDQUFDLEdBQUcsT0FBdUI7UUFDOUMsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzVCLENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDdkIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FDekQsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0kseUJBQXlCLENBQUMsR0FBRyxPQUF1QjtRQUN6RCxJQUFJLElBQUksQ0FBQywwQkFBMEIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLENBQUM7UUFFRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUNsQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxXQUFXLENBQUMsR0FBRyxPQUF1QjtRQUMzQyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNwQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FBQzs7QUF0RUgsOEJBdUVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTcwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gvbGliL2FsYXJtLWJhc2UudHNcblxuaW1wb3J0IHsgSUF3c0NvbnN0cnVjdCwgQXdzQ29uc3RydWN0QmFzZSB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBJQWxhcm1BY3Rpb24gfSBmcm9tIFwiLi9hbGFybS1hY3Rpb25cIjtcblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIEFsYXJtIFJ1bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUFsYXJtUnVsZSB7XG4gIC8qKlxuICAgKiBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIEFsYXJtIFJ1bGUgdG8gYmUgdXNlZCB3aGVuIGJ1aWxkaW5nIHRoZSBDb21wb3NpdGUgQWxhcm0gcmVzb3VyY2UuXG4gICAqL1xuICByZW5kZXJBbGFybVJ1bGUoKTogc3RyaW5nO1xufVxuXG4vKipcbiAqIE91dHB1dHMgd2hpY2ggbWF5IGJlIHJlZ2lzdGVyZWQgZm9yIG91dHB1dCB2aWEgdGhlIEdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWxhcm1PdXRwdXRzIHtcbiAgLyoqXG4gICAqIEFsYXJtIEFSTiAoaS5lLiBhcm46YXdzOmNsb3Vkd2F0Y2g6PHJlZ2lvbj46PGFjY291bnQtaWQ+OmFsYXJtOkZvbylcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgYWxhcm1cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1OYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIENsb3VkV2F0Y2ggQWxhcm1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQWxhcm0gZXh0ZW5kcyBJQWxhcm1SdWxlLCBJQXdzQ29uc3RydWN0IHtcbiAgLyoqIFN0cm9uZ2x5IHR5cGVkIG91dHB1dHMgKi9cbiAgcmVhZG9ubHkgYWxhcm1PdXRwdXRzOiBBbGFybU91dHB1dHM7XG5cbiAgLyoqXG4gICAqIEFsYXJtIEFSTiAoaS5lLiBhcm46YXdzOmNsb3Vkd2F0Y2g6PHJlZ2lvbj46PGFjY291bnQtaWQ+OmFsYXJtOkZvbylcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgYWxhcm1cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1OYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGJhc2UgY2xhc3MgZm9yIEFsYXJtIGFuZCBDb21wb3NpdGVBbGFybSByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBbGFybUJhc2UgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSUFsYXJtIHtcbiAgLyoqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhbGFybUFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYWxhcm1OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgYWxhcm1PdXRwdXRzKCk6IEFsYXJtT3V0cHV0cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFsYXJtQXJuOiB0aGlzLmFsYXJtQXJuLFxuICAgICAgYWxhcm1OYW1lOiB0aGlzLmFsYXJtTmFtZSxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hbGFybU91dHB1dHM7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWxhcm1BY3Rpb25Bcm5zPzogc3RyaW5nW107XG4gIHByb3RlY3RlZCBpbnN1ZmZpY2llbnREYXRhQWN0aW9uQXJucz86IHN0cmluZ1tdO1xuICBwcm90ZWN0ZWQgb2tBY3Rpb25Bcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFsYXJtUnVsZSBpbmRpY2F0aW5nIEFMQVJNIHN0YXRlIGZvciBBbGFybS5cbiAgICovXG4gIHB1YmxpYyByZW5kZXJBbGFybVJ1bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYEFMQVJNKFwiJHt0aGlzLmFsYXJtQXJufVwiKWA7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlciB0aGlzIGFjdGlvbiBpZiB0aGUgYWxhcm0gZmlyZXNcbiAgICpcbiAgICogVHlwaWNhbGx5IFNuc0FjdGlvbiBvciBBdXRvU2NhbGluZ0FjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZGRBbGFybUFjdGlvbiguLi5hY3Rpb25zOiBJQWxhcm1BY3Rpb25bXSkge1xuICAgIGlmICh0aGlzLmFsYXJtQWN0aW9uQXJucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmFsYXJtQWN0aW9uQXJucyA9IFtdO1xuICAgIH1cblxuICAgIHRoaXMuYWxhcm1BY3Rpb25Bcm5zLnB1c2goXG4gICAgICAuLi5hY3Rpb25zLm1hcCgoYSkgPT4gYS5iaW5kKHRoaXMsIHRoaXMpLmFsYXJtQWN0aW9uQXJuKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXIgdGhpcyBhY3Rpb24gaWYgdGhlcmUgaXMgaW5zdWZmaWNpZW50IGRhdGEgdG8gZXZhbHVhdGUgdGhlIGFsYXJtXG4gICAqXG4gICAqIFR5cGljYWxseSBTbnNBY3Rpb24gb3IgQXV0b1NjYWxpbmdBY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgYWRkSW5zdWZmaWNpZW50RGF0YUFjdGlvbiguLi5hY3Rpb25zOiBJQWxhcm1BY3Rpb25bXSkge1xuICAgIGlmICh0aGlzLmluc3VmZmljaWVudERhdGFBY3Rpb25Bcm5zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaW5zdWZmaWNpZW50RGF0YUFjdGlvbkFybnMgPSBbXTtcbiAgICB9XG5cbiAgICB0aGlzLmluc3VmZmljaWVudERhdGFBY3Rpb25Bcm5zLnB1c2goXG4gICAgICAuLi5hY3Rpb25zLm1hcCgoYSkgPT4gYS5iaW5kKHRoaXMsIHRoaXMpLmFsYXJtQWN0aW9uQXJuKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXIgdGhpcyBhY3Rpb24gaWYgdGhlIGFsYXJtIHJldHVybnMgZnJvbSBicmVhY2hpbmcgc3RhdGUgaW50byBvayBzdGF0ZVxuICAgKlxuICAgKiBUeXBpY2FsbHkgU25zQWN0aW9uIG9yIEF1dG9TY2FsaW5nQWN0aW9uLlxuICAgKi9cbiAgcHVibGljIGFkZE9rQWN0aW9uKC4uLmFjdGlvbnM6IElBbGFybUFjdGlvbltdKSB7XG4gICAgaWYgKHRoaXMub2tBY3Rpb25Bcm5zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub2tBY3Rpb25Bcm5zID0gW107XG4gICAgfVxuXG4gICAgdGhpcy5va0FjdGlvbkFybnMucHVzaChcbiAgICAgIC4uLmFjdGlvbnMubWFwKChhKSA9PiBhLmJpbmQodGhpcywgdGhpcykuYWxhcm1BY3Rpb25Bcm4pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -112,5 +112,5 @@ class AlarmRule {
112
112
  }
113
113
  exports.AlarmRule = AlarmRule;
114
114
  _a = JSII_RTTI_SYMBOL_1;
115
- AlarmRule[_a] = { fqn: "terraconstructs.aws.cloudwatch.AlarmRule", version: "0.0.11" };
115
+ AlarmRule[_a] = { fqn: "terraconstructs.aws.cloudwatch.AlarmRule", version: "0.0.13" };
116
116
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0tcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY2xvdWR3YXRjaC9hbGFybS1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBSUE7O0dBRUc7QUFDSCxJQUFZLFVBZVg7QUFmRCxXQUFZLFVBQVU7SUFDcEI7O09BRUc7SUFDSCw2QkFBZSxDQUFBO0lBRWY7O09BRUc7SUFDSCx1QkFBUyxDQUFBO0lBRVQ7O09BRUc7SUFDSCxxREFBdUMsQ0FBQTtBQUN6QyxDQUFDLEVBZlcsVUFBVSwwQkFBVixVQUFVLFFBZXJCO0FBRUQ7O0dBRUc7QUFDSCxJQUFLLFFBSUo7QUFKRCxXQUFLLFFBQVE7SUFDWCx1QkFBVyxDQUFBO0lBQ1gscUJBQVMsQ0FBQTtJQUNULHVCQUFXLENBQUE7QUFDYixDQUFDLEVBSkksUUFBUSxLQUFSLFFBQVEsUUFJWjtBQUVEOztHQUVHO0FBQ0gsTUFBYSxTQUFTO0lBQ3BCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBc0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFzQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFtQjtRQUNuQyxPQUFPLElBQUksQ0FBQztZQUNILGVBQWU7Z0JBQ3BCLE9BQU8sU0FBUyxPQUFPLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQztZQUNoRCxDQUFDO1NBQ0YsQ0FBQyxFQUFFLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYztRQUN0QyxPQUFPLElBQUksQ0FBQztZQUNILGVBQWU7Z0JBQ3BCLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUMxQyxDQUFDO1NBQ0YsQ0FBQyxFQUFFLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQWEsRUFBRSxVQUFzQjtRQUMzRCxPQUFPLElBQUksQ0FBQztZQUNILGVBQWU7Z0JBQ3BCLE9BQU8sR0FBRyxVQUFVLEtBQUssS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDO1lBQzlDLENBQUM7U0FDRixDQUFDLEVBQUUsQ0FBQztJQUNQLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFpQjtRQUN4QyxPQUFPLElBQUksQ0FBQztZQUNILGVBQWU7Z0JBQ3BCLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7U0FDRixDQUFDLEVBQUUsQ0FBQztJQUNQLENBQUM7SUFFTyxNQUFNLENBQUMsTUFBTSxDQUNuQixRQUFrQixFQUNsQixHQUFHLFFBQXNCO1FBRXpCLE9BQU8sSUFBSSxDQUFDO1lBQ0gsZUFBZTtnQkFDcEIsTUFBTSxVQUFVLEdBQUcsUUFBUTtxQkFDeEIsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO3FCQUNoRCxJQUFJLENBQUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixPQUFPLElBQUksVUFBVSxHQUFHLENBQUM7WUFDM0IsQ0FBQztTQUNGLENBQUMsRUFBRSxDQUFDO0lBQ1AsQ0FBQzs7QUFwRkgsOEJBcUZDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTcwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gvbGliL2FsYXJtLXJ1bGUudHNcblxuaW1wb3J0IHsgSUFsYXJtLCBJQWxhcm1SdWxlIH0gZnJvbSBcIi4vYWxhcm0tYmFzZVwiO1xuXG4vKipcbiAqIEVudW1lcmF0aW9uIGluZGljYXRlcyBzdGF0ZSBvZiBBbGFybSB1c2VkIGluIGJ1aWxkaW5nIEFsYXJtIFJ1bGUuXG4gKi9cbmV4cG9ydCBlbnVtIEFsYXJtU3RhdGUge1xuICAvKipcbiAgICogU3RhdGUgaW5kaWNhdGVzIHJlc291cmNlIGlzIGluIEFMQVJNXG4gICAqL1xuICBBTEFSTSA9IFwiQUxBUk1cIixcblxuICAvKipcbiAgICogU3RhdGUgaW5kaWNhdGVzIHJlc291cmNlIGlzIG5vdCBpbiBBTEFSTVxuICAgKi9cbiAgT0sgPSBcIk9LXCIsXG5cbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRlcyB0aGVyZSBpcyBub3QgZW5vdWdoIGRhdGEgdG8gZGV0ZXJtaW5lIGlzIHJlc291cmNlIGlzIGluIEFMQVJNXG4gICAqL1xuICBJTlNVRkZJQ0lFTlRfREFUQSA9IFwiSU5TVUZGSUNJRU5UX0RBVEFcIixcbn1cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBzdXBwb3J0ZWQgQ29tcG9zaXRlIEFsYXJtcyBvcGVyYXRvcnMuXG4gKi9cbmVudW0gT3BlcmF0b3Ige1xuICBBTkQgPSBcIkFORFwiLFxuICBPUiA9IFwiT1JcIixcbiAgTk9UID0gXCJOT1RcIixcbn1cblxuLyoqXG4gKiBDbGFzcyB3aXRoIHN0YXRpYyBmdW5jdGlvbnMgdG8gYnVpbGQgQWxhcm1SdWxlIGZvciBDb21wb3NpdGUgQWxhcm1zLlxuICovXG5leHBvcnQgY2xhc3MgQWxhcm1SdWxlIHtcbiAgLyoqXG4gICAqIGZ1bmN0aW9uIHRvIGpvaW4gYWxsIHByb3ZpZGVkIEFsYXJtUnVsZXMgd2l0aCBBTkQgb3BlcmF0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBvcGVyYW5kcyBJQWxhcm1SdWxlcyB0byBiZSBqb2luZWQgd2l0aCBBTkQgb3BlcmF0b3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFsbE9mKC4uLm9wZXJhbmRzOiBJQWxhcm1SdWxlW10pOiBJQWxhcm1SdWxlIHtcbiAgICByZXR1cm4gdGhpcy5jb25jYXQoT3BlcmF0b3IuQU5ELCAuLi5vcGVyYW5kcyk7XG4gIH1cblxuICAvKipcbiAgICogZnVuY3Rpb24gdG8gam9pbiBhbGwgcHJvdmlkZWQgQWxhcm1SdWxlcyB3aXRoIE9SIG9wZXJhdG9yLlxuICAgKlxuICAgKiBAcGFyYW0gb3BlcmFuZHMgSUFsYXJtUnVsZXMgdG8gYmUgam9pbmVkIHdpdGggT1Igb3BlcmF0b3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFueU9mKC4uLm9wZXJhbmRzOiBJQWxhcm1SdWxlW10pOiBJQWxhcm1SdWxlIHtcbiAgICByZXR1cm4gdGhpcy5jb25jYXQoT3BlcmF0b3IuT1IsIC4uLm9wZXJhbmRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBmdW5jdGlvbiB0byB3cmFwIHByb3ZpZGVkIEFsYXJtUnVsZSBpbiBOT1Qgb3BlcmF0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBvcGVyYW5kIElBbGFybVJ1bGUgdG8gYmUgd3JhcHBlZCBpbiBOT1Qgb3BlcmF0b3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG5vdChvcGVyYW5kOiBJQWxhcm1SdWxlKTogSUFsYXJtUnVsZSB7XG4gICAgcmV0dXJuIG5ldyAoY2xhc3MgaW1wbGVtZW50cyBJQWxhcm1SdWxlIHtcbiAgICAgIHB1YmxpYyByZW5kZXJBbGFybVJ1bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAoTk9UICgke29wZXJhbmQucmVuZGVyQWxhcm1SdWxlKCl9KSlgO1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogZnVuY3Rpb24gdG8gYnVpbGQgVFJVRS9GQUxTRSBpbnRlbnQgZm9yIFJ1bGUgRXhwcmVzc2lvbi5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIGJvb2xlYW4gdmFsdWUgdG8gYmUgdXNlZCBpbiBydWxlIGV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Cb29sZWFuKHZhbHVlOiBib29sZWFuKTogSUFsYXJtUnVsZSB7XG4gICAgcmV0dXJuIG5ldyAoY2xhc3MgaW1wbGVtZW50cyBJQWxhcm1SdWxlIHtcbiAgICAgIHB1YmxpYyByZW5kZXJBbGFybVJ1bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke1N0cmluZyh2YWx1ZSkudG9VcHBlckNhc2UoKX1gO1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogZnVuY3Rpb24gdG8gYnVpbGQgUnVsZSBFeHByZXNzaW9uIGZvciBnaXZlbiBJQWxhcm0gYW5kIEFsYXJtU3RhdGUuXG4gICAqXG4gICAqIEBwYXJhbSBhbGFybSBJQWxhcm0gdG8gYmUgdXNlZCBpbiBSdWxlIEV4cHJlc3Npb24uXG4gICAqIEBwYXJhbSBhbGFybVN0YXRlIEFsYXJtU3RhdGUgdG8gYmUgdXNlZCBpbiBSdWxlIEV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21BbGFybShhbGFybTogSUFsYXJtLCBhbGFybVN0YXRlOiBBbGFybVN0YXRlKTogSUFsYXJtUnVsZSB7XG4gICAgcmV0dXJuIG5ldyAoY2xhc3MgaW1wbGVtZW50cyBJQWxhcm1SdWxlIHtcbiAgICAgIHB1YmxpYyByZW5kZXJBbGFybVJ1bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2FsYXJtU3RhdGV9KFwiJHthbGFybS5hbGFybUFybn1cIilgO1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogZnVuY3Rpb24gdG8gYnVpbGQgUnVsZSBFeHByZXNzaW9uIGZvciBnaXZlbiBBbGFybSBSdWxlIHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIGFsYXJtUnVsZSBzdHJpbmcgdG8gYmUgdXNlZCBpbiBSdWxlIEV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdHJpbmcoYWxhcm1SdWxlOiBzdHJpbmcpOiBJQWxhcm1SdWxlIHtcbiAgICByZXR1cm4gbmV3IChjbGFzcyBpbXBsZW1lbnRzIElBbGFybVJ1bGUge1xuICAgICAgcHVibGljIHJlbmRlckFsYXJtUnVsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYWxhcm1SdWxlO1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb25jYXQoXG4gICAgb3BlcmF0b3I6IE9wZXJhdG9yLFxuICAgIC4uLm9wZXJhbmRzOiBJQWxhcm1SdWxlW11cbiAgKTogSUFsYXJtUnVsZSB7XG4gICAgcmV0dXJuIG5ldyAoY2xhc3MgaW1wbGVtZW50cyBJQWxhcm1SdWxlIHtcbiAgICAgIHB1YmxpYyByZW5kZXJBbGFybVJ1bGUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IG9wZXJhbmRzXG4gICAgICAgICAgLm1hcCgob3BlcmFuZCkgPT4gYCR7b3BlcmFuZC5yZW5kZXJBbGFybVJ1bGUoKX1gKVxuICAgICAgICAgIC5qb2luKGAgJHtvcGVyYXRvcn0gYCk7XG4gICAgICAgIHJldHVybiBgKCR7ZXhwcmVzc2lvbn0pYDtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG59XG4iXX0=
@@ -58,5 +58,5 @@ class AlarmStatusWidget extends widget_1.ConcreteWidget {
58
58
  }
59
59
  exports.AlarmStatusWidget = AlarmStatusWidget;
60
60
  _a = JSII_RTTI_SYMBOL_1;
61
- AlarmStatusWidget[_a] = { fqn: "terraconstructs.aws.cloudwatch.AlarmStatusWidget", version: "0.0.11" };
61
+ AlarmStatusWidget[_a] = { fqn: "terraconstructs.aws.cloudwatch.AlarmStatusWidget", version: "0.0.13" };
62
62
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0tc3RhdHVzLXdpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY2xvdWR3YXRjaC9hbGFybS1zdGF0dXMtd2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EscUNBQTBDO0FBRTFDOztHQUVHO0FBQ0gsSUFBWSx1QkFtQlg7QUFuQkQsV0FBWSx1QkFBdUI7SUFDakM7O09BRUc7SUFDSCw4Q0FBbUIsQ0FBQTtJQUVuQjs7OztPQUlHO0lBQ0gsNEVBQWlELENBQUE7SUFFakQ7Ozs7T0FJRztJQUNILGtEQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFuQlcsdUJBQXVCLHVDQUF2Qix1QkFBdUIsUUFtQmxDO0FBZ0REOztHQUVHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSx1QkFBYztJQUduRCxZQUFZLEtBQWdCLEVBQUUsS0FBNkI7UUFDekQsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFTSxRQUFRLENBQUMsQ0FBUyxFQUFFLENBQVM7UUFDbEMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTztZQUNMO2dCQUNFLElBQUksRUFBRSxPQUFPO2dCQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ1QsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNULFVBQVUsRUFBRTtvQkFDVixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxjQUFjO29CQUMzRCxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO29CQUN4RCxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO29CQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO2lCQUMxQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O0FBN0JILDhDQThCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoL2xpYi9hbGFybS1zdGF0dXMtd2lkZ2V0LnRzXG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJQWxhcm0gfSBmcm9tIFwiLi9hbGFybS1iYXNlXCI7XG5pbXBvcnQgeyBBbGFybVN0YXRlIH0gZnJvbSBcIi4vYWxhcm0tcnVsZVwiO1xuaW1wb3J0IHsgQ29uY3JldGVXaWRnZXQgfSBmcm9tIFwiLi93aWRnZXRcIjtcblxuLyoqXG4gKiBUaGUgc29ydCBwb3NzaWJpbGl0aWVzIGZvciBBbGFybVN0YXR1c1dpZGdldHNcbiAqL1xuZXhwb3J0IGVudW0gQWxhcm1TdGF0dXNXaWRnZXRTb3J0Qnkge1xuICAvKipcbiAgICogQ2hvb3NlIERFRkFVTFQgdG8gc29ydCB0aGVtIGluIGFscGhhYmV0aWNhbCBvcmRlciBieSBhbGFybSBuYW1lLlxuICAgKi9cbiAgREVGQVVMVCA9IFwiZGVmYXVsdFwiLFxuXG4gIC8qKlxuICAgKiBDaG9vc2UgU1RBVEVfVVBEQVRFRF9USU1FU1RBTVAgdG8gc29ydCB0aGVtIGZpcnN0IGJ5IGFsYXJtIHN0YXRlLCB3aXRoIGFsYXJtcyBpbiBBTEFSTSBzdGF0ZSBmaXJzdCxcbiAgICogSU5TVUZGSUNJRU5UX0RBVEEgYWxhcm1zIG5leHQsIGFuZCBPSyBhbGFybXMgbGFzdC5cbiAgICogV2l0aGluIGVhY2ggZ3JvdXAsIHRoZSBhbGFybXMgYXJlIHNvcnRlZCBieSB3aGVuIHRoZXkgbGFzdCBjaGFuZ2VkIHN0YXRlLCB3aXRoIG1vcmUgcmVjZW50IHN0YXRlIGNoYW5nZXMgbGlzdGVkIGZpcnN0LlxuICAgKi9cbiAgU1RBVEVfVVBEQVRFRF9USU1FU1RBTVAgPSBcInN0YXRlVXBkYXRlZFRpbWVzdGFtcFwiLFxuXG4gIC8qKlxuICAgKiBDaG9vc2UgVElNRVNUQU1QIHRvIHNvcnQgdGhlbSBieSB0aGUgdGltZSB3aGVuIHRoZSBhbGFybXMgbW9zdCByZWNlbnRseSBjaGFuZ2VkIHN0YXRlLFxuICAgKiBubyBtYXR0ZXIgdGhlIGN1cnJlbnQgYWxhcm0gc3RhdGUuXG4gICAqIFRoZSBhbGFybSB0aGF0IGNoYW5nZWQgc3RhdGUgbW9zdCByZWNlbnRseSBpcyBsaXN0ZWQgZmlyc3QuXG4gICAqL1xuICBUSU1FU1RBTVAgPSBcInRpbWVzdGFtcFwiLFxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFuIEFsYXJtIFN0YXR1cyBXaWRnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbGFybVN0YXR1c1dpZGdldFByb3BzIHtcbiAgLyoqXG4gICAqIENsb3VkV2F0Y2ggQWxhcm1zIHRvIHNob3cgaW4gd2lkZ2V0XG4gICAqL1xuICByZWFkb25seSBhbGFybXM6IElBbGFybVtdO1xuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSB3aWRnZXRcbiAgICpcbiAgICogQGRlZmF1bHQgJ0FsYXJtIFN0YXR1cydcbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xuICAvKipcbiAgICogV2lkdGggb2YgdGhlIHdpZGdldCwgaW4gYSBncmlkIG9mIDI0IHVuaXRzIHdpZGVcbiAgICpcbiAgICogQGRlZmF1bHQgNlxuICAgKi9cbiAgcmVhZG9ubHkgd2lkdGg/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBIZWlnaHQgb2YgdGhlIHdpZGdldFxuICAgKlxuICAgKiBAZGVmYXVsdCAzXG4gICAqL1xuICByZWFkb25seSBoZWlnaHQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBob3cgdG8gc29ydCB0aGUgYWxhcm1zIGluIHRoZSB3aWRnZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWxwaGFiZXRpY2FsIG9yZGVyXG4gICAqL1xuICByZWFkb25seSBzb3J0Qnk/OiBBbGFybVN0YXR1c1dpZGdldFNvcnRCeTtcblxuICAvKipcbiAgICogVXNlIHRoaXMgZmllbGQgdG8gZmlsdGVyIHRoZSBsaXN0IG9mIGFsYXJtcyBkaXNwbGF5ZWQgaW4gdGhlIHdpZGdldCB0byBvbmx5IHRob3NlIGFsYXJtcyBjdXJyZW50bHkgaW4gdGhlIHNwZWNpZmllZCBzdGF0ZXMuXG4gICAqIFlvdSBjYW4gc3BlY2lmeSBvbmUgb3IgbW9yZSBhbGFybSBzdGF0ZXMgaW4gdGhlIHZhbHVlIGZvciB0aGlzIGZpZWxkLlxuICAgKiBUaGUgYWxhcm0gc3RhdGVzIHRoYXQgeW91IGNhbiBzcGVjaWZ5IGFyZSBBTEFSTSwgSU5TVUZGSUNJRU5UX0RBVEEsIGFuZCBPSy5cbiAgICpcbiAgICogSWYgeW91IG9taXQgdGhpcyBmaWVsZCBvciBzcGVjaWZ5IGFuIGVtcHR5IGFycmF5LCBhbGwgdGhlIGFsYXJtcyBzcGVjaWZlZCBpbiBhbGFybXMgYXJlIGRpc3BsYXllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAgYWxsIHRoZSBhbGFybXMgc3BlY2lmaWVkIGluIGFsYXJtcyBhcmUgZGlzcGxheWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGVzPzogQWxhcm1TdGF0ZVtdO1xufVxuXG4vKipcbiAqIEEgZGFzaGJvYXJkIHdpZGdldCB0aGF0IGRpc3BsYXlzIGFsYXJtcyBpbiBhIGdyaWQgdmlld1xuICovXG5leHBvcnQgY2xhc3MgQWxhcm1TdGF0dXNXaWRnZXQgZXh0ZW5kcyBDb25jcmV0ZVdpZGdldCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IEFsYXJtU3RhdHVzV2lkZ2V0UHJvcHM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IEFsYXJtU3RhdHVzV2lkZ2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgcHJvcHMud2lkdGggfHwgNiwgcHJvcHMuaGVpZ2h0IHx8IDMpO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgfVxuXG4gIHB1YmxpYyBwb3NpdGlvbih4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcbiAgfVxuXG4gIHB1YmxpYyB0b0pzb24oKTogYW55W10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiYWxhcm1cIixcbiAgICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXG4gICAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXG4gICAgICAgIHg6IHRoaXMueCxcbiAgICAgICAgeTogdGhpcy55LFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdGl0bGU6IHRoaXMucHJvcHMudGl0bGUgPyB0aGlzLnByb3BzLnRpdGxlIDogXCJBbGFybSBTdGF0dXNcIixcbiAgICAgICAgICBhbGFybXM6IHRoaXMucHJvcHMuYWxhcm1zLm1hcCgoYWxhcm0pID0+IGFsYXJtLmFsYXJtQXJuKSxcbiAgICAgICAgICBzdGF0ZXM6IHRoaXMucHJvcHMuc3RhdGVzLFxuICAgICAgICAgIHNvcnRCeTogdGhpcy5wcm9wcy5zb3J0QnksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
@@ -350,7 +350,7 @@ class Alarm extends alarm_base_1.AlarmBase {
350
350
  }
351
351
  exports.Alarm = Alarm;
352
352
  _a = JSII_RTTI_SYMBOL_1;
353
- Alarm[_a] = { fqn: "terraconstructs.aws.cloudwatch.Alarm", version: "0.0.11" };
353
+ Alarm[_a] = { fqn: "terraconstructs.aws.cloudwatch.Alarm", version: "0.0.13" };
354
354
  function definitelyDifferent(x, y) {
355
355
  return x && !cdktf_1.Token.isUnresolved(y) && x !== y;
356
356
  }
@@ -94,5 +94,5 @@ class CompositeAlarm extends alarm_base_1.AlarmBase {
94
94
  }
95
95
  exports.CompositeAlarm = CompositeAlarm;
96
96
  _a = JSII_RTTI_SYMBOL_1;
97
- CompositeAlarm[_a] = { fqn: "terraconstructs.aws.cloudwatch.CompositeAlarm", version: "0.0.11" };
97
+ CompositeAlarm[_a] = { fqn: "terraconstructs.aws.cloudwatch.CompositeAlarm", version: "0.0.13" };
98
98
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLWFsYXJtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jbG91ZHdhdGNoL2NvbXBvc2l0ZS1hbGFybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQUErRDtBQUMvRCxpQ0FBNkI7QUFFN0IsZ0NBQW1DO0FBRW5DLDRDQUF3QztBQUN4Qyw2Q0FBNkQ7QUFDN0QsNkNBQTBDO0FBd0QxQzs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLHNCQUFTO0lBQzNDOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxzQkFBc0IsQ0FDbEMsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLGtCQUEwQjtRQUUxQixNQUFNLEtBQUssR0FBRyxvQkFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FDL0IsS0FBSyxFQUNMLEVBQUUsRUFDRixLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ2QsT0FBTyxFQUFFLFlBQVk7WUFDckIsUUFBUSxFQUFFLE9BQU87WUFDakIsWUFBWSxFQUFFLGtCQUFrQjtZQUNoQyxTQUFTLEVBQUUsZUFBUyxDQUFDLG1CQUFtQjtTQUN6QyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMscUJBQXFCLENBQ2pDLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixpQkFBeUI7UUFFekIsTUFBTSxNQUFPLFNBQVEsc0JBQVM7WUFBOUI7O2dCQUNrQixhQUFRLEdBQUcsaUJBQWlCLENBQUM7Z0JBQzdCLGNBQVMsR0FBRyxvQkFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQ2pFLGlCQUFpQixFQUNqQixlQUFTLENBQUMsbUJBQW1CLENBQzlCLENBQUMsWUFBYSxDQUFDO1lBQ2xCLENBQUM7U0FBQTtRQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFtQkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sU0FBUyxHQUNiLEtBQUssQ0FBQyxrQkFBa0I7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDckIsU0FBUyxFQUFFLEdBQUc7YUFDZixDQUFDLENBQUM7UUFFTCxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO1lBQ3JELE1BQU0sSUFBSSxLQUFLLENBQ2IsK0dBQStHLENBQ2hILENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDLGdDQUFnQyxDQUFDO1FBQzdELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQywyQkFBMkIsQ0FBQztRQUNuRCxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxQyxJQUFJLGVBQWUsS0FBSyxTQUFTLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM5RCxNQUFNLElBQUksS0FBSyxDQUNiLGtGQUFrRixDQUNuRixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sZUFBZSxHQUFHLGVBQWUsSUFBSSxtQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RCxVQUFVLEdBQUcsVUFBVSxJQUFJLG1CQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFbkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHVDQUF3QixDQUFDLHdCQUF3QixDQUNuRSxJQUFJLEVBQ0osVUFBVSxFQUNWO1lBQ0UsU0FBUztZQUNULFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYztZQUNwQyxZQUFZLEVBQUUsWUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckUsdUJBQXVCLEVBQUUsWUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEI7YUFDL0MsQ0FBQztZQUNGLFNBQVMsRUFBRSxZQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMvRCxHQUFHLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtnQkFDekIsQ0FBQyxDQUFDO29CQUNFLGlCQUFpQixFQUFFO3dCQUNqQixLQUFLLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixFQUFFLFFBQVE7d0JBQ3hDLGVBQWUsRUFBRSxlQUFnQixDQUFDLFNBQVMsRUFBRTt3QkFDN0MsVUFBVSxFQUFFLFVBQVcsQ0FBQyxTQUFTLEVBQUU7cUJBQ3BDO2lCQUNGO2dCQUNILENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDZixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7SUFDcEMsQ0FBQzs7QUEzSEgsd0NBNEhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xvdWR3YXRjaENvbXBvc2l0ZUFsYXJtIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IExhenkgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcm5Gb3JtYXQgfSBmcm9tIFwiLi4vYXJuXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi9hd3Mtc3RhY2tcIjtcbmltcG9ydCB7IEFsYXJtQmFzZSwgSUFsYXJtLCBJQWxhcm1SdWxlIH0gZnJvbSBcIi4vYWxhcm0tYmFzZVwiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi4vZHVyYXRpb25cIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIENvbXBvc2l0ZSBBbGFybVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvc2l0ZUFsYXJtUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBhY3Rpb25zIGZvciB0aGlzIGFsYXJtIGFyZSBlbmFibGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvbnNFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVzY3JpcHRpb24gZm9yIHRoZSBhbGFybVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1EZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgYWxhcm1cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9zaXRlQWxhcm1OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHByZXNzaW9uIHRoYXQgc3BlY2lmaWVzIHdoaWNoIG90aGVyIGFsYXJtcyBhcmUgdG8gYmUgZXZhbHVhdGVkIHRvIGRldGVybWluZSB0aGlzIGNvbXBvc2l0ZSBhbGFybSdzIHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1SdWxlOiBJQWxhcm1SdWxlO1xuXG4gIC8qKlxuICAgKiBBY3Rpb25zIHdpbGwgYmUgc3VwcHJlc3NlZCBpZiB0aGUgc3VwcHJlc3NvciBhbGFybSBpcyBpbiB0aGUgQUxBUk0gc3RhdGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWxhcm0gd2lsbCBub3QgYmUgc3VwcHJlc3NlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvbnNTdXBwcmVzc29yPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBkdXJhdGlvbiB0aGF0IHRoZSBjb21wb3NpdGUgYWxhcm0gd2FpdHMgYWZ0ZXIgc3VwcHJlc3NvciBhbGFybSBnb2VzIG91dCBvZiB0aGUgQUxBUk0gc3RhdGUuXG4gICAqIEFmdGVyIHRoaXMgdGltZSwgdGhlIGNvbXBvc2l0ZSBhbGFybSBwZXJmb3JtcyBpdHMgYWN0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAxIG1pbnV0ZSBleHRlbnNpb24gcGVyaW9kIHdpbGwgYmUgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uc1N1cHByZXNzb3JFeHRlbnNpb25QZXJpb2Q/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gZHVyYXRpb24gdGhhdCB0aGUgY29tcG9zaXRlIGFsYXJtIHdhaXRzIGZvciB0aGUgc3VwcHJlc3NvciBhbGFybSB0byBnbyBpbnRvIHRoZSBBTEFSTSBzdGF0ZS5cbiAgICogQWZ0ZXIgdGhpcyB0aW1lLCB0aGUgY29tcG9zaXRlIGFsYXJtIHBlcmZvcm1zIGl0cyBhY3Rpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDEgbWludXRlIHdhaXQgcGVyaW9kIHdpbGwgYmUgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uc1N1cHByZXNzb3JXYWl0UGVyaW9kPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogQSBDb21wb3NpdGUgQWxhcm0gYmFzZWQgb24gQWxhcm0gUnVsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBvc2l0ZUFsYXJtIGV4dGVuZHMgQWxhcm1CYXNlIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBDbG91ZFdhdGNoIGNvbXBvc2l0ZSBhbGFybSBwcm92aWRlZCBhbiBOYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIGNvbXBvc2l0ZUFsYXJtTmFtZSBDb21wb3NpdGUgQWxhcm0gTmFtZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29tcG9zaXRlQWxhcm1OYW1lKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBjb21wb3NpdGVBbGFybU5hbWU6IHN0cmluZyxcbiAgKTogSUFsYXJtIHtcbiAgICBjb25zdCBzdGFjayA9IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHNjb3BlKTtcblxuICAgIHJldHVybiB0aGlzLmZyb21Db21wb3NpdGVBbGFybUFybihcbiAgICAgIHNjb3BlLFxuICAgICAgaWQsXG4gICAgICBzdGFjay5mb3JtYXRBcm4oe1xuICAgICAgICBzZXJ2aWNlOiBcImNsb3Vkd2F0Y2hcIixcbiAgICAgICAgcmVzb3VyY2U6IFwiYWxhcm1cIixcbiAgICAgICAgcmVzb3VyY2VOYW1lOiBjb21wb3NpdGVBbGFybU5hbWUsXG4gICAgICAgIGFybkZvcm1hdDogQXJuRm9ybWF0LkNPTE9OX1JFU09VUkNFX05BTUUsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBDbG91ZFdhdGNoIGNvbXBvc2l0ZSBhbGFybSBwcm92aWRlZCBhbiBBUk4uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZVxuICAgKiBAcGFyYW0gY29tcG9zaXRlQWxhcm1Bcm4gQ29tcG9zaXRlIEFsYXJtIEFSTiAoaS5lLiBhcm46YXdzOmNsb3Vkd2F0Y2g6PHJlZ2lvbj46PGFjY291bnQtaWQ+OmFsYXJtOkNvbXBvc2l0ZUFsYXJtTmFtZSlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNvbXBvc2l0ZUFsYXJtQXJuKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBjb21wb3NpdGVBbGFybUFybjogc3RyaW5nLFxuICApOiBJQWxhcm0ge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIEFsYXJtQmFzZSBpbXBsZW1lbnRzIElBbGFybSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgYWxhcm1Bcm4gPSBjb21wb3NpdGVBbGFybUFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBhbGFybU5hbWUgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkuc3BsaXRBcm4oXG4gICAgICAgIGNvbXBvc2l0ZUFsYXJtQXJuLFxuICAgICAgICBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSxcbiAgICAgICkucmVzb3VyY2VOYW1lITtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGNsb3Vkd2F0Y2hDb21wb3NpdGVBbGFybS5DbG91ZHdhdGNoQ29tcG9zaXRlQWxhcm07XG5cbiAgLyoqXG4gICAqIEFSTiBvZiB0aGlzIGFsYXJtXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhbGFybUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoaXMgYWxhcm0uXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhbGFybU5hbWU6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGFsYXJtUnVsZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDb21wb3NpdGVBbGFybVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBhbGFybU5hbWUgPVxuICAgICAgcHJvcHMuY29tcG9zaXRlQWxhcm1OYW1lIHx8XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIHByZWZpeDogdGhpcy5ncmlkVVVJRCxcbiAgICAgICAgbWF4TGVuZ3RoOiAyNTUsXG4gICAgICB9KTtcblxuICAgIGlmIChwcm9wcy5hbGFybVJ1bGUucmVuZGVyQWxhcm1SdWxlKCkubGVuZ3RoID4gMTAyNDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJBbGFybSBSdWxlIGV4cHJlc3Npb24gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAxMDI0MCBjaGFyYWN0ZXJzLCBwbGVhc2UgcmVkdWNlIHRoZSBjb25kaXRpb25zIGluIHRoZSBBbGFybSBSdWxlXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBleHRlbnNpb25QZXJpb2QgPSBwcm9wcy5hY3Rpb25zU3VwcHJlc3NvckV4dGVuc2lvblBlcmlvZDtcbiAgICBsZXQgd2FpdFBlcmlvZCA9IHByb3BzLmFjdGlvbnNTdXBwcmVzc29yV2FpdFBlcmlvZDtcbiAgICBpZiAocHJvcHMuYWN0aW9uc1N1cHByZXNzb3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGV4dGVuc2lvblBlcmlvZCAhPT0gdW5kZWZpbmVkIHx8IHdhaXRQZXJpb2QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJBY3Rpb25zU3VwcHJlc3NvciBFeHRlbnNpb24vV2FpdCBQZXJpb2RzIHJlcXVpcmUgYW4gQWN0aW9uc1N1cHByZXNzb3IgdG8gYmUgc2V0LlwiLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBleHRlbnNpb25QZXJpb2QgPSBleHRlbnNpb25QZXJpb2QgPz8gRHVyYXRpb24ubWludXRlcygxKTtcbiAgICAgIHdhaXRQZXJpb2QgPSB3YWl0UGVyaW9kID8/IER1cmF0aW9uLm1pbnV0ZXMoMSk7XG4gICAgfVxuXG4gICAgdGhpcy5hbGFybVJ1bGUgPSBwcm9wcy5hbGFybVJ1bGUucmVuZGVyQWxhcm1SdWxlKCk7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGNsb3Vkd2F0Y2hDb21wb3NpdGVBbGFybS5DbG91ZHdhdGNoQ29tcG9zaXRlQWxhcm0oXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAge1xuICAgICAgICBhbGFybU5hbWUsXG4gICAgICAgIGFsYXJtUnVsZTogdGhpcy5hbGFybVJ1bGUsXG4gICAgICAgIGFsYXJtRGVzY3JpcHRpb246IHByb3BzLmFsYXJtRGVzY3JpcHRpb24sXG4gICAgICAgIGFjdGlvbnNFbmFibGVkOiBwcm9wcy5hY3Rpb25zRW5hYmxlZCxcbiAgICAgICAgYWxhcm1BY3Rpb25zOiBMYXp5Lmxpc3RWYWx1ZSh7IHByb2R1Y2U6ICgpID0+IHRoaXMuYWxhcm1BY3Rpb25Bcm5zIH0pLFxuICAgICAgICBpbnN1ZmZpY2llbnREYXRhQWN0aW9uczogTGF6eS5saXN0VmFsdWUoe1xuICAgICAgICAgIHByb2R1Y2U6ICgpID0+IHRoaXMuaW5zdWZmaWNpZW50RGF0YUFjdGlvbkFybnMsXG4gICAgICAgIH0pLFxuICAgICAgICBva0FjdGlvbnM6IExhenkubGlzdFZhbHVlKHsgcHJvZHVjZTogKCkgPT4gdGhpcy5va0FjdGlvbkFybnMgfSksXG4gICAgICAgIC4uLihwcm9wcy5hY3Rpb25zU3VwcHJlc3NvclxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBhY3Rpb25zU3VwcHJlc3Nvcjoge1xuICAgICAgICAgICAgICAgIGFsYXJtOiBwcm9wcy5hY3Rpb25zU3VwcHJlc3Nvcj8uYWxhcm1Bcm4sXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uUGVyaW9kOiBleHRlbnNpb25QZXJpb2QhLnRvU2Vjb25kcygpLFxuICAgICAgICAgICAgICAgIHdhaXRQZXJpb2Q6IHdhaXRQZXJpb2QhLnRvU2Vjb25kcygpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkKSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuYWxhcm1OYW1lID0gdGhpcy5yZXNvdXJjZS5pZDtcbiAgICB0aGlzLmFsYXJtQXJuID0gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cbn1cbiJdfQ==
@@ -123,7 +123,7 @@ class Dashboard extends aws_construct_1.AwsConstructBase {
123
123
  }
124
124
  exports.Dashboard = Dashboard;
125
125
  _a = JSII_RTTI_SYMBOL_1;
126
- Dashboard[_a] = { fqn: "terraconstructs.aws.cloudwatch.Dashboard", version: "0.0.11" };
126
+ Dashboard[_a] = { fqn: "terraconstructs.aws.cloudwatch.Dashboard", version: "0.0.13" };
127
127
  function allWidgetsDeep(ws) {
128
128
  const ret = new Array();
129
129
  ws.forEach(recurse);