terraconstructs 0.0.8

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 (680) hide show
  1. package/.envrc +5 -0
  2. package/.jsii +79780 -0
  3. package/.mise.toml +8 -0
  4. package/.nvmrc +1 -0
  5. package/.terraform-version +1 -0
  6. package/.terraform.d/plugin-cache/.gitignore +5 -0
  7. package/LICENSE +674 -0
  8. package/NOTICE.txt +12 -0
  9. package/README.md +42 -0
  10. package/bun.lockb +0 -0
  11. package/go.mod +158 -0
  12. package/go.sum +1206 -0
  13. package/lib/aws/arn.d.ts +187 -0
  14. package/lib/aws/arn.js +383 -0
  15. package/lib/aws/aws-construct.d.ts +76 -0
  16. package/lib/aws/aws-construct.js +38 -0
  17. package/lib/aws/aws-stack.d.ts +201 -0
  18. package/lib/aws/aws-stack.js +303 -0
  19. package/lib/aws/cloudwatch/actions/ec2.d.ts +35 -0
  20. package/lib/aws/cloudwatch/actions/ec2.js +48 -0
  21. package/lib/aws/cloudwatch/actions/index.d.ts +2 -0
  22. package/lib/aws/cloudwatch/actions/index.js +24 -0
  23. package/lib/aws/cloudwatch/actions/lambda.d.ts +16 -0
  24. package/lib/aws/cloudwatch/actions/lambda.js +48 -0
  25. package/lib/aws/cloudwatch/alarm-action.d.ts +23 -0
  26. package/lib/aws/cloudwatch/alarm-action.js +4 -0
  27. package/lib/aws/cloudwatch/alarm-base.d.ts +84 -0
  28. package/lib/aws/cloudwatch/alarm-base.js +64 -0
  29. package/lib/aws/cloudwatch/alarm-rule.d.ts +61 -0
  30. package/lib/aws/cloudwatch/alarm-rule.js +116 -0
  31. package/lib/aws/cloudwatch/alarm-status-widget.d.ts +77 -0
  32. package/lib/aws/cloudwatch/alarm-status-widget.js +62 -0
  33. package/lib/aws/cloudwatch/alarm.d.ts +158 -0
  34. package/lib/aws/cloudwatch/alarm.js +410 -0
  35. package/lib/aws/cloudwatch/composite-alarm.d.ts +88 -0
  36. package/lib/aws/cloudwatch/composite-alarm.js +98 -0
  37. package/lib/aws/cloudwatch/dashboard.d.ts +137 -0
  38. package/lib/aws/cloudwatch/dashboard.js +141 -0
  39. package/lib/aws/cloudwatch/data-protection-policy.d.ts +184 -0
  40. package/lib/aws/cloudwatch/data-protection-policy.js +246 -0
  41. package/lib/aws/cloudwatch/graph.d.ts +792 -0
  42. package/lib/aws/cloudwatch/graph.js +537 -0
  43. package/lib/aws/cloudwatch/index.d.ts +26 -0
  44. package/lib/aws/cloudwatch/index.js +49 -0
  45. package/lib/aws/cloudwatch/layout.d.ts +89 -0
  46. package/lib/aws/cloudwatch/layout.js +147 -0
  47. package/lib/aws/cloudwatch/log-destinations/index.d.ts +2 -0
  48. package/lib/aws/cloudwatch/log-destinations/index.js +20 -0
  49. package/lib/aws/cloudwatch/log-destinations/kinesis.d.ts +29 -0
  50. package/lib/aws/cloudwatch/log-destinations/kinesis.js +52 -0
  51. package/lib/aws/cloudwatch/log-destinations/lambda.d.ts +22 -0
  52. package/lib/aws/cloudwatch/log-destinations/lambda.js +46 -0
  53. package/lib/aws/cloudwatch/log-group.d.ts +453 -0
  54. package/lib/aws/cloudwatch/log-group.js +350 -0
  55. package/lib/aws/cloudwatch/log-query.d.ts +91 -0
  56. package/lib/aws/cloudwatch/log-query.js +85 -0
  57. package/lib/aws/cloudwatch/log-stream.d.ts +57 -0
  58. package/lib/aws/cloudwatch/log-stream.js +57 -0
  59. package/lib/aws/cloudwatch/metric-filter.d.ts +30 -0
  60. package/lib/aws/cloudwatch/metric-filter.js +69 -0
  61. package/lib/aws/cloudwatch/metric-types.d.ts +407 -0
  62. package/lib/aws/cloudwatch/metric-types.js +151 -0
  63. package/lib/aws/cloudwatch/metric.d.ts +492 -0
  64. package/lib/aws/cloudwatch/metric.js +493 -0
  65. package/lib/aws/cloudwatch/pattern.d.ts +195 -0
  66. package/lib/aws/cloudwatch/pattern.js +412 -0
  67. package/lib/aws/cloudwatch/policy.d.ts +43 -0
  68. package/lib/aws/cloudwatch/policy.js +50 -0
  69. package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.d.ts +14 -0
  70. package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.js +37 -0
  71. package/lib/aws/cloudwatch/private/env-tokens.d.ts +8 -0
  72. package/lib/aws/cloudwatch/private/env-tokens.js +48 -0
  73. package/lib/aws/cloudwatch/private/metric-util.d.ts +60 -0
  74. package/lib/aws/cloudwatch/private/metric-util.js +132 -0
  75. package/lib/aws/cloudwatch/private/object.d.ts +1 -0
  76. package/lib/aws/cloudwatch/private/object.js +18 -0
  77. package/lib/aws/cloudwatch/private/rendering.d.ts +60 -0
  78. package/lib/aws/cloudwatch/private/rendering.js +181 -0
  79. package/lib/aws/cloudwatch/private/statistic.d.ts +51 -0
  80. package/lib/aws/cloudwatch/private/statistic.js +176 -0
  81. package/lib/aws/cloudwatch/query-definition.d.ts +150 -0
  82. package/lib/aws/cloudwatch/query-definition.js +114 -0
  83. package/lib/aws/cloudwatch/stats.d.ts +150 -0
  84. package/lib/aws/cloudwatch/stats.js +207 -0
  85. package/lib/aws/cloudwatch/subscription-filter.d.ts +75 -0
  86. package/lib/aws/cloudwatch/subscription-filter.js +51 -0
  87. package/lib/aws/cloudwatch/text.d.ts +52 -0
  88. package/lib/aws/cloudwatch/text.js +53 -0
  89. package/lib/aws/cloudwatch/variable.d.ts +156 -0
  90. package/lib/aws/cloudwatch/variable.js +156 -0
  91. package/lib/aws/cloudwatch/widget.d.ts +62 -0
  92. package/lib/aws/cloudwatch/widget.js +45 -0
  93. package/lib/aws/compute/activity.d.ts +81 -0
  94. package/lib/aws/compute/activity.js +132 -0
  95. package/lib/aws/compute/architecture.d.ts +33 -0
  96. package/lib/aws/compute/architecture.js +42 -0
  97. package/lib/aws/compute/chain.d.ts +52 -0
  98. package/lib/aws/compute/chain.js +68 -0
  99. package/lib/aws/compute/condition.d.ts +202 -0
  100. package/lib/aws/compute/condition.js +409 -0
  101. package/lib/aws/compute/event-invoke-config.d.ts +74 -0
  102. package/lib/aws/compute/event-invoke-config.js +63 -0
  103. package/lib/aws/compute/event-source-filter.d.ts +64 -0
  104. package/lib/aws/compute/event-source-filter.js +86 -0
  105. package/lib/aws/compute/event-source-mapping.d.ts +310 -0
  106. package/lib/aws/compute/event-source-mapping.js +267 -0
  107. package/lib/aws/compute/event-sources/index.d.ts +4 -0
  108. package/lib/aws/compute/event-sources/index.js +28 -0
  109. package/lib/aws/compute/event-sources/s3-onfailure-destination.d.ts +13 -0
  110. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +26 -0
  111. package/lib/aws/compute/event-sources/s3.d.ts +24 -0
  112. package/lib/aws/compute/event-sources/s3.js +25 -0
  113. package/lib/aws/compute/event-sources/sqs-dlq.d.ts +13 -0
  114. package/lib/aws/compute/event-sources/sqs-dlq.js +26 -0
  115. package/lib/aws/compute/event-sources/sqs.d.ts +75 -0
  116. package/lib/aws/compute/event-sources/sqs.js +84 -0
  117. package/lib/aws/compute/fields.d.ts +367 -0
  118. package/lib/aws/compute/fields.js +546 -0
  119. package/lib/aws/compute/function-alias.d.ts +148 -0
  120. package/lib/aws/compute/function-alias.js +176 -0
  121. package/lib/aws/compute/function-base.d.ts +314 -0
  122. package/lib/aws/compute/function-base.js +421 -0
  123. package/lib/aws/compute/function-destination.d.ts +42 -0
  124. package/lib/aws/compute/function-destination.js +18 -0
  125. package/lib/aws/compute/function-destinations/event-bridge.d.ts +19 -0
  126. package/lib/aws/compute/function-destinations/event-bridge.js +46 -0
  127. package/lib/aws/compute/function-destinations/function.d.ts +34 -0
  128. package/lib/aws/compute/function-destinations/function.js +55 -0
  129. package/lib/aws/compute/function-destinations/index.d.ts +3 -0
  130. package/lib/aws/compute/function-destinations/index.js +22 -0
  131. package/lib/aws/compute/function-destinations/sqs.d.ts +14 -0
  132. package/lib/aws/compute/function-destinations/sqs.js +27 -0
  133. package/lib/aws/compute/function-nodejs.d.ts +55 -0
  134. package/lib/aws/compute/function-nodejs.js +70 -0
  135. package/lib/aws/compute/function-permission.d.ts +83 -0
  136. package/lib/aws/compute/function-permission.js +3 -0
  137. package/lib/aws/compute/function-url.d.ts +210 -0
  138. package/lib/aws/compute/function-url.js +148 -0
  139. package/lib/aws/compute/function-vpc-config.generated.d.ts +36 -0
  140. package/lib/aws/compute/function-vpc-config.generated.js +3 -0
  141. package/lib/aws/compute/function.d.ts +492 -0
  142. package/lib/aws/compute/function.js +692 -0
  143. package/lib/aws/compute/index.d.ts +42 -0
  144. package/lib/aws/compute/index.js +64 -0
  145. package/lib/aws/compute/private/intrinstics.d.ts +86 -0
  146. package/lib/aws/compute/private/intrinstics.js +220 -0
  147. package/lib/aws/compute/private/json-path.d.ts +57 -0
  148. package/lib/aws/compute/private/json-path.js +351 -0
  149. package/lib/aws/compute/private/util.d.ts +1 -0
  150. package/lib/aws/compute/private/util.js +38 -0
  151. package/lib/aws/compute/state-graph.d.ts +100 -0
  152. package/lib/aws/compute/state-graph.js +177 -0
  153. package/lib/aws/compute/state-machine-fragment.d.ts +61 -0
  154. package/lib/aws/compute/state-machine-fragment.js +56 -0
  155. package/lib/aws/compute/state-machine.d.ts +323 -0
  156. package/lib/aws/compute/state-machine.js +392 -0
  157. package/lib/aws/compute/states/choice.d.ts +94 -0
  158. package/lib/aws/compute/states/choice.js +81 -0
  159. package/lib/aws/compute/states/custom-state.d.ts +55 -0
  160. package/lib/aws/compute/states/custom-state.js +114 -0
  161. package/lib/aws/compute/states/distributed-map/item-batcher.d.ts +64 -0
  162. package/lib/aws/compute/states/distributed-map/item-batcher.js +58 -0
  163. package/lib/aws/compute/states/distributed-map/item-reader.d.ts +256 -0
  164. package/lib/aws/compute/states/distributed-map/item-reader.js +253 -0
  165. package/lib/aws/compute/states/distributed-map/result-writer.d.ts +41 -0
  166. package/lib/aws/compute/states/distributed-map/result-writer.js +66 -0
  167. package/lib/aws/compute/states/distributed-map.d.ts +153 -0
  168. package/lib/aws/compute/states/distributed-map.js +207 -0
  169. package/lib/aws/compute/states/fail.d.ts +74 -0
  170. package/lib/aws/compute/states/fail.js +83 -0
  171. package/lib/aws/compute/states/map-base.d.ts +145 -0
  172. package/lib/aws/compute/states/map-base.js +109 -0
  173. package/lib/aws/compute/states/map.d.ts +76 -0
  174. package/lib/aws/compute/states/map.js +110 -0
  175. package/lib/aws/compute/states/parallel.d.ts +113 -0
  176. package/lib/aws/compute/states/parallel.js +100 -0
  177. package/lib/aws/compute/states/pass.d.ts +122 -0
  178. package/lib/aws/compute/states/pass.js +99 -0
  179. package/lib/aws/compute/states/private/state-type.d.ts +13 -0
  180. package/lib/aws/compute/states/private/state-type.js +19 -0
  181. package/lib/aws/compute/states/state.d.ts +276 -0
  182. package/lib/aws/compute/states/state.js +482 -0
  183. package/lib/aws/compute/states/succeed.d.ts +51 -0
  184. package/lib/aws/compute/states/succeed.js +32 -0
  185. package/lib/aws/compute/states/task-base.d.ts +225 -0
  186. package/lib/aws/compute/states/task-base.js +160 -0
  187. package/lib/aws/compute/states/task.d.ts +127 -0
  188. package/lib/aws/compute/states/task.js +92 -0
  189. package/lib/aws/compute/states/wait.d.ts +78 -0
  190. package/lib/aws/compute/states/wait.js +90 -0
  191. package/lib/aws/compute/step-functions-task.d.ts +78 -0
  192. package/lib/aws/compute/step-functions-task.js +27 -0
  193. package/lib/aws/compute/task-credentials.d.ts +45 -0
  194. package/lib/aws/compute/task-credentials.js +52 -0
  195. package/lib/aws/compute/task-input.d.ts +86 -0
  196. package/lib/aws/compute/task-input.js +107 -0
  197. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.d.ts +73 -0
  198. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +69 -0
  199. package/lib/aws/compute/tasks/eventbridge/put-events.d.ts +74 -0
  200. package/lib/aws/compute/tasks/eventbridge/put-events.js +94 -0
  201. package/lib/aws/compute/tasks/http/invoke.d.ts +104 -0
  202. package/lib/aws/compute/tasks/http/invoke.js +117 -0
  203. package/lib/aws/compute/tasks/index.d.ts +7 -0
  204. package/lib/aws/compute/tasks/index.js +42 -0
  205. package/lib/aws/compute/tasks/lambda/invoke.d.ts +106 -0
  206. package/lib/aws/compute/tasks/lambda/invoke.js +125 -0
  207. package/lib/aws/compute/tasks/private/task-utils.d.ts +8 -0
  208. package/lib/aws/compute/tasks/private/task-utils.js +36 -0
  209. package/lib/aws/compute/tasks/resource-arn-suffix.d.ts +3 -0
  210. package/lib/aws/compute/tasks/resource-arn-suffix.js +25 -0
  211. package/lib/aws/compute/tasks/sqs/send-message.d.ts +62 -0
  212. package/lib/aws/compute/tasks/sqs/send-message.js +70 -0
  213. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.d.ts +36 -0
  214. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +45 -0
  215. package/lib/aws/compute/tasks/stepfunctions/start-execution.d.ts +63 -0
  216. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +123 -0
  217. package/lib/aws/compute/types.d.ts +214 -0
  218. package/lib/aws/compute/types.js +103 -0
  219. package/lib/aws/compute/util.d.ts +12 -0
  220. package/lib/aws/compute/util.js +29 -0
  221. package/lib/aws/edge/certificate.d.ts +144 -0
  222. package/lib/aws/edge/certificate.js +191 -0
  223. package/lib/aws/edge/distribution.d.ts +505 -0
  224. package/lib/aws/edge/distribution.js +444 -0
  225. package/lib/aws/edge/dns-alias-record-targets.d.ts +29 -0
  226. package/lib/aws/edge/dns-alias-record-targets.js +46 -0
  227. package/lib/aws/edge/dns-record.d.ts +536 -0
  228. package/lib/aws/edge/dns-record.js +532 -0
  229. package/lib/aws/edge/dns-zone.d.ts +169 -0
  230. package/lib/aws/edge/dns-zone.js +149 -0
  231. package/lib/aws/edge/function.d.ts +185 -0
  232. package/lib/aws/edge/function.js +141 -0
  233. package/lib/aws/edge/index.d.ts +8 -0
  234. package/lib/aws/edge/index.js +25 -0
  235. package/lib/aws/edge/key-value-store.d.ts +162 -0
  236. package/lib/aws/edge/key-value-store.js +163 -0
  237. package/lib/aws/edge/origin.d.ts +160 -0
  238. package/lib/aws/edge/origin.js +245 -0
  239. package/lib/aws/encryption/alias.d.ts +137 -0
  240. package/lib/aws/encryption/alias.js +216 -0
  241. package/lib/aws/encryption/index.d.ts +4 -0
  242. package/lib/aws/encryption/index.js +21 -0
  243. package/lib/aws/encryption/key-lookup.d.ts +11 -0
  244. package/lib/aws/encryption/key-lookup.js +4 -0
  245. package/lib/aws/encryption/key.d.ts +461 -0
  246. package/lib/aws/encryption/key.js +586 -0
  247. package/lib/aws/encryption/private/perms.d.ts +5 -0
  248. package/lib/aws/encryption/private/perms.js +30 -0
  249. package/lib/aws/encryption/via-service-principal.d.ts +11 -0
  250. package/lib/aws/encryption/via-service-principal.js +39 -0
  251. package/lib/aws/iam/grant.d.ts +221 -0
  252. package/lib/aws/iam/grant.js +239 -0
  253. package/lib/aws/iam/identity-base.d.ts +20 -0
  254. package/lib/aws/iam/identity-base.js +3 -0
  255. package/lib/aws/iam/index.d.ts +16 -0
  256. package/lib/aws/iam/index.js +34 -0
  257. package/lib/aws/iam/managed-policy.d.ts +227 -0
  258. package/lib/aws/iam/managed-policy.js +237 -0
  259. package/lib/aws/iam/oidc-provider.d.ts +120 -0
  260. package/lib/aws/iam/oidc-provider.js +82 -0
  261. package/lib/aws/iam/policy-document-config.generated.d.ts +78 -0
  262. package/lib/aws/iam/policy-document-config.generated.js +3 -0
  263. package/lib/aws/iam/policy-document.d.ts +150 -0
  264. package/lib/aws/iam/policy-document.js +172 -0
  265. package/lib/aws/iam/policy-statement-props.generated.d.ts +55 -0
  266. package/lib/aws/iam/policy-statement-props.generated.js +3 -0
  267. package/lib/aws/iam/policy-statement.d.ts +451 -0
  268. package/lib/aws/iam/policy-statement.js +947 -0
  269. package/lib/aws/iam/policy.d.ts +122 -0
  270. package/lib/aws/iam/policy.js +192 -0
  271. package/lib/aws/iam/principals.d.ts +668 -0
  272. package/lib/aws/iam/principals.js +1032 -0
  273. package/lib/aws/iam/private/adapter.d.ts +21 -0
  274. package/lib/aws/iam/private/adapter.js +51 -0
  275. package/lib/aws/iam/private/assume-role-policy.d.ts +8 -0
  276. package/lib/aws/iam/private/assume-role-policy.js +27 -0
  277. package/lib/aws/iam/private/comparable-principal.d.ts +6 -0
  278. package/lib/aws/iam/private/comparable-principal.js +20 -0
  279. package/lib/aws/iam/private/immutable-role.d.ts +43 -0
  280. package/lib/aws/iam/private/immutable-role.js +76 -0
  281. package/lib/aws/iam/private/imported-role.d.ts +49 -0
  282. package/lib/aws/iam/private/imported-role.js +103 -0
  283. package/lib/aws/iam/private/merge-statements.d.ts +44 -0
  284. package/lib/aws/iam/private/merge-statements.js +214 -0
  285. package/lib/aws/iam/private/postprocess-policy-document.d.ts +15 -0
  286. package/lib/aws/iam/private/postprocess-policy-document.js +102 -0
  287. package/lib/aws/iam/private/util.d.ts +37 -0
  288. package/lib/aws/iam/private/util.js +87 -0
  289. package/lib/aws/iam/role.d.ts +425 -0
  290. package/lib/aws/iam/role.js +407 -0
  291. package/lib/aws/iam/saml-provider.d.ts +79 -0
  292. package/lib/aws/iam/saml-provider.js +79 -0
  293. package/lib/aws/iam/unknown-principal.d.ts +32 -0
  294. package/lib/aws/iam/unknown-principal.js +45 -0
  295. package/lib/aws/iam/utils.d.ts +12 -0
  296. package/lib/aws/iam/utils.js +41 -0
  297. package/lib/aws/index.d.ts +13 -0
  298. package/lib/aws/index.js +34 -0
  299. package/lib/aws/log-retention.d.ts +97 -0
  300. package/lib/aws/log-retention.js +103 -0
  301. package/lib/aws/network/index.d.ts +4 -0
  302. package/lib/aws/network/index.js +21 -0
  303. package/lib/aws/network/network.d.ts +77 -0
  304. package/lib/aws/network/network.js +3 -0
  305. package/lib/aws/network/simple-ipv4-vpc.d.ts +84 -0
  306. package/lib/aws/network/simple-ipv4-vpc.js +236 -0
  307. package/lib/aws/network/subnet-group.d.ts +42 -0
  308. package/lib/aws/network/subnet-group.js +72 -0
  309. package/lib/aws/network/subnet.d.ts +95 -0
  310. package/lib/aws/network/subnet.js +123 -0
  311. package/lib/aws/notify/archive.d.ts +77 -0
  312. package/lib/aws/notify/archive.js +62 -0
  313. package/lib/aws/notify/connection.d.ts +276 -0
  314. package/lib/aws/notify/connection.js +261 -0
  315. package/lib/aws/notify/event-bus.d.ts +298 -0
  316. package/lib/aws/notify/event-bus.js +326 -0
  317. package/lib/aws/notify/event-pattern.d.ts +220 -0
  318. package/lib/aws/notify/event-pattern.js +197 -0
  319. package/lib/aws/notify/index.d.ts +15 -0
  320. package/lib/aws/notify/index.js +35 -0
  321. package/lib/aws/notify/input.d.ts +126 -0
  322. package/lib/aws/notify/input.js +282 -0
  323. package/lib/aws/notify/kinesis-canned-metrics.generated.d.ts +68 -0
  324. package/lib/aws/notify/kinesis-canned-metrics.generated.js +103 -0
  325. package/lib/aws/notify/kinesis-fixed-canned-metrics.d.ts +195 -0
  326. package/lib/aws/notify/kinesis-fixed-canned-metrics.js +155 -0
  327. package/lib/aws/notify/kinesis-stream.d.ts +705 -0
  328. package/lib/aws/notify/kinesis-stream.js +541 -0
  329. package/lib/aws/notify/on-event-options.d.ts +54 -0
  330. package/lib/aws/notify/on-event-options.js +3 -0
  331. package/lib/aws/notify/queue-config.generated.d.ts +85 -0
  332. package/lib/aws/notify/queue-config.generated.js +3 -0
  333. package/lib/aws/notify/queue-policy.d.ts +35 -0
  334. package/lib/aws/notify/queue-policy.js +39 -0
  335. package/lib/aws/notify/queue.d.ts +355 -0
  336. package/lib/aws/notify/queue.js +305 -0
  337. package/lib/aws/notify/resource-policy.d.ts +41 -0
  338. package/lib/aws/notify/resource-policy.js +43 -0
  339. package/lib/aws/notify/rule.d.ts +153 -0
  340. package/lib/aws/notify/rule.js +227 -0
  341. package/lib/aws/notify/schedule.d.ts +83 -0
  342. package/lib/aws/notify/schedule.js +116 -0
  343. package/lib/aws/notify/target.d.ts +102 -0
  344. package/lib/aws/notify/target.js +3 -0
  345. package/lib/aws/notify/targets/event-bus.d.ts +39 -0
  346. package/lib/aws/notify/targets/event-bus.js +40 -0
  347. package/lib/aws/notify/targets/function.d.ts +31 -0
  348. package/lib/aws/notify/targets/function.js +36 -0
  349. package/lib/aws/notify/targets/index.d.ts +6 -0
  350. package/lib/aws/notify/targets/index.js +37 -0
  351. package/lib/aws/notify/targets/log-group.d.ts +89 -0
  352. package/lib/aws/notify/targets/log-group.js +110 -0
  353. package/lib/aws/notify/targets/sqs.d.ts +45 -0
  354. package/lib/aws/notify/targets/sqs.js +73 -0
  355. package/lib/aws/notify/targets/state-machine.d.ts +36 -0
  356. package/lib/aws/notify/targets/state-machine.js +39 -0
  357. package/lib/aws/notify/targets/util.d.ts +71 -0
  358. package/lib/aws/notify/targets/util.js +130 -0
  359. package/lib/aws/notify/util.d.ts +13 -0
  360. package/lib/aws/notify/util.js +69 -0
  361. package/lib/aws/provider-config.generated.d.ts +220 -0
  362. package/lib/aws/provider-config.generated.js +3 -0
  363. package/lib/aws/storage/bucket-destination.d.ts +41 -0
  364. package/lib/aws/storage/bucket-destination.js +13 -0
  365. package/lib/aws/storage/bucket-notifications.d.ts +58 -0
  366. package/lib/aws/storage/bucket-notifications.js +169 -0
  367. package/lib/aws/storage/bucket-perms.d.ts +9 -0
  368. package/lib/aws/storage/bucket-perms.js +33 -0
  369. package/lib/aws/storage/bucket-policy.d.ts +51 -0
  370. package/lib/aws/storage/bucket-policy.js +53 -0
  371. package/lib/aws/storage/bucket-source.d.ts +41 -0
  372. package/lib/aws/storage/bucket-source.js +79 -0
  373. package/lib/aws/storage/bucket.d.ts +941 -0
  374. package/lib/aws/storage/bucket.js +869 -0
  375. package/lib/aws/storage/cors-config.generated.d.ts +57 -0
  376. package/lib/aws/storage/cors-config.generated.js +3 -0
  377. package/lib/aws/storage/cors-rule-config.generated.d.ts +38 -0
  378. package/lib/aws/storage/cors-rule-config.generated.js +3 -0
  379. package/lib/aws/storage/index.d.ts +12 -0
  380. package/lib/aws/storage/index.js +31 -0
  381. package/lib/aws/storage/lifecycle-config.generated.d.ts +55 -0
  382. package/lib/aws/storage/lifecycle-config.generated.js +3 -0
  383. package/lib/aws/storage/notification-targets/function.d.ts +11 -0
  384. package/lib/aws/storage/notification-targets/function.js +48 -0
  385. package/lib/aws/storage/notification-targets/index.d.ts +2 -0
  386. package/lib/aws/storage/notification-targets/index.js +21 -0
  387. package/lib/aws/storage/notification-targets/queue.d.ts +15 -0
  388. package/lib/aws/storage/notification-targets/queue.js +58 -0
  389. package/lib/aws/storage/origin-access-identity.d.ts +91 -0
  390. package/lib/aws/storage/origin-access-identity.js +76 -0
  391. package/lib/aws/storage/util.d.ts +40 -0
  392. package/lib/aws/storage/util.js +85 -0
  393. package/lib/aws/storage/website-config.generated.d.ts +73 -0
  394. package/lib/aws/storage/website-config.generated.js +3 -0
  395. package/lib/aws/util.d.ts +4 -0
  396. package/lib/aws/util.js +25 -0
  397. package/lib/construct-base.d.ts +69 -0
  398. package/lib/construct-base.js +89 -0
  399. package/lib/duration.d.ts +160 -0
  400. package/lib/duration.js +327 -0
  401. package/lib/index.d.ts +5 -0
  402. package/lib/index.js +24 -0
  403. package/lib/private/index.d.ts +2 -0
  404. package/lib/private/index.js +19 -0
  405. package/lib/private/terraform-dependables-aspect.d.ts +20 -0
  406. package/lib/private/terraform-dependables-aspect.js +95 -0
  407. package/lib/private/unique-resource-name.d.ts +9 -0
  408. package/lib/private/unique-resource-name.js +145 -0
  409. package/lib/size.d.ts +146 -0
  410. package/lib/size.js +220 -0
  411. package/lib/stack-base.d.ts +188 -0
  412. package/lib/stack-base.js +183 -0
  413. package/lib/token.d.ts +32 -0
  414. package/lib/token.js +54 -0
  415. package/node_modules/camel-case/LICENSE +21 -0
  416. package/node_modules/camel-case/README.md +47 -0
  417. package/node_modules/camel-case/dist/index.d.ts +5 -0
  418. package/node_modules/camel-case/dist/index.js +23 -0
  419. package/node_modules/camel-case/dist/index.js.map +1 -0
  420. package/node_modules/camel-case/dist/index.spec.d.ts +1 -0
  421. package/node_modules/camel-case/dist/index.spec.js +26 -0
  422. package/node_modules/camel-case/dist/index.spec.js.map +1 -0
  423. package/node_modules/camel-case/dist.es2015/index.d.ts +5 -0
  424. package/node_modules/camel-case/dist.es2015/index.js +17 -0
  425. package/node_modules/camel-case/dist.es2015/index.js.map +1 -0
  426. package/node_modules/camel-case/dist.es2015/index.spec.d.ts +1 -0
  427. package/node_modules/camel-case/dist.es2015/index.spec.js +24 -0
  428. package/node_modules/camel-case/dist.es2015/index.spec.js.map +1 -0
  429. package/node_modules/camel-case/package.json +89 -0
  430. package/node_modules/capital-case/LICENSE +21 -0
  431. package/node_modules/capital-case/README.md +37 -0
  432. package/node_modules/capital-case/dist/index.d.ts +4 -0
  433. package/node_modules/capital-case/dist/index.js +16 -0
  434. package/node_modules/capital-case/dist/index.js.map +1 -0
  435. package/node_modules/capital-case/dist/index.spec.d.ts +1 -0
  436. package/node_modules/capital-case/dist/index.spec.js +24 -0
  437. package/node_modules/capital-case/dist/index.spec.js.map +1 -0
  438. package/node_modules/capital-case/dist.es2015/index.d.ts +4 -0
  439. package/node_modules/capital-case/dist.es2015/index.js +11 -0
  440. package/node_modules/capital-case/dist.es2015/index.js.map +1 -0
  441. package/node_modules/capital-case/dist.es2015/index.spec.d.ts +1 -0
  442. package/node_modules/capital-case/dist.es2015/index.spec.js +22 -0
  443. package/node_modules/capital-case/dist.es2015/index.spec.js.map +1 -0
  444. package/node_modules/capital-case/package.json +90 -0
  445. package/node_modules/change-case/LICENSE +21 -0
  446. package/node_modules/change-case/README.md +44 -0
  447. package/node_modules/change-case/dist/index.d.ts +11 -0
  448. package/node_modules/change-case/dist/index.js +15 -0
  449. package/node_modules/change-case/dist/index.js.map +1 -0
  450. package/node_modules/change-case/dist/index.spec.d.ts +1 -0
  451. package/node_modules/change-case/dist/index.spec.js +9 -0
  452. package/node_modules/change-case/dist/index.spec.js.map +1 -0
  453. package/node_modules/change-case/dist.es2015/index.d.ts +11 -0
  454. package/node_modules/change-case/dist.es2015/index.js +12 -0
  455. package/node_modules/change-case/dist.es2015/index.js.map +1 -0
  456. package/node_modules/change-case/dist.es2015/index.spec.d.ts +1 -0
  457. package/node_modules/change-case/dist.es2015/index.spec.js +7 -0
  458. package/node_modules/change-case/dist.es2015/index.spec.js.map +1 -0
  459. package/node_modules/change-case/package.json +101 -0
  460. package/node_modules/constant-case/LICENSE +21 -0
  461. package/node_modules/constant-case/README.md +37 -0
  462. package/node_modules/constant-case/dist/index.d.ts +3 -0
  463. package/node_modules/constant-case/dist/index.js +12 -0
  464. package/node_modules/constant-case/dist/index.js.map +1 -0
  465. package/node_modules/constant-case/dist/index.spec.d.ts +1 -0
  466. package/node_modules/constant-case/dist/index.spec.js +26 -0
  467. package/node_modules/constant-case/dist/index.spec.js.map +1 -0
  468. package/node_modules/constant-case/dist.es2015/index.d.ts +3 -0
  469. package/node_modules/constant-case/dist.es2015/index.js +8 -0
  470. package/node_modules/constant-case/dist.es2015/index.js.map +1 -0
  471. package/node_modules/constant-case/dist.es2015/index.spec.d.ts +1 -0
  472. package/node_modules/constant-case/dist.es2015/index.spec.js +24 -0
  473. package/node_modules/constant-case/dist.es2015/index.spec.js.map +1 -0
  474. package/node_modules/constant-case/package.json +90 -0
  475. package/node_modules/dot-case/LICENSE +21 -0
  476. package/node_modules/dot-case/README.md +37 -0
  477. package/node_modules/dot-case/dist/index.d.ts +3 -0
  478. package/node_modules/dot-case/dist/index.js +11 -0
  479. package/node_modules/dot-case/dist/index.js.map +1 -0
  480. package/node_modules/dot-case/dist/index.spec.d.ts +1 -0
  481. package/node_modules/dot-case/dist/index.spec.js +26 -0
  482. package/node_modules/dot-case/dist/index.spec.js.map +1 -0
  483. package/node_modules/dot-case/dist.es2015/index.d.ts +3 -0
  484. package/node_modules/dot-case/dist.es2015/index.js +7 -0
  485. package/node_modules/dot-case/dist.es2015/index.js.map +1 -0
  486. package/node_modules/dot-case/dist.es2015/index.spec.d.ts +1 -0
  487. package/node_modules/dot-case/dist.es2015/index.spec.js +24 -0
  488. package/node_modules/dot-case/dist.es2015/index.spec.js.map +1 -0
  489. package/node_modules/dot-case/package.json +89 -0
  490. package/node_modules/esbuild-wasm/LICENSE.md +21 -0
  491. package/node_modules/esbuild-wasm/README.md +3 -0
  492. package/node_modules/esbuild-wasm/bin/esbuild +91 -0
  493. package/node_modules/esbuild-wasm/esbuild.wasm +0 -0
  494. package/node_modules/esbuild-wasm/esm/browser.d.ts +705 -0
  495. package/node_modules/esbuild-wasm/esm/browser.js +2370 -0
  496. package/node_modules/esbuild-wasm/esm/browser.min.js +20 -0
  497. package/node_modules/esbuild-wasm/lib/browser.d.ts +705 -0
  498. package/node_modules/esbuild-wasm/lib/browser.js +2415 -0
  499. package/node_modules/esbuild-wasm/lib/browser.min.js +22 -0
  500. package/node_modules/esbuild-wasm/lib/main.d.ts +705 -0
  501. package/node_modules/esbuild-wasm/lib/main.js +2051 -0
  502. package/node_modules/esbuild-wasm/package.json +19 -0
  503. package/node_modules/esbuild-wasm/wasm_exec.js +561 -0
  504. package/node_modules/esbuild-wasm/wasm_exec_node.js +39 -0
  505. package/node_modules/header-case/LICENSE +21 -0
  506. package/node_modules/header-case/README.md +37 -0
  507. package/node_modules/header-case/dist/index.d.ts +3 -0
  508. package/node_modules/header-case/dist/index.js +11 -0
  509. package/node_modules/header-case/dist/index.js.map +1 -0
  510. package/node_modules/header-case/dist/index.spec.d.ts +1 -0
  511. package/node_modules/header-case/dist/index.spec.js +24 -0
  512. package/node_modules/header-case/dist/index.spec.js.map +1 -0
  513. package/node_modules/header-case/dist.es2015/index.d.ts +3 -0
  514. package/node_modules/header-case/dist.es2015/index.js +7 -0
  515. package/node_modules/header-case/dist.es2015/index.js.map +1 -0
  516. package/node_modules/header-case/dist.es2015/index.spec.d.ts +1 -0
  517. package/node_modules/header-case/dist.es2015/index.spec.js +22 -0
  518. package/node_modules/header-case/dist.es2015/index.spec.js.map +1 -0
  519. package/node_modules/header-case/package.json +89 -0
  520. package/node_modules/lower-case/LICENSE +21 -0
  521. package/node_modules/lower-case/README.md +35 -0
  522. package/node_modules/lower-case/dist/index.d.ts +8 -0
  523. package/node_modules/lower-case/dist/index.js +53 -0
  524. package/node_modules/lower-case/dist/index.js.map +1 -0
  525. package/node_modules/lower-case/dist/index.spec.d.ts +1 -0
  526. package/node_modules/lower-case/dist/index.spec.js +36 -0
  527. package/node_modules/lower-case/dist/index.spec.js.map +1 -0
  528. package/node_modules/lower-case/dist.es2015/index.d.ts +8 -0
  529. package/node_modules/lower-case/dist.es2015/index.js +48 -0
  530. package/node_modules/lower-case/dist.es2015/index.js.map +1 -0
  531. package/node_modules/lower-case/dist.es2015/index.spec.d.ts +1 -0
  532. package/node_modules/lower-case/dist.es2015/index.spec.js +34 -0
  533. package/node_modules/lower-case/dist.es2015/index.spec.js.map +1 -0
  534. package/node_modules/lower-case/package.json +87 -0
  535. package/node_modules/mime-db/HISTORY.md +507 -0
  536. package/node_modules/mime-db/LICENSE +23 -0
  537. package/node_modules/mime-db/README.md +100 -0
  538. package/node_modules/mime-db/db.json +8519 -0
  539. package/node_modules/mime-db/index.js +12 -0
  540. package/node_modules/mime-db/package.json +60 -0
  541. package/node_modules/mime-types/HISTORY.md +397 -0
  542. package/node_modules/mime-types/LICENSE +23 -0
  543. package/node_modules/mime-types/README.md +113 -0
  544. package/node_modules/mime-types/index.js +188 -0
  545. package/node_modules/mime-types/package.json +44 -0
  546. package/node_modules/no-case/LICENSE +21 -0
  547. package/node_modules/no-case/README.md +37 -0
  548. package/node_modules/no-case/dist/index.d.ts +10 -0
  549. package/node_modules/no-case/dist/index.js +35 -0
  550. package/node_modules/no-case/dist/index.js.map +1 -0
  551. package/node_modules/no-case/dist/index.spec.d.ts +1 -0
  552. package/node_modules/no-case/dist/index.spec.js +59 -0
  553. package/node_modules/no-case/dist/index.spec.js.map +1 -0
  554. package/node_modules/no-case/dist.es2015/index.d.ts +10 -0
  555. package/node_modules/no-case/dist.es2015/index.js +31 -0
  556. package/node_modules/no-case/dist.es2015/index.js.map +1 -0
  557. package/node_modules/no-case/dist.es2015/index.spec.d.ts +1 -0
  558. package/node_modules/no-case/dist.es2015/index.spec.js +57 -0
  559. package/node_modules/no-case/dist.es2015/index.spec.js.map +1 -0
  560. package/node_modules/no-case/package.json +85 -0
  561. package/node_modules/param-case/LICENSE +21 -0
  562. package/node_modules/param-case/README.md +37 -0
  563. package/node_modules/param-case/dist/index.d.ts +3 -0
  564. package/node_modules/param-case/dist/index.js +11 -0
  565. package/node_modules/param-case/dist/index.js.map +1 -0
  566. package/node_modules/param-case/dist/index.spec.d.ts +1 -0
  567. package/node_modules/param-case/dist/index.spec.js +24 -0
  568. package/node_modules/param-case/dist/index.spec.js.map +1 -0
  569. package/node_modules/param-case/dist.es2015/index.d.ts +3 -0
  570. package/node_modules/param-case/dist.es2015/index.js +7 -0
  571. package/node_modules/param-case/dist.es2015/index.js.map +1 -0
  572. package/node_modules/param-case/dist.es2015/index.spec.d.ts +1 -0
  573. package/node_modules/param-case/dist.es2015/index.spec.js +22 -0
  574. package/node_modules/param-case/dist.es2015/index.spec.js.map +1 -0
  575. package/node_modules/param-case/package.json +91 -0
  576. package/node_modules/pascal-case/LICENSE +21 -0
  577. package/node_modules/pascal-case/README.md +47 -0
  578. package/node_modules/pascal-case/dist/index.d.ts +5 -0
  579. package/node_modules/pascal-case/dist/index.js +24 -0
  580. package/node_modules/pascal-case/dist/index.js.map +1 -0
  581. package/node_modules/pascal-case/dist/index.spec.d.ts +1 -0
  582. package/node_modules/pascal-case/dist/index.spec.js +25 -0
  583. package/node_modules/pascal-case/dist/index.spec.js.map +1 -0
  584. package/node_modules/pascal-case/dist.es2015/index.d.ts +5 -0
  585. package/node_modules/pascal-case/dist.es2015/index.js +18 -0
  586. package/node_modules/pascal-case/dist.es2015/index.js.map +1 -0
  587. package/node_modules/pascal-case/dist.es2015/index.spec.d.ts +1 -0
  588. package/node_modules/pascal-case/dist.es2015/index.spec.js +23 -0
  589. package/node_modules/pascal-case/dist.es2015/index.spec.js.map +1 -0
  590. package/node_modules/pascal-case/package.json +90 -0
  591. package/node_modules/path-case/LICENSE +21 -0
  592. package/node_modules/path-case/README.md +37 -0
  593. package/node_modules/path-case/dist/index.d.ts +3 -0
  594. package/node_modules/path-case/dist/index.js +11 -0
  595. package/node_modules/path-case/dist/index.js.map +1 -0
  596. package/node_modules/path-case/dist/index.spec.d.ts +1 -0
  597. package/node_modules/path-case/dist/index.spec.js +24 -0
  598. package/node_modules/path-case/dist/index.spec.js.map +1 -0
  599. package/node_modules/path-case/dist.es2015/index.d.ts +3 -0
  600. package/node_modules/path-case/dist.es2015/index.js +7 -0
  601. package/node_modules/path-case/dist.es2015/index.js.map +1 -0
  602. package/node_modules/path-case/dist.es2015/index.spec.d.ts +1 -0
  603. package/node_modules/path-case/dist.es2015/index.spec.js +22 -0
  604. package/node_modules/path-case/dist.es2015/index.spec.js.map +1 -0
  605. package/node_modules/path-case/package.json +88 -0
  606. package/node_modules/sentence-case/LICENSE +21 -0
  607. package/node_modules/sentence-case/README.md +37 -0
  608. package/node_modules/sentence-case/dist/index.d.ts +4 -0
  609. package/node_modules/sentence-case/dist/index.js +19 -0
  610. package/node_modules/sentence-case/dist/index.js.map +1 -0
  611. package/node_modules/sentence-case/dist/index.spec.d.ts +1 -0
  612. package/node_modules/sentence-case/dist/index.spec.js +24 -0
  613. package/node_modules/sentence-case/dist/index.spec.js.map +1 -0
  614. package/node_modules/sentence-case/dist.es2015/index.d.ts +4 -0
  615. package/node_modules/sentence-case/dist.es2015/index.js +14 -0
  616. package/node_modules/sentence-case/dist.es2015/index.js.map +1 -0
  617. package/node_modules/sentence-case/dist.es2015/index.spec.d.ts +1 -0
  618. package/node_modules/sentence-case/dist.es2015/index.spec.js +22 -0
  619. package/node_modules/sentence-case/dist.es2015/index.spec.js.map +1 -0
  620. package/node_modules/sentence-case/package.json +89 -0
  621. package/node_modules/snake-case/LICENSE +21 -0
  622. package/node_modules/snake-case/README.md +37 -0
  623. package/node_modules/snake-case/dist/index.d.ts +3 -0
  624. package/node_modules/snake-case/dist/index.js +11 -0
  625. package/node_modules/snake-case/dist/index.js.map +1 -0
  626. package/node_modules/snake-case/dist/index.spec.d.ts +1 -0
  627. package/node_modules/snake-case/dist/index.spec.js +25 -0
  628. package/node_modules/snake-case/dist/index.spec.js.map +1 -0
  629. package/node_modules/snake-case/dist.es2015/index.d.ts +3 -0
  630. package/node_modules/snake-case/dist.es2015/index.js +7 -0
  631. package/node_modules/snake-case/dist.es2015/index.js.map +1 -0
  632. package/node_modules/snake-case/dist.es2015/index.spec.d.ts +1 -0
  633. package/node_modules/snake-case/dist.es2015/index.spec.js +23 -0
  634. package/node_modules/snake-case/dist.es2015/index.spec.js.map +1 -0
  635. package/node_modules/snake-case/package.json +90 -0
  636. package/node_modules/tslib/CopyrightNotice.txt +15 -0
  637. package/node_modules/tslib/LICENSE.txt +12 -0
  638. package/node_modules/tslib/README.md +164 -0
  639. package/node_modules/tslib/SECURITY.md +41 -0
  640. package/node_modules/tslib/modules/index.d.ts +37 -0
  641. package/node_modules/tslib/modules/index.js +68 -0
  642. package/node_modules/tslib/modules/package.json +3 -0
  643. package/node_modules/tslib/package.json +47 -0
  644. package/node_modules/tslib/tslib.d.ts +453 -0
  645. package/node_modules/tslib/tslib.es6.html +1 -0
  646. package/node_modules/tslib/tslib.es6.js +374 -0
  647. package/node_modules/tslib/tslib.es6.mjs +373 -0
  648. package/node_modules/tslib/tslib.html +1 -0
  649. package/node_modules/tslib/tslib.js +424 -0
  650. package/node_modules/upper-case/README.md +34 -0
  651. package/node_modules/upper-case/dist/index.d.ts +8 -0
  652. package/node_modules/upper-case/dist/index.js +49 -0
  653. package/node_modules/upper-case/dist/index.js.map +1 -0
  654. package/node_modules/upper-case/dist/index.spec.d.ts +1 -0
  655. package/node_modules/upper-case/dist/index.spec.js +34 -0
  656. package/node_modules/upper-case/dist/index.spec.js.map +1 -0
  657. package/node_modules/upper-case/dist.es2015/index.d.ts +8 -0
  658. package/node_modules/upper-case/dist.es2015/index.js +44 -0
  659. package/node_modules/upper-case/dist.es2015/index.js.map +1 -0
  660. package/node_modules/upper-case/dist.es2015/index.spec.d.ts +1 -0
  661. package/node_modules/upper-case/dist.es2015/index.spec.js +32 -0
  662. package/node_modules/upper-case/dist.es2015/index.spec.js.map +1 -0
  663. package/node_modules/upper-case/package.json +86 -0
  664. package/node_modules/upper-case-first/LICENSE +21 -0
  665. package/node_modules/upper-case-first/README.md +32 -0
  666. package/node_modules/upper-case-first/dist/index.d.ts +4 -0
  667. package/node_modules/upper-case-first/dist/index.js +11 -0
  668. package/node_modules/upper-case-first/dist/index.js.map +1 -0
  669. package/node_modules/upper-case-first/dist/index.spec.d.ts +1 -0
  670. package/node_modules/upper-case-first/dist/index.spec.js +20 -0
  671. package/node_modules/upper-case-first/dist/index.spec.js.map +1 -0
  672. package/node_modules/upper-case-first/dist.es2015/index.d.ts +4 -0
  673. package/node_modules/upper-case-first/dist.es2015/index.js +7 -0
  674. package/node_modules/upper-case-first/dist.es2015/index.js.map +1 -0
  675. package/node_modules/upper-case-first/dist.es2015/index.spec.d.ts +1 -0
  676. package/node_modules/upper-case-first/dist.es2015/index.spec.js +18 -0
  677. package/node_modules/upper-case-first/dist.es2015/index.spec.js.map +1 -0
  678. package/node_modules/upper-case-first/package.json +87 -0
  679. package/package.json +152 -0
  680. package/setup.js +2 -0
@@ -0,0 +1,84 @@
1
+ import { IAwsConstruct, AwsConstructBase } from "../aws-construct";
2
+ import { IAlarmAction } from "./alarm-action";
3
+ /**
4
+ * Interface for Alarm Rule.
5
+ */
6
+ export interface IAlarmRule {
7
+ /**
8
+ * serialized representation of Alarm Rule to be used when building the Composite Alarm resource.
9
+ */
10
+ renderAlarmRule(): string;
11
+ }
12
+ /**
13
+ * Outputs which may be registered for output via the Grid.
14
+ */
15
+ export interface AlarmOutputs {
16
+ /**
17
+ * Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo)
18
+ *
19
+ * @attribute
20
+ */
21
+ readonly alarmArn: string;
22
+ /**
23
+ * Name of the alarm
24
+ *
25
+ * @attribute
26
+ */
27
+ readonly alarmName: string;
28
+ }
29
+ /**
30
+ * Represents a CloudWatch Alarm
31
+ */
32
+ export interface IAlarm extends IAlarmRule, IAwsConstruct {
33
+ /** Strongly typed outputs */
34
+ readonly alarmOutputs: AlarmOutputs;
35
+ /**
36
+ * Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo)
37
+ *
38
+ * @attribute
39
+ */
40
+ readonly alarmArn: string;
41
+ /**
42
+ * Name of the alarm
43
+ *
44
+ * @attribute
45
+ */
46
+ readonly alarmName: string;
47
+ }
48
+ /**
49
+ * The base class for Alarm and CompositeAlarm resources.
50
+ */
51
+ export declare abstract class AlarmBase extends AwsConstructBase implements IAlarm {
52
+ /**
53
+ * @attribute
54
+ */
55
+ abstract readonly alarmArn: string;
56
+ abstract readonly alarmName: string;
57
+ get alarmOutputs(): AlarmOutputs;
58
+ get outputs(): Record<string, any>;
59
+ protected alarmActionArns?: string[];
60
+ protected insufficientDataActionArns?: string[];
61
+ protected okActionArns?: string[];
62
+ /**
63
+ * AlarmRule indicating ALARM state for Alarm.
64
+ */
65
+ renderAlarmRule(): string;
66
+ /**
67
+ * Trigger this action if the alarm fires
68
+ *
69
+ * Typically SnsAction or AutoScalingAction.
70
+ */
71
+ addAlarmAction(...actions: IAlarmAction[]): void;
72
+ /**
73
+ * Trigger this action if there is insufficient data to evaluate the alarm
74
+ *
75
+ * Typically SnsAction or AutoScalingAction.
76
+ */
77
+ addInsufficientDataAction(...actions: IAlarmAction[]): void;
78
+ /**
79
+ * Trigger this action if the alarm returns from breaching state into ok state
80
+ *
81
+ * Typically SnsAction or AutoScalingAction.
82
+ */
83
+ addOkAction(...actions: IAlarmAction[]): void;
84
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AlarmBase = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ // https://github.com/aws/aws-cdk/blob/v2.170.0/packages/aws-cdk-lib/aws-cloudwatch/lib/alarm-base.ts
7
+ const aws_construct_1 = require("../aws-construct");
8
+ /**
9
+ * The base class for Alarm and CompositeAlarm resources.
10
+ */
11
+ class AlarmBase extends aws_construct_1.AwsConstructBase {
12
+ get alarmOutputs() {
13
+ return {
14
+ alarmArn: this.alarmArn,
15
+ alarmName: this.alarmName,
16
+ };
17
+ }
18
+ get outputs() {
19
+ return this.alarmOutputs;
20
+ }
21
+ /**
22
+ * AlarmRule indicating ALARM state for Alarm.
23
+ */
24
+ renderAlarmRule() {
25
+ return `ALARM("${this.alarmArn}")`;
26
+ }
27
+ /**
28
+ * Trigger this action if the alarm fires
29
+ *
30
+ * Typically SnsAction or AutoScalingAction.
31
+ */
32
+ addAlarmAction(...actions) {
33
+ if (this.alarmActionArns === undefined) {
34
+ this.alarmActionArns = [];
35
+ }
36
+ this.alarmActionArns.push(...actions.map((a) => a.bind(this, this).alarmActionArn));
37
+ }
38
+ /**
39
+ * Trigger this action if there is insufficient data to evaluate the alarm
40
+ *
41
+ * Typically SnsAction or AutoScalingAction.
42
+ */
43
+ addInsufficientDataAction(...actions) {
44
+ if (this.insufficientDataActionArns === undefined) {
45
+ this.insufficientDataActionArns = [];
46
+ }
47
+ this.insufficientDataActionArns.push(...actions.map((a) => a.bind(this, this).alarmActionArn));
48
+ }
49
+ /**
50
+ * Trigger this action if the alarm returns from breaching state into ok state
51
+ *
52
+ * Typically SnsAction or AutoScalingAction.
53
+ */
54
+ addOkAction(...actions) {
55
+ if (this.okActionArns === undefined) {
56
+ this.okActionArns = [];
57
+ }
58
+ this.okActionArns.push(...actions.map((a) => a.bind(this, this).alarmActionArn));
59
+ }
60
+ }
61
+ exports.AlarmBase = AlarmBase;
62
+ _a = JSII_RTTI_SYMBOL_1;
63
+ AlarmBase[_a] = { fqn: "terraconstructs.aws.cloudwatch.AlarmBase", version: "0.0.8" };
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY2xvdWR3YXRjaC9hbGFybS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUdBQXFHO0FBRXJHLG9EQUFtRTtBQXNEbkU7O0dBRUc7QUFDSCxNQUFzQixTQUFVLFNBQVEsZ0NBQWdCO0lBTXRELElBQVcsWUFBWTtRQUNyQixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztTQUMxQixDQUFDO0lBQ0osQ0FBQztJQUNELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQU1EOztPQUVHO0lBQ0ksZUFBZTtRQUNwQixPQUFPLFVBQVUsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksY0FBYyxDQUFDLEdBQUcsT0FBdUI7UUFDOUMsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzVCLENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDdkIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FDekQsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0kseUJBQXlCLENBQUMsR0FBRyxPQUF1QjtRQUN6RCxJQUFJLElBQUksQ0FBQywwQkFBMEIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLENBQUM7UUFFRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUNsQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxXQUFXLENBQUMsR0FBRyxPQUF1QjtRQUMzQyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNwQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FBQzs7QUF0RUgsOEJBdUVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTcwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gvbGliL2FsYXJtLWJhc2UudHNcblxuaW1wb3J0IHsgSUF3c0NvbnN0cnVjdCwgQXdzQ29uc3RydWN0QmFzZSB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBJQWxhcm1BY3Rpb24gfSBmcm9tIFwiLi9hbGFybS1hY3Rpb25cIjtcblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIEFsYXJtIFJ1bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUFsYXJtUnVsZSB7XG4gIC8qKlxuICAgKiBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIEFsYXJtIFJ1bGUgdG8gYmUgdXNlZCB3aGVuIGJ1aWxkaW5nIHRoZSBDb21wb3NpdGUgQWxhcm0gcmVzb3VyY2UuXG4gICAqL1xuICByZW5kZXJBbGFybVJ1bGUoKTogc3RyaW5nO1xufVxuXG4vKipcbiAqIE91dHB1dHMgd2hpY2ggbWF5IGJlIHJlZ2lzdGVyZWQgZm9yIG91dHB1dCB2aWEgdGhlIEdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWxhcm1PdXRwdXRzIHtcbiAgLyoqXG4gICAqIEFsYXJtIEFSTiAoaS5lLiBhcm46YXdzOmNsb3Vkd2F0Y2g6PHJlZ2lvbj46PGFjY291bnQtaWQ+OmFsYXJtOkZvbylcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgYWxhcm1cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1OYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIENsb3VkV2F0Y2ggQWxhcm1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQWxhcm0gZXh0ZW5kcyBJQWxhcm1SdWxlLCBJQXdzQ29uc3RydWN0IHtcbiAgLyoqIFN0cm9uZ2x5IHR5cGVkIG91dHB1dHMgKi9cbiAgcmVhZG9ubHkgYWxhcm1PdXRwdXRzOiBBbGFybU91dHB1dHM7XG5cbiAgLyoqXG4gICAqIEFsYXJtIEFSTiAoaS5lLiBhcm46YXdzOmNsb3Vkd2F0Y2g6PHJlZ2lvbj46PGFjY291bnQtaWQ+OmFsYXJtOkZvbylcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgYWxhcm1cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1OYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGJhc2UgY2xhc3MgZm9yIEFsYXJtIGFuZCBDb21wb3NpdGVBbGFybSByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBbGFybUJhc2UgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSUFsYXJtIHtcbiAgLyoqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhbGFybUFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYWxhcm1OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgYWxhcm1PdXRwdXRzKCk6IEFsYXJtT3V0cHV0cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFsYXJtQXJuOiB0aGlzLmFsYXJtQXJuLFxuICAgICAgYWxhcm1OYW1lOiB0aGlzLmFsYXJtTmFtZSxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hbGFybU91dHB1dHM7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWxhcm1BY3Rpb25Bcm5zPzogc3RyaW5nW107XG4gIHByb3RlY3RlZCBpbnN1ZmZpY2llbnREYXRhQWN0aW9uQXJucz86IHN0cmluZ1tdO1xuICBwcm90ZWN0ZWQgb2tBY3Rpb25Bcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFsYXJtUnVsZSBpbmRpY2F0aW5nIEFMQVJNIHN0YXRlIGZvciBBbGFybS5cbiAgICovXG4gIHB1YmxpYyByZW5kZXJBbGFybVJ1bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYEFMQVJNKFwiJHt0aGlzLmFsYXJtQXJufVwiKWA7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlciB0aGlzIGFjdGlvbiBpZiB0aGUgYWxhcm0gZmlyZXNcbiAgICpcbiAgICogVHlwaWNhbGx5IFNuc0FjdGlvbiBvciBBdXRvU2NhbGluZ0FjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZGRBbGFybUFjdGlvbiguLi5hY3Rpb25zOiBJQWxhcm1BY3Rpb25bXSkge1xuICAgIGlmICh0aGlzLmFsYXJtQWN0aW9uQXJucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmFsYXJtQWN0aW9uQXJucyA9IFtdO1xuICAgIH1cblxuICAgIHRoaXMuYWxhcm1BY3Rpb25Bcm5zLnB1c2goXG4gICAgICAuLi5hY3Rpb25zLm1hcCgoYSkgPT4gYS5iaW5kKHRoaXMsIHRoaXMpLmFsYXJtQWN0aW9uQXJuKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXIgdGhpcyBhY3Rpb24gaWYgdGhlcmUgaXMgaW5zdWZmaWNpZW50IGRhdGEgdG8gZXZhbHVhdGUgdGhlIGFsYXJtXG4gICAqXG4gICAqIFR5cGljYWxseSBTbnNBY3Rpb24gb3IgQXV0b1NjYWxpbmdBY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgYWRkSW5zdWZmaWNpZW50RGF0YUFjdGlvbiguLi5hY3Rpb25zOiBJQWxhcm1BY3Rpb25bXSkge1xuICAgIGlmICh0aGlzLmluc3VmZmljaWVudERhdGFBY3Rpb25Bcm5zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaW5zdWZmaWNpZW50RGF0YUFjdGlvbkFybnMgPSBbXTtcbiAgICB9XG5cbiAgICB0aGlzLmluc3VmZmljaWVudERhdGFBY3Rpb25Bcm5zLnB1c2goXG4gICAgICAuLi5hY3Rpb25zLm1hcCgoYSkgPT4gYS5iaW5kKHRoaXMsIHRoaXMpLmFsYXJtQWN0aW9uQXJuKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXIgdGhpcyBhY3Rpb24gaWYgdGhlIGFsYXJtIHJldHVybnMgZnJvbSBicmVhY2hpbmcgc3RhdGUgaW50byBvayBzdGF0ZVxuICAgKlxuICAgKiBUeXBpY2FsbHkgU25zQWN0aW9uIG9yIEF1dG9TY2FsaW5nQWN0aW9uLlxuICAgKi9cbiAgcHVibGljIGFkZE9rQWN0aW9uKC4uLmFjdGlvbnM6IElBbGFybUFjdGlvbltdKSB7XG4gICAgaWYgKHRoaXMub2tBY3Rpb25Bcm5zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub2tBY3Rpb25Bcm5zID0gW107XG4gICAgfVxuXG4gICAgdGhpcy5va0FjdGlvbkFybnMucHVzaChcbiAgICAgIC4uLmFjdGlvbnMubWFwKChhKSA9PiBhLmJpbmQodGhpcywgdGhpcykuYWxhcm1BY3Rpb25Bcm4pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,61 @@
1
+ import { IAlarm, IAlarmRule } from "./alarm-base";
2
+ /**
3
+ * Enumeration indicates state of Alarm used in building Alarm Rule.
4
+ */
5
+ export declare enum AlarmState {
6
+ /**
7
+ * State indicates resource is in ALARM
8
+ */
9
+ ALARM = "ALARM",
10
+ /**
11
+ * State indicates resource is not in ALARM
12
+ */
13
+ OK = "OK",
14
+ /**
15
+ * State indicates there is not enough data to determine is resource is in ALARM
16
+ */
17
+ INSUFFICIENT_DATA = "INSUFFICIENT_DATA"
18
+ }
19
+ /**
20
+ * Class with static functions to build AlarmRule for Composite Alarms.
21
+ */
22
+ export declare class AlarmRule {
23
+ /**
24
+ * function to join all provided AlarmRules with AND operator.
25
+ *
26
+ * @param operands IAlarmRules to be joined with AND operator.
27
+ */
28
+ static allOf(...operands: IAlarmRule[]): IAlarmRule;
29
+ /**
30
+ * function to join all provided AlarmRules with OR operator.
31
+ *
32
+ * @param operands IAlarmRules to be joined with OR operator.
33
+ */
34
+ static anyOf(...operands: IAlarmRule[]): IAlarmRule;
35
+ /**
36
+ * function to wrap provided AlarmRule in NOT operator.
37
+ *
38
+ * @param operand IAlarmRule to be wrapped in NOT operator.
39
+ */
40
+ static not(operand: IAlarmRule): IAlarmRule;
41
+ /**
42
+ * function to build TRUE/FALSE intent for Rule Expression.
43
+ *
44
+ * @param value boolean value to be used in rule expression.
45
+ */
46
+ static fromBoolean(value: boolean): IAlarmRule;
47
+ /**
48
+ * function to build Rule Expression for given IAlarm and AlarmState.
49
+ *
50
+ * @param alarm IAlarm to be used in Rule Expression.
51
+ * @param alarmState AlarmState to be used in Rule Expression.
52
+ */
53
+ static fromAlarm(alarm: IAlarm, alarmState: AlarmState): IAlarmRule;
54
+ /**
55
+ * function to build Rule Expression for given Alarm Rule string.
56
+ *
57
+ * @param alarmRule string to be used in Rule Expression.
58
+ */
59
+ static fromString(alarmRule: string): IAlarmRule;
60
+ private static concat;
61
+ }
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AlarmRule = exports.AlarmState = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ /**
7
+ * Enumeration indicates state of Alarm used in building Alarm Rule.
8
+ */
9
+ var AlarmState;
10
+ (function (AlarmState) {
11
+ /**
12
+ * State indicates resource is in ALARM
13
+ */
14
+ AlarmState["ALARM"] = "ALARM";
15
+ /**
16
+ * State indicates resource is not in ALARM
17
+ */
18
+ AlarmState["OK"] = "OK";
19
+ /**
20
+ * State indicates there is not enough data to determine is resource is in ALARM
21
+ */
22
+ AlarmState["INSUFFICIENT_DATA"] = "INSUFFICIENT_DATA";
23
+ })(AlarmState || (exports.AlarmState = AlarmState = {}));
24
+ /**
25
+ * Enumeration of supported Composite Alarms operators.
26
+ */
27
+ var Operator;
28
+ (function (Operator) {
29
+ Operator["AND"] = "AND";
30
+ Operator["OR"] = "OR";
31
+ Operator["NOT"] = "NOT";
32
+ })(Operator || (Operator = {}));
33
+ /**
34
+ * Class with static functions to build AlarmRule for Composite Alarms.
35
+ */
36
+ class AlarmRule {
37
+ /**
38
+ * function to join all provided AlarmRules with AND operator.
39
+ *
40
+ * @param operands IAlarmRules to be joined with AND operator.
41
+ */
42
+ static allOf(...operands) {
43
+ return this.concat(Operator.AND, ...operands);
44
+ }
45
+ /**
46
+ * function to join all provided AlarmRules with OR operator.
47
+ *
48
+ * @param operands IAlarmRules to be joined with OR operator.
49
+ */
50
+ static anyOf(...operands) {
51
+ return this.concat(Operator.OR, ...operands);
52
+ }
53
+ /**
54
+ * function to wrap provided AlarmRule in NOT operator.
55
+ *
56
+ * @param operand IAlarmRule to be wrapped in NOT operator.
57
+ */
58
+ static not(operand) {
59
+ return new (class {
60
+ renderAlarmRule() {
61
+ return `(NOT (${operand.renderAlarmRule()}))`;
62
+ }
63
+ })();
64
+ }
65
+ /**
66
+ * function to build TRUE/FALSE intent for Rule Expression.
67
+ *
68
+ * @param value boolean value to be used in rule expression.
69
+ */
70
+ static fromBoolean(value) {
71
+ return new (class {
72
+ renderAlarmRule() {
73
+ return `${String(value).toUpperCase()}`;
74
+ }
75
+ })();
76
+ }
77
+ /**
78
+ * function to build Rule Expression for given IAlarm and AlarmState.
79
+ *
80
+ * @param alarm IAlarm to be used in Rule Expression.
81
+ * @param alarmState AlarmState to be used in Rule Expression.
82
+ */
83
+ static fromAlarm(alarm, alarmState) {
84
+ return new (class {
85
+ renderAlarmRule() {
86
+ return `${alarmState}("${alarm.alarmArn}")`;
87
+ }
88
+ })();
89
+ }
90
+ /**
91
+ * function to build Rule Expression for given Alarm Rule string.
92
+ *
93
+ * @param alarmRule string to be used in Rule Expression.
94
+ */
95
+ static fromString(alarmRule) {
96
+ return new (class {
97
+ renderAlarmRule() {
98
+ return alarmRule;
99
+ }
100
+ })();
101
+ }
102
+ static concat(operator, ...operands) {
103
+ return new (class {
104
+ renderAlarmRule() {
105
+ const expression = operands
106
+ .map((operand) => `${operand.renderAlarmRule()}`)
107
+ .join(` ${operator} `);
108
+ return `(${expression})`;
109
+ }
110
+ })();
111
+ }
112
+ }
113
+ exports.AlarmRule = AlarmRule;
114
+ _a = JSII_RTTI_SYMBOL_1;
115
+ AlarmRule[_a] = { fqn: "terraconstructs.aws.cloudwatch.AlarmRule", version: "0.0.8" };
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0tcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY2xvdWR3YXRjaC9hbGFybS1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBSUE7O0dBRUc7QUFDSCxJQUFZLFVBZVg7QUFmRCxXQUFZLFVBQVU7SUFDcEI7O09BRUc7SUFDSCw2QkFBZSxDQUFBO0lBRWY7O09BRUc7SUFDSCx1QkFBUyxDQUFBO0lBRVQ7O09BRUc7SUFDSCxxREFBdUMsQ0FBQTtBQUN6QyxDQUFDLEVBZlcsVUFBVSwwQkFBVixVQUFVLFFBZXJCO0FBRUQ7O0dBRUc7QUFDSCxJQUFLLFFBSUo7QUFKRCxXQUFLLFFBQVE7SUFDWCx1QkFBVyxDQUFBO0lBQ1gscUJBQVMsQ0FBQTtJQUNULHVCQUFXLENBQUE7QUFDYixDQUFDLEVBSkksUUFBUSxLQUFSLFFBQVEsUUFJWjtBQUVEOztHQUVHO0FBQ0gsTUFBYSxTQUFTO0lBQ3BCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBc0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFzQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFtQjtRQUNuQyxPQUFPLElBQUksQ0FBQztZQUNILGVBQWU7Z0JBQ3BCLE9BQU8sU0FBUyxPQUFPLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQztZQUNoRCxDQUFDO1NBQ0YsQ0FBQyxFQUFFLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYztRQUN0QyxPQUFPLElBQUksQ0FBQztZQUNILGVBQWU7Z0JBQ3BCLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUMxQyxDQUFDO1NBQ0YsQ0FBQyxFQUFFLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQWEsRUFBRSxVQUFzQjtRQUMzRCxPQUFPLElBQUksQ0FBQztZQUNILGVBQWU7Z0JBQ3BCLE9BQU8sR0FBRyxVQUFVLEtBQUssS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDO1lBQzlDLENBQUM7U0FDRixDQUFDLEVBQUUsQ0FBQztJQUNQLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFpQjtRQUN4QyxPQUFPLElBQUksQ0FBQztZQUNILGVBQWU7Z0JBQ3BCLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7U0FDRixDQUFDLEVBQUUsQ0FBQztJQUNQLENBQUM7SUFFTyxNQUFNLENBQUMsTUFBTSxDQUNuQixRQUFrQixFQUNsQixHQUFHLFFBQXNCO1FBRXpCLE9BQU8sSUFBSSxDQUFDO1lBQ0gsZUFBZTtnQkFDcEIsTUFBTSxVQUFVLEdBQUcsUUFBUTtxQkFDeEIsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO3FCQUNoRCxJQUFJLENBQUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixPQUFPLElBQUksVUFBVSxHQUFHLENBQUM7WUFDM0IsQ0FBQztTQUNGLENBQUMsRUFBRSxDQUFDO0lBQ1AsQ0FBQzs7QUFwRkgsOEJBcUZDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTcwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gvbGliL2FsYXJtLXJ1bGUudHNcblxuaW1wb3J0IHsgSUFsYXJtLCBJQWxhcm1SdWxlIH0gZnJvbSBcIi4vYWxhcm0tYmFzZVwiO1xuXG4vKipcbiAqIEVudW1lcmF0aW9uIGluZGljYXRlcyBzdGF0ZSBvZiBBbGFybSB1c2VkIGluIGJ1aWxkaW5nIEFsYXJtIFJ1bGUuXG4gKi9cbmV4cG9ydCBlbnVtIEFsYXJtU3RhdGUge1xuICAvKipcbiAgICogU3RhdGUgaW5kaWNhdGVzIHJlc291cmNlIGlzIGluIEFMQVJNXG4gICAqL1xuICBBTEFSTSA9IFwiQUxBUk1cIixcblxuICAvKipcbiAgICogU3RhdGUgaW5kaWNhdGVzIHJlc291cmNlIGlzIG5vdCBpbiBBTEFSTVxuICAgKi9cbiAgT0sgPSBcIk9LXCIsXG5cbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRlcyB0aGVyZSBpcyBub3QgZW5vdWdoIGRhdGEgdG8gZGV0ZXJtaW5lIGlzIHJlc291cmNlIGlzIGluIEFMQVJNXG4gICAqL1xuICBJTlNVRkZJQ0lFTlRfREFUQSA9IFwiSU5TVUZGSUNJRU5UX0RBVEFcIixcbn1cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBzdXBwb3J0ZWQgQ29tcG9zaXRlIEFsYXJtcyBvcGVyYXRvcnMuXG4gKi9cbmVudW0gT3BlcmF0b3Ige1xuICBBTkQgPSBcIkFORFwiLFxuICBPUiA9IFwiT1JcIixcbiAgTk9UID0gXCJOT1RcIixcbn1cblxuLyoqXG4gKiBDbGFzcyB3aXRoIHN0YXRpYyBmdW5jdGlvbnMgdG8gYnVpbGQgQWxhcm1SdWxlIGZvciBDb21wb3NpdGUgQWxhcm1zLlxuICovXG5leHBvcnQgY2xhc3MgQWxhcm1SdWxlIHtcbiAgLyoqXG4gICAqIGZ1bmN0aW9uIHRvIGpvaW4gYWxsIHByb3ZpZGVkIEFsYXJtUnVsZXMgd2l0aCBBTkQgb3BlcmF0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBvcGVyYW5kcyBJQWxhcm1SdWxlcyB0byBiZSBqb2luZWQgd2l0aCBBTkQgb3BlcmF0b3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFsbE9mKC4uLm9wZXJhbmRzOiBJQWxhcm1SdWxlW10pOiBJQWxhcm1SdWxlIHtcbiAgICByZXR1cm4gdGhpcy5jb25jYXQoT3BlcmF0b3IuQU5ELCAuLi5vcGVyYW5kcyk7XG4gIH1cblxuICAvKipcbiAgICogZnVuY3Rpb24gdG8gam9pbiBhbGwgcHJvdmlkZWQgQWxhcm1SdWxlcyB3aXRoIE9SIG9wZXJhdG9yLlxuICAgKlxuICAgKiBAcGFyYW0gb3BlcmFuZHMgSUFsYXJtUnVsZXMgdG8gYmUgam9pbmVkIHdpdGggT1Igb3BlcmF0b3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFueU9mKC4uLm9wZXJhbmRzOiBJQWxhcm1SdWxlW10pOiBJQWxhcm1SdWxlIHtcbiAgICByZXR1cm4gdGhpcy5jb25jYXQoT3BlcmF0b3IuT1IsIC4uLm9wZXJhbmRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBmdW5jdGlvbiB0byB3cmFwIHByb3ZpZGVkIEFsYXJtUnVsZSBpbiBOT1Qgb3BlcmF0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBvcGVyYW5kIElBbGFybVJ1bGUgdG8gYmUgd3JhcHBlZCBpbiBOT1Qgb3BlcmF0b3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG5vdChvcGVyYW5kOiBJQWxhcm1SdWxlKTogSUFsYXJtUnVsZSB7XG4gICAgcmV0dXJuIG5ldyAoY2xhc3MgaW1wbGVtZW50cyBJQWxhcm1SdWxlIHtcbiAgICAgIHB1YmxpYyByZW5kZXJBbGFybVJ1bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAoTk9UICgke29wZXJhbmQucmVuZGVyQWxhcm1SdWxlKCl9KSlgO1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogZnVuY3Rpb24gdG8gYnVpbGQgVFJVRS9GQUxTRSBpbnRlbnQgZm9yIFJ1bGUgRXhwcmVzc2lvbi5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIGJvb2xlYW4gdmFsdWUgdG8gYmUgdXNlZCBpbiBydWxlIGV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Cb29sZWFuKHZhbHVlOiBib29sZWFuKTogSUFsYXJtUnVsZSB7XG4gICAgcmV0dXJuIG5ldyAoY2xhc3MgaW1wbGVtZW50cyBJQWxhcm1SdWxlIHtcbiAgICAgIHB1YmxpYyByZW5kZXJBbGFybVJ1bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke1N0cmluZyh2YWx1ZSkudG9VcHBlckNhc2UoKX1gO1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogZnVuY3Rpb24gdG8gYnVpbGQgUnVsZSBFeHByZXNzaW9uIGZvciBnaXZlbiBJQWxhcm0gYW5kIEFsYXJtU3RhdGUuXG4gICAqXG4gICAqIEBwYXJhbSBhbGFybSBJQWxhcm0gdG8gYmUgdXNlZCBpbiBSdWxlIEV4cHJlc3Npb24uXG4gICAqIEBwYXJhbSBhbGFybVN0YXRlIEFsYXJtU3RhdGUgdG8gYmUgdXNlZCBpbiBSdWxlIEV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21BbGFybShhbGFybTogSUFsYXJtLCBhbGFybVN0YXRlOiBBbGFybVN0YXRlKTogSUFsYXJtUnVsZSB7XG4gICAgcmV0dXJuIG5ldyAoY2xhc3MgaW1wbGVtZW50cyBJQWxhcm1SdWxlIHtcbiAgICAgIHB1YmxpYyByZW5kZXJBbGFybVJ1bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2FsYXJtU3RhdGV9KFwiJHthbGFybS5hbGFybUFybn1cIilgO1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogZnVuY3Rpb24gdG8gYnVpbGQgUnVsZSBFeHByZXNzaW9uIGZvciBnaXZlbiBBbGFybSBSdWxlIHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIGFsYXJtUnVsZSBzdHJpbmcgdG8gYmUgdXNlZCBpbiBSdWxlIEV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdHJpbmcoYWxhcm1SdWxlOiBzdHJpbmcpOiBJQWxhcm1SdWxlIHtcbiAgICByZXR1cm4gbmV3IChjbGFzcyBpbXBsZW1lbnRzIElBbGFybVJ1bGUge1xuICAgICAgcHVibGljIHJlbmRlckFsYXJtUnVsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYWxhcm1SdWxlO1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb25jYXQoXG4gICAgb3BlcmF0b3I6IE9wZXJhdG9yLFxuICAgIC4uLm9wZXJhbmRzOiBJQWxhcm1SdWxlW11cbiAgKTogSUFsYXJtUnVsZSB7XG4gICAgcmV0dXJuIG5ldyAoY2xhc3MgaW1wbGVtZW50cyBJQWxhcm1SdWxlIHtcbiAgICAgIHB1YmxpYyByZW5kZXJBbGFybVJ1bGUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IG9wZXJhbmRzXG4gICAgICAgICAgLm1hcCgob3BlcmFuZCkgPT4gYCR7b3BlcmFuZC5yZW5kZXJBbGFybVJ1bGUoKX1gKVxuICAgICAgICAgIC5qb2luKGAgJHtvcGVyYXRvcn0gYCk7XG4gICAgICAgIHJldHVybiBgKCR7ZXhwcmVzc2lvbn0pYDtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,77 @@
1
+ import { Construct } from "constructs";
2
+ import { IAlarm } from "./alarm-base";
3
+ import { AlarmState } from "./alarm-rule";
4
+ import { ConcreteWidget } from "./widget";
5
+ /**
6
+ * The sort possibilities for AlarmStatusWidgets
7
+ */
8
+ export declare enum AlarmStatusWidgetSortBy {
9
+ /**
10
+ * Choose DEFAULT to sort them in alphabetical order by alarm name.
11
+ */
12
+ DEFAULT = "default",
13
+ /**
14
+ * Choose STATE_UPDATED_TIMESTAMP to sort them first by alarm state, with alarms in ALARM state first,
15
+ * INSUFFICIENT_DATA alarms next, and OK alarms last.
16
+ * Within each group, the alarms are sorted by when they last changed state, with more recent state changes listed first.
17
+ */
18
+ STATE_UPDATED_TIMESTAMP = "stateUpdatedTimestamp",
19
+ /**
20
+ * Choose TIMESTAMP to sort them by the time when the alarms most recently changed state,
21
+ * no matter the current alarm state.
22
+ * The alarm that changed state most recently is listed first.
23
+ */
24
+ TIMESTAMP = "timestamp"
25
+ }
26
+ /**
27
+ * Properties for an Alarm Status Widget
28
+ */
29
+ export interface AlarmStatusWidgetProps {
30
+ /**
31
+ * CloudWatch Alarms to show in widget
32
+ */
33
+ readonly alarms: IAlarm[];
34
+ /**
35
+ * The title of the widget
36
+ *
37
+ * @default 'Alarm Status'
38
+ */
39
+ readonly title?: string;
40
+ /**
41
+ * Width of the widget, in a grid of 24 units wide
42
+ *
43
+ * @default 6
44
+ */
45
+ readonly width?: number;
46
+ /**
47
+ * Height of the widget
48
+ *
49
+ * @default 3
50
+ */
51
+ readonly height?: number;
52
+ /**
53
+ * Specifies how to sort the alarms in the widget.
54
+ *
55
+ * @default - alphabetical order
56
+ */
57
+ readonly sortBy?: AlarmStatusWidgetSortBy;
58
+ /**
59
+ * Use this field to filter the list of alarms displayed in the widget to only those alarms currently in the specified states.
60
+ * You can specify one or more alarm states in the value for this field.
61
+ * The alarm states that you can specify are ALARM, INSUFFICIENT_DATA, and OK.
62
+ *
63
+ * If you omit this field or specify an empty array, all the alarms specifed in alarms are displayed.
64
+ *
65
+ * @default - all the alarms specified in alarms are displayed.
66
+ */
67
+ readonly states?: AlarmState[];
68
+ }
69
+ /**
70
+ * A dashboard widget that displays alarms in a grid view
71
+ */
72
+ export declare class AlarmStatusWidget extends ConcreteWidget {
73
+ private readonly props;
74
+ constructor(scope: Construct, props: AlarmStatusWidgetProps);
75
+ position(x: number, y: number): void;
76
+ toJson(): any[];
77
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AlarmStatusWidget = exports.AlarmStatusWidgetSortBy = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const widget_1 = require("./widget");
7
+ /**
8
+ * The sort possibilities for AlarmStatusWidgets
9
+ */
10
+ var AlarmStatusWidgetSortBy;
11
+ (function (AlarmStatusWidgetSortBy) {
12
+ /**
13
+ * Choose DEFAULT to sort them in alphabetical order by alarm name.
14
+ */
15
+ AlarmStatusWidgetSortBy["DEFAULT"] = "default";
16
+ /**
17
+ * Choose STATE_UPDATED_TIMESTAMP to sort them first by alarm state, with alarms in ALARM state first,
18
+ * INSUFFICIENT_DATA alarms next, and OK alarms last.
19
+ * Within each group, the alarms are sorted by when they last changed state, with more recent state changes listed first.
20
+ */
21
+ AlarmStatusWidgetSortBy["STATE_UPDATED_TIMESTAMP"] = "stateUpdatedTimestamp";
22
+ /**
23
+ * Choose TIMESTAMP to sort them by the time when the alarms most recently changed state,
24
+ * no matter the current alarm state.
25
+ * The alarm that changed state most recently is listed first.
26
+ */
27
+ AlarmStatusWidgetSortBy["TIMESTAMP"] = "timestamp";
28
+ })(AlarmStatusWidgetSortBy || (exports.AlarmStatusWidgetSortBy = AlarmStatusWidgetSortBy = {}));
29
+ /**
30
+ * A dashboard widget that displays alarms in a grid view
31
+ */
32
+ class AlarmStatusWidget extends widget_1.ConcreteWidget {
33
+ constructor(scope, props) {
34
+ super(scope, props.width || 6, props.height || 3);
35
+ this.props = props;
36
+ }
37
+ position(x, y) {
38
+ this.x = x;
39
+ this.y = y;
40
+ }
41
+ toJson() {
42
+ return [
43
+ {
44
+ type: "alarm",
45
+ width: this.width,
46
+ height: this.height,
47
+ x: this.x,
48
+ y: this.y,
49
+ properties: {
50
+ title: this.props.title ? this.props.title : "Alarm Status",
51
+ alarms: this.props.alarms.map((alarm) => alarm.alarmArn),
52
+ states: this.props.states,
53
+ sortBy: this.props.sortBy,
54
+ },
55
+ },
56
+ ];
57
+ }
58
+ }
59
+ exports.AlarmStatusWidget = AlarmStatusWidget;
60
+ _a = JSII_RTTI_SYMBOL_1;
61
+ AlarmStatusWidget[_a] = { fqn: "terraconstructs.aws.cloudwatch.AlarmStatusWidget", version: "0.0.8" };
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0tc3RhdHVzLXdpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY2xvdWR3YXRjaC9hbGFybS1zdGF0dXMtd2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EscUNBQTBDO0FBRTFDOztHQUVHO0FBQ0gsSUFBWSx1QkFtQlg7QUFuQkQsV0FBWSx1QkFBdUI7SUFDakM7O09BRUc7SUFDSCw4Q0FBbUIsQ0FBQTtJQUVuQjs7OztPQUlHO0lBQ0gsNEVBQWlELENBQUE7SUFFakQ7Ozs7T0FJRztJQUNILGtEQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFuQlcsdUJBQXVCLHVDQUF2Qix1QkFBdUIsUUFtQmxDO0FBZ0REOztHQUVHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSx1QkFBYztJQUduRCxZQUFZLEtBQWdCLEVBQUUsS0FBNkI7UUFDekQsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFTSxRQUFRLENBQUMsQ0FBUyxFQUFFLENBQVM7UUFDbEMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTztZQUNMO2dCQUNFLElBQUksRUFBRSxPQUFPO2dCQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ1QsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNULFVBQVUsRUFBRTtvQkFDVixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxjQUFjO29CQUMzRCxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO29CQUN4RCxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO29CQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO2lCQUMxQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O0FBN0JILDhDQThCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoL2xpYi9hbGFybS1zdGF0dXMtd2lkZ2V0LnRzXG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJQWxhcm0gfSBmcm9tIFwiLi9hbGFybS1iYXNlXCI7XG5pbXBvcnQgeyBBbGFybVN0YXRlIH0gZnJvbSBcIi4vYWxhcm0tcnVsZVwiO1xuaW1wb3J0IHsgQ29uY3JldGVXaWRnZXQgfSBmcm9tIFwiLi93aWRnZXRcIjtcblxuLyoqXG4gKiBUaGUgc29ydCBwb3NzaWJpbGl0aWVzIGZvciBBbGFybVN0YXR1c1dpZGdldHNcbiAqL1xuZXhwb3J0IGVudW0gQWxhcm1TdGF0dXNXaWRnZXRTb3J0Qnkge1xuICAvKipcbiAgICogQ2hvb3NlIERFRkFVTFQgdG8gc29ydCB0aGVtIGluIGFscGhhYmV0aWNhbCBvcmRlciBieSBhbGFybSBuYW1lLlxuICAgKi9cbiAgREVGQVVMVCA9IFwiZGVmYXVsdFwiLFxuXG4gIC8qKlxuICAgKiBDaG9vc2UgU1RBVEVfVVBEQVRFRF9USU1FU1RBTVAgdG8gc29ydCB0aGVtIGZpcnN0IGJ5IGFsYXJtIHN0YXRlLCB3aXRoIGFsYXJtcyBpbiBBTEFSTSBzdGF0ZSBmaXJzdCxcbiAgICogSU5TVUZGSUNJRU5UX0RBVEEgYWxhcm1zIG5leHQsIGFuZCBPSyBhbGFybXMgbGFzdC5cbiAgICogV2l0aGluIGVhY2ggZ3JvdXAsIHRoZSBhbGFybXMgYXJlIHNvcnRlZCBieSB3aGVuIHRoZXkgbGFzdCBjaGFuZ2VkIHN0YXRlLCB3aXRoIG1vcmUgcmVjZW50IHN0YXRlIGNoYW5nZXMgbGlzdGVkIGZpcnN0LlxuICAgKi9cbiAgU1RBVEVfVVBEQVRFRF9USU1FU1RBTVAgPSBcInN0YXRlVXBkYXRlZFRpbWVzdGFtcFwiLFxuXG4gIC8qKlxuICAgKiBDaG9vc2UgVElNRVNUQU1QIHRvIHNvcnQgdGhlbSBieSB0aGUgdGltZSB3aGVuIHRoZSBhbGFybXMgbW9zdCByZWNlbnRseSBjaGFuZ2VkIHN0YXRlLFxuICAgKiBubyBtYXR0ZXIgdGhlIGN1cnJlbnQgYWxhcm0gc3RhdGUuXG4gICAqIFRoZSBhbGFybSB0aGF0IGNoYW5nZWQgc3RhdGUgbW9zdCByZWNlbnRseSBpcyBsaXN0ZWQgZmlyc3QuXG4gICAqL1xuICBUSU1FU1RBTVAgPSBcInRpbWVzdGFtcFwiLFxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFuIEFsYXJtIFN0YXR1cyBXaWRnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbGFybVN0YXR1c1dpZGdldFByb3BzIHtcbiAgLyoqXG4gICAqIENsb3VkV2F0Y2ggQWxhcm1zIHRvIHNob3cgaW4gd2lkZ2V0XG4gICAqL1xuICByZWFkb25seSBhbGFybXM6IElBbGFybVtdO1xuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSB3aWRnZXRcbiAgICpcbiAgICogQGRlZmF1bHQgJ0FsYXJtIFN0YXR1cydcbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xuICAvKipcbiAgICogV2lkdGggb2YgdGhlIHdpZGdldCwgaW4gYSBncmlkIG9mIDI0IHVuaXRzIHdpZGVcbiAgICpcbiAgICogQGRlZmF1bHQgNlxuICAgKi9cbiAgcmVhZG9ubHkgd2lkdGg/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBIZWlnaHQgb2YgdGhlIHdpZGdldFxuICAgKlxuICAgKiBAZGVmYXVsdCAzXG4gICAqL1xuICByZWFkb25seSBoZWlnaHQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBob3cgdG8gc29ydCB0aGUgYWxhcm1zIGluIHRoZSB3aWRnZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWxwaGFiZXRpY2FsIG9yZGVyXG4gICAqL1xuICByZWFkb25seSBzb3J0Qnk/OiBBbGFybVN0YXR1c1dpZGdldFNvcnRCeTtcblxuICAvKipcbiAgICogVXNlIHRoaXMgZmllbGQgdG8gZmlsdGVyIHRoZSBsaXN0IG9mIGFsYXJtcyBkaXNwbGF5ZWQgaW4gdGhlIHdpZGdldCB0byBvbmx5IHRob3NlIGFsYXJtcyBjdXJyZW50bHkgaW4gdGhlIHNwZWNpZmllZCBzdGF0ZXMuXG4gICAqIFlvdSBjYW4gc3BlY2lmeSBvbmUgb3IgbW9yZSBhbGFybSBzdGF0ZXMgaW4gdGhlIHZhbHVlIGZvciB0aGlzIGZpZWxkLlxuICAgKiBUaGUgYWxhcm0gc3RhdGVzIHRoYXQgeW91IGNhbiBzcGVjaWZ5IGFyZSBBTEFSTSwgSU5TVUZGSUNJRU5UX0RBVEEsIGFuZCBPSy5cbiAgICpcbiAgICogSWYgeW91IG9taXQgdGhpcyBmaWVsZCBvciBzcGVjaWZ5IGFuIGVtcHR5IGFycmF5LCBhbGwgdGhlIGFsYXJtcyBzcGVjaWZlZCBpbiBhbGFybXMgYXJlIGRpc3BsYXllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAgYWxsIHRoZSBhbGFybXMgc3BlY2lmaWVkIGluIGFsYXJtcyBhcmUgZGlzcGxheWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGVzPzogQWxhcm1TdGF0ZVtdO1xufVxuXG4vKipcbiAqIEEgZGFzaGJvYXJkIHdpZGdldCB0aGF0IGRpc3BsYXlzIGFsYXJtcyBpbiBhIGdyaWQgdmlld1xuICovXG5leHBvcnQgY2xhc3MgQWxhcm1TdGF0dXNXaWRnZXQgZXh0ZW5kcyBDb25jcmV0ZVdpZGdldCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IEFsYXJtU3RhdHVzV2lkZ2V0UHJvcHM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IEFsYXJtU3RhdHVzV2lkZ2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgcHJvcHMud2lkdGggfHwgNiwgcHJvcHMuaGVpZ2h0IHx8IDMpO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgfVxuXG4gIHB1YmxpYyBwb3NpdGlvbih4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcbiAgfVxuXG4gIHB1YmxpYyB0b0pzb24oKTogYW55W10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiYWxhcm1cIixcbiAgICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXG4gICAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXG4gICAgICAgIHg6IHRoaXMueCxcbiAgICAgICAgeTogdGhpcy55LFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdGl0bGU6IHRoaXMucHJvcHMudGl0bGUgPyB0aGlzLnByb3BzLnRpdGxlIDogXCJBbGFybSBTdGF0dXNcIixcbiAgICAgICAgICBhbGFybXM6IHRoaXMucHJvcHMuYWxhcm1zLm1hcCgoYWxhcm0pID0+IGFsYXJtLmFsYXJtQXJuKSxcbiAgICAgICAgICBzdGF0ZXM6IHRoaXMucHJvcHMuc3RhdGVzLFxuICAgICAgICAgIHNvcnRCeTogdGhpcy5wcm9wcy5zb3J0QnksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,158 @@
1
+ import { cloudwatchMetricAlarm } from "@cdktf/provider-aws";
2
+ import { Construct } from "constructs";
3
+ import { AwsConstructProps } from "../aws-construct";
4
+ import { IAlarmAction } from "./alarm-action";
5
+ import { AlarmBase, IAlarm } from "./alarm-base";
6
+ import { HorizontalAnnotation } from "./graph";
7
+ import { CreateAlarmOptions } from "./metric";
8
+ import { IMetric } from "./metric-types";
9
+ /**
10
+ * Properties for Alarms
11
+ */
12
+ export interface AlarmProps extends CreateAlarmOptions, AwsConstructProps {
13
+ /**
14
+ * The metric to add the alarm on
15
+ *
16
+ * Metric objects can be obtained from most resources, or you can construct
17
+ * custom Metric objects by instantiating one.
18
+ */
19
+ readonly metric: IMetric;
20
+ }
21
+ /**
22
+ * Comparison operator for evaluating alarms
23
+ */
24
+ export declare enum ComparisonOperator {
25
+ /**
26
+ * Specified statistic is greater than or equal to the threshold
27
+ */
28
+ GREATER_THAN_OR_EQUAL_TO_THRESHOLD = "GreaterThanOrEqualToThreshold",
29
+ /**
30
+ * Specified statistic is strictly greater than the threshold
31
+ */
32
+ GREATER_THAN_THRESHOLD = "GreaterThanThreshold",
33
+ /**
34
+ * Specified statistic is strictly less than the threshold
35
+ */
36
+ LESS_THAN_THRESHOLD = "LessThanThreshold",
37
+ /**
38
+ * Specified statistic is less than or equal to the threshold.
39
+ */
40
+ LESS_THAN_OR_EQUAL_TO_THRESHOLD = "LessThanOrEqualToThreshold",
41
+ /**
42
+ * Specified statistic is lower than or greater than the anomaly model band.
43
+ * Used only for alarms based on anomaly detection models
44
+ */
45
+ LESS_THAN_LOWER_OR_GREATER_THAN_UPPER_THRESHOLD = "LessThanLowerOrGreaterThanUpperThreshold",
46
+ /**
47
+ * Specified statistic is greater than the anomaly model band.
48
+ * Used only for alarms based on anomaly detection models
49
+ */
50
+ GREATER_THAN_UPPER_THRESHOLD = "GreaterThanUpperThreshold",
51
+ /**
52
+ * Specified statistic is lower than the anomaly model band.
53
+ * Used only for alarms based on anomaly detection models
54
+ */
55
+ LESS_THAN_LOWER_THRESHOLD = "LessThanLowerThreshold"
56
+ }
57
+ /**
58
+ * Specify how missing data points are treated during alarm evaluation
59
+ */
60
+ export declare enum TreatMissingData {
61
+ /**
62
+ * Missing data points are treated as breaching the threshold
63
+ */
64
+ BREACHING = "breaching",
65
+ /**
66
+ * Missing data points are treated as being within the threshold
67
+ */
68
+ NOT_BREACHING = "notBreaching",
69
+ /**
70
+ * The current alarm state is maintained
71
+ */
72
+ IGNORE = "ignore",
73
+ /**
74
+ * The alarm does not consider missing data points when evaluating whether to change state
75
+ */
76
+ MISSING = "missing"
77
+ }
78
+ /**
79
+ * An alarm on a CloudWatch metric
80
+ */
81
+ export declare class Alarm extends AlarmBase {
82
+ /**
83
+ * Import an existing CloudWatch alarm provided an Name.
84
+ *
85
+ * @param scope The parent creating construct (usually `this`)
86
+ * @param id The construct's name
87
+ * @param alarmName Alarm Name
88
+ */
89
+ static fromAlarmName(scope: Construct, id: string, alarmName: string): IAlarm;
90
+ /**
91
+ * Import an existing CloudWatch alarm provided an ARN
92
+ *
93
+ * @param scope The parent creating construct (usually `this`).
94
+ * @param id The construct's name
95
+ * @param alarmArn Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo)
96
+ */
97
+ static fromAlarmArn(scope: Construct, id: string, alarmArn: string): IAlarm;
98
+ readonly resource: cloudwatchMetricAlarm.CloudwatchMetricAlarm;
99
+ /**
100
+ * ARN of this alarm
101
+ *
102
+ * @attribute
103
+ */
104
+ readonly alarmArn: string;
105
+ /**
106
+ * Name of this alarm.
107
+ *
108
+ * @attribute
109
+ */
110
+ readonly alarmName: string;
111
+ /**
112
+ * The metric object this alarm was based on
113
+ */
114
+ readonly metric: IMetric;
115
+ /**
116
+ * This metric as an annotation
117
+ */
118
+ private readonly annotation;
119
+ constructor(scope: Construct, id: string, props: AlarmProps);
120
+ /**
121
+ * Turn this alarm into a horizontal annotation
122
+ *
123
+ * This is useful if you want to represent an Alarm in a non-AlarmWidget.
124
+ * An `AlarmWidget` can directly show an alarm, but it can only show a
125
+ * single alarm and no other metrics. Instead, you can convert the alarm to
126
+ * a HorizontalAnnotation and add it as an annotation to another graph.
127
+ *
128
+ * This might be useful if:
129
+ *
130
+ * - You want to show multiple alarms inside a single graph, for example if
131
+ * you have both a "small margin/long period" alarm as well as a
132
+ * "large margin/short period" alarm.
133
+ *
134
+ * - You want to show an Alarm line in a graph with multiple metrics in it.
135
+ */
136
+ toAnnotation(): HorizontalAnnotation;
137
+ /**
138
+ * Trigger this action if the alarm fires
139
+ *
140
+ * Typically SnsAction or AutoScalingAction.
141
+ */
142
+ addAlarmAction(...actions: IAlarmAction[]): void;
143
+ private validateActionArn;
144
+ private renderMetric;
145
+ /**
146
+ * Validate that if a region is in the given stat config, they match the Alarm
147
+ */
148
+ private validateMetricStat;
149
+ /**
150
+ * Validates that the expression config does not specify searchAccount or searchRegion props
151
+ * as search expressions are not supported by Alarms.
152
+ */
153
+ private validateMetricExpression;
154
+ /**
155
+ * Determine if the accountId property should be included in the metric.
156
+ */
157
+ private requiresAccountId;
158
+ }