@rio-cloud/cdk-v2-constructs 4.18.0 → 4.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,66 @@
1
+ export declare enum MonitorType {
2
+ /**
3
+ * Monitor id for application load balancer rejected connections
4
+ */
5
+ REJECTED_CONNECTION = "RejectedConnection",
6
+ /**
7
+ * 5xx error codes for cloudfront and application load balancer
8
+ */
9
+ HTTP_CODE5XX = "HttpCode5xx",
10
+ /**
11
+ * Cache hit rate for document db
12
+ */
13
+ CACHE_HIT_RATE = "cacheHitRate",
14
+ /**
15
+ * CPU Utilization for document db, ECS and RDS
16
+ */
17
+ CPU_UTILIZATION = "CpuUtilization",
18
+ /**
19
+ * Swap usage for document DB
20
+ */
21
+ SWAP_USAGE = "SwapUsageTooHigh",
22
+ /**
23
+ * Free local storage for document DB
24
+ */
25
+ FREE_LOCAL_STORAGE = "FreeLocalStorageTooLow",
26
+ /**
27
+ * Read throttle events for dynamodb
28
+ */
29
+ READ_THROTTLE_EVENTS = "ReadThrottleEvents",
30
+ /**
31
+ * Write throttle events for dynamodb
32
+ */
33
+ WRITE_THROTTLE_EVENTS = "WriteThrottleEvents",
34
+ /**
35
+ * Throttle request evebts for dynamodb
36
+ */
37
+ THROTTLED_REQUESTS_EVENTS = "ThrottledRequestsEvents",
38
+ /**
39
+ * Memory utilization for ECS
40
+ */
41
+ MEMORY_UTILIZATION = "MemoryUtilization",
42
+ /**
43
+ * Log error monitor for ECS and lambda
44
+ */
45
+ LOG_ERROR_MONITOR = "LogErrorMonitor",
46
+ /**
47
+ * Inovation errors with lambda
48
+ */
49
+ ERRORS = "Errors",
50
+ /**
51
+ * Throttle metrics for lambda
52
+ */
53
+ THROTTLES = "Throttles",
54
+ /**
55
+ * Runtime duration metrics for lambda
56
+ */
57
+ DURATION = "Duration",
58
+ /**
59
+ * Free memory for Document DB and RDS
60
+ */
61
+ FREEABLE_MEMORY = "FreeableMemory",
62
+ /**
63
+ * Connection error metrics for Application load balancer target group
64
+ */
65
+ CONNECTION_ERROR = "ConnectionError"
66
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MonitorType = void 0;
4
+ var MonitorType;
5
+ (function (MonitorType) {
6
+ /**
7
+ * Monitor id for application load balancer rejected connections
8
+ */
9
+ MonitorType["REJECTED_CONNECTION"] = "RejectedConnection";
10
+ /**
11
+ * 5xx error codes for cloudfront and application load balancer
12
+ */
13
+ MonitorType["HTTP_CODE5XX"] = "HttpCode5xx";
14
+ /**
15
+ * Cache hit rate for document db
16
+ */
17
+ MonitorType["CACHE_HIT_RATE"] = "cacheHitRate";
18
+ /**
19
+ * CPU Utilization for document db, ECS and RDS
20
+ */
21
+ MonitorType["CPU_UTILIZATION"] = "CpuUtilization";
22
+ /**
23
+ * Swap usage for document DB
24
+ */
25
+ MonitorType["SWAP_USAGE"] = "SwapUsageTooHigh";
26
+ /**
27
+ * Free local storage for document DB
28
+ */
29
+ MonitorType["FREE_LOCAL_STORAGE"] = "FreeLocalStorageTooLow";
30
+ /**
31
+ * Read throttle events for dynamodb
32
+ */
33
+ MonitorType["READ_THROTTLE_EVENTS"] = "ReadThrottleEvents";
34
+ /**
35
+ * Write throttle events for dynamodb
36
+ */
37
+ MonitorType["WRITE_THROTTLE_EVENTS"] = "WriteThrottleEvents";
38
+ /**
39
+ * Throttle request evebts for dynamodb
40
+ */
41
+ MonitorType["THROTTLED_REQUESTS_EVENTS"] = "ThrottledRequestsEvents";
42
+ /**
43
+ * Memory utilization for ECS
44
+ */
45
+ MonitorType["MEMORY_UTILIZATION"] = "MemoryUtilization";
46
+ /**
47
+ * Log error monitor for ECS and lambda
48
+ */
49
+ MonitorType["LOG_ERROR_MONITOR"] = "LogErrorMonitor";
50
+ /**
51
+ * Inovation errors with lambda
52
+ */
53
+ MonitorType["ERRORS"] = "Errors";
54
+ /**
55
+ * Throttle metrics for lambda
56
+ */
57
+ MonitorType["THROTTLES"] = "Throttles";
58
+ /**
59
+ * Runtime duration metrics for lambda
60
+ */
61
+ MonitorType["DURATION"] = "Duration";
62
+ /**
63
+ * Free memory for Document DB and RDS
64
+ */
65
+ MonitorType["FREEABLE_MEMORY"] = "FreeableMemory";
66
+ /**
67
+ * Connection error metrics for Application load balancer target group
68
+ */
69
+ MonitorType["CONNECTION_ERROR"] = "ConnectionError";
70
+ })(MonitorType = exports.MonitorType || (exports.MonitorType = {}));
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvci10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dhdGNoZnVsL21vbml0b3ItdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLFdBaUZYO0FBakZELFdBQVksV0FBVztJQUVyQjs7T0FFRztJQUNILHlEQUEwQyxDQUFBO0lBRTFDOztPQUVHO0lBQ0gsMkNBQTRCLENBQUE7SUFFNUI7O09BRUc7SUFDSCw4Q0FBK0IsQ0FBQTtJQUUvQjs7T0FFRztJQUNILGlEQUFrQyxDQUFBO0lBRWxDOztPQUVHO0lBQ0gsOENBQStCLENBQUE7SUFFL0I7O09BRUc7SUFDSCw0REFBNkMsQ0FBQTtJQUU3Qzs7T0FFRztJQUNILDBEQUEyQyxDQUFBO0lBRTNDOztPQUVHO0lBQ0gsNERBQTZDLENBQUE7SUFFN0M7O09BRUc7SUFDSCxvRUFBcUQsQ0FBQTtJQUVyRDs7T0FFRztJQUNILHVEQUF3QyxDQUFBO0lBRXhDOztPQUVHO0lBQ0gsb0RBQXFDLENBQUE7SUFFckM7O09BRUc7SUFDSCxnQ0FBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILHNDQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsb0NBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCxpREFBa0MsQ0FBQTtJQUVsQzs7T0FFRztJQUNILG1EQUFvQyxDQUFBO0FBQ3RDLENBQUMsRUFqRlcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFpRnRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTW9uaXRvclR5cGUge1xuXG4gIC8qKlxuICAgKiBNb25pdG9yIGlkIGZvciBhcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VyIHJlamVjdGVkIGNvbm5lY3Rpb25zXG4gICAqL1xuICBSRUpFQ1RFRF9DT05ORUNUSU9OID0gJ1JlamVjdGVkQ29ubmVjdGlvbicsXG5cbiAgLyoqXG4gICAqIDV4eCBlcnJvciBjb2RlcyBmb3IgY2xvdWRmcm9udCBhbmQgYXBwbGljYXRpb24gbG9hZCBiYWxhbmNlclxuICAgKi9cbiAgSFRUUF9DT0RFNVhYID0gJ0h0dHBDb2RlNXh4JyxcblxuICAvKipcbiAgICogQ2FjaGUgaGl0IHJhdGUgZm9yIGRvY3VtZW50IGRiXG4gICAqL1xuICBDQUNIRV9ISVRfUkFURSA9ICdjYWNoZUhpdFJhdGUnLFxuXG4gIC8qKlxuICAgKiBDUFUgVXRpbGl6YXRpb24gZm9yIGRvY3VtZW50IGRiLCBFQ1MgYW5kIFJEU1xuICAgKi9cbiAgQ1BVX1VUSUxJWkFUSU9OID0gJ0NwdVV0aWxpemF0aW9uJyxcblxuICAvKipcbiAgICogU3dhcCB1c2FnZSBmb3IgZG9jdW1lbnQgREJcbiAgICovXG4gIFNXQVBfVVNBR0UgPSAnU3dhcFVzYWdlVG9vSGlnaCcsXG5cbiAgLyoqXG4gICAqIEZyZWUgbG9jYWwgc3RvcmFnZSBmb3IgZG9jdW1lbnQgREJcbiAgICovXG4gIEZSRUVfTE9DQUxfU1RPUkFHRSA9ICdGcmVlTG9jYWxTdG9yYWdlVG9vTG93JyxcblxuICAvKipcbiAgICogUmVhZCB0aHJvdHRsZSBldmVudHMgZm9yIGR5bmFtb2RiXG4gICAqL1xuICBSRUFEX1RIUk9UVExFX0VWRU5UUyA9ICdSZWFkVGhyb3R0bGVFdmVudHMnLFxuXG4gIC8qKlxuICAgKiBXcml0ZSB0aHJvdHRsZSBldmVudHMgZm9yIGR5bmFtb2RiXG4gICAqL1xuICBXUklURV9USFJPVFRMRV9FVkVOVFMgPSAnV3JpdGVUaHJvdHRsZUV2ZW50cycsXG5cbiAgLyoqXG4gICAqIFRocm90dGxlIHJlcXVlc3QgZXZlYnRzIGZvciBkeW5hbW9kYlxuICAgKi9cbiAgVEhST1RUTEVEX1JFUVVFU1RTX0VWRU5UUyA9ICdUaHJvdHRsZWRSZXF1ZXN0c0V2ZW50cycsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSB1dGlsaXphdGlvbiBmb3IgRUNTXG4gICAqL1xuICBNRU1PUllfVVRJTElaQVRJT04gPSAnTWVtb3J5VXRpbGl6YXRpb24nLFxuXG4gIC8qKlxuICAgKiBMb2cgZXJyb3IgbW9uaXRvciBmb3IgRUNTIGFuZCBsYW1iZGFcbiAgICovXG4gIExPR19FUlJPUl9NT05JVE9SID0gJ0xvZ0Vycm9yTW9uaXRvcicsXG5cbiAgLyoqXG4gICAqIElub3ZhdGlvbiBlcnJvcnMgd2l0aCBsYW1iZGFcbiAgICovXG4gIEVSUk9SUyA9ICdFcnJvcnMnLFxuXG4gIC8qKlxuICAgKiBUaHJvdHRsZSBtZXRyaWNzIGZvciBsYW1iZGFcbiAgICovXG4gIFRIUk9UVExFUyA9ICdUaHJvdHRsZXMnLFxuXG4gIC8qKlxuICAgKiBSdW50aW1lIGR1cmF0aW9uIG1ldHJpY3MgZm9yIGxhbWJkYVxuICAgKi9cbiAgRFVSQVRJT04gPSAnRHVyYXRpb24nLFxuXG4gIC8qKlxuICAgKiBGcmVlIG1lbW9yeSBmb3IgRG9jdW1lbnQgREIgYW5kIFJEU1xuICAgKi9cbiAgRlJFRUFCTEVfTUVNT1JZID0gJ0ZyZWVhYmxlTWVtb3J5JyxcblxuICAvKipcbiAgICogQ29ubmVjdGlvbiBlcnJvciBtZXRyaWNzIGZvciBBcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VyIHRhcmdldCBncm91cFxuICAgKi9cbiAgQ09OTkVDVElPTl9FUlJPUiA9ICdDb25uZWN0aW9uRXJyb3InLFxufSJdfQ==
@@ -6,6 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const aws_cdk_lib_1 = require("aws-cdk-lib");
7
7
  const cw = require("aws-cdk-lib/aws-cloudwatch");
8
8
  const constructs_1 = require("constructs");
9
+ const monitor_type_1 = require("./monitor-type");
9
10
  /**
10
11
  * A Construct which creates the following alarms for database clusters:
11
12
  *
@@ -17,8 +18,8 @@ class WatchDatabaseCluster extends constructs_1.Construct {
17
18
  super(scope, id);
18
19
  this.watchful = props.watchful;
19
20
  this.rdsCluster = props.databaseCluster;
20
- this.watchful.createAlarm(this, 'CPUUtilization', this.createCPUUtilizationMonitor(props.cpuUtilizationThreshold));
21
- this.watchful.createAlarm(this, 'FreeableMemory', this.createFreeableMemoryMonitor(props.freeableMemoryThreshold));
21
+ this.watchful.createAlarm(this, monitor_type_1.MonitorType.CPU_UTILIZATION, this.createCPUUtilizationMonitor(props.cpuUtilizationThreshold));
22
+ this.watchful.createAlarm(this, monitor_type_1.MonitorType.FREEABLE_MEMORY, this.createFreeableMemoryMonitor(props.freeableMemoryThreshold));
22
23
  }
23
24
  createCPUUtilizationMonitor(cpuUtilizationThreshold = 80) {
24
25
  const cpuUtilizationMetric = this.rdsCluster.metricCPUUtilization().with({ period: aws_cdk_lib_1.Duration.seconds(60) });
@@ -44,4 +45,4 @@ class WatchDatabaseCluster extends constructs_1.Construct {
44
45
  exports.WatchDatabaseCluster = WatchDatabaseCluster;
45
46
  _a = JSII_RTTI_SYMBOL_1;
46
47
  WatchDatabaseCluster[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.WatchDatabaseCluster", version: "0.0.0" };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dhdGNoZnVsL3Jkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF1QztBQUN2QyxpREFBaUQ7QUFFakQsMkNBQXVDO0FBdUN2Qzs7Ozs7R0FLRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsc0JBQVM7SUFJakQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFnQztRQUN4RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFFeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1FBQ25ILElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRU8sMkJBQTJCLENBQUMsdUJBQXVCLEdBQUcsRUFBRTtRQUM5RCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNHLE9BQU87WUFDTCxNQUFNLEVBQUUsb0JBQW9CO1lBQzVCLGdCQUFnQixFQUFFLHdCQUF3Qix1QkFBdUIsbUJBQW1CO1lBQ3BGLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0I7WUFDaEUsU0FBUyxFQUFFLHVCQUF1QjtZQUNsQyxpQkFBaUIsRUFBRSxFQUFFO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBRU8sMkJBQTJCLENBQUMsdUJBQXVCLEdBQUcsUUFBUTtRQUNwRSxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNHLE9BQU87WUFDTCxNQUFNLEVBQUUsb0JBQW9CO1lBQzVCLGdCQUFnQixFQUFFLHlCQUF5Qix1QkFBdUIsa0JBQWtCO1lBQ3BGLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUI7WUFDN0QsU0FBUyxFQUFFLHVCQUF1QjtZQUNsQyxpQkFBaUIsRUFBRSxFQUFFO1NBQ3RCLENBQUM7SUFDSixDQUFDOztBQWxDSCxvREFtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGN3IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCAqIGFzIHJkcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtcmRzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTWV0cmljQWxhcm1Qcm9wcyB9IGZyb20gJy4vbWV0cmljLWFsYXJtJztcbmltcG9ydCB7IElXYXRjaGZ1bCB9IGZyb20gJy4vd2F0Y2hmdWwnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGRlZmluaW5nIGFsYXJtcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYXRjaERhdGFiYXNlQ2x1c3Rlck9wdGlvbnMge1xuICAvKipcbiAgICAgKiBNYXggQ1BVIHV0aWxpemF0aW9uIHRocmVzaG9sZCBpbiBwZXJjZW50XG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDgwXG4gICAgICovXG4gIHJlYWRvbmx5IGNwdVV0aWxpemF0aW9uVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgICAqIE1heCBmcmVlYWJsZSBtZW1vcnkgdGhyZXNob2xkIGluIEJ5dGVcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgNjQwMDAwMDBcbiAgICAgKi9cbiAgcmVhZG9ubHkgZnJlZWFibGVNZW1vcnlUaHJlc2hvbGQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBXYXRjaERhdGFiYXNlQ2x1c3RlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoRGF0YWJhc2VDbHVzdGVyUHJvcHMgZXh0ZW5kcyBXYXRjaERhdGFiYXNlQ2x1c3Rlck9wdGlvbnMge1xuICAvKipcbiAgICAgKiBUaGUgcmVmZXJlbmNlIHRvIElXYXRjaGZ1bCBjbGFzcy4gVXNlZCBpbnRlcm5hbGx5LlxuICAgICAqL1xuICByZWFkb25seSB3YXRjaGZ1bDogSVdhdGNoZnVsO1xuXG4gIC8qKlxuICAgICAqIFRoZSBkYXRhYmFzZSBjbHVzdGVyIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQuXG4gICAgICogW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VDbHVzdGVyOiByZHMuRGF0YWJhc2VDbHVzdGVyO1xufVxuXG4vKipcbiAqIEEgQ29uc3RydWN0IHdoaWNoIGNyZWF0ZXMgdGhlIGZvbGxvd2luZyBhbGFybXMgZm9yIGRhdGFiYXNlIGNsdXN0ZXJzOlxuICpcbiAqIC0gY3B1IHV0aWxpemF0aW9uXG4gKiAtIGZyZWVhYmxlIG1lbW9yeVxuICovXG5leHBvcnQgY2xhc3MgV2F0Y2hEYXRhYmFzZUNsdXN0ZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IHdhdGNoZnVsOiBJV2F0Y2hmdWw7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmRzQ2x1c3RlcjogcmRzLkRhdGFiYXNlQ2x1c3RlcjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV2F0Y2hEYXRhYmFzZUNsdXN0ZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLndhdGNoZnVsID0gcHJvcHMud2F0Y2hmdWw7XG4gICAgdGhpcy5yZHNDbHVzdGVyID0gcHJvcHMuZGF0YWJhc2VDbHVzdGVyO1xuXG4gICAgdGhpcy53YXRjaGZ1bC5jcmVhdGVBbGFybSh0aGlzLCAnQ1BVVXRpbGl6YXRpb24nLCB0aGlzLmNyZWF0ZUNQVVV0aWxpemF0aW9uTW9uaXRvcihwcm9wcy5jcHVVdGlsaXphdGlvblRocmVzaG9sZCkpO1xuICAgIHRoaXMud2F0Y2hmdWwuY3JlYXRlQWxhcm0odGhpcywgJ0ZyZWVhYmxlTWVtb3J5JywgdGhpcy5jcmVhdGVGcmVlYWJsZU1lbW9yeU1vbml0b3IocHJvcHMuZnJlZWFibGVNZW1vcnlUaHJlc2hvbGQpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ1BVVXRpbGl6YXRpb25Nb25pdG9yKGNwdVV0aWxpemF0aW9uVGhyZXNob2xkID0gODApOiBNZXRyaWNBbGFybVByb3BzIHtcbiAgICBjb25zdCBjcHVVdGlsaXphdGlvbk1ldHJpYyA9IHRoaXMucmRzQ2x1c3Rlci5tZXRyaWNDUFVVdGlsaXphdGlvbigpLndpdGgoeyBwZXJpb2Q6IER1cmF0aW9uLnNlY29uZHMoNjApIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRyaWM6IGNwdVV0aWxpemF0aW9uTWV0cmljLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYENQVSBVdGlsaXphdGlvbiBvdmVyICR7Y3B1VXRpbGl6YXRpb25UaHJlc2hvbGR9JSBmb3IgMTAgbWludXRlcy5gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjdy5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogY3B1VXRpbGl6YXRpb25UaHJlc2hvbGQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMTAsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRnJlZWFibGVNZW1vcnlNb25pdG9yKGZyZWVhYmxlTWVtb3J5VGhyZXNob2xkID0gNjQwMDAwMDApOiBNZXRyaWNBbGFybVByb3BzIHtcbiAgICBjb25zdCBmcmVlYWJsZU1lbW9yeU1ldHJpYyA9IHRoaXMucmRzQ2x1c3Rlci5tZXRyaWNGcmVlYWJsZU1lbW9yeSgpLndpdGgoeyBwZXJpb2Q6IER1cmF0aW9uLnNlY29uZHMoNjApIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRyaWM6IGZyZWVhYmxlTWVtb3J5TWV0cmljLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYEZyZWVhYmxlIG1lbW9yeSB1bmRlciAke2ZyZWVhYmxlTWVtb3J5VGhyZXNob2xkfSBmb3IgMTAgbWludXRlcy5gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjdy5Db21wYXJpc29uT3BlcmF0b3IuTEVTU19USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogZnJlZWFibGVNZW1vcnlUaHJlc2hvbGQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMTAsXG4gICAgfTtcbiAgfVxufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dhdGNoZnVsL3Jkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF1QztBQUN2QyxpREFBaUQ7QUFFakQsMkNBQXVDO0FBRXZDLGlEQUE2QztBQXNDN0M7Ozs7O0dBS0c7QUFDSCxNQUFhLG9CQUFxQixTQUFRLHNCQUFTO0lBSWpELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZ0M7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO1FBRXhDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSwwQkFBVyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztRQUM5SCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsMEJBQVcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7SUFDaEksQ0FBQztJQUVPLDJCQUEyQixDQUFDLHVCQUF1QixHQUFHLEVBQUU7UUFDOUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzRyxPQUFPO1lBQ0wsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixnQkFBZ0IsRUFBRSx3QkFBd0IsdUJBQXVCLG1CQUFtQjtZQUNwRixrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCO1lBQ2hFLFNBQVMsRUFBRSx1QkFBdUI7WUFDbEMsaUJBQWlCLEVBQUUsRUFBRTtTQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVPLDJCQUEyQixDQUFDLHVCQUF1QixHQUFHLFFBQVE7UUFDcEUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzRyxPQUFPO1lBQ0wsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixnQkFBZ0IsRUFBRSx5QkFBeUIsdUJBQXVCLGtCQUFrQjtZQUNwRixrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CO1lBQzdELFNBQVMsRUFBRSx1QkFBdUI7WUFDbEMsaUJBQWlCLEVBQUUsRUFBRTtTQUN0QixDQUFDO0lBQ0osQ0FBQzs7QUFsQ0gsb0RBbUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjdyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyByZHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJkcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IE1ldHJpY0FsYXJtUHJvcHMgfSBmcm9tICcuL21ldHJpYy1hbGFybSc7XG5pbXBvcnQgeyBNb25pdG9yVHlwZSB9IGZyb20gJy4vbW9uaXRvci10eXBlJztcbmltcG9ydCB7IElXYXRjaGZ1bCB9IGZyb20gJy4vd2F0Y2hmdWwnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGRlZmluaW5nIGFsYXJtcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYXRjaERhdGFiYXNlQ2x1c3Rlck9wdGlvbnMge1xuICAvKipcbiAgICAgKiBNYXggQ1BVIHV0aWxpemF0aW9uIHRocmVzaG9sZCBpbiBwZXJjZW50XG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDgwXG4gICAgICovXG4gIHJlYWRvbmx5IGNwdVV0aWxpemF0aW9uVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgICAqIE1heCBmcmVlYWJsZSBtZW1vcnkgdGhyZXNob2xkIGluIEJ5dGVcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgNjQwMDAwMDBcbiAgICAgKi9cbiAgcmVhZG9ubHkgZnJlZWFibGVNZW1vcnlUaHJlc2hvbGQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBXYXRjaERhdGFiYXNlQ2x1c3RlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoRGF0YWJhc2VDbHVzdGVyUHJvcHMgZXh0ZW5kcyBXYXRjaERhdGFiYXNlQ2x1c3Rlck9wdGlvbnMge1xuICAvKipcbiAgICAgKiBUaGUgcmVmZXJlbmNlIHRvIElXYXRjaGZ1bCBjbGFzcy4gVXNlZCBpbnRlcm5hbGx5LlxuICAgICAqL1xuICByZWFkb25seSB3YXRjaGZ1bDogSVdhdGNoZnVsO1xuXG4gIC8qKlxuICAgICAqIFRoZSBkYXRhYmFzZSBjbHVzdGVyIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQuXG4gICAgICogW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VDbHVzdGVyOiByZHMuRGF0YWJhc2VDbHVzdGVyO1xufVxuXG4vKipcbiAqIEEgQ29uc3RydWN0IHdoaWNoIGNyZWF0ZXMgdGhlIGZvbGxvd2luZyBhbGFybXMgZm9yIGRhdGFiYXNlIGNsdXN0ZXJzOlxuICpcbiAqIC0gY3B1IHV0aWxpemF0aW9uXG4gKiAtIGZyZWVhYmxlIG1lbW9yeVxuICovXG5leHBvcnQgY2xhc3MgV2F0Y2hEYXRhYmFzZUNsdXN0ZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IHdhdGNoZnVsOiBJV2F0Y2hmdWw7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmRzQ2x1c3RlcjogcmRzLkRhdGFiYXNlQ2x1c3RlcjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV2F0Y2hEYXRhYmFzZUNsdXN0ZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLndhdGNoZnVsID0gcHJvcHMud2F0Y2hmdWw7XG4gICAgdGhpcy5yZHNDbHVzdGVyID0gcHJvcHMuZGF0YWJhc2VDbHVzdGVyO1xuXG4gICAgdGhpcy53YXRjaGZ1bC5jcmVhdGVBbGFybSh0aGlzLCBNb25pdG9yVHlwZS5DUFVfVVRJTElaQVRJT04sIHRoaXMuY3JlYXRlQ1BVVXRpbGl6YXRpb25Nb25pdG9yKHByb3BzLmNwdVV0aWxpemF0aW9uVGhyZXNob2xkKSk7XG4gICAgdGhpcy53YXRjaGZ1bC5jcmVhdGVBbGFybSh0aGlzLCBNb25pdG9yVHlwZS5GUkVFQUJMRV9NRU1PUlksIHRoaXMuY3JlYXRlRnJlZWFibGVNZW1vcnlNb25pdG9yKHByb3BzLmZyZWVhYmxlTWVtb3J5VGhyZXNob2xkKSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNQVVV0aWxpemF0aW9uTW9uaXRvcihjcHVVdGlsaXphdGlvblRocmVzaG9sZCA9IDgwKTogTWV0cmljQWxhcm1Qcm9wcyB7XG4gICAgY29uc3QgY3B1VXRpbGl6YXRpb25NZXRyaWMgPSB0aGlzLnJkc0NsdXN0ZXIubWV0cmljQ1BVVXRpbGl6YXRpb24oKS53aXRoKHsgcGVyaW9kOiBEdXJhdGlvbi5zZWNvbmRzKDYwKSB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljOiBjcHVVdGlsaXphdGlvbk1ldHJpYyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBDUFUgVXRpbGl6YXRpb24gb3ZlciAke2NwdVV0aWxpemF0aW9uVGhyZXNob2xkfSUgZm9yIDEwIG1pbnV0ZXMuYCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY3cuQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IGNwdVV0aWxpemF0aW9uVGhyZXNob2xkLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEwLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZyZWVhYmxlTWVtb3J5TW9uaXRvcihmcmVlYWJsZU1lbW9yeVRocmVzaG9sZCA9IDY0MDAwMDAwKTogTWV0cmljQWxhcm1Qcm9wcyB7XG4gICAgY29uc3QgZnJlZWFibGVNZW1vcnlNZXRyaWMgPSB0aGlzLnJkc0NsdXN0ZXIubWV0cmljRnJlZWFibGVNZW1vcnkoKS53aXRoKHsgcGVyaW9kOiBEdXJhdGlvbi5zZWNvbmRzKDYwKSB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljOiBmcmVlYWJsZU1lbW9yeU1ldHJpYyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBGcmVlYWJsZSBtZW1vcnkgdW5kZXIgJHtmcmVlYWJsZU1lbW9yeVRocmVzaG9sZH0gZm9yIDEwIG1pbnV0ZXMuYCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY3cuQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IGZyZWVhYmxlTWVtb3J5VGhyZXNob2xkLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEwLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -7,6 +7,7 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
7
7
  const cw = require("aws-cdk-lib/aws-cloudwatch");
8
8
  const elbv2 = require("aws-cdk-lib/aws-elasticloadbalancingv2");
9
9
  const constructs_1 = require("constructs");
10
+ const __1 = require("..");
10
11
  /**
11
12
  * A Construct which creates the following alarms for application target groups:
12
13
  *
@@ -18,8 +19,8 @@ class WatchApplicationTargetGroup extends constructs_1.Construct {
18
19
  super(scope, id);
19
20
  this.watchful = props.watchful;
20
21
  this.atg = props.atg;
21
- this.watchful.createAlarm(this, 'ConnectionError', this.createTargetConnectionErrorMonitor(props.targetConnectionErrorPerMinuteThreshold));
22
- this.watchful.createAlarm(this, 'HttpCode5xx', this.createHttpCode5xxMonitor(props.http5xxPerMinuteThreshold));
22
+ this.watchful.createAlarm(this, __1.MonitorType.CONNECTION_ERROR, this.createTargetConnectionErrorMonitor(props.targetConnectionErrorPerMinuteThreshold));
23
+ this.watchful.createAlarm(this, __1.MonitorType.HTTP_CODE5XX, this.createHttpCode5xxMonitor(props.http5xxPerMinuteThreshold));
23
24
  }
24
25
  createTargetConnectionErrorMonitor(targetConnectionErrorPerMinuteThreshold = 0) {
25
26
  const atg = this.atg;
@@ -51,4 +52,4 @@ class WatchApplicationTargetGroup extends constructs_1.Construct {
51
52
  exports.WatchApplicationTargetGroup = WatchApplicationTargetGroup;
52
53
  _a = JSII_RTTI_SYMBOL_1;
53
54
  WatchApplicationTargetGroup[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.WatchApplicationTargetGroup", version: "0.0.0" };
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0Z3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hmdWwvdGFyZ2V0Z3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBdUM7QUFDdkMsaURBQWlEO0FBQ2pELGdFQUFnRTtBQUNoRSwyQ0FBdUM7QUF1Q3ZDOzs7OztHQUtHO0FBQ0gsTUFBYSwyQkFBNEIsU0FBUSxzQkFBUztJQUl4RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVDO1FBQy9FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUVyQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQzVCLGlCQUFpQixFQUNqQixJQUFJLENBQUMsa0NBQWtDLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQ3ZGLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQzVCLGFBQWEsRUFDYixJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQy9ELENBQUM7SUFDSixDQUFDO0lBRU8sa0NBQWtDLENBQUMsdUNBQXVDLEdBQUcsQ0FBQztRQUNwRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3JCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckcsT0FBTztZQUNMLE1BQU0sRUFBRSxjQUFjO1lBQ3RCLGdCQUFnQixFQUFFLFFBQVEsdUNBQXVDLHNDQUFzQztZQUN2RyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCO1lBQ2hFLFNBQVMsRUFBRSx1Q0FBdUM7WUFDbEQsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWE7WUFDbkQsaUJBQWlCLEVBQUUsQ0FBQztTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVPLHdCQUF3QixDQUFDLHlCQUF5QixHQUFHLENBQUM7UUFDNUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNyQixNQUFNLGFBQWEsR0FBRyxHQUFHO2FBQ3RCLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7YUFDM0QsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQyxPQUFPO1lBQ0wsTUFBTSxFQUFFLGFBQWE7WUFDckIsZ0JBQWdCLEVBQUUsUUFBUSx5QkFBeUIsMkNBQTJDO1lBQzlGLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0I7WUFDaEUsU0FBUyxFQUFFLHlCQUF5QjtZQUNwQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsYUFBYTtZQUNuRCxpQkFBaUIsRUFBRSxDQUFDO1NBQ3JCLENBQUM7SUFDSixDQUFDOztBQTlDSCxrRUErQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGN3IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCAqIGFzIGVsYnYyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTWV0cmljQWxhcm1Qcm9wcyB9IGZyb20gJy4vbWV0cmljLWFsYXJtJztcbmltcG9ydCB7IElXYXRjaGZ1bCB9IGZyb20gJy4vd2F0Y2hmdWwnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGRlZmluaW5nIGFsYXJtcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYXRjaEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXBPcHRpb25zIHtcbiAgLyoqXG4gICAgICogTnVtYmVyIG9mIGFsbG93ZWQgdGFyZ2V0IGNvbm5lY3Rpb24gZXJyb3JzIHBlciBtaW51dGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDBcbiAgICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0Q29ubmVjdGlvbkVycm9yUGVyTWludXRlVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgICAqIE51bWJlciBvZiBhbGxvd2VkIEhUVFAgNXh4IHJlcXVlc3RzIHBlciBtaW51dGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDBcbiAgICAgKi9cbiAgcmVhZG9ubHkgaHR0cDV4eFBlck1pbnV0ZVRocmVzaG9sZD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cFByb3BzIGV4dGVuZHMgV2F0Y2hBcHBsaWNhdGlvblRhcmdldEdyb3VwT3B0aW9ucyB7XG4gIC8qKlxuICAgICAqIFRoZSByZWZlcmVuY2UgdG8gSVdhdGNoZnVsIGNsYXNzLiBVc2VkIGludGVybmFsbHkuXG4gICAgICovXG4gIHJlYWRvbmx5IHdhdGNoZnVsOiBJV2F0Y2hmdWw7XG5cbiAgLyoqXG4gICAgICogVGhlIGFwcGxpY2F0aW9uIHRhcmdldCBncm91cCB0aGF0IHNob3VsZCBiZSB3YXRjaGVkLlxuICAgICAqIFtkaXNhYmxlLWF3c2xpbnQ6cmVmLXZpYS1pbnRlcmZhY2VdXG4gICAgICovXG4gIHJlYWRvbmx5IGF0ZzogZWxidjIuQXBwbGljYXRpb25UYXJnZXRHcm91cDtcbn1cblxuLyoqXG4gKiBBIENvbnN0cnVjdCB3aGljaCBjcmVhdGVzIHRoZSBmb2xsb3dpbmcgYWxhcm1zIGZvciBhcHBsaWNhdGlvbiB0YXJnZXQgZ3JvdXBzOlxuICpcbiAqIC0gaHR0cC1jb2RlIDV4eFxuICogLSB0YXJnZXQgY29ubmVjdGlvbiBlcnJvcnNcbiAqL1xuZXhwb3J0IGNsYXNzIFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2F0Y2hmdWw6IElXYXRjaGZ1bDtcbiAgcHJpdmF0ZSByZWFkb25seSBhdGc6IGVsYnYyLkFwcGxpY2F0aW9uVGFyZ2V0R3JvdXA7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMud2F0Y2hmdWwgPSBwcm9wcy53YXRjaGZ1bDtcbiAgICB0aGlzLmF0ZyA9IHByb3BzLmF0ZztcblxuICAgIHRoaXMud2F0Y2hmdWwuY3JlYXRlQWxhcm0odGhpcyxcbiAgICAgICdDb25uZWN0aW9uRXJyb3InLFxuICAgICAgdGhpcy5jcmVhdGVUYXJnZXRDb25uZWN0aW9uRXJyb3JNb25pdG9yKHByb3BzLnRhcmdldENvbm5lY3Rpb25FcnJvclBlck1pbnV0ZVRocmVzaG9sZCksXG4gICAgKTtcbiAgICB0aGlzLndhdGNoZnVsLmNyZWF0ZUFsYXJtKHRoaXMsXG4gICAgICAnSHR0cENvZGU1eHgnLFxuICAgICAgdGhpcy5jcmVhdGVIdHRwQ29kZTV4eE1vbml0b3IocHJvcHMuaHR0cDV4eFBlck1pbnV0ZVRocmVzaG9sZCksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVGFyZ2V0Q29ubmVjdGlvbkVycm9yTW9uaXRvcih0YXJnZXRDb25uZWN0aW9uRXJyb3JQZXJNaW51dGVUaHJlc2hvbGQgPSAwKTogTWV0cmljQWxhcm1Qcm9wcyB7XG4gICAgY29uc3QgYXRnID0gdGhpcy5hdGc7XG4gICAgY29uc3QgcmVqZWN0ZWRNZXRyaWMgPSBhdGcubWV0cmljVGFyZ2V0Q29ubmVjdGlvbkVycm9yQ291bnQoKS53aXRoKHsgcGVyaW9kOiBEdXJhdGlvbi5zZWNvbmRzKDYwKSB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljOiByZWplY3RlZE1ldHJpYyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBPdmVyICR7dGFyZ2V0Q29ubmVjdGlvbkVycm9yUGVyTWludXRlVGhyZXNob2xkfSB0YXJnZXQgY29ubmVjdGlvbiBlcnJvcnMgcGVyIG1pbnV0ZWAsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGN3LkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiB0YXJnZXRDb25uZWN0aW9uRXJyb3JQZXJNaW51dGVUaHJlc2hvbGQsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjdy5UcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIdHRwQ29kZTV4eE1vbml0b3IoaHR0cDV4eFBlck1pbnV0ZVRocmVzaG9sZCA9IDApOiBNZXRyaWNBbGFybVByb3BzIHtcbiAgICBjb25zdCBhbGIgPSB0aGlzLmF0ZztcbiAgICBjb25zdCBodHRwNXh4TWV0cmljID0gYWxiXG4gICAgICAubWV0cmljSHR0cENvZGVUYXJnZXQoZWxidjIuSHR0cENvZGVUYXJnZXQuVEFSR0VUXzVYWF9DT1VOVClcbiAgICAgIC53aXRoKHsgcGVyaW9kOiBEdXJhdGlvbi5zZWNvbmRzKDYwKSB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljOiBodHRwNXh4TWV0cmljLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYE92ZXIgJHtodHRwNXh4UGVyTWludXRlVGhyZXNob2xkfSA1eHggc3RhdHVzIGNvZGVzIGZyb20gdGFyZ2V0cyBwZXIgbWludXRlYCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY3cuQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IGh0dHA1eHhQZXJNaW51dGVUaHJlc2hvbGQsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjdy5UcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICB9O1xuICB9XG59XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0Z3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hmdWwvdGFyZ2V0Z3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBdUM7QUFDdkMsaURBQWlEO0FBQ2pELGdFQUFnRTtBQUNoRSwyQ0FBdUM7QUFDdkMsMEJBQWlDO0FBdUNqQzs7Ozs7R0FLRztBQUNILE1BQWEsMkJBQTRCLFNBQVEsc0JBQVM7SUFJeEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QztRQUMvRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFFckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUM1QixlQUFXLENBQUMsZ0JBQWdCLEVBQzVCLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FDdkYsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFDNUIsZUFBVyxDQUFDLFlBQVksRUFDeEIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUMvRCxDQUFDO0lBQ0osQ0FBQztJQUVPLGtDQUFrQyxDQUFDLHVDQUF1QyxHQUFHLENBQUM7UUFDcEYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNyQixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JHLE9BQU87WUFDTCxNQUFNLEVBQUUsY0FBYztZQUN0QixnQkFBZ0IsRUFBRSxRQUFRLHVDQUF1QyxzQ0FBc0M7WUFDdkcsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQjtZQUNoRSxTQUFTLEVBQUUsdUNBQXVDO1lBQ2xELGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhO1lBQ25ELGlCQUFpQixFQUFFLENBQUM7U0FDckIsQ0FBQztJQUNKLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyx5QkFBeUIsR0FBRyxDQUFDO1FBQzVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDckIsTUFBTSxhQUFhLEdBQUcsR0FBRzthQUN0QixvQkFBb0IsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDO2FBQzNELElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsT0FBTztZQUNMLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLGdCQUFnQixFQUFFLFFBQVEseUJBQXlCLDJDQUEyQztZQUM5RixrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCO1lBQ2hFLFNBQVMsRUFBRSx5QkFBeUI7WUFDcEMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWE7WUFDbkQsaUJBQWlCLEVBQUUsQ0FBQztTQUNyQixDQUFDO0lBQ0osQ0FBQzs7QUE5Q0gsa0VBK0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjdyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBlbGJ2MiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IE1vbml0b3JUeXBlIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHsgTWV0cmljQWxhcm1Qcm9wcyB9IGZyb20gJy4vbWV0cmljLWFsYXJtJztcbmltcG9ydCB7IElXYXRjaGZ1bCB9IGZyb20gJy4vd2F0Y2hmdWwnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGRlZmluaW5nIGFsYXJtcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYXRjaEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXBPcHRpb25zIHtcbiAgLyoqXG4gICAgICogTnVtYmVyIG9mIGFsbG93ZWQgdGFyZ2V0IGNvbm5lY3Rpb24gZXJyb3JzIHBlciBtaW51dGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDBcbiAgICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0Q29ubmVjdGlvbkVycm9yUGVyTWludXRlVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgICAqIE51bWJlciBvZiBhbGxvd2VkIEhUVFAgNXh4IHJlcXVlc3RzIHBlciBtaW51dGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDBcbiAgICAgKi9cbiAgcmVhZG9ubHkgaHR0cDV4eFBlck1pbnV0ZVRocmVzaG9sZD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cFByb3BzIGV4dGVuZHMgV2F0Y2hBcHBsaWNhdGlvblRhcmdldEdyb3VwT3B0aW9ucyB7XG4gIC8qKlxuICAgICAqIFRoZSByZWZlcmVuY2UgdG8gSVdhdGNoZnVsIGNsYXNzLiBVc2VkIGludGVybmFsbHkuXG4gICAgICovXG4gIHJlYWRvbmx5IHdhdGNoZnVsOiBJV2F0Y2hmdWw7XG5cbiAgLyoqXG4gICAgICogVGhlIGFwcGxpY2F0aW9uIHRhcmdldCBncm91cCB0aGF0IHNob3VsZCBiZSB3YXRjaGVkLlxuICAgICAqIFtkaXNhYmxlLWF3c2xpbnQ6cmVmLXZpYS1pbnRlcmZhY2VdXG4gICAgICovXG4gIHJlYWRvbmx5IGF0ZzogZWxidjIuQXBwbGljYXRpb25UYXJnZXRHcm91cDtcbn1cblxuLyoqXG4gKiBBIENvbnN0cnVjdCB3aGljaCBjcmVhdGVzIHRoZSBmb2xsb3dpbmcgYWxhcm1zIGZvciBhcHBsaWNhdGlvbiB0YXJnZXQgZ3JvdXBzOlxuICpcbiAqIC0gaHR0cC1jb2RlIDV4eFxuICogLSB0YXJnZXQgY29ubmVjdGlvbiBlcnJvcnNcbiAqL1xuZXhwb3J0IGNsYXNzIFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2F0Y2hmdWw6IElXYXRjaGZ1bDtcbiAgcHJpdmF0ZSByZWFkb25seSBhdGc6IGVsYnYyLkFwcGxpY2F0aW9uVGFyZ2V0R3JvdXA7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMud2F0Y2hmdWwgPSBwcm9wcy53YXRjaGZ1bDtcbiAgICB0aGlzLmF0ZyA9IHByb3BzLmF0ZztcblxuICAgIHRoaXMud2F0Y2hmdWwuY3JlYXRlQWxhcm0odGhpcyxcbiAgICAgIE1vbml0b3JUeXBlLkNPTk5FQ1RJT05fRVJST1IsXG4gICAgICB0aGlzLmNyZWF0ZVRhcmdldENvbm5lY3Rpb25FcnJvck1vbml0b3IocHJvcHMudGFyZ2V0Q29ubmVjdGlvbkVycm9yUGVyTWludXRlVGhyZXNob2xkKSxcbiAgICApO1xuICAgIHRoaXMud2F0Y2hmdWwuY3JlYXRlQWxhcm0odGhpcyxcbiAgICAgIE1vbml0b3JUeXBlLkhUVFBfQ09ERTVYWCxcbiAgICAgIHRoaXMuY3JlYXRlSHR0cENvZGU1eHhNb25pdG9yKHByb3BzLmh0dHA1eHhQZXJNaW51dGVUaHJlc2hvbGQpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRhcmdldENvbm5lY3Rpb25FcnJvck1vbml0b3IodGFyZ2V0Q29ubmVjdGlvbkVycm9yUGVyTWludXRlVGhyZXNob2xkID0gMCk6IE1ldHJpY0FsYXJtUHJvcHMge1xuICAgIGNvbnN0IGF0ZyA9IHRoaXMuYXRnO1xuICAgIGNvbnN0IHJlamVjdGVkTWV0cmljID0gYXRnLm1ldHJpY1RhcmdldENvbm5lY3Rpb25FcnJvckNvdW50KCkud2l0aCh7IHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcyg2MCkgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldHJpYzogcmVqZWN0ZWRNZXRyaWMsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgT3ZlciAke3RhcmdldENvbm5lY3Rpb25FcnJvclBlck1pbnV0ZVRocmVzaG9sZH0gdGFyZ2V0IGNvbm5lY3Rpb24gZXJyb3JzIHBlciBtaW51dGVgLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjdy5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogdGFyZ2V0Q29ubmVjdGlvbkVycm9yUGVyTWludXRlVGhyZXNob2xkLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY3cuVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSHR0cENvZGU1eHhNb25pdG9yKGh0dHA1eHhQZXJNaW51dGVUaHJlc2hvbGQgPSAwKTogTWV0cmljQWxhcm1Qcm9wcyB7XG4gICAgY29uc3QgYWxiID0gdGhpcy5hdGc7XG4gICAgY29uc3QgaHR0cDV4eE1ldHJpYyA9IGFsYlxuICAgICAgLm1ldHJpY0h0dHBDb2RlVGFyZ2V0KGVsYnYyLkh0dHBDb2RlVGFyZ2V0LlRBUkdFVF81WFhfQ09VTlQpXG4gICAgICAud2l0aCh7IHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcyg2MCkgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldHJpYzogaHR0cDV4eE1ldHJpYyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBPdmVyICR7aHR0cDV4eFBlck1pbnV0ZVRocmVzaG9sZH0gNXh4IHN0YXR1cyBjb2RlcyBmcm9tIHRhcmdldHMgcGVyIG1pbnV0ZWAsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGN3LkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiBodHRwNXh4UGVyTWludXRlVGhyZXNob2xkLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY3cuVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -7,26 +7,55 @@ import * as lambda from 'aws-cdk-lib/aws-lambda';
7
7
  import * as rds from 'aws-cdk-lib/aws-rds';
8
8
  import * as sns from 'aws-cdk-lib/aws-sns';
9
9
  import { Construct, IConstruct } from 'constructs';
10
- import { WatchLambdaFunctionOptions, WatchCloudfrontDistributionOptions, WatchApplicationLoadBalancerOptions, WatchEcsServiceOptions, WatchApplicationTargetGroupOptions, MetricAlarmProps, WatchDocDbClusterOptions, WatchDatabaseClusterOptions, WatchDynamoDbTableOptions, LogAlarmProps } from './';
10
+ import { WatchLambdaFunctionOptions, WatchCloudfrontDistributionOptions, WatchApplicationLoadBalancerOptions, WatchEcsServiceOptions, WatchApplicationTargetGroupOptions, MetricAlarmProps, WatchDocDbClusterOptions, WatchDatabaseClusterOptions, WatchDynamoDbTableOptions, LogAlarmProps, MonitorType } from './';
11
11
  /**
12
12
  * Interface for Watchful implementation.
13
13
  */
14
14
  export interface IWatchful extends IConstruct {
15
15
  /**
16
16
  * Adds and alert for error logs
17
- * @param serviceName - The name of the service
17
+ * @param id - The name of the service
18
18
  */
19
- createLogAlarm(scope: Construct, serviceName: string, alarm: LogAlarmProps): void;
19
+ createLogAlarm(scope: Construct, id: MonitorType, alarm: LogAlarmProps): void;
20
20
  /**
21
21
  * Adds the alarmTopic as alarm action to the given alarm.
22
22
  * @param alarm - The watchful to add those resources to
23
23
  *
24
24
  */
25
- createAlarm(scope: Construct, id: string, alarm: MetricAlarmProps): void;
25
+ createAlarm(scope: Construct, id: MonitorType, alarm: MetricAlarmProps): void;
26
+ }
27
+ export interface OverrideAlarmThresholdProps {
28
+ /**
29
+ * The scope of the resource for which the threshold needs to be overriden
30
+ */
31
+ readonly monitoredResourceScope: Construct;
32
+ /**
33
+ * Id of the monitor that needs to be overriden.
34
+ * Eg - Errors, Thresholds, LogErrorMonitor
35
+ */
36
+ readonly monitorType: MonitorType;
37
+ /**
38
+ * The threshold that needs to be set
39
+ */
40
+ readonly threshold: number;
41
+ }
42
+ export interface ShouldOverrideThresholdProps {
43
+ readonly watchfulMonitorScope: Construct;
44
+ readonly watchfulNodeId: string;
45
+ }
46
+ export interface ShouldOverrideThresholdReturnProps {
47
+ readonly shouldOverrideThreshold: boolean;
48
+ readonly threshold?: number;
26
49
  }
27
50
  export declare abstract class AbstractWatchful extends Construct implements IWatchful {
28
- abstract createLogAlarm(scope: Construct, serviceName: string, alarm: LogAlarmProps): void;
29
- abstract createAlarm(scope: Construct, id: string, alarm: MetricAlarmProps): void;
51
+ protected readonly metricsAlarmOverrides: Array<OverrideAlarmThresholdProps>;
52
+ abstract createLogAlarm(scope: Construct, id: MonitorType, alarm: LogAlarmProps): void;
53
+ abstract createAlarm(scope: Construct, id: MonitorType, alarm: MetricAlarmProps): void;
54
+ /**
55
+ * Override the default thresholds for the watchful monitors
56
+ */
57
+ overrideAlarmThreshold(props: OverrideAlarmThresholdProps): void;
58
+ protected shouldOverrideThreshold(props: ShouldOverrideThresholdProps): ShouldOverrideThresholdReturnProps;
30
59
  /**
31
60
  * Adds alarms for the given lambda function.
32
61
  * @param fn - A lambda function that should be watched [disable-awslint:ref-via-interface]
@@ -110,12 +139,12 @@ export declare class Watchful extends AbstractWatchful {
110
139
  * Adds the alarmTopic as alarm action to the given alarm.
111
140
  * @param alarm The watchful to add those resources to
112
141
  */
113
- createAlarm(scope: Construct, id: string, alarm: MetricAlarmProps): void;
142
+ createAlarm(scope: Construct, id: MonitorType, alarm: MetricAlarmProps): void;
114
143
  /**
115
144
  * Adds an alert for error logs
116
145
  * @param scope
117
146
  */
118
- createLogAlarm(scope: Construct, id: string, alarm: LogAlarmProps): void;
147
+ createLogAlarm(scope: Construct, id: MonitorType, alarm: LogAlarmProps): void;
119
148
  /**
120
149
  * Watches the given scope and adds alarms for known resources.
121
150
  */
@@ -9,6 +9,30 @@ const ssm = require("aws-cdk-lib/aws-ssm");
9
9
  const constructs_1 = require("constructs");
10
10
  const _1 = require("./");
11
11
  class AbstractWatchful extends constructs_1.Construct {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.metricsAlarmOverrides = [];
15
+ }
16
+ /**
17
+ * Override the default thresholds for the watchful monitors
18
+ */
19
+ overrideAlarmThreshold(props) {
20
+ this.metricsAlarmOverrides.push({
21
+ monitoredResourceScope: props.monitoredResourceScope,
22
+ monitorType: props.monitorType,
23
+ threshold: props.threshold,
24
+ });
25
+ }
26
+ shouldOverrideThreshold(props) {
27
+ for (const metricsAlarmOverride of this.metricsAlarmOverrides) {
28
+ if (props.watchfulMonitorScope.node.id === metricsAlarmOverride.monitoredResourceScope.node.id &&
29
+ props.watchfulNodeId === metricsAlarmOverride.monitorType) {
30
+ return { shouldOverrideThreshold: true, threshold: metricsAlarmOverride.threshold };
31
+ }
32
+ }
33
+ return { shouldOverrideThreshold: false };
34
+ }
35
+ ;
12
36
  /**
13
37
  * Adds alarms for the given lambda function.
14
38
  * @param fn - A lambda function that should be watched [disable-awslint:ref-via-interface]
@@ -122,10 +146,11 @@ class Watchful extends AbstractWatchful {
122
146
  * @param alarm The watchful to add those resources to
123
147
  */
124
148
  createAlarm(scope, id, alarm) {
149
+ const { shouldOverrideThreshold, threshold } = this.shouldOverrideThreshold({ watchfulMonitorScope: scope, watchfulNodeId: id });
125
150
  if (this.alarmTopic !== undefined) {
126
151
  const cwAlarm = alarm.metric.createAlarm(scope, id, {
127
152
  alarmDescription: alarm.alarmDescription,
128
- threshold: alarm.threshold,
153
+ threshold: shouldOverrideThreshold ? threshold : alarm.threshold,
129
154
  comparisonOperator: alarm.comparisonOperator,
130
155
  evaluationPeriods: alarm.evaluationPeriods,
131
156
  });
@@ -143,7 +168,7 @@ class Watchful extends AbstractWatchful {
143
168
  comparisonOperator: alarm.comparisonOperator,
144
169
  evaluationPeriods: alarm.evaluationPeriods,
145
170
  metric: alarm.metric,
146
- threshold: alarm.threshold,
171
+ threshold: shouldOverrideThreshold ? threshold : alarm.threshold,
147
172
  treatMissingData: alarm.treatMissingData,
148
173
  });
149
174
  }
@@ -153,6 +178,7 @@ class Watchful extends AbstractWatchful {
153
178
  * @param scope
154
179
  */
155
180
  createLogAlarm(scope, id, alarm) {
181
+ const { shouldOverrideThreshold, threshold } = this.shouldOverrideThreshold({ watchfulMonitorScope: scope, watchfulNodeId: id });
156
182
  if (this.dataDogMonitorServiceToken !== undefined) {
157
183
  new _1.DataDogLogAlarm(scope, id, {
158
184
  serviceToken: this.dataDogMonitorServiceToken ?? '',
@@ -164,7 +190,7 @@ class Watchful extends AbstractWatchful {
164
190
  statistic: alarm.statistic,
165
191
  queryFilters: alarm.queryFilters,
166
192
  alarmDescription: alarm.alarmDescription,
167
- threshold: alarm.threshold,
193
+ threshold: shouldOverrideThreshold ? threshold : alarm.threshold,
168
194
  priority: alarm.priority,
169
195
  index: alarm.index,
170
196
  lambdaCloudwatchGroupName: alarm.lambdaCloudwatchGroupName,
@@ -182,4 +208,4 @@ class Watchful extends AbstractWatchful {
182
208
  exports.Watchful = Watchful;
183
209
  _b = JSII_RTTI_SYMBOL_1;
184
210
  Watchful[_b] = { fqn: "@rio-cloud/cdk-v2-constructs.Watchful", version: "0.0.0" };
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hmdWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hmdWwvd2F0Y2hmdWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNkM7QUFFN0MsaUVBQWlFO0FBUWpFLDJDQUEyQztBQUMzQywyQ0FBbUQ7QUFDbkQseUJBc0JZO0FBbUJaLE1BQXNCLGdCQUFpQixTQUFRLHNCQUFTO0lBSXREOzs7T0FHRztJQUNJLG1CQUFtQixDQUFDLEVBQW1CLEVBQUUsVUFBc0MsRUFBRTtRQUV0RixJQUFJLHNCQUFtQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUN4QyxRQUFRLEVBQUUsSUFBSTtZQUNkLEVBQUU7WUFDRixHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksMkJBQTJCLENBQ2hDLEVBQTJCLEVBQzNCLFVBQThDLEVBQUU7UUFFaEQsSUFBSSw4QkFBMkIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDaEQsUUFBUSxFQUFFLElBQUk7WUFDZCxFQUFFO1lBQ0YsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWUsQ0FBQyxPQUF3QixFQUFFLFVBQWtDLEVBQUU7UUFDbkYsSUFBSSxrQkFBZSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxRQUFRLEVBQUUsSUFBSTtZQUNkLE9BQU87WUFDUCxHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxDQUFDLEdBQWtDLEVBQUUsVUFBK0MsRUFBRTtRQUNuRyxJQUFJLCtCQUE0QixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNsRCxRQUFRLEVBQUUs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Q2hDLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYztnQkFDcEMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO2dCQUMxQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7Z0JBQ2hDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7Z0JBQ3hDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDMUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO2dCQUN4QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ2xCLHlCQUF5QixFQUFFLEtBQUssQ0FBQyx5QkFBeUI7YUFDM0QsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsS0FBZ0I7UUFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLHFCQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDOztBQTNGSCw0QkE2RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3BlY3RzLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgY3dfYWN0aW9ucyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaC1hY3Rpb25zJztcbmltcG9ydCAqIGFzIGRvY2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1kb2NkYic7XG5pbXBvcnQgKiBhcyBkeW5hbW9kYiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3MnO1xuaW1wb3J0ICogYXMgZWxidjIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgcmRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1yZHMnO1xuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuaW1wb3J0ICogYXMgc3NtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge1xuICBXYXRjaGZ1bEFzcGVjdCxcbiAgV2F0Y2hMYW1iZGFGdW5jdGlvbixcbiAgV2F0Y2hMYW1iZGFGdW5jdGlvbk9wdGlvbnMsXG4gIFdhdGNoQ2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgV2F0Y2hDbG91ZGZyb250RGlzdHJpYnV0aW9uT3B0aW9ucyxcbiAgV2F0Y2hBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcixcbiAgV2F0Y2hBcHBsaWNhdGlvbkxvYWRCYWxhbmNlck9wdGlvbnMsXG4gIFdhdGNoRWNzU2VydmljZSxcbiAgV2F0Y2hFY3NTZXJ2aWNlT3B0aW9ucyxcbiAgV2F0Y2hBcHBsaWNhdGlvblRhcmdldEdyb3VwLFxuICBXYXRjaEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXBPcHRpb25zLFxuICBEYXRhRG9nTWV0cmljQWxhcm0sXG4gIERhdGFEb2dMb2dBbGFybSxcbiAgTWV0cmljQWxhcm1Qcm9wcyxcbiAgV2F0Y2hEb2NEYkNsdXN0ZXIsXG4gIFdhdGNoRG9jRGJDbHVzdGVyT3B0aW9ucyxcbiAgV2F0Y2hEYXRhYmFzZUNsdXN0ZXIsXG4gIFdhdGNoRGF0YWJhc2VDbHVzdGVyT3B0aW9ucyxcbiAgV2F0Y2hEeW5hbW9EYlRhYmxlLFxuICBXYXRjaER5bmFtb0RiVGFibGVPcHRpb25zLFxuICBMb2dBbGFybVByb3BzLFxufSBmcm9tICcuLyc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBXYXRjaGZ1bCBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJV2F0Y2hmdWwgZXh0ZW5kcyBJQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIEFkZHMgYW5kIGFsZXJ0IGZvciBlcnJvciBsb2dzXG4gICAqIEBwYXJhbSBzZXJ2aWNlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlXG4gICAqL1xuICBjcmVhdGVMb2dBbGFybShzY29wZTogQ29uc3RydWN0LCBzZXJ2aWNlTmFtZTogc3RyaW5nLCBhbGFybTogTG9nQWxhcm1Qcm9wcyk6IHZvaWQ7XG4gIC8qKlxuICAgKiBBZGRzIHRoZSBhbGFybVRvcGljIGFzIGFsYXJtIGFjdGlvbiB0byB0aGUgZ2l2ZW4gYWxhcm0uXG4gICAqIEBwYXJhbSBhbGFybSAtIFRoZSB3YXRjaGZ1bCB0byBhZGQgdGhvc2UgcmVzb3VyY2VzIHRvXG4gICAqXG4gICAqL1xuICBjcmVhdGVBbGFybShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhbGFybTogTWV0cmljQWxhcm1Qcm9wcyk6IHZvaWQ7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFdhdGNoZnVsIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSVdhdGNoZnVsIHtcbiAgYWJzdHJhY3QgY3JlYXRlTG9nQWxhcm0oc2NvcGU6IENvbnN0cnVjdCwgc2VydmljZU5hbWU6IHN0cmluZywgYWxhcm06IExvZ0FsYXJtUHJvcHMpOiB2b2lkXG4gIGFic3RyYWN0IGNyZWF0ZUFsYXJtKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGFsYXJtOiBNZXRyaWNBbGFybVByb3BzKTogdm9pZDtcblxuICAvKipcbiAgICogQWRkcyBhbGFybXMgZm9yIHRoZSBnaXZlbiBsYW1iZGEgZnVuY3Rpb24uXG4gICAqIEBwYXJhbSBmbiAtIEEgbGFtYmRhIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICovXG4gIHB1YmxpYyB3YXRjaExhbWJkYUZ1bmN0aW9uKGZuOiBsYW1iZGEuRnVuY3Rpb24sIG9wdGlvbnM6IFdhdGNoTGFtYmRhRnVuY3Rpb25PcHRpb25zID0ge30pOiB2b2lkIHtcblxuICAgIG5ldyBXYXRjaExhbWJkYUZ1bmN0aW9uKHRoaXMsIGZuLm5vZGUuaWQsIHtcbiAgICAgIHdhdGNoZnVsOiB0aGlzLFxuICAgICAgZm4sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYWxhcm1zIGZvciB0aGUgZ2l2ZW4gQ2xvdWRmcm9udCBEaXN0cmlidXRpb24uXG4gICAqIEBwYXJhbSBjZiAtIEEgQ2xvdWRmcm9udCBEaXN0cmlidXRpb24gdGhhdCBzaG91bGQgYmUgd2F0Y2hlZCBbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXVxuICAgKi9cbiAgcHVibGljIHdhdGNoQ2xvdWRmcm9udERpc3RyaWJ1dGlvbihcbiAgICBjZjogY2xvdWRmcm9udC5EaXN0cmlidXRpb24sXG4gICAgb3B0aW9uczogV2F0Y2hDbG91ZGZyb250RGlzdHJpYnV0aW9uT3B0aW9ucyA9IHt9LFxuICApOiB2b2lkIHtcbiAgICBuZXcgV2F0Y2hDbG91ZGZyb250RGlzdHJpYnV0aW9uKHRoaXMsIGNmLm5vZGUuaWQsIHtcbiAgICAgIHdhdGNoZnVsOiB0aGlzLFxuICAgICAgY2YsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYWxhcm1zIGZvciB0aGUgZ2l2ZW4gRUNTIHNlcnZpY2UuXG4gICAqIEBwYXJhbSBzZXJ2aWNlIC0gQW4gRUNTIHNlcnZpY2UgdGhhdCBzaG91bGQgYmUgd2F0Y2hlZCBbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXVxuICAgKi9cbiAgcHVibGljIHdhdGNoRWNzU2VydmljZShzZXJ2aWNlOiBlY3MuQmFzZVNlcnZpY2UsIG9wdGlvbnM6IFdhdGNoRWNzU2VydmljZU9wdGlvbnMgPSB7fSk6IHZvaWQge1xuICAgIG5ldyBXYXRjaEVjc1NlcnZpY2UodGhpcywgc2VydmljZS5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIHNlcnZpY2UsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYWxhcm1zIGZvciB0aGUgZ2l2ZW4gYXBwbGljYXRpb24gbG9hZCBiYWxhbmNlci5cbiAgICogQHBhcmFtIGFsYiAtIEFuIGFwcGxpY2F0aW9uIGxvYWQgYmFsYW5jZXIgdGhhdCBzaG91bGQgYmUgd2F0Y2hlZCBbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXVxuICAgKi9cbiAgcHVibGljIHdhdGNoQWxiKGFsYjogZWxidjIuQXBwbGljYXRpb25Mb2FkQmFsYW5jZXIsIG9wdGlvbnM6IFdhdGNoQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJPcHRpb25zID0ge30pOiB2b2lkIHtcbiAgICBuZXcgV2F0Y2hBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcih0aGlzLCBhbGIubm9kZS5pZCwge1xuICAgICAgd2F0Y2hmdWw6IHRoaXMsXG4gICAgICBhbGIsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYWxhcm1zIGZvciB0aGUgZ2l2ZW4gYXBwbGljYXRpb24gdGFyZ2V0IGdvcnVwLlxuICAgKiBAcGFyYW0gYXRnIC0gQW4gYXBwbGljYXRpb24gdGFyZ2V0IGdyb3VwIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICovXG4gIHB1YmxpYyB3YXRjaEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAoXG4gICAgYXRnOiBlbGJ2Mi5BcHBsaWNhdGlvblRhcmdldEdyb3VwLFxuICAgIG9wdGlvbnM6IFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cE9wdGlvbnMgPSB7fSxcbiAgKTogdm9pZCB7XG4gICAgbmV3IFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cCh0aGlzLCBhdGcubm9kZS5pZCwge1xuICAgICAgd2F0Y2hmdWw6IHRoaXMsXG4gICAgICBhdGcsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYWxhcm1zIGZvciB0aGUgZ2l2ZW4gRG9jRGIgY2x1c3Rlci5cbiAgICogQHBhcmFtIGRvY0RiIC0gQW4gRG9jRGIgY2x1c3RlciB0aGF0IHNob3VsZCBiZSB3YXRjaGVkIFtkaXNhYmxlLWF3c2xpbnQ6cmVmLXZpYS1pbnRlcmZhY2VdXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hEb2NEYihkb2NEYjogZG9jZGIuRGF0YWJhc2VDbHVzdGVyLCBvcHRpb25zOiBXYXRjaERvY0RiQ2x1c3Rlck9wdGlvbnMgPSB7fSk6IHZvaWQge1xuICAgIG5ldyBXYXRjaERvY0RiQ2x1c3Rlcih0aGlzLCBkb2NEYi5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIGRvY0RiLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFsYXJtcyBmb3IgdGhlIGdpdmVuIGRhdGFiYXNlIGNsdXN0ZXIuXG4gICAqIEBwYXJhbSBkYXRhYmFzZUNsdXN0ZXIgLSBBbiBkYXRhYmFzZSBjbHVzdGVyIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICovXG4gIHB1YmxpYyB3YXRjaERhdGFiYXNlQ2x1c3RlcihkYXRhYmFzZUNsdXN0ZXI6IHJkcy5EYXRhYmFzZUNsdXN0ZXIsIG9wdGlvbnM6IFdhdGNoRGF0YWJhc2VDbHVzdGVyT3B0aW9ucyA9IHt9KTogdm9pZCB7XG4gICAgbmV3IFdhdGNoRGF0YWJhc2VDbHVzdGVyKHRoaXMsIGRhdGFiYXNlQ2x1c3Rlci5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIGRhdGFiYXNlQ2x1c3RlcixcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbGFybXMgZm9yIHRoZSBnaXZlbiBEeW5hbW9EYiB0YWJsZS5cbiAgICogQHBhcmFtIGR5bmFtb0RiVGFibGUgLSBBbiBkYXRhYmFzZSBjbHVzdGVyIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICovXG4gIHB1YmxpYyB3YXRjaER5bmFtb0RiVGFibGUoZHluYW1vRGJUYWJsZTogZHluYW1vZGIuVGFibGUsIG9wdGlvbnM6IFdhdGNoRHluYW1vRGJUYWJsZU9wdGlvbnMgPSB7fSk6IHZvaWQge1xuICAgIG5ldyBXYXRjaER5bmFtb0RiVGFibGUodGhpcywgZHluYW1vRGJUYWJsZS5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIGR5bmFtb0RiVGFibGU6IGR5bmFtb0RiVGFibGUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgV2F0Y2hmdWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYXRjaGZ1bFByb3BzIHtcbiAgLyoqXG4gICAqIEFuIFNOUyB0b3BpYyBhcyB0YXJnZXQgZm9yIGFsYXJtIGFjdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgIFRoZSBTTlMgdG9waWMgcHJvdmlkZWQgYnkgT3BzR2VuaWUgSW50ZWdyYXRpb24gYWNjb3VudCBtb2R1bGUuXG4gICAqL1xuICByZWFkb25seSBhbGFybVNucz86IHNucy5JVG9waWM7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHRva2VuIGZvciB0aGUgRGF0YURvZyBNb25pdG9yIGN1c3RvbSByZXNvdXJjZS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBFbXB0eS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFEb2dNb25pdG9yU2VydmljZVRva2VuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFRoZSBzdGFjayBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YURvZ01vbml0b3JTZXJ2aWNlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE9wc0dlbmllIGhhbmRsZSB1c2VkIGluIERhdGFEb2cgdG8gZm9yd2FyZCB0aGUgREQgbW9uaXRvciB0byBPcHNHZW5pZS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBFbXB0eSBpZiBkYXRhRG9nTW9uaXRvclNlcnZpY2VUb2tlbiBpcyBub3Qgc2V0LiBPdGhlcndpc2UsIHRlYW0gU1NNIHBhcmFtZXRlciBmcm9tIExhbmRpbmdab25lIGlzIHVzZWQuXG4gICAqL1xuICByZWFkb25seSBkYXRhRG9nT3BzR2VuaWVJbnRlZ3JhdGlvbk5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBjb25zdHJ1Y3QgdG8gd2F0Y2ggZ2l2ZW4gc2NvcGUgb3IgcmVzb3VyY2VzLiBPcGluaW9uYXRlZCBEYXRhRG9nIGFsYXJtcyBhcmUgYXV0b21hdGljYWxseSBjcmVhdGVkIGZvciB3YXRjaGVkIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFdhdGNoZnVsIGV4dGVuZHMgQWJzdHJhY3RXYXRjaGZ1bCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWxhcm1Ub3BpYz86IHNucy5JVG9waWM7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YURvZ01vbml0b3JTZXJ2aWNlVG9rZW4/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YURvZ09wc0dlbmllSW50ZWdyYXRpb25OYW1lPzogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFEb2dNb25pdG9yU2VydmljZU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV2F0Y2hmdWxQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIGNvbnN0IG9wc0dlbmllQWxhcm1Ub3BpY0FybiA9IEZuLmltcG9ydFZhbHVlKCdvcHNnZW5pZS1jbG91ZHdhdGNoLWFsYXJtLXNucy10b3BpYy1hcm4nKTtcbiAgICAvLyBjb25zdCBvcHNHZW5pZUFsYXJtVG9waWMgPSBzbnMuVG9waWMuZnJvbVRvcGljQXJuKHRoaXMsICdPcHNHZW5pZVRvcGljJywgb3BzR2VuaWVBbGFybVRvcGljQXJuKTtcbiAgICB0aGlzLmFsYXJtVG9waWMgPSBwcm9wcy5hbGFybVNucztcbiAgICB0aGlzLmRhdGFEb2dNb25pdG9yU2VydmljZVRva2VuID0gcHJvcHMuZGF0YURvZ01vbml0b3JTZXJ2aWNlVG9rZW47XG5cbiAgICB0aGlzLmRhdGFEb2dNb25pdG9yU2VydmljZU5hbWUgPSBwcm9wcy5kYXRhRG9nTW9uaXRvclNlcnZpY2VOYW1lID8/IFN0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZTtcblxuICAgIGlmIChwcm9wcy5kYXRhRG9nTW9uaXRvclNlcnZpY2VUb2tlbiAhPT0gdW5kZWZpbmVkKSB7XG5cbiAgICAgIGNvbnN0IHRlYW1OYW1lUGFyYW0gPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKFxuICAgICAgICB0aGlzLFxuICAgICAgICAnVGVhbU5hbWVQYXJhbScsXG4gICAgICAgICcvY29uZmlnL3RlYW0vbmFtZScsXG4gICAgICApO1xuICAgICAgdGhpcy5kYXRhRG9nT3BzR2VuaWVJbnRlZ3JhdGlvbk5hbWUgPSBwcm9wcy5kYXRhRG9nT3BzR2VuaWVJbnRlZ3JhdGlvbk5hbWUgPz8gdGVhbU5hbWVQYXJhbS5zdHJpbmdWYWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyB0aGUgYWxhcm1Ub3BpYyBhcyBhbGFybSBhY3Rpb24gdG8gdGhlIGdpdmVuIGFsYXJtLlxuICAgKiBAcGFyYW0gYWxhcm0gVGhlIHdhdGNoZnVsIHRvIGFkZCB0aG9zZSByZXNvdXJjZXMgdG9cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVBbGFybShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhbGFybTogTWV0cmljQWxhcm1Qcm9wcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFsYXJtVG9waWMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgY3dBbGFybSA9IGFsYXJtLm1ldHJpYy5jcmVhdGVBbGFybShzY29wZSwgaWQsIHtcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYWxhcm0uYWxhcm1EZXNjcmlwdGlvbixcbiAgICAgICAgdGhyZXNob2xkOiBhbGFybS50aHJlc2hvbGQsXG4gICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogYWxhcm0uY29tcGFyaXNvbk9wZXJhdG9yLFxuICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogYWxhcm0uZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICB9KTtcbiAgICAgIGlmICh0aGlzLmFsYXJtVG9waWMpIHtcbiAgICAgICAgY3dBbGFybS5hZGRBbGFybUFjdGlvbihuZXcgY3dfYWN0aW9ucy5TbnNBY3Rpb24odGhpcy5hbGFybVRvcGljKSk7XG4gICAgICAgIGN3QWxhcm0uYWRkT2tBY3Rpb24obmV3IGN3X2FjdGlvbnMuU25zQWN0aW9uKHRoaXMuYWxhcm1Ub3BpYykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGFEb2dNb25pdG9yU2VydmljZVRva2VuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG5ldyBEYXRhRG9nTWV0cmljQWxhcm0oc2NvcGUsIGlkLCB7XG4gICAgICAgIHNlcnZpY2VUb2tlbjogdGhpcy5kYXRhRG9nTW9uaXRvclNlcnZpY2VUb2tlbiA/PyAnJyxcbiAgICAgICAgc2VydmljZU5hbWU6IHRoaXMuZGF0YURvZ01vbml0b3JTZXJ2aWNlTmFtZSxcbiAgICAgICAgZGF0YURvZ09wc0dlbmllSW50ZWdyYXRpb25OYW1lOiB0aGlzLmRhdGFEb2dPcHNHZW5pZUludGVncmF0aW9uTmFtZSA/PyAnJyxcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYWxhcm0uYWxhcm1EZXNjcmlwdGlvbixcbiAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBhbGFybS5jb21wYXJpc29uT3BlcmF0b3IsXG4gICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBhbGFybS5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgbWV0cmljOiBhbGFybS5tZXRyaWMsXG4gICAgICAgIHRocmVzaG9sZDogYWxhcm0udGhyZXNob2xkLFxuICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBhbGFybS50cmVhdE1pc3NpbmdEYXRhLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gYWxlcnQgZm9yIGVycm9yIGxvZ3NcbiAgICogQHBhcmFtIHNjb3BlXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlTG9nQWxhcm0oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYWxhcm06IExvZ0FsYXJtUHJvcHMpOnZvaWQge1xuXG4gICAgaWYgKHRoaXMuZGF0YURvZ01vbml0b3JTZXJ2aWNlVG9rZW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgbmV3IERhdGFEb2dMb2dBbGFybShzY29wZSwgaWQsIHtcbiAgICAgICAgc2VydmljZVRva2VuOiB0aGlzLmRhdGFEb2dNb25pdG9yU2VydmljZVRva2VuID8/ICcnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogYWxhcm0ubGFtYmRhQ2xvdWR3YXRjaEdyb3VwTmFtZSA/PyB0aGlzLmRhdGFEb2dNb25pdG9yU2VydmljZU5hbWUsXG4gICAgICAgIGF1dG9DbG9zZU9wc0dlbmllQWxlcnRzOiBhbGFybS5hdXRvQ2xvc2VPcHNHZW5pZUFsZXJ0cyxcbiAgICAgICAgcGVyaW9kOiBhbGFybS5wZXJpb2QsXG4gICAgICAgIHVuaXRPZlBlcmlvZDogYWxhcm0udW5pdE9mUGVyaW9kLCAvLyB0b0RvOiBtb3ZlIHRoYXQgc29tZXdoZXJlIGVsc2UgYW5kIHNldCBkZWZhdWx0cyB0aGVyZT9cbiAgICAgICAgcGVyaW9kT3BlcmF0b3I6IGFsYXJtLnBlcmlvZE9wZXJhdG9yLFxuICAgICAgICBzdGF0aXN0aWM6IGFsYXJtLnN0YXRpc3RpYyxcbiAgICAgICAgcXVlcnlGaWx0ZXJzOiBhbGFybS5xdWVyeUZpbHRlcnMsIC8vIHRvRG86IG1vdmUgdGhhdCBzb21ld2hlcmUgZWxzZSBhbmQgc2V0IGRlZmF1bHRzIHRoZXJlP1xuICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBhbGFybS5hbGFybURlc2NyaXB0aW9uLFxuICAgICAgICB0aHJlc2hvbGQ6IGFsYXJtLnRocmVzaG9sZCxcbiAgICAgICAgcHJpb3JpdHk6IGFsYXJtLnByaW9yaXR5LFxuICAgICAgICBpbmRleDogYWxhcm0uaW5kZXgsXG4gICAgICAgIGxhbWJkYUNsb3Vkd2F0Y2hHcm91cE5hbWU6IGFsYXJtLmxhbWJkYUNsb3Vkd2F0Y2hHcm91cE5hbWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2F0Y2hlcyB0aGUgZ2l2ZW4gc2NvcGUgYW5kIGFkZHMgYWxhcm1zIGZvciBrbm93biByZXNvdXJjZXMuXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hTY29wZShzY29wZTogQ29uc3RydWN0KTogdm9pZCB7XG4gICAgY29uc3QgYXNwZWN0ID0gbmV3IFdhdGNoZnVsQXNwZWN0KHRoaXMpO1xuICAgIEFzcGVjdHMub2Yoc2NvcGUpLmFkZChhc3BlY3QpO1xuICB9XG5cbn1cbiJdfQ==
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hmdWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hmdWwvd2F0Y2hmdWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNkM7QUFFN0MsaUVBQWlFO0FBUWpFLDJDQUEyQztBQUMzQywyQ0FBbUQ7QUFDbkQseUJBdUJZO0FBK0NaLE1BQXNCLGdCQUFpQixTQUFRLHNCQUFTO0lBQXhEOztRQUNxQiwwQkFBcUIsR0FBdUMsRUFBRSxDQUFDO0tBZ0luRjtJQTVIQzs7T0FFRztJQUNJLHNCQUFzQixDQUFDLEtBQWtDO1FBQzlELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7WUFDOUIsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLHNCQUFzQjtZQUNwRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyx1QkFBdUIsQ0FBQyxLQUFtQztRQUNuRSxLQUFLLE1BQU0sb0JBQW9CLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzdELElBQ0UsS0FBSyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzFGLEtBQUssQ0FBQyxjQUFjLEtBQUssb0JBQW9CLENBQUMsV0FBVyxFQUFFO2dCQUMzRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUNyRjtTQUNGO1FBQ0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFBQSxDQUFDO0lBRUY7OztPQUdHO0lBQ0ksbUJBQW1CLENBQUMsRUFBbUIsRUFBRSxVQUFzQyxFQUFFO1FBRXRGLElBQUksc0JBQW1CLENBQUMsSUFBSSxF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Q3BCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtnQkFDaEMsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO2dCQUNwQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7Z0JBQzFCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtnQkFDaEMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtnQkFDeEMsU0FBUyxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxTQUFtQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUztnQkFDMUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO2dCQUN4QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ2xCLHlCQUF5QixFQUFFLEtBQUssQ0FBQyx5QkFBeUI7YUFDM0QsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsS0FBZ0I7UUFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLHFCQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDOztBQTVGSCw0QkE4RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3BlY3RzLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgY3dfYWN0aW9ucyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaC1hY3Rpb25zJztcbmltcG9ydCAqIGFzIGRvY2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1kb2NkYic7XG5pbXBvcnQgKiBhcyBkeW5hbW9kYiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3MnO1xuaW1wb3J0ICogYXMgZWxidjIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgcmRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1yZHMnO1xuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuaW1wb3J0ICogYXMgc3NtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge1xuICBXYXRjaGZ1bEFzcGVjdCxcbiAgV2F0Y2hMYW1iZGFGdW5jdGlvbixcbiAgV2F0Y2hMYW1iZGFGdW5jdGlvbk9wdGlvbnMsXG4gIFdhdGNoQ2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgV2F0Y2hDbG91ZGZyb250RGlzdHJpYnV0aW9uT3B0aW9ucyxcbiAgV2F0Y2hBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcixcbiAgV2F0Y2hBcHBsaWNhdGlvbkxvYWRCYWxhbmNlck9wdGlvbnMsXG4gIFdhdGNoRWNzU2VydmljZSxcbiAgV2F0Y2hFY3NTZXJ2aWNlT3B0aW9ucyxcbiAgV2F0Y2hBcHBsaWNhdGlvblRhcmdldEdyb3VwLFxuICBXYXRjaEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXBPcHRpb25zLFxuICBEYXRhRG9nTWV0cmljQWxhcm0sXG4gIERhdGFEb2dMb2dBbGFybSxcbiAgTWV0cmljQWxhcm1Qcm9wcyxcbiAgV2F0Y2hEb2NEYkNsdXN0ZXIsXG4gIFdhdGNoRG9jRGJDbHVzdGVyT3B0aW9ucyxcbiAgV2F0Y2hEYXRhYmFzZUNsdXN0ZXIsXG4gIFdhdGNoRGF0YWJhc2VDbHVzdGVyT3B0aW9ucyxcbiAgV2F0Y2hEeW5hbW9EYlRhYmxlLFxuICBXYXRjaER5bmFtb0RiVGFibGVPcHRpb25zLFxuICBMb2dBbGFybVByb3BzLFxuICBNb25pdG9yVHlwZSxcbn0gZnJvbSAnLi8nO1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgV2F0Y2hmdWwgaW1wbGVtZW50YXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVdhdGNoZnVsIGV4dGVuZHMgSUNvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBBZGRzIGFuZCBhbGVydCBmb3IgZXJyb3IgbG9nc1xuICAgKiBAcGFyYW0gaWQgLSBUaGUgbmFtZSBvZiB0aGUgc2VydmljZVxuICAgKi9cbiAgY3JlYXRlTG9nQWxhcm0oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IE1vbml0b3JUeXBlLCBhbGFybTogTG9nQWxhcm1Qcm9wcyk6IHZvaWQ7XG4gIC8qKlxuICAgKiBBZGRzIHRoZSBhbGFybVRvcGljIGFzIGFsYXJtIGFjdGlvbiB0byB0aGUgZ2l2ZW4gYWxhcm0uXG4gICAqIEBwYXJhbSBhbGFybSAtIFRoZSB3YXRjaGZ1bCB0byBhZGQgdGhvc2UgcmVzb3VyY2VzIHRvXG4gICAqXG4gICAqL1xuICBjcmVhdGVBbGFybShzY29wZTogQ29uc3RydWN0LCBpZDogTW9uaXRvclR5cGUsIGFsYXJtOiBNZXRyaWNBbGFybVByb3BzKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPdmVycmlkZUFsYXJtVGhyZXNob2xkUHJvcHMge1xuICAvKipcbiAgICogVGhlIHNjb3BlIG9mIHRoZSByZXNvdXJjZSBmb3Igd2hpY2ggdGhlIHRocmVzaG9sZCBuZWVkcyB0byBiZSBvdmVycmlkZW5cbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3JlZFJlc291cmNlU2NvcGU6IENvbnN0cnVjdDtcblxuICAvKipcbiAgICogSWQgb2YgdGhlIG1vbml0b3IgdGhhdCBuZWVkcyB0byBiZSBvdmVycmlkZW4uXG4gICAqIEVnIC0gRXJyb3JzLCBUaHJlc2hvbGRzLCBMb2dFcnJvck1vbml0b3JcbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3JUeXBlOiBNb25pdG9yVHlwZTtcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCB0aGF0IG5lZWRzIHRvIGJlIHNldFxuICAqL1xuICByZWFkb25seSB0aHJlc2hvbGQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaG91bGRPdmVycmlkZVRocmVzaG9sZFByb3BzIHtcbiAgcmVhZG9ubHkgd2F0Y2hmdWxNb25pdG9yU2NvcGU6IENvbnN0cnVjdDtcbiAgcmVhZG9ubHkgd2F0Y2hmdWxOb2RlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaG91bGRPdmVycmlkZVRocmVzaG9sZFJldHVyblByb3BzIHtcbiAgcmVhZG9ubHkgc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IHRocmVzaG9sZD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0V2F0Y2hmdWwgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJV2F0Y2hmdWwge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWV0cmljc0FsYXJtT3ZlcnJpZGVzOiBBcnJheTxPdmVycmlkZUFsYXJtVGhyZXNob2xkUHJvcHM+ID0gW107XG4gIGFic3RyYWN0IGNyZWF0ZUxvZ0FsYXJtKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBNb25pdG9yVHlwZSwgYWxhcm06IExvZ0FsYXJtUHJvcHMpOiB2b2lkXG4gIGFic3RyYWN0IGNyZWF0ZUFsYXJtKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBNb25pdG9yVHlwZSwgYWxhcm06IE1ldHJpY0FsYXJtUHJvcHMpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0aGUgZGVmYXVsdCB0aHJlc2hvbGRzIGZvciB0aGUgd2F0Y2hmdWwgbW9uaXRvcnNcbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZUFsYXJtVGhyZXNob2xkKHByb3BzOiBPdmVycmlkZUFsYXJtVGhyZXNob2xkUHJvcHMpIHtcbiAgICB0aGlzLm1ldHJpY3NBbGFybU92ZXJyaWRlcy5wdXNoKHtcbiAgICAgIG1vbml0b3JlZFJlc291cmNlU2NvcGU6IHByb3BzLm1vbml0b3JlZFJlc291cmNlU2NvcGUsXG4gICAgICBtb25pdG9yVHlwZTogcHJvcHMubW9uaXRvclR5cGUsXG4gICAgICB0aHJlc2hvbGQ6IHByb3BzLnRocmVzaG9sZCxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzaG91bGRPdmVycmlkZVRocmVzaG9sZChwcm9wczogU2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGRQcm9wcyk6IFNob3VsZE92ZXJyaWRlVGhyZXNob2xkUmV0dXJuUHJvcHMge1xuICAgIGZvciAoY29uc3QgbWV0cmljc0FsYXJtT3ZlcnJpZGUgb2YgdGhpcy5tZXRyaWNzQWxhcm1PdmVycmlkZXMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgcHJvcHMud2F0Y2hmdWxNb25pdG9yU2NvcGUubm9kZS5pZCA9PT0gbWV0cmljc0FsYXJtT3ZlcnJpZGUubW9uaXRvcmVkUmVzb3VyY2VTY29wZS5ub2RlLmlkICYmXG4gICAgICAgIHByb3BzLndhdGNoZnVsTm9kZUlkID09PSBtZXRyaWNzQWxhcm1PdmVycmlkZS5tb25pdG9yVHlwZSkge1xuICAgICAgICByZXR1cm4geyBzaG91bGRPdmVycmlkZVRocmVzaG9sZDogdHJ1ZSwgdGhyZXNob2xkOiBtZXRyaWNzQWxhcm1PdmVycmlkZS50aHJlc2hvbGQgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQ6IGZhbHNlIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIEFkZHMgYWxhcm1zIGZvciB0aGUgZ2l2ZW4gbGFtYmRhIGZ1bmN0aW9uLlxuICAgKiBAcGFyYW0gZm4gLSBBIGxhbWJkYSBmdW5jdGlvbiB0aGF0IHNob3VsZCBiZSB3YXRjaGVkIFtkaXNhYmxlLWF3c2xpbnQ6cmVmLXZpYS1pbnRlcmZhY2VdXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hMYW1iZGFGdW5jdGlvbihmbjogbGFtYmRhLkZ1bmN0aW9uLCBvcHRpb25zOiBXYXRjaExhbWJkYUZ1bmN0aW9uT3B0aW9ucyA9IHt9KTogdm9pZCB7XG5cbiAgICBuZXcgV2F0Y2hMYW1iZGFGdW5jdGlvbih0aGlzLCBmbi5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIGZuLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFsYXJtcyBmb3IgdGhlIGdpdmVuIENsb3VkZnJvbnQgRGlzdHJpYnV0aW9uLlxuICAgKiBAcGFyYW0gY2YgLSBBIENsb3VkZnJvbnQgRGlzdHJpYnV0aW9uIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICovXG4gIHB1YmxpYyB3YXRjaENsb3VkZnJvbnREaXN0cmlidXRpb24oXG4gICAgY2Y6IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uLFxuICAgIG9wdGlvbnM6IFdhdGNoQ2xvdWRmcm9udERpc3RyaWJ1dGlvbk9wdGlvbnMgPSB7fSxcbiAgKTogdm9pZCB7XG4gICAgbmV3IFdhdGNoQ2xvdWRmcm9udERpc3RyaWJ1dGlvbih0aGlzLCBjZi5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIGNmLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFsYXJtcyBmb3IgdGhlIGdpdmVuIEVDUyBzZXJ2aWNlLlxuICAgKiBAcGFyYW0gc2VydmljZSAtIEFuIEVDUyBzZXJ2aWNlIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICovXG4gIHB1YmxpYyB3YXRjaEVjc1NlcnZpY2Uoc2VydmljZTogZWNzLkJhc2VTZXJ2aWNlLCBvcHRpb25zOiBXYXRjaEVjc1NlcnZpY2VPcHRpb25zID0ge30pOiB2b2lkIHtcbiAgICBuZXcgV2F0Y2hFY3NTZXJ2aWNlKHRoaXMsIHNlcnZpY2Uubm9kZS5pZCwge1xuICAgICAgd2F0Y2hmdWw6IHRoaXMsXG4gICAgICBzZXJ2aWNlLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFsYXJtcyBmb3IgdGhlIGdpdmVuIGFwcGxpY2F0aW9uIGxvYWQgYmFsYW5jZXIuXG4gICAqIEBwYXJhbSBhbGIgLSBBbiBhcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VyIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICovXG4gIHB1YmxpYyB3YXRjaEFsYihhbGI6IGVsYnYyLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyLCBvcHRpb25zOiBXYXRjaEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyT3B0aW9ucyA9IHt9KTogdm9pZCB7XG4gICAgbmV3IFdhdGNoQXBwbGljYXRpb25Mb2FkQmFsYW5jZXIodGhpcywgYWxiLm5vZGUuaWQsIHtcbiAgICAgIHdhdGNoZnVsOiB0aGlzLFxuICAgICAgYWxiLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFsYXJtcyBmb3IgdGhlIGdpdmVuIGFwcGxpY2F0aW9uIHRhcmdldCBnb3J1cC5cbiAgICogQHBhcmFtIGF0ZyAtIEFuIGFwcGxpY2F0aW9uIHRhcmdldCBncm91cCB0aGF0IHNob3VsZCBiZSB3YXRjaGVkIFtkaXNhYmxlLWF3c2xpbnQ6cmVmLXZpYS1pbnRlcmZhY2VdXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hBcHBsaWNhdGlvblRhcmdldEdyb3VwKFxuICAgIGF0ZzogZWxidjIuQXBwbGljYXRpb25UYXJnZXRHcm91cCxcbiAgICBvcHRpb25zOiBXYXRjaEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXBPcHRpb25zID0ge30sXG4gICk6IHZvaWQge1xuICAgIG5ldyBXYXRjaEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAodGhpcywgYXRnLm5vZGUuaWQsIHtcbiAgICAgIHdhdGNoZnVsOiB0aGlzLFxuICAgICAgYXRnLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFsYXJtcyBmb3IgdGhlIGdpdmVuIERvY0RiIGNsdXN0ZXIuXG4gICAqIEBwYXJhbSBkb2NEYiAtIEFuIERvY0RiIGNsdXN0ZXIgdGhhdCBzaG91bGQgYmUgd2F0Y2hlZCBbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXVxuICAgKi9cbiAgcHVibGljIHdhdGNoRG9jRGIoZG9jRGI6IGRvY2RiLkRhdGFiYXNlQ2x1c3Rlciwgb3B0aW9uczogV2F0Y2hEb2NEYkNsdXN0ZXJPcHRpb25zID0ge30pOiB2b2lkIHtcbiAgICBuZXcgV2F0Y2hEb2NEYkNsdXN0ZXIodGhpcywgZG9jRGIubm9kZS5pZCwge1xuICAgICAgd2F0Y2hmdWw6IHRoaXMsXG4gICAgICBkb2NEYixcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbGFybXMgZm9yIHRoZSBnaXZlbiBkYXRhYmFzZSBjbHVzdGVyLlxuICAgKiBAcGFyYW0gZGF0YWJhc2VDbHVzdGVyIC0gQW4gZGF0YWJhc2UgY2x1c3RlciB0aGF0IHNob3VsZCBiZSB3YXRjaGVkIFtkaXNhYmxlLWF3c2xpbnQ6cmVmLXZpYS1pbnRlcmZhY2VdXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hEYXRhYmFzZUNsdXN0ZXIoZGF0YWJhc2VDbHVzdGVyOiByZHMuRGF0YWJhc2VDbHVzdGVyLCBvcHRpb25zOiBXYXRjaERhdGFiYXNlQ2x1c3Rlck9wdGlvbnMgPSB7fSk6IHZvaWQge1xuICAgIG5ldyBXYXRjaERhdGFiYXNlQ2x1c3Rlcih0aGlzLCBkYXRhYmFzZUNsdXN0ZXIubm9kZS5pZCwge1xuICAgICAgd2F0Y2hmdWw6IHRoaXMsXG4gICAgICBkYXRhYmFzZUNsdXN0ZXIsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYWxhcm1zIGZvciB0aGUgZ2l2ZW4gRHluYW1vRGIgdGFibGUuXG4gICAqIEBwYXJhbSBkeW5hbW9EYlRhYmxlIC0gQW4gZGF0YWJhc2UgY2x1c3RlciB0aGF0IHNob3VsZCBiZSB3YXRjaGVkIFtkaXNhYmxlLWF3c2xpbnQ6cmVmLXZpYS1pbnRlcmZhY2VdXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hEeW5hbW9EYlRhYmxlKGR5bmFtb0RiVGFibGU6IGR5bmFtb2RiLlRhYmxlLCBvcHRpb25zOiBXYXRjaER5bmFtb0RiVGFibGVPcHRpb25zID0ge30pOiB2b2lkIHtcbiAgICBuZXcgV2F0Y2hEeW5hbW9EYlRhYmxlKHRoaXMsIGR5bmFtb0RiVGFibGUubm9kZS5pZCwge1xuICAgICAgd2F0Y2hmdWw6IHRoaXMsXG4gICAgICBkeW5hbW9EYlRhYmxlOiBkeW5hbW9EYlRhYmxlLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIFdhdGNoZnVsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hmdWxQcm9wcyB7XG4gIC8qKlxuICAgKiBBbiBTTlMgdG9waWMgYXMgdGFyZ2V0IGZvciBhbGFybSBhY3Rpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlICBUaGUgU05TIHRvcGljIHByb3ZpZGVkIGJ5IE9wc0dlbmllIEludGVncmF0aW9uIGFjY291bnQgbW9kdWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1TbnM/OiBzbnMuSVRvcGljO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSB0b2tlbiBmb3IgdGhlIERhdGFEb2cgTW9uaXRvciBjdXN0b20gcmVzb3VyY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgRW1wdHkuXG4gICAqL1xuICByZWFkb25seSBkYXRhRG9nTW9uaXRvclNlcnZpY2VUb2tlbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNlcnZpY2UgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBUaGUgc3RhY2sgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFEb2dNb25pdG9yU2VydmljZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBPcHNHZW5pZSBoYW5kbGUgdXNlZCBpbiBEYXRhRG9nIHRvIGZvcndhcmQgdGhlIEREIG1vbml0b3IgdG8gT3BzR2VuaWUuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgRW1wdHkgaWYgZGF0YURvZ01vbml0b3JTZXJ2aWNlVG9rZW4gaXMgbm90IHNldC4gT3RoZXJ3aXNlLCB0ZWFtIFNTTSBwYXJhbWV0ZXIgZnJvbSBMYW5kaW5nWm9uZSBpcyB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YURvZ09wc0dlbmllSW50ZWdyYXRpb25OYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgY29uc3RydWN0IHRvIHdhdGNoIGdpdmVuIHNjb3BlIG9yIHJlc291cmNlcy4gT3BpbmlvbmF0ZWQgRGF0YURvZyBhbGFybXMgYXJlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBmb3Igd2F0Y2hlZCByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBXYXRjaGZ1bCBleHRlbmRzIEFic3RyYWN0V2F0Y2hmdWwge1xuICBwcml2YXRlIHJlYWRvbmx5IGFsYXJtVG9waWM/OiBzbnMuSVRvcGljO1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFEb2dNb25pdG9yU2VydmljZVRva2VuPzogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFEb2dPcHNHZW5pZUludGVncmF0aW9uTmFtZT86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhRG9nTW9uaXRvclNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdhdGNoZnVsUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBjb25zdCBvcHNHZW5pZUFsYXJtVG9waWNBcm4gPSBGbi5pbXBvcnRWYWx1ZSgnb3BzZ2VuaWUtY2xvdWR3YXRjaC1hbGFybS1zbnMtdG9waWMtYXJuJyk7XG4gICAgLy8gY29uc3Qgb3BzR2VuaWVBbGFybVRvcGljID0gc25zLlRvcGljLmZyb21Ub3BpY0Fybih0aGlzLCAnT3BzR2VuaWVUb3BpYycsIG9wc0dlbmllQWxhcm1Ub3BpY0Fybik7XG4gICAgdGhpcy5hbGFybVRvcGljID0gcHJvcHMuYWxhcm1TbnM7XG4gICAgdGhpcy5kYXRhRG9nTW9uaXRvclNlcnZpY2VUb2tlbiA9IHByb3BzLmRhdGFEb2dNb25pdG9yU2VydmljZVRva2VuO1xuXG4gICAgdGhpcy5kYXRhRG9nTW9uaXRvclNlcnZpY2VOYW1lID0gcHJvcHMuZGF0YURvZ01vbml0b3JTZXJ2aWNlTmFtZSA/PyBTdGFjay5vZih0aGlzKS5zdGFja05hbWU7XG5cbiAgICBpZiAocHJvcHMuZGF0YURvZ01vbml0b3JTZXJ2aWNlVG9rZW4gIT09IHVuZGVmaW5lZCkge1xuXG4gICAgICBjb25zdCB0ZWFtTmFtZVBhcmFtID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ1RlYW1OYW1lUGFyYW0nLFxuICAgICAgICAnL2NvbmZpZy90ZWFtL25hbWUnLFxuICAgICAgKTtcbiAgICAgIHRoaXMuZGF0YURvZ09wc0dlbmllSW50ZWdyYXRpb25OYW1lID0gcHJvcHMuZGF0YURvZ09wc0dlbmllSW50ZWdyYXRpb25OYW1lID8/IHRlYW1OYW1lUGFyYW0uc3RyaW5nVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhlIGFsYXJtVG9waWMgYXMgYWxhcm0gYWN0aW9uIHRvIHRoZSBnaXZlbiBhbGFybS5cbiAgICogQHBhcmFtIGFsYXJtIFRoZSB3YXRjaGZ1bCB0byBhZGQgdGhvc2UgcmVzb3VyY2VzIHRvXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlQWxhcm0oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IE1vbml0b3JUeXBlLCBhbGFybTogTWV0cmljQWxhcm1Qcm9wcyk6IHZvaWQge1xuICAgIGNvbnN0IHsgc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQsIHRocmVzaG9sZCB9ID0gdGhpcy5zaG91bGRPdmVycmlkZVRocmVzaG9sZCh7IHdhdGNoZnVsTW9uaXRvclNjb3BlOiBzY29wZSwgd2F0Y2hmdWxOb2RlSWQ6IGlkIH0pO1xuICAgIGlmICh0aGlzLmFsYXJtVG9waWMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgY3dBbGFybSA9IGFsYXJtLm1ldHJpYy5jcmVhdGVBbGFybShzY29wZSwgaWQsIHtcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYWxhcm0uYWxhcm1EZXNjcmlwdGlvbixcbiAgICAgICAgdGhyZXNob2xkOiBzaG91bGRPdmVycmlkZVRocmVzaG9sZCA/IHRocmVzaG9sZCBhcyBudW1iZXIgOiBhbGFybS50aHJlc2hvbGQsXG4gICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogYWxhcm0uY29tcGFyaXNvbk9wZXJhdG9yLFxuICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogYWxhcm0uZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICB9KTtcbiAgICAgIGlmICh0aGlzLmFsYXJtVG9waWMpIHtcbiAgICAgICAgY3dBbGFybS5hZGRBbGFybUFjdGlvbihuZXcgY3dfYWN0aW9ucy5TbnNBY3Rpb24odGhpcy5hbGFybVRvcGljKSk7XG4gICAgICAgIGN3QWxhcm0uYWRkT2tBY3Rpb24obmV3IGN3X2FjdGlvbnMuU25zQWN0aW9uKHRoaXMuYWxhcm1Ub3BpYykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGFEb2dNb25pdG9yU2VydmljZVRva2VuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG5ldyBEYXRhRG9nTWV0cmljQWxhcm0oc2NvcGUsIGlkLCB7XG4gICAgICAgIHNlcnZpY2VUb2tlbjogdGhpcy5kYXRhRG9nTW9uaXRvclNlcnZpY2VUb2tlbiA/PyAnJyxcbiAgICAgICAgc2VydmljZU5hbWU6IHRoaXMuZGF0YURvZ01vbml0b3JTZXJ2aWNlTmFtZSxcbiAgICAgICAgZGF0YURvZ09wc0dlbmllSW50ZWdyYXRpb25OYW1lOiB0aGlzLmRhdGFEb2dPcHNHZW5pZUludGVncmF0aW9uTmFtZSA/PyAnJyxcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYWxhcm0uYWxhcm1EZXNjcmlwdGlvbixcbiAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBhbGFybS5jb21wYXJpc29uT3BlcmF0b3IsXG4gICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBhbGFybS5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgbWV0cmljOiBhbGFybS5tZXRyaWMsXG4gICAgICAgIHRocmVzaG9sZDogc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQgPyB0aHJlc2hvbGQgYXMgbnVtYmVyIDogYWxhcm0udGhyZXNob2xkLFxuICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBhbGFybS50cmVhdE1pc3NpbmdEYXRhLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gYWxlcnQgZm9yIGVycm9yIGxvZ3NcbiAgICogQHBhcmFtIHNjb3BlXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlTG9nQWxhcm0oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IE1vbml0b3JUeXBlLCBhbGFybTogTG9nQWxhcm1Qcm9wcyk6dm9pZCB7XG4gICAgY29uc3QgeyBzaG91bGRPdmVycmlkZVRocmVzaG9sZCwgdGhyZXNob2xkIH0gPSB0aGlzLnNob3VsZE92ZXJyaWRlVGhyZXNob2xkKHsgd2F0Y2hmdWxNb25pdG9yU2NvcGU6IHNjb3BlLCB3YXRjaGZ1bE5vZGVJZDogaWQgfSk7XG4gICAgaWYgKHRoaXMuZGF0YURvZ01vbml0b3JTZXJ2aWNlVG9rZW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgbmV3IERhdGFEb2dMb2dBbGFybShzY29wZSwgaWQsIHtcbiAgICAgICAgc2VydmljZVRva2VuOiB0aGlzLmRhdGFEb2dNb25pdG9yU2VydmljZVRva2VuID8/ICcnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogYWxhcm0ubGFtYmRhQ2xvdWR3YXRjaEdyb3VwTmFtZSA/PyB0aGlzLmRhdGFEb2dNb25pdG9yU2VydmljZU5hbWUsXG4gICAgICAgIGF1dG9DbG9zZU9wc0dlbmllQWxlcnRzOiBhbGFybS5hdXRvQ2xvc2VPcHNHZW5pZUFsZXJ0cyxcbiAgICAgICAgcGVyaW9kOiBhbGFybS5wZXJpb2QsXG4gICAgICAgIHVuaXRPZlBlcmlvZDogYWxhcm0udW5pdE9mUGVyaW9kLCAvLyB0b0RvOiBtb3ZlIHRoYXQgc29tZXdoZXJlIGVsc2UgYW5kIHNldCBkZWZhdWx0cyB0aGVyZT9cbiAgICAgICAgcGVyaW9kT3BlcmF0b3I6IGFsYXJtLnBlcmlvZE9wZXJhdG9yLFxuICAgICAgICBzdGF0aXN0aWM6IGFsYXJtLnN0YXRpc3RpYyxcbiAgICAgICAgcXVlcnlGaWx0ZXJzOiBhbGFybS5xdWVyeUZpbHRlcnMsIC8vIHRvRG86IG1vdmUgdGhhdCBzb21ld2hlcmUgZWxzZSBhbmQgc2V0IGRlZmF1bHRzIHRoZXJlP1xuICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBhbGFybS5hbGFybURlc2NyaXB0aW9uLFxuICAgICAgICB0aHJlc2hvbGQ6IHNob3VsZE92ZXJyaWRlVGhyZXNob2xkID8gdGhyZXNob2xkIGFzIG51bWJlciA6IGFsYXJtLnRocmVzaG9sZCxcbiAgICAgICAgcHJpb3JpdHk6IGFsYXJtLnByaW9yaXR5LFxuICAgICAgICBpbmRleDogYWxhcm0uaW5kZXgsXG4gICAgICAgIGxhbWJkYUNsb3Vkd2F0Y2hHcm91cE5hbWU6IGFsYXJtLmxhbWJkYUNsb3Vkd2F0Y2hHcm91cE5hbWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2F0Y2hlcyB0aGUgZ2l2ZW4gc2NvcGUgYW5kIGFkZHMgYWxhcm1zIGZvciBrbm93biByZXNvdXJjZXMuXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hTY29wZShzY29wZTogQ29uc3RydWN0KTogdm9pZCB7XG4gICAgY29uc3QgYXNwZWN0ID0gbmV3IFdhdGNoZnVsQXNwZWN0KHRoaXMpO1xuICAgIEFzcGVjdHMub2Yoc2NvcGUpLmFkZChhc3BlY3QpO1xuICB9XG5cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { INotification } from '../datadogv2';
3
- import { MetricAlarmProps, AbstractWatchful } from '../watchful';
3
+ import { MetricAlarmProps, AbstractWatchful, MonitorType } from '../watchful';
4
4
  import { LogAlarmProps } from './datadog-log-alarm';
5
5
  /**
6
6
  * Properties for defining Watchful
@@ -40,12 +40,12 @@ export declare class Watchful extends AbstractWatchful {
40
40
  *
41
41
  * @param alarm - The watchful to add those resources to
42
42
  */
43
- createAlarm(scope: Construct, id: string, alarm: MetricAlarmProps): void;
43
+ createAlarm(scope: Construct, id: MonitorType, alarm: MetricAlarmProps): void;
44
44
  /**
45
45
  * Adds an alert for error logs
46
46
  * @param scope
47
47
  */
48
- createLogAlarm(scope: Construct, id: string, alarm: LogAlarmProps): void;
48
+ createLogAlarm(scope: Construct, id: MonitorType, alarm: LogAlarmProps): void;
49
49
  /**
50
50
  * Watches the given scope and adds alarms for known resources.
51
51
  */
@@ -32,6 +32,7 @@ class Watchful extends watchful_1.AbstractWatchful {
32
32
  * @param alarm - The watchful to add those resources to
33
33
  */
34
34
  createAlarm(scope, id, alarm) {
35
+ const { shouldOverrideThreshold, threshold } = this.shouldOverrideThreshold({ watchfulMonitorScope: scope, watchfulNodeId: id });
35
36
  new datadog_metric_alarm_1.DataDogMetricAlarm(scope, id, {
36
37
  serviceName: this.serviceName,
37
38
  notification: this.notification,
@@ -39,7 +40,7 @@ class Watchful extends watchful_1.AbstractWatchful {
39
40
  comparisonOperator: alarm.comparisonOperator,
40
41
  evaluationPeriods: alarm.evaluationPeriods,
41
42
  metric: alarm.metric,
42
- threshold: alarm.threshold,
43
+ threshold: shouldOverrideThreshold ? threshold : alarm.threshold,
43
44
  treatMissingData: alarm.treatMissingData,
44
45
  });
45
46
  }
@@ -48,6 +49,7 @@ class Watchful extends watchful_1.AbstractWatchful {
48
49
  * @param scope
49
50
  */
50
51
  createLogAlarm(scope, id, alarm) {
52
+ const { shouldOverrideThreshold, threshold } = this.shouldOverrideThreshold({ watchfulMonitorScope: scope, watchfulNodeId: id });
51
53
  new datadog_log_alarm_1.DataDogLogAlarm(scope, id, {
52
54
  serviceName: alarm.lambdaCloudwatchGroupName ?? this.serviceName,
53
55
  notification: this.notification,
@@ -58,7 +60,7 @@ class Watchful extends watchful_1.AbstractWatchful {
58
60
  statistic: alarm.statistic,
59
61
  queryFilters: alarm.queryFilters,
60
62
  alarmDescription: alarm.alarmDescription,
61
- threshold: alarm.threshold,
63
+ threshold: shouldOverrideThreshold ? threshold : alarm.threshold,
62
64
  priority: alarm.priority,
63
65
  index: alarm.index,
64
66
  });
@@ -74,4 +76,4 @@ class Watchful extends watchful_1.AbstractWatchful {
74
76
  exports.Watchful = Watchful;
75
77
  _a = JSII_RTTI_SYMBOL_1;
76
78
  Watchful[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.watchfulv2.Watchful", version: "0.0.0" };
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hmdWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hmdWx2Mi93YXRjaGZ1bC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE2QztBQUU3Qyw0Q0FBdUU7QUFDdkUsMENBQWlGO0FBQ2pGLDJEQUFxRTtBQUNyRSxpRUFBNEQ7QUFxQjVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsMkJBQWdCO0lBSTVDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBdUIsRUFBRTtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsSUFBSSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFakUsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksb0NBQXdCLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QjtRQUN0RSxJQUFJLHlDQUFrQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDaEMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7WUFDNUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtZQUMxQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGNBQWMsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjtRQUV0RSxJQUFJLG1DQUFlLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUM3QixXQUFXLEVBQUUsS0FBSyxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQ2hFLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQix1QkFBdUIsRUFBRSxLQUFLLENBQUMsdUJBQXVCO1lBQ3RELE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsS0FBZ0I7UUFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSx5QkFBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLHFCQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDOztBQXpESCw0QkEwREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3BlY3RzLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uLCBJTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vZGF0YWRvZ3YyJztcbmltcG9ydCB7IFdhdGNoZnVsQXNwZWN0LCBNZXRyaWNBbGFybVByb3BzLCBBYnN0cmFjdFdhdGNoZnVsIH0gZnJvbSAnLi4vd2F0Y2hmdWwnO1xuaW1wb3J0IHsgRGF0YURvZ0xvZ0FsYXJtLCBMb2dBbGFybVByb3BzIH0gZnJvbSAnLi9kYXRhZG9nLWxvZy1hbGFybSc7XG5pbXBvcnQgeyBEYXRhRG9nTWV0cmljQWxhcm0gfSBmcm9tICcuL2RhdGFkb2ctbWV0cmljLWFsYXJtJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBXYXRjaGZ1bFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoZnVsUHJvcHMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBUaGUgc3RhY2sgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHdheSBob3cgbW9uaXRvcnMgc2hvdWxkIG5vdGlmeSBpbiBjYXNlIG9mIGFuIGFsZXJ0LlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb259XG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb24/OiBJTm90aWZpY2F0aW9uO1xufVxuXG4vKipcbiAqIEEgY29uc3RydWN0IHRvIHdhdGNoIGdpdmVuIHNjb3BlIG9yIHJlc291cmNlcy4gT3BpbmlvbmF0ZWQgRGF0YURvZyBhbGFybXMgYXJlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBmb3Igd2F0Y2hlZCByZXNvdXJjZXMuXG4gKlxuICogVXNhZ2Ugd2l0aCBub24tZGVmYXVsdCBub3RpZmljYXRpb246XG4gKiBgYGB0c1xuICogY29uc3QgZHcgPSBuZXcgd2F0Y2hmdWx2Mi5XYXRjaGZ1bCh0aGlzLCAnV2F0Y2hmdWwnLCB7XG4gKiAgIHNlcnZpY2VOYW1lOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAqICAgbm90aWZpY2F0aW9uOiBuZXcgZGF0YWRvZ3YyLlNsYWNrTm90aWZpY2F0aW9uKHtjaGFubmVsOiAndGVhbS1hbGVydC1jaGFubmVsJ30pXG4gKiB9KTtcbiAqIGR3LndhdGNoU2NvcGUodGhpcyk7XG4gKmBgYFxuICovXG5leHBvcnQgY2xhc3MgV2F0Y2hmdWwgZXh0ZW5kcyBBYnN0cmFjdFdhdGNoZnVsIHtcbiAgcHJpdmF0ZSByZWFkb25seSBub3RpZmljYXRpb246IElOb3RpZmljYXRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV2F0Y2hmdWxQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnNlcnZpY2VOYW1lID0gcHJvcHMuc2VydmljZU5hbWUgPz8gU3RhY2sub2YodGhpcykuc3RhY2tOYW1lO1xuXG4gICAgdGhpcy5ub3RpZmljYXRpb24gPSBwcm9wcy5ub3RpZmljYXRpb24gPz8gbmV3IERlZmF1bHRTbGFja05vdGlmaWNhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhlIGFsYXJtVG9waWMgYXMgYWxhcm0gYWN0aW9uIHRvIHRoZSBnaXZlbiBhbGFybS5cbiAgICpcbiAgICogQHBhcmFtIGFsYXJtIC0gVGhlIHdhdGNoZnVsIHRvIGFkZCB0aG9zZSByZXNvdXJjZXMgdG9cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVBbGFybShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhbGFybTogTWV0cmljQWxhcm1Qcm9wcyk6IHZvaWQge1xuICAgIG5ldyBEYXRhRG9nTWV0cmljQWxhcm0oc2NvcGUsIGlkLCB7XG4gICAgICBzZXJ2aWNlTmFtZTogdGhpcy5zZXJ2aWNlTmFtZSxcbiAgICAgIG5vdGlmaWNhdGlvbjogdGhpcy5ub3RpZmljYXRpb24sXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBhbGFybS5hbGFybURlc2NyaXB0aW9uLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBhbGFybS5jb21wYXJpc29uT3BlcmF0b3IsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogYWxhcm0uZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICBtZXRyaWM6IGFsYXJtLm1ldHJpYyxcbiAgICAgIHRocmVzaG9sZDogYWxhcm0udGhyZXNob2xkLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogYWxhcm0udHJlYXRNaXNzaW5nRGF0YSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGFsZXJ0IGZvciBlcnJvciBsb2dzXG4gICAqIEBwYXJhbSBzY29wZVxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUxvZ0FsYXJtKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGFsYXJtOiBMb2dBbGFybVByb3BzKTp2b2lkIHtcblxuICAgIG5ldyBEYXRhRG9nTG9nQWxhcm0oc2NvcGUsIGlkLCB7XG4gICAgICBzZXJ2aWNlTmFtZTogYWxhcm0ubGFtYmRhQ2xvdWR3YXRjaEdyb3VwTmFtZSA/PyB0aGlzLnNlcnZpY2VOYW1lLFxuICAgICAgbm90aWZpY2F0aW9uOiB0aGlzLm5vdGlmaWNhdGlvbixcbiAgICAgIGF1dG9DbG9zZU9wc0dlbmllQWxlcnRzOiBhbGFybS5hdXRvQ2xvc2VPcHNHZW5pZUFsZXJ0cyxcbiAgICAgIHBlcmlvZDogYWxhcm0ucGVyaW9kLFxuICAgICAgdW5pdE9mUGVyaW9kOiBhbGFybS51bml0T2ZQZXJpb2QsIC8vIHRvRG86IG1vdmUgdGhhdCBzb21ld2hlcmUgZWxzZSBhbmQgc2V0IGRlZmF1bHRzIHRoZXJlP1xuICAgICAgcGVyaW9kT3BlcmF0b3I6IGFsYXJtLnBlcmlvZE9wZXJhdG9yLFxuICAgICAgc3RhdGlzdGljOiBhbGFybS5zdGF0aXN0aWMsXG4gICAgICBxdWVyeUZpbHRlcnM6IGFsYXJtLnF1ZXJ5RmlsdGVycywgLy8gdG9EbzogbW92ZSB0aGF0IHNvbWV3aGVyZSBlbHNlIGFuZCBzZXQgZGVmYXVsdHMgdGhlcmU/XG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBhbGFybS5hbGFybURlc2NyaXB0aW9uLFxuICAgICAgdGhyZXNob2xkOiBhbGFybS50aHJlc2hvbGQsXG4gICAgICBwcmlvcml0eTogYWxhcm0ucHJpb3JpdHksXG4gICAgICBpbmRleDogYWxhcm0uaW5kZXgsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogV2F0Y2hlcyB0aGUgZ2l2ZW4gc2NvcGUgYW5kIGFkZHMgYWxhcm1zIGZvciBrbm93biByZXNvdXJjZXMuXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hTY29wZShzY29wZTogQ29uc3RydWN0KTogdm9pZCB7XG4gICAgY29uc3QgYXNwZWN0ID0gbmV3IFdhdGNoZnVsQXNwZWN0KHRoaXMpO1xuICAgIEFzcGVjdHMub2Yoc2NvcGUpLmFkZChhc3BlY3QpO1xuICB9XG59XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hmdWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hmdWx2Mi93YXRjaGZ1bC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE2QztBQUU3Qyw0Q0FBdUU7QUFDdkUsMENBQThGO0FBQzlGLDJEQUFxRTtBQUNyRSxpRUFBNEQ7QUFxQjVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsMkJBQWdCO0lBSTVDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBdUIsRUFBRTtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsSUFBSSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFakUsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksb0NBQXdCLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxLQUFnQixFQUFFLEVBQWUsRUFBRSxLQUF1QjtRQUMzRSxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pJLElBQUkseUNBQWtCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNoQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7WUFDeEMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtZQUM1QyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzFDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixTQUFTLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLFNBQW1CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTO1lBQzFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7U0FDekMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGNBQWMsQ0FBQyxLQUFnQixFQUFFLEVBQWUsRUFBRSxLQUFvQjtRQUMzRSxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pJLElBQUksbUNBQWUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQzdCLFdBQVcsRUFBRSxLQUFLLENBQUMseUJBQXlCLElBQUksSUFBSSxDQUFDLFdBQVc7WUFDaEUsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLHVCQUF1QixFQUFFLEtBQUssQ0FBQyx1QkFBdUI7WUFDdEQsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7WUFDcEMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVM7WUFDMUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsS0FBZ0I7UUFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSx5QkFBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLHFCQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDOztBQTNESCw0QkE0REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3BlY3RzLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uLCBJTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vZGF0YWRvZ3YyJztcbmltcG9ydCB7IFdhdGNoZnVsQXNwZWN0LCBNZXRyaWNBbGFybVByb3BzLCBBYnN0cmFjdFdhdGNoZnVsLCBNb25pdG9yVHlwZSB9IGZyb20gJy4uL3dhdGNoZnVsJztcbmltcG9ydCB7IERhdGFEb2dMb2dBbGFybSwgTG9nQWxhcm1Qcm9wcyB9IGZyb20gJy4vZGF0YWRvZy1sb2ctYWxhcm0nO1xuaW1wb3J0IHsgRGF0YURvZ01ldHJpY0FsYXJtIH0gZnJvbSAnLi9kYXRhZG9nLW1ldHJpYy1hbGFybSc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgV2F0Y2hmdWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYXRjaGZ1bFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgVGhlIHN0YWNrIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogU2V0IHRoZSB3YXkgaG93IG1vbml0b3JzIHNob3VsZCBub3RpZnkgaW4gY2FzZSBvZiBhbiBhbGVydC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB7QGxpbmsgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9ufVxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uPzogSU5vdGlmaWNhdGlvbjtcbn1cblxuLyoqXG4gKiBBIGNvbnN0cnVjdCB0byB3YXRjaCBnaXZlbiBzY29wZSBvciByZXNvdXJjZXMuIE9waW5pb25hdGVkIERhdGFEb2cgYWxhcm1zIGFyZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgZm9yIHdhdGNoZWQgcmVzb3VyY2VzLlxuICpcbiAqIFVzYWdlIHdpdGggbm9uLWRlZmF1bHQgbm90aWZpY2F0aW9uOlxuICogYGBgdHNcbiAqIGNvbnN0IGR3ID0gbmV3IHdhdGNoZnVsdjIuV2F0Y2hmdWwodGhpcywgJ1dhdGNoZnVsJywge1xuICogICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gKiAgIG5vdGlmaWNhdGlvbjogbmV3IGRhdGFkb2d2Mi5TbGFja05vdGlmaWNhdGlvbih7Y2hhbm5lbDogJ3RlYW0tYWxlcnQtY2hhbm5lbCd9KVxuICogfSk7XG4gKiBkdy53YXRjaFNjb3BlKHRoaXMpO1xuICpgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFdhdGNoZnVsIGV4dGVuZHMgQWJzdHJhY3RXYXRjaGZ1bCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uOiBJTm90aWZpY2F0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdhdGNoZnVsUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5zZXJ2aWNlTmFtZSA9IHByb3BzLnNlcnZpY2VOYW1lID8/IFN0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZTtcblxuICAgIHRoaXMubm90aWZpY2F0aW9uID0gcHJvcHMubm90aWZpY2F0aW9uID8/IG5ldyBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoZSBhbGFybVRvcGljIGFzIGFsYXJtIGFjdGlvbiB0byB0aGUgZ2l2ZW4gYWxhcm0uXG4gICAqXG4gICAqIEBwYXJhbSBhbGFybSAtIFRoZSB3YXRjaGZ1bCB0byBhZGQgdGhvc2UgcmVzb3VyY2VzIHRvXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlQWxhcm0oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IE1vbml0b3JUeXBlLCBhbGFybTogTWV0cmljQWxhcm1Qcm9wcyk6IHZvaWQge1xuICAgIGNvbnN0IHsgc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQsIHRocmVzaG9sZCB9ID0gdGhpcy5zaG91bGRPdmVycmlkZVRocmVzaG9sZCh7IHdhdGNoZnVsTW9uaXRvclNjb3BlOiBzY29wZSwgd2F0Y2hmdWxOb2RlSWQ6IGlkIH0pO1xuICAgIG5ldyBEYXRhRG9nTWV0cmljQWxhcm0oc2NvcGUsIGlkLCB7XG4gICAgICBzZXJ2aWNlTmFtZTogdGhpcy5zZXJ2aWNlTmFtZSxcbiAgICAgIG5vdGlmaWNhdGlvbjogdGhpcy5ub3RpZmljYXRpb24sXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBhbGFybS5hbGFybURlc2NyaXB0aW9uLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBhbGFybS5jb21wYXJpc29uT3BlcmF0b3IsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogYWxhcm0uZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICBtZXRyaWM6IGFsYXJtLm1ldHJpYyxcbiAgICAgIHRocmVzaG9sZDogc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQgPyB0aHJlc2hvbGQgYXMgbnVtYmVyIDogYWxhcm0udGhyZXNob2xkLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogYWxhcm0udHJlYXRNaXNzaW5nRGF0YSxcbiAgICB9KTtcblxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gYWxlcnQgZm9yIGVycm9yIGxvZ3NcbiAgICogQHBhcmFtIHNjb3BlXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlTG9nQWxhcm0oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IE1vbml0b3JUeXBlLCBhbGFybTogTG9nQWxhcm1Qcm9wcyk6dm9pZCB7XG4gICAgY29uc3QgeyBzaG91bGRPdmVycmlkZVRocmVzaG9sZCwgdGhyZXNob2xkIH0gPSB0aGlzLnNob3VsZE92ZXJyaWRlVGhyZXNob2xkKHsgd2F0Y2hmdWxNb25pdG9yU2NvcGU6IHNjb3BlLCB3YXRjaGZ1bE5vZGVJZDogaWQgfSk7XG4gICAgbmV3IERhdGFEb2dMb2dBbGFybShzY29wZSwgaWQsIHtcbiAgICAgIHNlcnZpY2VOYW1lOiBhbGFybS5sYW1iZGFDbG91ZHdhdGNoR3JvdXBOYW1lID8/IHRoaXMuc2VydmljZU5hbWUsXG4gICAgICBub3RpZmljYXRpb246IHRoaXMubm90aWZpY2F0aW9uLFxuICAgICAgYXV0b0Nsb3NlT3BzR2VuaWVBbGVydHM6IGFsYXJtLmF1dG9DbG9zZU9wc0dlbmllQWxlcnRzLFxuICAgICAgcGVyaW9kOiBhbGFybS5wZXJpb2QsXG4gICAgICB1bml0T2ZQZXJpb2Q6IGFsYXJtLnVuaXRPZlBlcmlvZCwgLy8gdG9EbzogbW92ZSB0aGF0IHNvbWV3aGVyZSBlbHNlIGFuZCBzZXQgZGVmYXVsdHMgdGhlcmU/XG4gICAgICBwZXJpb2RPcGVyYXRvcjogYWxhcm0ucGVyaW9kT3BlcmF0b3IsXG4gICAgICBzdGF0aXN0aWM6IGFsYXJtLnN0YXRpc3RpYyxcbiAgICAgIHF1ZXJ5RmlsdGVyczogYWxhcm0ucXVlcnlGaWx0ZXJzLCAvLyB0b0RvOiBtb3ZlIHRoYXQgc29tZXdoZXJlIGVsc2UgYW5kIHNldCBkZWZhdWx0cyB0aGVyZT9cbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGFsYXJtLmFsYXJtRGVzY3JpcHRpb24sXG4gICAgICB0aHJlc2hvbGQ6IHNob3VsZE92ZXJyaWRlVGhyZXNob2xkID8gdGhyZXNob2xkIGFzIG51bWJlciA6IGFsYXJtLnRocmVzaG9sZCxcbiAgICAgIHByaW9yaXR5OiBhbGFybS5wcmlvcml0eSxcbiAgICAgIGluZGV4OiBhbGFybS5pbmRleCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXYXRjaGVzIHRoZSBnaXZlbiBzY29wZSBhbmQgYWRkcyBhbGFybXMgZm9yIGtub3duIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyB3YXRjaFNjb3BlKHNjb3BlOiBDb25zdHJ1Y3QpOiB2b2lkIHtcbiAgICBjb25zdCBhc3BlY3QgPSBuZXcgV2F0Y2hmdWxBc3BlY3QodGhpcyk7XG4gICAgQXNwZWN0cy5vZihzY29wZSkuYWRkKGFzcGVjdCk7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "main": "lib/index.js",
17
17
  "license": "Apache-2.0",
18
- "version": "4.18.0",
18
+ "version": "4.19.0",
19
19
  "types": "lib/index.d.ts",
20
20
  "stability": "stable",
21
21
  "exports": {
package/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "4.18.0"
2
+ "version": "4.19.0"
3
3
  }