UNPKG

11.3 kBJavaScriptView Raw
1"use strict";
2var _a;
3Object.defineProperty(exports, "__esModule", { value: true });
4exports.AlarmRule = exports.AlarmState = void 0;
5const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
6const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7/**
8 * Enumeration indicates state of Alarm used in building Alarm Rule.
9 */
10var AlarmState;
11(function (AlarmState) {
12 /**
13 * State indicates resource is in ALARM
14 */
15 AlarmState["ALARM"] = "ALARM";
16 /**
17 * State indicates resource is not in ALARM
18 */
19 AlarmState["OK"] = "OK";
20 /**
21 * State indicates there is not enough data to determine is resource is in ALARM
22 */
23 AlarmState["INSUFFICIENT_DATA"] = "INSUFFICIENT_DATA";
24})(AlarmState = exports.AlarmState || (exports.AlarmState = {}));
25/**
26 * Enumeration of supported Composite Alarms operators.
27 */
28var Operator;
29(function (Operator) {
30 Operator["AND"] = "AND";
31 Operator["OR"] = "OR";
32 Operator["NOT"] = "NOT";
33})(Operator || (Operator = {}));
34/**
35 * Class with static functions to build AlarmRule for Composite Alarms.
36 */
37class AlarmRule {
38 /**
39 * function to join all provided AlarmRules with AND operator.
40 *
41 * @param operands IAlarmRules to be joined with AND operator.
42 */
43 static allOf(...operands) {
44 try {
45 jsiiDeprecationWarnings._aws_cdk_aws_cloudwatch_IAlarmRule(operands);
46 }
47 catch (error) {
48 if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
49 Error.captureStackTrace(error, this.allOf);
50 }
51 throw error;
52 }
53 return this.concat(Operator.AND, ...operands);
54 }
55 /**
56 * function to join all provided AlarmRules with OR operator.
57 *
58 * @param operands IAlarmRules to be joined with OR operator.
59 */
60 static anyOf(...operands) {
61 try {
62 jsiiDeprecationWarnings._aws_cdk_aws_cloudwatch_IAlarmRule(operands);
63 }
64 catch (error) {
65 if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
66 Error.captureStackTrace(error, this.anyOf);
67 }
68 throw error;
69 }
70 return this.concat(Operator.OR, ...operands);
71 }
72 /**
73 * function to wrap provided AlarmRule in NOT operator.
74 *
75 * @param operand IAlarmRule to be wrapped in NOT operator.
76 */
77 static not(operand) {
78 try {
79 jsiiDeprecationWarnings._aws_cdk_aws_cloudwatch_IAlarmRule(operand);
80 }
81 catch (error) {
82 if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
83 Error.captureStackTrace(error, this.not);
84 }
85 throw error;
86 }
87 return new class {
88 renderAlarmRule() {
89 return `(NOT (${operand.renderAlarmRule()}))`;
90 }
91 };
92 }
93 /**
94 * function to build TRUE/FALSE intent for Rule Expression.
95 *
96 * @param value boolean value to be used in rule expression.
97 */
98 static fromBoolean(value) {
99 return new class {
100 renderAlarmRule() {
101 return `${String(value).toUpperCase()}`;
102 }
103 };
104 }
105 /**
106 * function to build Rule Expression for given IAlarm and AlarmState.
107 *
108 * @param alarm IAlarm to be used in Rule Expression.
109 * @param alarmState AlarmState to be used in Rule Expression.
110 */
111 static fromAlarm(alarm, alarmState) {
112 try {
113 jsiiDeprecationWarnings._aws_cdk_aws_cloudwatch_IAlarm(alarm);
114 jsiiDeprecationWarnings._aws_cdk_aws_cloudwatch_AlarmState(alarmState);
115 }
116 catch (error) {
117 if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
118 Error.captureStackTrace(error, this.fromAlarm);
119 }
120 throw error;
121 }
122 return new class {
123 renderAlarmRule() {
124 return `${alarmState}("${alarm.alarmArn}")`;
125 }
126 };
127 }
128 /**
129 * function to build Rule Expression for given Alarm Rule string.
130 *
131 * @param alarmRule string to be used in Rule Expression.
132 */
133 static fromString(alarmRule) {
134 return new class {
135 renderAlarmRule() {
136 return alarmRule;
137 }
138 };
139 }
140 static concat(operator, ...operands) {
141 return new class {
142 renderAlarmRule() {
143 const expression = operands
144 .map(operand => `${operand.renderAlarmRule()}`)
145 .join(` ${operator} `);
146 return `(${expression})`;
147 }
148 };
149 }
150}
151exports.AlarmRule = AlarmRule;
152_a = JSII_RTTI_SYMBOL_1;
153AlarmRule[_a] = { fqn: "@aws-cdk/aws-cloudwatch.AlarmRule", version: "1.161.0" };
154//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0tcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFsYXJtLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUE7O0dBRUc7QUFDSCxJQUFZLFVBaUJYO0FBakJELFdBQVksVUFBVTtJQUVwQjs7T0FFRztJQUNILDZCQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILHVCQUFTLENBQUE7SUFFVDs7T0FFRztJQUNILHFEQUF1QyxDQUFBO0FBRXpDLENBQUMsRUFqQlcsVUFBVSxHQUFWLGtCQUFVLEtBQVYsa0JBQVUsUUFpQnJCO0FBRUQ7O0dBRUc7QUFDSCxJQUFLLFFBTUo7QUFORCxXQUFLLFFBQVE7SUFFWCx1QkFBVyxDQUFBO0lBQ1gscUJBQVMsQ0FBQTtJQUNULHVCQUFXLENBQUE7QUFFYixDQUFDLEVBTkksUUFBUSxLQUFSLFFBQVEsUUFNWjtBQUVEOztHQUVHO0FBQ0gsTUFBYSxTQUFTO0lBRXBCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBc0I7Ozs7Ozs7Ozs7UUFDM0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztLQUMvQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBc0I7Ozs7Ozs7Ozs7UUFDM0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztLQUM5QztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQW1COzs7Ozs7Ozs7O1FBQ25DLE9BQU8sSUFBSTtZQUNGLGVBQWU7Z0JBQ3BCLE9BQU8sU0FBUyxPQUFPLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQztZQUNoRCxDQUFDO1NBQ0YsQ0FBQztLQUNIO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYztRQUN0QyxPQUFPLElBQUk7WUFDRixlQUFlO2dCQUNwQixPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDMUMsQ0FBQztTQUNGLENBQUM7S0FDSDtJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFhLEVBQUUsVUFBc0I7Ozs7Ozs7Ozs7O1FBQzNELE9BQU8sSUFBSTtZQUNGLGVBQWU7Z0JBQ3BCLE9BQU8sR0FBRyxVQUFVLEtBQUssS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDO1lBQzlDLENBQUM7U0FDRixDQUFDO0tBQ0g7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFpQjtRQUN4QyxPQUFPLElBQUk7WUFDRixlQUFlO2dCQUNwQixPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1NBQ0YsQ0FBQztLQUNIO0lBRU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFrQixFQUFFLEdBQUcsUUFBc0I7UUFDakUsT0FBTyxJQUFJO1lBQ0YsZUFBZTtnQkFDcEIsTUFBTSxVQUFVLEdBQUcsUUFBUTtxQkFDeEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztxQkFDOUMsSUFBSSxDQUFDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztnQkFDekIsT0FBTyxJQUFJLFVBQVUsR0FBRyxDQUFDO1lBQzNCLENBQUM7U0FDRixDQUFDO0tBQ0g7O0FBbEZILDhCQW1GQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBbGFybSwgSUFsYXJtUnVsZSB9IGZyb20gJy4vYWxhcm0tYmFzZSc7XG5cbi8qKlxuICogRW51bWVyYXRpb24gaW5kaWNhdGVzIHN0YXRlIG9mIEFsYXJtIHVzZWQgaW4gYnVpbGRpbmcgQWxhcm0gUnVsZS5cbiAqL1xuZXhwb3J0IGVudW0gQWxhcm1TdGF0ZSB7XG5cbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRlcyByZXNvdXJjZSBpcyBpbiBBTEFSTVxuICAgKi9cbiAgQUxBUk0gPSAnQUxBUk0nLFxuXG4gIC8qKlxuICAgKiBTdGF0ZSBpbmRpY2F0ZXMgcmVzb3VyY2UgaXMgbm90IGluIEFMQVJNXG4gICAqL1xuICBPSyA9ICdPSycsXG5cbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRlcyB0aGVyZSBpcyBub3QgZW5vdWdoIGRhdGEgdG8gZGV0ZXJtaW5lIGlzIHJlc291cmNlIGlzIGluIEFMQVJNXG4gICAqL1xuICBJTlNVRkZJQ0lFTlRfREFUQSA9ICdJTlNVRkZJQ0lFTlRfREFUQScsXG5cbn1cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBzdXBwb3J0ZWQgQ29tcG9zaXRlIEFsYXJtcyBvcGVyYXRvcnMuXG4gKi9cbmVudW0gT3BlcmF0b3Ige1xuXG4gIEFORCA9ICdBTkQnLFxuICBPUiA9ICdPUicsXG4gIE5PVCA9ICdOT1QnLFxuXG59XG5cbi8qKlxuICogQ2xhc3Mgd2l0aCBzdGF0aWMgZnVuY3Rpb25zIHRvIGJ1aWxkIEFsYXJtUnVsZSBmb3IgQ29tcG9zaXRlIEFsYXJtcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFsYXJtUnVsZSB7XG5cbiAgLyoqXG4gICAqIGZ1bmN0aW9uIHRvIGpvaW4gYWxsIHByb3ZpZGVkIEFsYXJtUnVsZXMgd2l0aCBBTkQgb3BlcmF0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBvcGVyYW5kcyBJQWxhcm1SdWxlcyB0byBiZSBqb2luZWQgd2l0aCBBTkQgb3BlcmF0b3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFsbE9mKC4uLm9wZXJhbmRzOiBJQWxhcm1SdWxlW10pOiBJQWxhcm1SdWxlIHtcbiAgICByZXR1cm4gdGhpcy5jb25jYXQoT3BlcmF0b3IuQU5ELCAuLi5vcGVyYW5kcyk7XG4gIH1cblxuICAvKipcbiAgICogZnVuY3Rpb24gdG8gam9pbiBhbGwgcHJvdmlkZWQgQWxhcm1SdWxlcyB3aXRoIE9SIG9wZXJhdG9yLlxuICAgKlxuICAgKiBAcGFyYW0gb3BlcmFuZHMgSUFsYXJtUnVsZXMgdG8gYmUgam9pbmVkIHdpdGggT1Igb3BlcmF0b3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFueU9mKC4uLm9wZXJhbmRzOiBJQWxhcm1SdWxlW10pOiBJQWxhcm1SdWxlIHtcbiAgICByZXR1cm4gdGhpcy5jb25jYXQoT3BlcmF0b3IuT1IsIC4uLm9wZXJhbmRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBmdW5jdGlvbiB0byB3cmFwIHByb3ZpZGVkIEFsYXJtUnVsZSBpbiBOT1Qgb3BlcmF0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBvcGVyYW5kIElBbGFybVJ1bGUgdG8gYmUgd3JhcHBlZCBpbiBOT1Qgb3BlcmF0b3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG5vdChvcGVyYW5kOiBJQWxhcm1SdWxlKTogSUFsYXJtUnVsZSB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBpbXBsZW1lbnRzIElBbGFybVJ1bGUge1xuICAgICAgcHVibGljIHJlbmRlckFsYXJtUnVsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYChOT1QgKCR7b3BlcmFuZC5yZW5kZXJBbGFybVJ1bGUoKX0pKWA7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBmdW5jdGlvbiB0byBidWlsZCBUUlVFL0ZBTFNFIGludGVudCBmb3IgUnVsZSBFeHByZXNzaW9uLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgYm9vbGVhbiB2YWx1ZSB0byBiZSB1c2VkIGluIHJ1bGUgZXhwcmVzc2lvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUJvb2xlYW4odmFsdWU6IGJvb2xlYW4pOiBJQWxhcm1SdWxlIHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGltcGxlbWVudHMgSUFsYXJtUnVsZSB7XG4gICAgICBwdWJsaWMgcmVuZGVyQWxhcm1SdWxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtTdHJpbmcodmFsdWUpLnRvVXBwZXJDYXNlKCl9YDtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIGZ1bmN0aW9uIHRvIGJ1aWxkIFJ1bGUgRXhwcmVzc2lvbiBmb3IgZ2l2ZW4gSUFsYXJtIGFuZCBBbGFybVN0YXRlLlxuICAgKlxuICAgKiBAcGFyYW0gYWxhcm0gSUFsYXJtIHRvIGJlIHVzZWQgaW4gUnVsZSBFeHByZXNzaW9uLlxuICAgKiBAcGFyYW0gYWxhcm1TdGF0ZSBBbGFybVN0YXRlIHRvIGJlIHVzZWQgaW4gUnVsZSBFeHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQWxhcm0oYWxhcm06IElBbGFybSwgYWxhcm1TdGF0ZTogQWxhcm1TdGF0ZSk6IElBbGFybVJ1bGUge1xuICAgIHJldHVybiBuZXcgY2xhc3MgaW1wbGVtZW50cyBJQWxhcm1SdWxlIHtcbiAgICAgIHB1YmxpYyByZW5kZXJBbGFybVJ1bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2FsYXJtU3RhdGV9KFwiJHthbGFybS5hbGFybUFybn1cIilgO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogZnVuY3Rpb24gdG8gYnVpbGQgUnVsZSBFeHByZXNzaW9uIGZvciBnaXZlbiBBbGFybSBSdWxlIHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIGFsYXJtUnVsZSBzdHJpbmcgdG8gYmUgdXNlZCBpbiBSdWxlIEV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdHJpbmcoYWxhcm1SdWxlOiBzdHJpbmcpOiBJQWxhcm1SdWxlIHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGltcGxlbWVudHMgSUFsYXJtUnVsZSB7XG4gICAgICBwdWJsaWMgcmVuZGVyQWxhcm1SdWxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBhbGFybVJ1bGU7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNvbmNhdChvcGVyYXRvcjogT3BlcmF0b3IsIC4uLm9wZXJhbmRzOiBJQWxhcm1SdWxlW10pOiBJQWxhcm1SdWxlIHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGltcGxlbWVudHMgSUFsYXJtUnVsZSB7XG4gICAgICBwdWJsaWMgcmVuZGVyQWxhcm1SdWxlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBvcGVyYW5kc1xuICAgICAgICAgIC5tYXAob3BlcmFuZCA9PiBgJHtvcGVyYW5kLnJlbmRlckFsYXJtUnVsZSgpfWApXG4gICAgICAgICAgLmpvaW4oYCAke29wZXJhdG9yfSBgKTtcbiAgICAgICAgcmV0dXJuIGAoJHtleHByZXNzaW9ufSlgO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
\No newline at end of file