@cdklabs/multi-az-observability 0.0.1-alpha.25 → 0.0.1-alpha.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/.jsii +2 -32
  2. package/API.md +0 -26
  3. package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.js +11 -7
  4. package/lib/alarmsandrules/IOperationAlarmsAndRules.d.ts +0 -5
  5. package/lib/alarmsandrules/IOperationAlarmsAndRules.js +1 -1
  6. package/lib/alarmsandrules/IServerSideOperationRegionalAlarmsAndRules.d.ts +1 -2
  7. package/lib/alarmsandrules/IServerSideOperationRegionalAlarmsAndRules.js +1 -1
  8. package/lib/alarmsandrules/IServiceAlarmsAndRules.d.ts +0 -2
  9. package/lib/alarmsandrules/IServiceAlarmsAndRules.js +1 -1
  10. package/lib/alarmsandrules/OperationAlarmsAndRules.d.ts +0 -5
  11. package/lib/alarmsandrules/OperationAlarmsAndRules.js +28 -52
  12. package/lib/alarmsandrules/ServerSideOperationRegionalAlarmsAndRules.d.ts +1 -2
  13. package/lib/alarmsandrules/ServerSideOperationRegionalAlarmsAndRules.js +4 -4
  14. package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.js +13 -9
  15. package/lib/alarmsandrules/ServiceAlarmsAndRules.d.ts +0 -2
  16. package/lib/alarmsandrules/ServiceAlarmsAndRules.js +53 -27
  17. package/lib/alarmsandrules/props/BaseOperationZonalAlarmsAndRulesProps.d.ts +24 -3
  18. package/lib/alarmsandrules/props/BaseOperationZonalAlarmsAndRulesProps.js +1 -1
  19. package/lib/azmapper/AvailabilityZoneMapper.js +1 -1
  20. package/lib/basic_observability/BasicServiceMultiAZObservability.js +1 -1
  21. package/lib/canaries/src/canary.zip +0 -0
  22. package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.js +21 -7
  23. package/lib/monitoring/src/monitoring-layer.zip +0 -0
  24. package/lib/outlier-detection/src/outlier-detection.zip +0 -0
  25. package/lib/outlier-detection/src/scipy-layer.zip +0 -0
  26. package/lib/services/CanaryMetrics.js +1 -1
  27. package/lib/services/CanaryTestMetricsOverride.js +1 -1
  28. package/lib/services/ContributorInsightRuleDetails.js +1 -1
  29. package/lib/services/InstrumentedServiceMultiAZObservability.js +3 -2
  30. package/lib/services/Operation.js +1 -1
  31. package/lib/services/OperationMetricDetails.js +1 -1
  32. package/lib/services/Service.js +1 -1
  33. package/lib/services/ServiceMetricDetails.js +1 -1
  34. package/lib/services/props/MetricDimensions.js +1 -1
  35. package/package.json +1 -1
package/.jsii CHANGED
@@ -7338,36 +7338,6 @@
7338
7338
  },
7339
7339
  "name": "IServiceAlarmsAndRules",
7340
7340
  "properties": [
7341
- {
7342
- "abstract": true,
7343
- "docs": {
7344
- "stability": "experimental",
7345
- "summary": "An alarm for regional availability or latency impact of any critical operation as measured by the server-side."
7346
- },
7347
- "locationInModule": {
7348
- "filename": "src/alarmsandrules/IServiceAlarmsAndRules.ts",
7349
- "line": 43
7350
- },
7351
- "name": "regionalAvailabilityOrLatencyServerSideAlarm",
7352
- "type": {
7353
- "fqn": "aws-cdk-lib.aws_cloudwatch.IAlarm"
7354
- }
7355
- },
7356
- {
7357
- "abstract": true,
7358
- "docs": {
7359
- "stability": "experimental",
7360
- "summary": "An alarm for regional availability impact of any critical operation as measured by the server-side."
7361
- },
7362
- "locationInModule": {
7363
- "filename": "src/alarmsandrules/IServiceAlarmsAndRules.ts",
7364
- "line": 48
7365
- },
7366
- "name": "regionalAvailabilityServerSideAlarm",
7367
- "type": {
7368
- "fqn": "aws-cdk-lib.aws_cloudwatch.IAlarm"
7369
- }
7370
- },
7371
7341
  {
7372
7342
  "abstract": true,
7373
7343
  "docs": {
@@ -10417,6 +10387,6 @@
10417
10387
  "symbolId": "src/services/props/ServiceProps:ServiceProps"
10418
10388
  }
10419
10389
  },
10420
- "version": "0.0.1-alpha.25",
10421
- "fingerprint": "LT5Wg7PrYlNOMviQDAa0rEdD9ANDG9Zl1VGnbT1eNrw="
10390
+ "version": "0.0.1-alpha.26",
10391
+ "fingerprint": "waG+p90oWLGHlEGNeILucvEsgfcmUB13H0HHGcJHvmY="
10422
10392
  }
package/API.md CHANGED
@@ -4893,8 +4893,6 @@ Service level alarms and rules using critical operations.
4893
4893
 
4894
4894
  | **Name** | **Type** | **Description** |
4895
4895
  | --- | --- | --- |
4896
- | <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalAvailabilityOrLatencyServerSideAlarm">regionalAvailabilityOrLatencyServerSideAlarm</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm</code> | An alarm for regional availability or latency impact of any critical operation as measured by the server-side. |
4897
- | <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalAvailabilityServerSideAlarm">regionalAvailabilityServerSideAlarm</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm</code> | An alarm for regional availability impact of any critical operation as measured by the server-side. |
4898
4896
  | <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalFaultCountServerSideAlarm">regionalFaultCountServerSideAlarm</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm</code> | An alarm for fault count exceeding a regional threshold for all critical operations. |
4899
4897
  | <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.service">service</a></code> | <code><a href="#@cdklabs/multi-az-observability.IService">IService</a></code> | The service these alarms and rules are for. |
4900
4898
  | <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.zonalAggregateIsolatedImpactAlarms">zonalAggregateIsolatedImpactAlarms</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm[]</code> | The zonal aggregate isolated impact alarms. |
@@ -4904,30 +4902,6 @@ Service level alarms and rules using critical operations.
4904
4902
 
4905
4903
  ---
4906
4904
 
4907
- ##### `regionalAvailabilityOrLatencyServerSideAlarm`<sup>Required</sup> <a name="regionalAvailabilityOrLatencyServerSideAlarm" id="@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalAvailabilityOrLatencyServerSideAlarm"></a>
4908
-
4909
- ```typescript
4910
- public readonly regionalAvailabilityOrLatencyServerSideAlarm: IAlarm;
4911
- ```
4912
-
4913
- - *Type:* aws-cdk-lib.aws_cloudwatch.IAlarm
4914
-
4915
- An alarm for regional availability or latency impact of any critical operation as measured by the server-side.
4916
-
4917
- ---
4918
-
4919
- ##### `regionalAvailabilityServerSideAlarm`<sup>Required</sup> <a name="regionalAvailabilityServerSideAlarm" id="@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalAvailabilityServerSideAlarm"></a>
4920
-
4921
- ```typescript
4922
- public readonly regionalAvailabilityServerSideAlarm: IAlarm;
4923
- ```
4924
-
4925
- - *Type:* aws-cdk-lib.aws_cloudwatch.IAlarm
4926
-
4927
- An alarm for regional availability impact of any critical operation as measured by the server-side.
4928
-
4929
- ---
4930
-
4931
4905
  ##### `regionalFaultCountServerSideAlarm`<sup>Required</sup> <a name="regionalFaultCountServerSideAlarm" id="@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalFaultCountServerSideAlarm"></a>
4932
4906
 
4933
4907
  ```typescript
@@ -12,25 +12,29 @@ class CanaryOperationZonalAlarmsAndRules extends BaseOperationZonalAlarmsAndRule
12
12
  super(scope, id, props);
13
13
  let azLetter = props.availabilityZone.substring(props.availabilityZone.length - 1);
14
14
  let availabilityZoneId = props.azMapper.availabilityZoneIdFromAvailabilityZoneLetter(azLetter);
15
- if (props.outlierDetectionAlgorithm == OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.STATIC) {
15
+ if (props.availabilityOutlierDetectionAlgorithm == OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.STATIC) {
16
16
  this.availabilityZoneIsOutlierForFaults =
17
- AvailabilityAndLatencyAlarmsAndRules_1.AvailabilityAndLatencyAlarmsAndRules.createZonalFaultRateStaticOutlierAlarmForCanaries(this, props.availabilityMetricDetails, props.availabilityZone, availabilityZoneId, props.operation.service.availabilityZoneNames, props.counter, props.outlierThreshold, props.nameSuffix);
18
- this.availabilityZoneIsOutlierForLatency =
19
- AvailabilityAndLatencyAlarmsAndRules_1.AvailabilityAndLatencyAlarmsAndRules.createZonalHighLatencyStaticOutlierAlarmForCanaries(this, props.latencyMetricDetails, props.availabilityZone, availabilityZoneId, props.operation.service.availabilityZoneNames, props.counter, props.outlierThreshold, props.nameSuffix);
17
+ AvailabilityAndLatencyAlarmsAndRules_1.AvailabilityAndLatencyAlarmsAndRules.createZonalFaultRateStaticOutlierAlarmForCanaries(this, props.availabilityMetricDetails, props.availabilityZone, availabilityZoneId, props.operation.service.availabilityZoneNames, props.counter, props.availabilityOutlierThreshold, props.nameSuffix);
20
18
  }
21
19
  else {
22
20
  this.availabilityZoneIsOutlierForFaults =
23
21
  AvailabilityAndLatencyAlarmsAndRules_1.AvailabilityAndLatencyAlarmsAndRules.createZonalFaultRateOutlierAlarm(this, props.availabilityMetricDetails, availabilityZoneId, props.operation.service.availabilityZoneNames.map((az) => {
24
22
  return props.azMapper.availabilityZoneIdFromAvailabilityZoneLetter(az.substring(az.length - 1));
25
- }), props.outlierThreshold, props.outlierDetectionFunction, props.outlierDetectionAlgorithm, props.counter, props.nameSuffix);
23
+ }), props.availabilityOutlierThreshold, props.outlierDetectionFunction, props.availabilityOutlierDetectionAlgorithm, props.counter, props.nameSuffix);
24
+ }
25
+ if (props.latencyOutlierDetectionAlgorithm == OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.STATIC) {
26
+ this.availabilityZoneIsOutlierForLatency =
27
+ AvailabilityAndLatencyAlarmsAndRules_1.AvailabilityAndLatencyAlarmsAndRules.createZonalHighLatencyStaticOutlierAlarmForCanaries(this, props.latencyMetricDetails, props.availabilityZone, availabilityZoneId, props.operation.service.availabilityZoneNames, props.counter, props.latencyOutlierThreshold, props.nameSuffix);
28
+ }
29
+ else {
26
30
  this.availabilityZoneIsOutlierForLatency =
27
31
  AvailabilityAndLatencyAlarmsAndRules_1.AvailabilityAndLatencyAlarmsAndRules.createZonalHighLatencyOutlierAlarm(this, props.latencyMetricDetails, availabilityZoneId, props.operation.service.availabilityZoneNames.map((az) => {
28
32
  return props.azMapper.availabilityZoneIdFromAvailabilityZoneLetter(az.substring(az.length - 1));
29
- }), props.outlierThreshold, props.outlierDetectionFunction, props.outlierDetectionAlgorithm, props.counter, props.nameSuffix);
33
+ }), props.latencyOutlierThreshold, props.outlierDetectionFunction, props.latencyOutlierDetectionAlgorithm, props.counter, props.nameSuffix);
30
34
  }
31
35
  this.isolatedImpactAlarm =
32
36
  AvailabilityAndLatencyAlarmsAndRules_1.AvailabilityAndLatencyAlarmsAndRules.createCanaryIsolatedAZImpactAlarm(this, props.availabilityMetricDetails.operationName, availabilityZoneId, props.counter, this.availabilityZoneIsOutlierForFaults, this.availabilityAlarm, this.availabilityZoneIsOutlierForLatency, this.latencyAlarm, props.nameSuffix);
33
37
  }
34
38
  }
35
39
  exports.CanaryOperationZonalAlarmsAndRules = CanaryOperationZonalAlarmsAndRules;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbGFybXNhbmRydWxlcy9DYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLGlHQUE4RjtBQUM5Rix5RkFBc0Y7QUFHdEYsc0ZBQW1GO0FBRW5GOztHQUVHO0FBQ0gsTUFBYSxrQ0FDWCxTQUFRLG1FQUFnQztJQWtCeEMsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBOEM7UUFFOUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxRQUFRLEdBQVcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNGLElBQUksa0JBQWtCLEdBQVcsS0FBSyxDQUFDLFFBQVEsQ0FBQyw0Q0FBNEMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV2RyxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsSUFBSSxxREFBeUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4RSxJQUFJLENBQUMsa0NBQWtDO2dCQUNyQywyRUFBb0MsQ0FBQyxpREFBaUQsQ0FDcEYsSUFBSSxFQUNKLEtBQUssQ0FBQyx5QkFBeUIsRUFDL0IsS0FBSyxDQUFDLGdCQUFnQixFQUN0QixrQkFBa0IsRUFDbEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQzdDLEtBQUssQ0FBQyxPQUFPLEVBQ2IsS0FBSyxDQUFDLGdCQUFnQixFQUN0QixLQUFLLENBQUMsVUFBVSxDQUNqQixDQUFDO1lBQ0osSUFBSSxDQUFDLG1DQUFtQztnQkFDdEMsMkVBQW9DLENBQUMsbURBQW1ELENBQ3RGLElBQUksRUFDSixLQUFLLENBQUMsb0JBQW9CLEVBQzFCLEtBQUssQ0FBQyxnQkFBZ0IsRUFDdEIsa0JBQWtCLEVBQ2xCLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUM3QyxLQUFLLENBQUMsT0FBTyxFQUNiLEtBQUssQ0FBQyxnQkFBZ0IsRUFDdEIsS0FBSyxDQUFDLFVBQVUsQ0FDakIsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGtDQUFrQztnQkFDckMsMkVBQW9DLENBQUMsZ0NBQWdDLENBQ25FLElBQUksRUFDSixLQUFLLENBQUMseUJBQXlCLEVBQy9CLGtCQUFrQixFQUNsQixLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtvQkFDdkQsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLDRDQUE0QyxDQUNoRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQzVCLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLEVBQ0YsS0FBSyxDQUFDLGdCQUFnQixFQUN0QixLQUFLLENBQUMsd0JBQXlCLEVBQy9CLEtBQUssQ0FBQyx5QkFBeUIsRUFDL0IsS0FBSyxDQUFDLE9BQU8sRUFDYixLQUFLLENBQUMsVUFBVSxDQUNqQixDQUFDO1lBQ0osSUFBSSxDQUFDLG1DQUFtQztnQkFDdEMsMkVBQW9DLENBQUMsa0NBQWtDLENBQ3JFLElBQUksRUFDSixLQUFLLENBQUMsb0JBQW9CLEVBQzFCLGtCQUFrQixFQUNsQixLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtvQkFDdkQsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLDRDQUE0QyxDQUNoRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQzVCLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLEVBQ0YsS0FBSyxDQUFDLGdCQUFnQixFQUN0QixLQUFLLENBQUMsd0JBQXlCLEVBQy9CLEtBQUssQ0FBQyx5QkFBeUIsRUFDL0IsS0FBSyxDQUFDLE9BQU8sRUFDYixLQUFLLENBQUMsVUFBVSxDQUNqQixDQUFDO1FBQ04sQ0FBQztRQUVELElBQUksQ0FBQyxtQkFBbUI7WUFDdEIsMkVBQW9DLENBQUMsaUNBQWlDLENBQ3BFLElBQUksRUFDSixLQUFLLENBQUMseUJBQXlCLENBQUMsYUFBYSxFQUM3QyxrQkFBa0IsRUFDbEIsS0FBSyxDQUFDLE9BQU8sRUFDYixJQUFJLENBQUMsa0NBQWtDLEVBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsSUFBSSxDQUFDLG1DQUFtQyxFQUN4QyxJQUFJLENBQUMsWUFBWSxFQUNqQixLQUFLLENBQUMsVUFBVSxDQUNqQixDQUFDO0lBQ04sQ0FBQztDQUNGO0FBcEdELGdGQW9HQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IElBbGFybSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeUFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9BdmFpbGFiaWxpdHlBbmRMYXRlbmN5QWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgQmFzZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0Jhc2VPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzUHJvcHMgfSBmcm9tICcuL3Byb3BzL0NhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXNQcm9wcyc7XG5pbXBvcnQgeyBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtIH0gZnJvbSAnLi4vdXRpbGl0aWVzL091dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0nO1xuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGFsYXJtcyBhbmQgcnVsZXMgZm9yIGEgcGFydGljdWxhciBvcGVyYXRpb24gYXMgbWVhc3VyZWQgYnkgdGhlIGNhbmFyeVxuICovXG5leHBvcnQgY2xhc3MgQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlc1xuICBleHRlbmRzIEJhc2VPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzXG4gIGltcGxlbWVudHMgSUNhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogQWxhcm0gdGhhdCB0cmlnZ2VycyBpZiBlaXRoZXIgbGF0ZW5jeSBvciBhdmFpbGFiaWxpdHkgYnJlYWNoIHRoZSBzcGVjaWZpZWRcbiAgICogdGhyZXNob2xkIGluIHRoaXMgQVogYW5kIHRoZSBBWiBpcyBhbiBvdXRsaWVyIGZvciBmYXVsdHMgb3IgbGF0ZW5jeVxuICAgKi9cbiAgaXNvbGF0ZWRJbXBhY3RBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbGFybSB0aGF0IGluZGljYXRlcyB0aGF0IHRoaXMgQVogaXMgYW4gb3V0bGllciBmb3IgZmF1bHQgcmF0ZVxuICAgKi9cbiAgYXZhaWxhYmlsaXR5Wm9uZUlzT3V0bGllckZvckZhdWx0czogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbGFybSB0aGF0IGluZGljYXRlcyB0aGlzIEFaIGlzIGFuIG91dGxpZXIgZm9yIGhpZ2ggbGF0ZW5jeVxuICAgKi9cbiAgYXZhaWxhYmlsaXR5Wm9uZUlzT3V0bGllckZvckxhdGVuY3k6IElBbGFybTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IENhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBsZXQgYXpMZXR0ZXI6IHN0cmluZyA9IHByb3BzLmF2YWlsYWJpbGl0eVpvbmUuc3Vic3RyaW5nKHByb3BzLmF2YWlsYWJpbGl0eVpvbmUubGVuZ3RoIC0gMSk7XG4gICAgbGV0IGF2YWlsYWJpbGl0eVpvbmVJZDogc3RyaW5nID0gcHJvcHMuYXpNYXBwZXIuYXZhaWxhYmlsaXR5Wm9uZUlkRnJvbUF2YWlsYWJpbGl0eVpvbmVMZXR0ZXIoYXpMZXR0ZXIpO1xuXG4gICAgaWYgKHByb3BzLm91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0gPT0gT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5TVEFUSUMpIHtcbiAgICAgIHRoaXMuYXZhaWxhYmlsaXR5Wm9uZUlzT3V0bGllckZvckZhdWx0cyA9XG4gICAgICAgIEF2YWlsYWJpbGl0eUFuZExhdGVuY3lBbGFybXNBbmRSdWxlcy5jcmVhdGVab25hbEZhdWx0UmF0ZVN0YXRpY091dGxpZXJBbGFybUZvckNhbmFyaWVzKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgcHJvcHMuYXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICBwcm9wcy5hdmFpbGFiaWxpdHlab25lLFxuICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmVJZCxcbiAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uc2VydmljZS5hdmFpbGFiaWxpdHlab25lTmFtZXMsXG4gICAgICAgICAgcHJvcHMuY291bnRlcixcbiAgICAgICAgICBwcm9wcy5vdXRsaWVyVGhyZXNob2xkLFxuICAgICAgICAgIHByb3BzLm5hbWVTdWZmaXgsXG4gICAgICAgICk7XG4gICAgICB0aGlzLmF2YWlsYWJpbGl0eVpvbmVJc091dGxpZXJGb3JMYXRlbmN5ID1cbiAgICAgICAgQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeUFsYXJtc0FuZFJ1bGVzLmNyZWF0ZVpvbmFsSGlnaExhdGVuY3lTdGF0aWNPdXRsaWVyQWxhcm1Gb3JDYW5hcmllcyhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLmxhdGVuY3lNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgIHByb3BzLmF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZUlkLFxuICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmF2YWlsYWJpbGl0eVpvbmVOYW1lcyxcbiAgICAgICAgICBwcm9wcy5jb3VudGVyLFxuICAgICAgICAgIHByb3BzLm91dGxpZXJUaHJlc2hvbGQsXG4gICAgICAgICAgcHJvcHMubmFtZVN1ZmZpeCxcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hdmFpbGFiaWxpdHlab25lSXNPdXRsaWVyRm9yRmF1bHRzID1cbiAgICAgICAgQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeUFsYXJtc0FuZFJ1bGVzLmNyZWF0ZVpvbmFsRmF1bHRSYXRlT3V0bGllckFsYXJtKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgcHJvcHMuYXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQsXG4gICAgICAgICAgcHJvcHMub3BlcmF0aW9uLnNlcnZpY2UuYXZhaWxhYmlsaXR5Wm9uZU5hbWVzLm1hcCgoYXopID0+IHtcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy5hek1hcHBlci5hdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihcbiAgICAgICAgICAgICAgYXouc3Vic3RyaW5nKGF6Lmxlbmd0aCAtIDEpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBwcm9wcy5vdXRsaWVyVGhyZXNob2xkLFxuICAgICAgICAgIHByb3BzLm91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbiEsXG4gICAgICAgICAgcHJvcHMub3V0bGllckRldGVjdGlvbkFsZ29yaXRobSxcbiAgICAgICAgICBwcm9wcy5jb3VudGVyLFxuICAgICAgICAgIHByb3BzLm5hbWVTdWZmaXgsXG4gICAgICAgICk7XG4gICAgICB0aGlzLmF2YWlsYWJpbGl0eVpvbmVJc091dGxpZXJGb3JMYXRlbmN5ID1cbiAgICAgICAgQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeUFsYXJtc0FuZFJ1bGVzLmNyZWF0ZVpvbmFsSGlnaExhdGVuY3lPdXRsaWVyQWxhcm0oXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBwcm9wcy5sYXRlbmN5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQsXG4gICAgICAgICAgcHJvcHMub3BlcmF0aW9uLnNlcnZpY2UuYXZhaWxhYmlsaXR5Wm9uZU5hbWVzLm1hcCgoYXopID0+IHtcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy5hek1hcHBlci5hdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihcbiAgICAgICAgICAgICAgYXouc3Vic3RyaW5nKGF6Lmxlbmd0aCAtIDEpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBwcm9wcy5vdXRsaWVyVGhyZXNob2xkLFxuICAgICAgICAgIHByb3BzLm91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbiEsXG4gICAgICAgICAgcHJvcHMub3V0bGllckRldGVjdGlvbkFsZ29yaXRobSxcbiAgICAgICAgICBwcm9wcy5jb3VudGVyLFxuICAgICAgICAgIHByb3BzLm5hbWVTdWZmaXgsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5pc29sYXRlZEltcGFjdEFsYXJtID1cbiAgICAgIEF2YWlsYWJpbGl0eUFuZExhdGVuY3lBbGFybXNBbmRSdWxlcy5jcmVhdGVDYW5hcnlJc29sYXRlZEFaSW1wYWN0QWxhcm0oXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHByb3BzLmF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMub3BlcmF0aW9uTmFtZSxcbiAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZUlkLFxuICAgICAgICBwcm9wcy5jb3VudGVyLFxuICAgICAgICB0aGlzLmF2YWlsYWJpbGl0eVpvbmVJc091dGxpZXJGb3JGYXVsdHMsXG4gICAgICAgIHRoaXMuYXZhaWxhYmlsaXR5QWxhcm0sXG4gICAgICAgIHRoaXMuYXZhaWxhYmlsaXR5Wm9uZUlzT3V0bGllckZvckxhdGVuY3ksXG4gICAgICAgIHRoaXMubGF0ZW5jeUFsYXJtLFxuICAgICAgICBwcm9wcy5uYW1lU3VmZml4LFxuICAgICAgKTtcbiAgfVxufVxuIl19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbGFybXNhbmRydWxlcy9DYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLGlHQUE4RjtBQUM5Rix5RkFBc0Y7QUFHdEYsc0ZBQW1GO0FBRW5GOztHQUVHO0FBQ0gsTUFBYSxrQ0FDWCxTQUFRLG1FQUFnQztJQWtCeEMsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBOEM7UUFFOUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxRQUFRLEdBQVcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNGLElBQUksa0JBQWtCLEdBQVcsS0FBSyxDQUFDLFFBQVEsQ0FBQyw0Q0FBNEMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV2RyxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsSUFBSSxxREFBeUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwRixJQUFJLENBQUMsa0NBQWtDO2dCQUNyQywyRUFBb0MsQ0FBQyxpREFBaUQsQ0FDcEYsSUFBSSxFQUNKLEtBQUssQ0FBQyx5QkFBeUIsRUFDL0IsS0FBSyxDQUFDLGdCQUFnQixFQUN0QixrQkFBa0IsRUFDbEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQzdDLEtBQUssQ0FBQyxPQUFPLEVBQ2IsS0FBSyxDQUFDLDRCQUE0QixFQUNsQyxLQUFLLENBQUMsVUFBVSxDQUNqQixDQUFDO1FBQ04sQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsa0NBQWtDO2dCQUNyQywyRUFBb0MsQ0FBQyxnQ0FBZ0MsQ0FDbkUsSUFBSSxFQUNKLEtBQUssQ0FBQyx5QkFBeUIsRUFDL0Isa0JBQWtCLEVBQ2xCLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO29CQUN2RCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsNENBQTRDLENBQ2hFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FDNUIsQ0FBQztnQkFDSixDQUFDLENBQUMsRUFDRixLQUFLLENBQUMsNEJBQTRCLEVBQ2xDLEtBQUssQ0FBQyx3QkFBeUIsRUFDL0IsS0FBSyxDQUFDLHFDQUFxQyxFQUMzQyxLQUFLLENBQUMsT0FBTyxFQUNiLEtBQUssQ0FBQyxVQUFVLENBQ2pCLENBQUM7UUFDTixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUkscURBQXlCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0UsSUFBSSxDQUFDLG1DQUFtQztnQkFDdEMsMkVBQW9DLENBQUMsbURBQW1ELENBQ3RGLElBQUksRUFDSixLQUFLLENBQUMsb0JBQW9CLEVBQzFCLEtBQUssQ0FBQyxnQkFBZ0IsRUFDdEIsa0JBQWtCLEVBQ2xCLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUM3QyxLQUFLLENBQUMsT0FBTyxFQUNiLEtBQUssQ0FBQyx1QkFBdUIsRUFDN0IsS0FBSyxDQUFDLFVBQVUsQ0FDakIsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLG1DQUFtQztnQkFDdEMsMkVBQW9DLENBQUMsa0NBQWtDLENBQ3JFLElBQUksRUFDSixLQUFLLENBQUMsb0JBQW9CLEVBQzFCLGtCQUFrQixFQUNsQixLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtvQkFDdkQsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLDRDQUE0QyxDQUNoRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQzVCLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLEVBQ0YsS0FBSyxDQUFDLHVCQUF1QixFQUM3QixLQUFLLENBQUMsd0JBQXlCLEVBQy9CLEtBQUssQ0FBQyxnQ0FBZ0MsRUFDdEMsS0FBSyxDQUFDLE9BQU8sRUFDYixLQUFLLENBQUMsVUFBVSxDQUNqQixDQUFDO1FBQ04sQ0FBQztRQUVELElBQUksQ0FBQyxtQkFBbUI7WUFDdEIsMkVBQW9DLENBQUMsaUNBQWlDLENBQ3BFLElBQUksRUFDSixLQUFLLENBQUMseUJBQXlCLENBQUMsYUFBYSxFQUM3QyxrQkFBa0IsRUFDbEIsS0FBSyxDQUFDLE9BQU8sRUFDYixJQUFJLENBQUMsa0NBQWtDLEVBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsSUFBSSxDQUFDLG1DQUFtQyxFQUN4QyxJQUFJLENBQUMsWUFBWSxFQUNqQixLQUFLLENBQUMsVUFBVSxDQUNqQixDQUFDO0lBQ04sQ0FBQztDQUNGO0FBeEdELGdGQXdHQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IElBbGFybSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeUFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9BdmFpbGFiaWxpdHlBbmRMYXRlbmN5QWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgQmFzZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0Jhc2VPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzUHJvcHMgfSBmcm9tICcuL3Byb3BzL0NhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXNQcm9wcyc7XG5pbXBvcnQgeyBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtIH0gZnJvbSAnLi4vdXRpbGl0aWVzL091dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0nO1xuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGFsYXJtcyBhbmQgcnVsZXMgZm9yIGEgcGFydGljdWxhciBvcGVyYXRpb24gYXMgbWVhc3VyZWQgYnkgdGhlIGNhbmFyeVxuICovXG5leHBvcnQgY2xhc3MgQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlc1xuICBleHRlbmRzIEJhc2VPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzXG4gIGltcGxlbWVudHMgSUNhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogQWxhcm0gdGhhdCB0cmlnZ2VycyBpZiBlaXRoZXIgbGF0ZW5jeSBvciBhdmFpbGFiaWxpdHkgYnJlYWNoIHRoZSBzcGVjaWZpZWRcbiAgICogdGhyZXNob2xkIGluIHRoaXMgQVogYW5kIHRoZSBBWiBpcyBhbiBvdXRsaWVyIGZvciBmYXVsdHMgb3IgbGF0ZW5jeVxuICAgKi9cbiAgaXNvbGF0ZWRJbXBhY3RBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbGFybSB0aGF0IGluZGljYXRlcyB0aGF0IHRoaXMgQVogaXMgYW4gb3V0bGllciBmb3IgZmF1bHQgcmF0ZVxuICAgKi9cbiAgYXZhaWxhYmlsaXR5Wm9uZUlzT3V0bGllckZvckZhdWx0czogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbGFybSB0aGF0IGluZGljYXRlcyB0aGlzIEFaIGlzIGFuIG91dGxpZXIgZm9yIGhpZ2ggbGF0ZW5jeVxuICAgKi9cbiAgYXZhaWxhYmlsaXR5Wm9uZUlzT3V0bGllckZvckxhdGVuY3k6IElBbGFybTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IENhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBsZXQgYXpMZXR0ZXI6IHN0cmluZyA9IHByb3BzLmF2YWlsYWJpbGl0eVpvbmUuc3Vic3RyaW5nKHByb3BzLmF2YWlsYWJpbGl0eVpvbmUubGVuZ3RoIC0gMSk7XG4gICAgbGV0IGF2YWlsYWJpbGl0eVpvbmVJZDogc3RyaW5nID0gcHJvcHMuYXpNYXBwZXIuYXZhaWxhYmlsaXR5Wm9uZUlkRnJvbUF2YWlsYWJpbGl0eVpvbmVMZXR0ZXIoYXpMZXR0ZXIpO1xuXG4gICAgaWYgKHByb3BzLmF2YWlsYWJpbGl0eU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0gPT0gT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5TVEFUSUMpIHtcbiAgICAgIHRoaXMuYXZhaWxhYmlsaXR5Wm9uZUlzT3V0bGllckZvckZhdWx0cyA9XG4gICAgICAgIEF2YWlsYWJpbGl0eUFuZExhdGVuY3lBbGFybXNBbmRSdWxlcy5jcmVhdGVab25hbEZhdWx0UmF0ZVN0YXRpY091dGxpZXJBbGFybUZvckNhbmFyaWVzKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgcHJvcHMuYXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICBwcm9wcy5hdmFpbGFiaWxpdHlab25lLFxuICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmVJZCxcbiAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uc2VydmljZS5hdmFpbGFiaWxpdHlab25lTmFtZXMsXG4gICAgICAgICAgcHJvcHMuY291bnRlcixcbiAgICAgICAgICBwcm9wcy5hdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkLFxuICAgICAgICAgIHByb3BzLm5hbWVTdWZmaXgsXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXZhaWxhYmlsaXR5Wm9uZUlzT3V0bGllckZvckZhdWx0cyA9XG4gICAgICAgIEF2YWlsYWJpbGl0eUFuZExhdGVuY3lBbGFybXNBbmRSdWxlcy5jcmVhdGVab25hbEZhdWx0UmF0ZU91dGxpZXJBbGFybShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLmF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZUlkLFxuICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmF2YWlsYWJpbGl0eVpvbmVOYW1lcy5tYXAoKGF6KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcHJvcHMuYXpNYXBwZXIuYXZhaWxhYmlsaXR5Wm9uZUlkRnJvbUF2YWlsYWJpbGl0eVpvbmVMZXR0ZXIoXG4gICAgICAgICAgICAgIGF6LnN1YnN0cmluZyhhei5sZW5ndGggLSAxKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgcHJvcHMuYXZhaWxhYmlsaXR5T3V0bGllclRocmVzaG9sZCxcbiAgICAgICAgICBwcm9wcy5vdXRsaWVyRGV0ZWN0aW9uRnVuY3Rpb24hLFxuICAgICAgICAgIHByb3BzLmF2YWlsYWJpbGl0eU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0sXG4gICAgICAgICAgcHJvcHMuY291bnRlcixcbiAgICAgICAgICBwcm9wcy5uYW1lU3VmZml4LFxuICAgICAgICApOyAgXG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmxhdGVuY3lPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtID09IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uU1RBVElDKSB7XG4gICAgICB0aGlzLmF2YWlsYWJpbGl0eVpvbmVJc091dGxpZXJGb3JMYXRlbmN5ID1cbiAgICAgICAgQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeUFsYXJtc0FuZFJ1bGVzLmNyZWF0ZVpvbmFsSGlnaExhdGVuY3lTdGF0aWNPdXRsaWVyQWxhcm1Gb3JDYW5hcmllcyhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLmxhdGVuY3lNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgIHByb3BzLmF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZUlkLFxuICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmF2YWlsYWJpbGl0eVpvbmVOYW1lcyxcbiAgICAgICAgICBwcm9wcy5jb3VudGVyLFxuICAgICAgICAgIHByb3BzLmxhdGVuY3lPdXRsaWVyVGhyZXNob2xkLFxuICAgICAgICAgIHByb3BzLm5hbWVTdWZmaXgsXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXZhaWxhYmlsaXR5Wm9uZUlzT3V0bGllckZvckxhdGVuY3kgPVxuICAgICAgICBBdmFpbGFiaWxpdHlBbmRMYXRlbmN5QWxhcm1zQW5kUnVsZXMuY3JlYXRlWm9uYWxIaWdoTGF0ZW5jeU91dGxpZXJBbGFybShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLmxhdGVuY3lNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmVJZCxcbiAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uc2VydmljZS5hdmFpbGFiaWxpdHlab25lTmFtZXMubWFwKChheikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHByb3BzLmF6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKFxuICAgICAgICAgICAgICBhei5zdWJzdHJpbmcoYXoubGVuZ3RoIC0gMSksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHByb3BzLmxhdGVuY3lPdXRsaWVyVGhyZXNob2xkLFxuICAgICAgICAgIHByb3BzLm91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbiEsXG4gICAgICAgICAgcHJvcHMubGF0ZW5jeU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0sXG4gICAgICAgICAgcHJvcHMuY291bnRlcixcbiAgICAgICAgICBwcm9wcy5uYW1lU3VmZml4LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuaXNvbGF0ZWRJbXBhY3RBbGFybSA9XG4gICAgICBBdmFpbGFiaWxpdHlBbmRMYXRlbmN5QWxhcm1zQW5kUnVsZXMuY3JlYXRlQ2FuYXJ5SXNvbGF0ZWRBWkltcGFjdEFsYXJtKFxuICAgICAgICB0aGlzLFxuICAgICAgICBwcm9wcy5hdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLm9wZXJhdGlvbk5hbWUsXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmVJZCxcbiAgICAgICAgcHJvcHMuY291bnRlcixcbiAgICAgICAgdGhpcy5hdmFpbGFiaWxpdHlab25lSXNPdXRsaWVyRm9yRmF1bHRzLFxuICAgICAgICB0aGlzLmF2YWlsYWJpbGl0eUFsYXJtLFxuICAgICAgICB0aGlzLmF2YWlsYWJpbGl0eVpvbmVJc091dGxpZXJGb3JMYXRlbmN5LFxuICAgICAgICB0aGlzLmxhdGVuY3lBbGFybSxcbiAgICAgICAgcHJvcHMubmFtZVN1ZmZpeCxcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -20,11 +20,6 @@ export interface IOperationAlarmsAndRules {
20
20
  * The canary regional alarms and rules
21
21
  */
22
22
  canaryRegionalAlarmsAndRules?: ICanaryOperationRegionalAlarmsAndRules;
23
- /**
24
- * The aggregate regional alarm that looks at both canary and server
25
- * side impact alarms for latency and availability
26
- */
27
- aggregateRegionalAlarm: IAlarm;
28
23
  /**
29
24
  * The server side zonal alarms and rules
30
25
  */
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtc2FuZHJ1bGVzL0lPcGVyYXRpb25BbGFybXNBbmRSdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgSUFsYXJtIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uIH0gZnJvbSAnLi4vc2VydmljZXMvSU9wZXJhdGlvbic7XG5cbi8qKlxuICogQ3JlYXRlcyBhbGFybXMgYW5kIHJ1bGVzIGZvciBhbiBvcGVyYXRpb24gZm9yIGJvdGggcmVnaW9uYWwgYW5kIHpvbmFsIG1ldHJpY3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiB0aGUgYWxhcm1zIGFuZCBydWxlcyBhcmUgY3JlYXRlZCBmb3JcbiAgICovXG4gIG9wZXJhdGlvbjogSU9wZXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHNlcnZlciBzaWRlIHJlZ2lvbmFsIGFsYXJtcyBhbmQgcnVsZXNcbiAgICovXG4gIHNlcnZlclNpZGVSZWdpb25hbEFsYXJtc0FuZFJ1bGVzOiBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBjYW5hcnkgcmVnaW9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgY2FuYXJ5UmVnaW9uYWxBbGFybXNBbmRSdWxlcz86IElDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzO1xuXG4gIC8qKlxuICAgKiBUaGUgYWdncmVnYXRlIHJlZ2lvbmFsIGFsYXJtIHRoYXQgbG9va3MgYXQgYm90aCBjYW5hcnkgYW5kIHNlcnZlclxuICAgKiBzaWRlIGltcGFjdCBhbGFybXMgZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbGl0eVxuICAgKi9cbiAgYWdncmVnYXRlUmVnaW9uYWxBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgem9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXM6IElTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlc1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgY2FuYXJ5IHpvbmFsIGFsYXJtcyBhbmQgcnVsZXNcbiAgICovXG4gIGNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXM/OiBJQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlc1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgYWdncmVnYXRlIHpvbmFsIGFsYXJtcywgb25lIHBlciBBWi4gRWFjaCBhbGFybSBpbmRpY2F0ZXMgdGhlcmUgaXMgZWl0aGVyXG4gICAqIGxhdGVuY3kgb3IgYXZhaWxhYmlsaXR5IGltcGFjdCBpbiB0aGF0IEFaLCBhbmQgdGhlIEFaIGlzIGFuIG91dGxpZXIgZm9yXG4gICAqIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGltcGFjdC4gQm90aCBzZXJ2ZXIgc2lkZSBhbmQgY2FuYXJ5IG1ldHJpY3MgYXJlXG4gICAqIGV2YWx1YXRlZFxuICAgKi9cbiAgYWdncmVnYXRlWm9uYWxBbGFybXM6IElBbGFybVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgYWdncmVnYXRlIHpvbmFsIGFsYXJtIGluZGV4ZWQgYnkgQXZhaWxhYmlsaXR5IFpvbmUgSWQuXG4gICAqL1xuICBhZ2dyZWdhdGVab25hbEFsYXJtc01hcDogeyBba2V5OiBzdHJpbmddOiBJQWxhcm0gfTtcblxuICAvKipcbiAgICogSnVzdCB0aGUgc2VydmVyIHNpZGUgem9uYWwgYWxhcm1zXG4gICAqL1xuICBzZXJ2ZXJTaWRlWm9uYWxBbGFybXNNYXA6IHsgW2tleTogc3RyaW5nXTogSUFsYXJtIH07XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtc2FuZHJ1bGVzL0lPcGVyYXRpb25BbGFybXNBbmRSdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgSUFsYXJtIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uIH0gZnJvbSAnLi4vc2VydmljZXMvSU9wZXJhdGlvbic7XG5cbi8qKlxuICogQ3JlYXRlcyBhbGFybXMgYW5kIHJ1bGVzIGZvciBhbiBvcGVyYXRpb24gZm9yIGJvdGggcmVnaW9uYWwgYW5kIHpvbmFsIG1ldHJpY3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiB0aGUgYWxhcm1zIGFuZCBydWxlcyBhcmUgY3JlYXRlZCBmb3JcbiAgICovXG4gIG9wZXJhdGlvbjogSU9wZXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHNlcnZlciBzaWRlIHJlZ2lvbmFsIGFsYXJtcyBhbmQgcnVsZXNcbiAgICovXG4gIHNlcnZlclNpZGVSZWdpb25hbEFsYXJtc0FuZFJ1bGVzOiBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBjYW5hcnkgcmVnaW9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgY2FuYXJ5UmVnaW9uYWxBbGFybXNBbmRSdWxlcz86IElDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgem9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXM6IElTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlc1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgY2FuYXJ5IHpvbmFsIGFsYXJtcyBhbmQgcnVsZXNcbiAgICovXG4gIGNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXM/OiBJQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlc1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgYWdncmVnYXRlIHpvbmFsIGFsYXJtcywgb25lIHBlciBBWi4gRWFjaCBhbGFybSBpbmRpY2F0ZXMgdGhlcmUgaXMgZWl0aGVyXG4gICAqIGxhdGVuY3kgb3IgYXZhaWxhYmlsaXR5IGltcGFjdCBpbiB0aGF0IEFaLCBhbmQgdGhlIEFaIGlzIGFuIG91dGxpZXIgZm9yXG4gICAqIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGltcGFjdC4gQm90aCBzZXJ2ZXIgc2lkZSBhbmQgY2FuYXJ5IG1ldHJpY3MgYXJlXG4gICAqIGV2YWx1YXRlZFxuICAgKi9cbiAgYWdncmVnYXRlWm9uYWxBbGFybXM6IElBbGFybVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgYWdncmVnYXRlIHpvbmFsIGFsYXJtIGluZGV4ZWQgYnkgQXZhaWxhYmlsaXR5IFpvbmUgSWQuXG4gICAqL1xuICBhZ2dyZWdhdGVab25hbEFsYXJtc01hcDogeyBba2V5OiBzdHJpbmddOiBJQWxhcm0gfTtcblxuICAvKipcbiAgICogSnVzdCB0aGUgc2VydmVyIHNpZGUgem9uYWwgYWxhcm1zXG4gICAqL1xuICBzZXJ2ZXJTaWRlWm9uYWxBbGFybXNNYXA6IHsgW2tleTogc3RyaW5nXTogSUFsYXJtIH07XG59XG4iXX0=
@@ -1,9 +1,8 @@
1
1
  import { CfnInsightRule } from 'aws-cdk-lib/aws-cloudwatch';
2
- import { IBaseOperationRegionalAlarmsAndRules } from './IBaseOperationRegionalAlarmsAndRules';
3
2
  /**
4
3
  * The server side operation regional alarms and rules
5
4
  */
6
- export interface IServerSideOperationRegionalAlarmsAndRules extends IBaseOperationRegionalAlarmsAndRules {
5
+ export interface IServerSideOperationRegionalAlarmsAndRules {
7
6
  /**
8
7
  * A rule that shows which instances are contributing to high latency responses
9
8
  */
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVNlcnZlclNpZGVPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtc2FuZHJ1bGVzL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgQ2ZuSW5zaWdodFJ1bGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBJQmFzZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lCYXNlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5cbi8qKlxuICogVGhlIHNlcnZlciBzaWRlIG9wZXJhdGlvbiByZWdpb25hbCBhbGFybXMgYW5kIHJ1bGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNlcnZlclNpZGVPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzXG4gIGV4dGVuZHMgSUJhc2VPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIHtcbiAgLyoqXG4gICAqIEEgcnVsZSB0aGF0IHNob3dzIHdoaWNoIGluc3RhbmNlcyBhcmUgY29udHJpYnV0aW5nIHRvIGhpZ2ggbGF0ZW5jeSByZXNwb25zZXNcbiAgICovXG4gIGluc3RhbmNlQ29udHJpYnV0b3JzVG9SZWdpb25hbEhpZ2hMYXRlbmN5PzogQ2ZuSW5zaWdodFJ1bGU7XG5cbiAgLyoqXG4gICAqIEEgcnVsZSB0aGF0IHNob3dzIHdoaWNoIGluc3RhbmNlcyBhcmUgY29udHJpYnV0aW5nIHRvIGZhdWx0c1xuICAgKi9cbiAgaW5zdGFuY2VDb250cmlidXRvcnNUb1JlZ2lvbmFsRmF1bHRzPzogQ2ZuSW5zaWdodFJ1bGU7XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVNlcnZlclNpZGVPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtc2FuZHJ1bGVzL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgQ2ZuSW5zaWdodFJ1bGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5cbi8qKlxuICogVGhlIHNlcnZlciBzaWRlIG9wZXJhdGlvbiByZWdpb25hbCBhbGFybXMgYW5kIHJ1bGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNlcnZlclNpZGVPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIHtcbiAgLyoqXG4gICAqIEEgcnVsZSB0aGF0IHNob3dzIHdoaWNoIGluc3RhbmNlcyBhcmUgY29udHJpYnV0aW5nIHRvIGhpZ2ggbGF0ZW5jeSByZXNwb25zZXNcbiAgICovXG4gIGluc3RhbmNlQ29udHJpYnV0b3JzVG9SZWdpb25hbEhpZ2hMYXRlbmN5PzogQ2ZuSW5zaWdodFJ1bGU7XG5cbiAgLyoqXG4gICAqIEEgcnVsZSB0aGF0IHNob3dzIHdoaWNoIGluc3RhbmNlcyBhcmUgY29udHJpYnV0aW5nIHRvIGZhdWx0c1xuICAgKi9cbiAgaW5zdGFuY2VDb250cmlidXRvcnNUb1JlZ2lvbmFsRmF1bHRzPzogQ2ZuSW5zaWdodFJ1bGU7XG59XG4iXX0=
@@ -32,11 +32,9 @@ export interface IServiceAlarmsAndRules {
32
32
  /**
33
33
  * An alarm for regional availability or latency impact of any critical operation as measured by the server-side.
34
34
  */
35
- regionalAvailabilityOrLatencyServerSideAlarm: IAlarm;
36
35
  /**
37
36
  * An alarm for regional availability impact of any critical operation as measured by the server-side.
38
37
  */
39
- regionalAvailabilityServerSideAlarm: IAlarm;
40
38
  /**
41
39
  * An alarm for fault count exceeding a regional threshold for all critical operations.
42
40
  */
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVNlcnZpY2VBbGFybXNBbmRSdWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbGFybXNhbmRydWxlcy9JU2VydmljZUFsYXJtc0FuZFJ1bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBJQWxhcm0gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBJU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL0lTZXJ2aWNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIGxldmVsIGFsYXJtcyBhbmQgcnVsZXMgdXNpbmcgY3JpdGljYWwgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElTZXJ2aWNlQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhlc2UgYWxhcm1zIGFuZCBydWxlcyBhcmUgZm9yXG4gICAqL1xuICBzZXJ2aWNlOiBJU2VydmljZTtcblxuICAvKipcbiAgICogVGhlIHpvbmFsIGFnZ3JlZ2F0ZSBpc29sYXRlZCBpbXBhY3QgYWxhcm1zLiBUaGVyZSBpcyAxIGFsYXJtIHBlciBBWiB0aGF0XG4gICAqIHRyaWdnZXJzIGZvciBhdmFpbGFiaWxpdHkgb3IgbGF0ZW5jeSBpbXBhY3QgdG8gYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGF0IEFaXG4gICAqIHRoYXQgaW5kaWNhdGVzIGl0IGhhcyBpc29sYXRlZCBpbXBhY3QgYXMgbWVhc3VyZWQgYnkgY2FuYXJpZXMgb3Igc2VydmVyLXNpZGUuXG4gICAqL1xuICB6b25hbEFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm1zOiBJQWxhcm1bXTtcblxuICAvKipcbiAgICogVGhlIHpvbmFsIHNlcnZlci1zaWRlIGlzb2xhdGVkIGltcGFjdCBhbGFybXMuIFRoZXJlIGlzIDEgYWxhcm0gcGVyIEFaIHRoYXQgdHJpZ2dlcnNcbiAgICogb24gYXZhaWxhYmlsaXR5IG9yIGF0ZW5jeSBpbXBhY3QgdG8gYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGF0IEFaLiBUaGVzZSBhcmUgdXNlZnVsXG4gICAqIGZvciBkZXBsb3ltZW50IG1vbml0b3JpbmcgdG8gbm90IGluYWR2ZXJ0ZW50bHkgZmFpbCB3aGVuIGEgY2FuYXJ5IGNhbid0IGNvbnRhY3QgYW4gQVpcbiAgICogZHVyaW5nIGEgZGVwbG95bWVudC5cbiAgICovXG4gIHpvbmFsU2VydmVyU2lkZUlzb2xhdGVkSW1wYWN0QWxhcm1zOiBJQWxhcm1bXTtcblxuICAvKipcbiAgICogQW4gYWxhcm0gZm9yIHJlZ2lvbmFsIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBjYW5hcnkuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eU9yTGF0ZW5jeUNhbmFyeUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBjYW5hcnkuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eUNhbmFyeUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IG9yIGxhdGVuY3kgaW1wYWN0IG9mIGFueSBjcml0aWNhbCBvcGVyYXRpb24gYXMgbWVhc3VyZWQgYnkgdGhlIHNlcnZlci1zaWRlLlxuICAgKi9cbiAgcmVnaW9uYWxBdmFpbGFiaWxpdHlPckxhdGVuY3lTZXJ2ZXJTaWRlQWxhcm06IElBbGFybTtcblxuICAvKipcbiAgICogQW4gYWxhcm0gZm9yIHJlZ2lvbmFsIGF2YWlsYWJpbGl0eSBpbXBhY3Qgb2YgYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBhcyBtZWFzdXJlZCBieSB0aGUgc2VydmVyLXNpZGUuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eVNlcnZlclNpZGVBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgZmF1bHQgY291bnQgZXhjZWVkaW5nIGEgcmVnaW9uYWwgdGhyZXNob2xkIGZvciBhbGwgY3JpdGljYWwgb3BlcmF0aW9ucy5cbiAgICovXG4gIHJlZ2lvbmFsRmF1bHRDb3VudFNlcnZlclNpZGVBbGFybTogSUFsYXJtO1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVNlcnZpY2VBbGFybXNBbmRSdWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbGFybXNhbmRydWxlcy9JU2VydmljZUFsYXJtc0FuZFJ1bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBJQWxhcm0gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBJU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL0lTZXJ2aWNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIGxldmVsIGFsYXJtcyBhbmQgcnVsZXMgdXNpbmcgY3JpdGljYWwgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElTZXJ2aWNlQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhlc2UgYWxhcm1zIGFuZCBydWxlcyBhcmUgZm9yXG4gICAqL1xuICBzZXJ2aWNlOiBJU2VydmljZTtcblxuICAvKipcbiAgICogVGhlIHpvbmFsIGFnZ3JlZ2F0ZSBpc29sYXRlZCBpbXBhY3QgYWxhcm1zLiBUaGVyZSBpcyAxIGFsYXJtIHBlciBBWiB0aGF0XG4gICAqIHRyaWdnZXJzIGZvciBhdmFpbGFiaWxpdHkgb3IgbGF0ZW5jeSBpbXBhY3QgdG8gYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGF0IEFaXG4gICAqIHRoYXQgaW5kaWNhdGVzIGl0IGhhcyBpc29sYXRlZCBpbXBhY3QgYXMgbWVhc3VyZWQgYnkgY2FuYXJpZXMgb3Igc2VydmVyLXNpZGUuXG4gICAqL1xuICB6b25hbEFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm1zOiBJQWxhcm1bXTtcblxuICAvKipcbiAgICogVGhlIHpvbmFsIHNlcnZlci1zaWRlIGlzb2xhdGVkIGltcGFjdCBhbGFybXMuIFRoZXJlIGlzIDEgYWxhcm0gcGVyIEFaIHRoYXQgdHJpZ2dlcnNcbiAgICogb24gYXZhaWxhYmlsaXR5IG9yIGF0ZW5jeSBpbXBhY3QgdG8gYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGF0IEFaLiBUaGVzZSBhcmUgdXNlZnVsXG4gICAqIGZvciBkZXBsb3ltZW50IG1vbml0b3JpbmcgdG8gbm90IGluYWR2ZXJ0ZW50bHkgZmFpbCB3aGVuIGEgY2FuYXJ5IGNhbid0IGNvbnRhY3QgYW4gQVpcbiAgICogZHVyaW5nIGEgZGVwbG95bWVudC5cbiAgICovXG4gIHpvbmFsU2VydmVyU2lkZUlzb2xhdGVkSW1wYWN0QWxhcm1zOiBJQWxhcm1bXTtcblxuICAvKipcbiAgICogQW4gYWxhcm0gZm9yIHJlZ2lvbmFsIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBjYW5hcnkuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eU9yTGF0ZW5jeUNhbmFyeUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBjYW5hcnkuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eUNhbmFyeUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IG9yIGxhdGVuY3kgaW1wYWN0IG9mIGFueSBjcml0aWNhbCBvcGVyYXRpb24gYXMgbWVhc3VyZWQgYnkgdGhlIHNlcnZlci1zaWRlLlxuICAgKi9cbiAgLy9yZWdpb25hbEF2YWlsYWJpbGl0eU9yTGF0ZW5jeVNlcnZlclNpZGVBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBzZXJ2ZXItc2lkZS5cbiAgICovXG4gIC8vcmVnaW9uYWxBdmFpbGFiaWxpdHlTZXJ2ZXJTaWRlQWxhcm06IElBbGFybTtcblxuICAvKipcbiAgICogQW4gYWxhcm0gZm9yIGZhdWx0IGNvdW50IGV4Y2VlZGluZyBhIHJlZ2lvbmFsIHRocmVzaG9sZCBmb3IgYWxsIGNyaXRpY2FsIG9wZXJhdGlvbnMuXG4gICAqL1xuICByZWdpb25hbEZhdWx0Q291bnRTZXJ2ZXJTaWRlQWxhcm06IElBbGFybTtcbn1cbiJdfQ==
@@ -23,11 +23,6 @@ export declare class OperationAlarmsAndRules extends Construct implements IOpera
23
23
  * The canary regional alarms and rules
24
24
  */
25
25
  readonly canaryRegionalAlarmsAndRules?: ICanaryOperationRegionalAlarmsAndRules;
26
- /**
27
- * The aggregate regional alarm that looks at both canary and server
28
- * side impact alarms for latency and availability
29
- */
30
- readonly aggregateRegionalAlarm: IAlarm;
31
26
  /**
32
27
  * The server side zonal alarms and rules
33
28
  */
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OperationAlarmsAndRules = void 0;
4
4
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5
5
  // SPDX-License-Identifier: Apache-2.0
6
- const aws_cdk_lib_1 = require("aws-cdk-lib");
7
6
  const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
8
7
  const constructs_1 = require("constructs");
9
8
  const CanaryOperationRegionalAlarmsAndRules_1 = require("./CanaryOperationRegionalAlarmsAndRules");
@@ -27,30 +26,12 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
27
26
  loadBalancerArn = props.loadBalancer
28
27
  .loadBalancerArn;
29
28
  }
30
- // We want to know three things
31
- // 1. There is impact in one AZ from either the server or canary perspective
32
- // 2. The impact in that AZ is an outlier
33
- // 3. The impact is coming from more than 1 instance
34
- //
35
- // let operationAlarmsPerAZ: {[key: string]: IAlarm} = {};
36
- //
37
- // props.service.availabilityZones.forEach((availabilityZone: string, index: number) => {
38
- //
39
- // let availabilityImpactAlarm: IAlarm = new ServerSideAvailabilityImpactAlarm();
40
- // let availabilityOutlierAlarm: IAlarm = new ServerSideAvailabilityOutlierAlarm();
41
- // let availabilityImpactAndOutlierAlarm: IAlarm = new CompositeAlarm({ alarmRule: AlarmRule.allOf(availabilityImpactAlarm, availabilityOutlierAlarm)});
42
- //
43
- // let latencyImpactAlarm: IAlarm = new ServerSideLatencyImpactAlarm();
44
- // let latencyOutlierAlarm: IAlarm = new ServerSideLatencyOutlierAlarm();
45
- // let latencyImpactAndOutlierAlarm: IAlarm = new CompositeAlarm({ alarmRule: AlarmRule.allOf(latencyImpactAlarm, latencyOutlierAlarm)});
46
- //
47
- // let zonalImpactAlarm: IAlarm = new CompositeAlarm({ alarmRule: AlarmRule.anyOf(availabilityImpactAndOutlierAlarm, latencyImpactAndOutlierAlarm)});
48
- // let moreThanOneInstanceAlarm: IAlarm = new ServerSideMoreThanOneInstanceAlarm();
49
- //
50
- // let zonalIsolatedImpactAlarm: IAlarm = new CompositeAlarm({ alarmRule: AlarmRule.allOf(zonalImpactAlarm, moreThanOneInstanceAlarm)})
51
- // operationAlarmsPerAZ[availabilityZone] = zonalIsolatedImpactAlarm;
52
- //
53
- // });
29
+ // TODO: These are mostly used for the operation level dashboard,
30
+ // may make sense to move this logic and similar canary logic there
31
+ // or at least calculate a regional impact alarm when the operation
32
+ // is impacted, but not in particular AZ
33
+ // Creates the regional impact alarms and contributor insight rules
34
+ // for contributors to regional faults and latency
54
35
  this.serverSideRegionalAlarmsAndRules =
55
36
  new ServerSideOperationRegionalAlarmsAndRules_1.ServerSideOperationRegionalAlarmsAndRules(this, props.operation.operationName + 'ServerSideRegionalAlarms', {
56
37
  availabilityMetricDetails: props.operation.serverSideAvailabilityMetricDetails,
@@ -61,8 +42,9 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
61
42
  : props.operation.service.defaultContributorInsightRuleDetails,
62
43
  nameSuffix: '-server',
63
44
  });
64
- if (props.operation.canaryMetricDetails !== undefined &&
65
- props.operation.canaryMetricDetails != null) {
45
+ // If canary metrics are defined, create the regional impact
46
+ // alarms
47
+ if (props.operation.canaryMetricDetails) {
66
48
  this.canaryRegionalAlarmsAndRules =
67
49
  new CanaryOperationRegionalAlarmsAndRules_1.CanaryOperationRegionalAlarmsAndRules(this, props.operation.operationName + 'CanaryRegionalAlarms', {
68
50
  availabilityMetricDetails: props.operation.canaryMetricDetails
@@ -70,27 +52,16 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
70
52
  latencyMetricDetails: props.operation.canaryMetricDetails.canaryLatencyMetricDetails,
71
53
  nameSuffix: '-canary',
72
54
  });
73
- this.aggregateRegionalAlarm = new aws_cloudwatch_1.CompositeAlarm(this, props.operation.operationName + 'AggregateRegionalAlarm', {
74
- actionsEnabled: false,
75
- compositeAlarmName: aws_cdk_lib_1.Fn.ref('AWS::Region') +
76
- '-' +
77
- props.operation.operationName.toLowerCase() +
78
- '-' +
79
- 'aggregate-alarm',
80
- alarmRule: aws_cloudwatch_1.AlarmRule.anyOf(this.serverSideRegionalAlarmsAndRules.availabilityOrLatencyAlarm, this.canaryRegionalAlarmsAndRules.availabilityOrLatencyAlarm),
81
- });
82
- }
83
- else {
84
- this.aggregateRegionalAlarm =
85
- this.serverSideRegionalAlarmsAndRules.availabilityOrLatencyAlarm;
86
55
  }
87
- let counter = 1;
56
+ // Create the zonal isolated impact alarms
88
57
  props.operation.service.availabilityZoneNames.forEach((availabilityZone, index) => {
89
58
  let azLetter = availabilityZone.substring(availabilityZone.length - 1);
90
59
  let availabilityZoneId = props.azMapper.availabilityZoneIdFromAvailabilityZoneLetter(azLetter);
60
+ // TODO: Can condense this logic and just pass the parent props as a parameter in these
61
+ // props
91
62
  this.serverSideZonalAlarmsAndRules.push(new ServerSideOperationZonalAlarmsAndRules_1.ServerSideOperationZonalAlarmsAndRules(this, props.operation.operationName +
92
63
  'AZ' +
93
- counter +
64
+ index +
94
65
  'ServerSideZonalAlarmsAndRules', {
95
66
  availabilityZone: availabilityZone,
96
67
  availabilityMetricDetails: props.operation.serverSideAvailabilityMetricDetails,
@@ -99,29 +70,35 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
99
70
  .serverSideContributorInsightRuleDetails
100
71
  ? props.operation.serverSideContributorInsightRuleDetails
101
72
  : props.operation.service.defaultContributorInsightRuleDetails,
102
- counter: counter,
103
- outlierThreshold: props.outlierThreshold,
104
- outlierDetectionAlgorithm: props.outlierDetectionAlgorithm,
73
+ counter: index,
74
+ availabilityOutlierThreshold: props.outlierThreshold,
75
+ latencyOutlierThreshold: props.outlierThreshold,
76
+ availabilityOutlierDetectionAlgorithm: props.outlierDetectionAlgorithm,
77
+ latencyOutlierDetectionAlgorithm: props.outlierDetectionAlgorithm,
105
78
  nameSuffix: '-server',
106
79
  operation: props.operation,
107
80
  azMapper: props.azMapper,
108
81
  outlierDetectionFunction: props.outlierDetectionFunction,
109
82
  }));
83
+ // TODO: Move all of the alarms to dictionaries based on AZ name
84
+ // and maybe include AZ ID in that map
110
85
  this.serverSideZonalAlarmsMap[availabilityZoneId] =
111
86
  this.serverSideZonalAlarmsAndRules[index].isolatedImpactAlarm;
112
87
  if (props.operation.canaryMetricDetails !== undefined &&
113
88
  props.operation.canaryMetricDetails != null) {
114
89
  this.canaryZonalAlarmsAndRules.push(new CanaryOperationZonalAlarmsAndRules_1.CanaryOperationZonalAlarmsAndRules(this, props.operation.operationName +
115
90
  'AZ' +
116
- counter +
91
+ index +
117
92
  'CanaryZonalAlarmsAndRules', {
118
93
  availabilityZone: availabilityZone,
119
94
  availabilityMetricDetails: props.operation.canaryMetricDetails
120
95
  .canaryAvailabilityMetricDetails,
121
96
  latencyMetricDetails: props.operation.canaryMetricDetails.canaryLatencyMetricDetails,
122
- counter: counter,
123
- outlierThreshold: props.outlierThreshold,
124
- outlierDetectionAlgorithm: props.outlierDetectionAlgorithm,
97
+ counter: index,
98
+ availabilityOutlierThreshold: props.outlierThreshold,
99
+ latencyOutlierThreshold: props.outlierThreshold,
100
+ latencyOutlierDetectionAlgorithm: props.outlierDetectionAlgorithm,
101
+ availabilityOutlierDetectionAlgorithm: props.outlierDetectionAlgorithm,
125
102
  nameSuffix: '-canary',
126
103
  operation: props.operation,
127
104
  azMapper: props.azMapper,
@@ -129,7 +106,7 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
129
106
  }));
130
107
  this.aggregateZonalAlarms.push(new aws_cloudwatch_1.CompositeAlarm(this, props.operation.operationName +
131
108
  'AZ' +
132
- counter +
109
+ index +
133
110
  'AggregateZonalIsolatedImpactAlarm', {
134
111
  compositeAlarmName: availabilityZoneId +
135
112
  '-' +
@@ -149,9 +126,8 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
149
126
  }
150
127
  this.aggregateZonalAlarmsMap[availabilityZoneId] =
151
128
  this.aggregateZonalAlarms[-1];
152
- counter++;
153
129
  });
154
130
  }
155
131
  }
156
132
  exports.OperationAlarmsAndRules = OperationAlarmsAndRules;
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zYW5kcnVsZXMvT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0Qyw2Q0FBaUM7QUFDakMsK0RBQStFO0FBRS9FLDJDQUF1QztBQUN2QyxtR0FBZ0c7QUFDaEcsNkZBQTBGO0FBTzFGLDJHQUF3RztBQUN4RyxxR0FBa0c7QUFHbEc7O0dBRUc7QUFDSCxNQUFhLHVCQUNYLFNBQVEsc0JBQVM7SUFtRGpCLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQW1DO1FBRW5DLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLDZCQUE2QixHQUFHLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMseUJBQXlCLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztRQUVuQyxJQUFJLGVBQWUsR0FBVyxFQUFFLENBQUM7UUFFakMsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsZUFBZSxHQUFJLEtBQUssQ0FBQyxZQUFpQztpQkFDdkQsZUFBZSxDQUFDO1FBQ3JCLENBQUM7UUFFRCwrQkFBK0I7UUFDL0IsNEVBQTRFO1FBQzVFLHlDQUF5QztRQUN6QyxvREFBb0Q7UUFDcEQsR0FBRztRQUNILDBEQUEwRDtRQUMxRCxFQUFFO1FBQ0YseUZBQXlGO1FBQ3pGLEVBQUU7UUFDRixrRkFBa0Y7UUFDbEYsb0ZBQW9GO1FBQ3BGLHlKQUF5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QixDQUFDLGtCQUFrQixDQUFDO2dCQUM5QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBcFFELDBEQW9RQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IEZuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQWxhcm1SdWxlLCBDb21wb3NpdGVBbGFybSwgSUFsYXJtIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQmFzZUxvYWRCYWxhbmNlciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2FuYXJ5T3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vQ2FuYXJ5T3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9DYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JQ2FuYXJ5T3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vSUNhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSVNlcnZlclNpZGVPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSVNlcnZlclNpZGVPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNQcm9wcyB9IGZyb20gJy4vcHJvcHMvT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNQcm9wcyc7XG5pbXBvcnQgeyBTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL1NlcnZlclNpZGVPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElPcGVyYXRpb24gfSBmcm9tICcuLi9zZXJ2aWNlcy9JT3BlcmF0aW9uJztcblxuLyoqXG4gKiBDcmVhdGVzIGFsYXJtcyBhbmQgcnVsZXMgZm9yIGFuIG9wZXJhdGlvbiBmb3IgYm90aCByZWdpb25hbCBhbmQgem9uYWwgbWV0cmljc1xuICovXG5leHBvcnQgY2xhc3MgT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNcbiAgZXh0ZW5kcyBDb25zdHJ1Y3RcbiAgaW1wbGVtZW50cyBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiB0aGUgYWxhcm1zIGFuZCBydWxlcyBhcmUgY3JlYXRlZCBmb3JcbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbjogSU9wZXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHNlcnZlciBzaWRlIHJlZ2lvbmFsIGFsYXJtcyBhbmQgcnVsZXNcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlclNpZGVSZWdpb25hbEFsYXJtc0FuZFJ1bGVzOiBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBjYW5hcnkgcmVnaW9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgY2FuYXJ5UmVnaW9uYWxBbGFybXNBbmRSdWxlcz86IElDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzO1xuXG4gIC8qKlxuICAgKiBUaGUgYWdncmVnYXRlIHJlZ2lvbmFsIGFsYXJtIHRoYXQgbG9va3MgYXQgYm90aCBjYW5hcnkgYW5kIHNlcnZlclxuICAgKiBzaWRlIGltcGFjdCBhbGFybXMgZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbGl0eVxuICAgKi9cbiAgcmVhZG9ubHkgYWdncmVnYXRlUmVnaW9uYWxBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgem9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXM6IElTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlc1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgY2FuYXJ5IHpvbmFsIGFsYXJtcyBhbmQgcnVsZXNcbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXM/OiBJQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlc1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgYWdncmVnYXRlIHpvbmFsIGFsYXJtcywgb25lIHBlciBBWi4gRWFjaCBhbGFybSBpbmRpY2F0ZXMgdGhlcmUgaXMgZWl0aGVyXG4gICAqIGxhdGVuY3kgb3IgYXZhaWxhYmlsaXR5IGltcGFjdCBpbiB0aGF0IEFaLCBhbmQgdGhlIEFaIGlzIGFuIG91dGxpZXIgZm9yXG4gICAqIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGltcGFjdC4gQm90aCBzZXJ2ZXIgc2lkZSBhbmQgY2FuYXJ5IG1ldHJpY3MgYXJlXG4gICAqIGV2YWx1YXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgYWdncmVnYXRlWm9uYWxBbGFybXM6IElBbGFybVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgYWdncmVnYXRlIHpvbmFsIGFsYXJtIGluZGV4ZWQgYnkgQXZhaWxhYmlsaXR5IFpvbmUgSWQuXG4gICAqL1xuICByZWFkb25seSBhZ2dyZWdhdGVab25hbEFsYXJtc01hcDogeyBba2V5OiBzdHJpbmddOiBJQWxhcm0gfTtcblxuICAvKipcbiAgICogSnVzdCB0aGUgc2VydmVyIHNpZGUgem9uYWwgYWxhcm1zXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlWm9uYWxBbGFybXNNYXA6IHsgW2tleTogc3RyaW5nXTogSUFsYXJtIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBPcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMuc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXMgPSBbXTtcbiAgICB0aGlzLmNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXMgPSBbXTtcbiAgICB0aGlzLmFnZ3JlZ2F0ZVpvbmFsQWxhcm1zID0gW107XG4gICAgdGhpcy5vcGVyYXRpb24gPSBwcm9wcy5vcGVyYXRpb247XG4gICAgdGhpcy5hZ2dyZWdhdGVab25hbEFsYXJtc01hcCA9IHt9O1xuICAgIHRoaXMuc2VydmVyU2lkZVpvbmFsQWxhcm1zTWFwID0ge307XG5cbiAgICBsZXQgbG9hZEJhbGFuY2VyQXJuOiBzdHJpbmcgPSAnJztcblxuICAgIGlmIChwcm9wcy5sb2FkQmFsYW5jZXIpIHtcbiAgICAgIGxvYWRCYWxhbmNlckFybiA9IChwcm9wcy5sb2FkQmFsYW5jZXIgYXMgQmFzZUxvYWRCYWxhbmNlcilcbiAgICAgICAgLmxvYWRCYWxhbmNlckFybjtcbiAgICB9XG5cbiAgICAvLyBXZSB3YW50IHRvIGtub3cgdGhyZWUgdGhpbmdzXG4gICAgLy8gMS4gVGhlcmUgaXMgaW1wYWN0IGluIG9uZSBBWiBmcm9tIGVpdGhlciB0aGUgc2VydmVyIG9yIGNhbmFyeSBwZXJzcGVjdGl2ZVxuICAgIC8vIDIuIFRoZSBpbXBhY3QgaW4gdGhhdCBBWiBpcyBhbiBvdXRsaWVyXG4gICAgLy8gMy4gVGhlIGltcGFjdCBpcyBjb21pbmcgZnJvbSBtb3JlIHRoYW4gMSBpbnN0YW5jZVxuICAgIC8vIFxuICAgIC8vIGxldCBvcGVyYXRpb25BbGFybXNQZXJBWjoge1trZXk6IHN0cmluZ106IElBbGFybX0gPSB7fTtcbiAgICAvL1xuICAgIC8vIHByb3BzLnNlcnZpY2UuYXZhaWxhYmlsaXR5Wm9uZXMuZm9yRWFjaCgoYXZhaWxhYmlsaXR5Wm9uZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgLy9cbiAgICAvLyAgbGV0IGF2YWlsYWJpbGl0eUltcGFjdEFsYXJtOiBJQWxhcm0gPSBuZXcgU2VydmVyU2lkZUF2YWlsYWJpbGl0eUltcGFjdEFsYXJtKCk7XG4gICAgLy8gIGxldCBhdmFpbGFiaWxpdHlPdXRsaWVyQWxhcm06IElBbGFybSA9IG5ldyBTZXJ2ZXJTaWRlQXZhaWxhYmlsaXR5T3V0bGllckFsYXJtKCk7XG4gICAgLy8gIGxldCBhdmFpbGFiaWxpdHlJbXBhY3RBbmRPdXRsaWVyQWxhcm06IElBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybSh7IGFsYXJtUnVsZTogQWxhcm1SdWxlLmFsbE9mKGF2YWlsYWJpbGl0eUltcGFjdEFsYXJtLCBhdmFpbGFiaWxpdHlPdXRsaWVyQWxhcm0pfSk7XG4gICAgLy8gIFxuICAgIC8vICBsZXQgbGF0ZW5jeUltcGFjdEFsYXJtOiBJQWxhcm0gPSBuZXcgU2VydmVyU2lkZUxhdGVuY3lJbXBhY3RBbGFybSgpO1xuICAgIC8vICBsZXQgbGF0ZW5jeU91dGxpZXJBbGFybTogSUFsYXJtID0gbmV3IFNlcnZlclNpZGVMYXRlbmN5T3V0bGllckFsYXJtKCk7XG4gICAgLy8gIGxldCBsYXRlbmN5SW1wYWN0QW5kT3V0bGllckFsYXJtOiBJQWxhcm0gPSBuZXcgQ29tcG9zaXRlQWxhcm0oeyBhbGFybVJ1bGU6IEFsYXJtUnVsZS5hbGxPZihsYXRlbmN5SW1wYWN0QWxhcm0sIGxhdGVuY3lPdXRsaWVyQWxhcm0pfSk7XG4gICAgLy8gIFxuICAgIC8vICBsZXQgem9uYWxJbXBhY3RBbGFybTogSUFsYXJtID0gbmV3IENvbXBvc2l0ZUFsYXJtKHsgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YoYXZhaWxhYmlsaXR5SW1wYWN0QW5kT3V0bGllckFsYXJtLCBsYXRlbmN5SW1wYWN0QW5kT3V0bGllckFsYXJtKX0pO1xuICAgIC8vICBsZXQgbW9yZVRoYW5PbmVJbnN0YW5jZUFsYXJtOiBJQWxhcm0gPSBuZXcgU2VydmVyU2lkZU1vcmVUaGFuT25lSW5zdGFuY2VBbGFybSgpO1xuICAgIC8vICBcbiAgICAvLyAgbGV0IHpvbmFsSXNvbGF0ZWRJbXBhY3RBbGFybTogSUFsYXJtID0gbmV3IENvbXBvc2l0ZUFsYXJtKHsgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYWxsT2Yoem9uYWxJbXBhY3RBbGFybSwgbW9yZVRoYW5PbmVJbnN0YW5jZUFsYXJtKX0pXG4gICAgLy8gIG9wZXJhdGlvbkFsYXJtc1BlckFaW2F2YWlsYWJpbGl0eVpvbmVdID0gem9uYWxJc29sYXRlZEltcGFjdEFsYXJtO1xuICAgIC8vXG4gICAgLy8gfSk7XG4gICAgXG5cblxuICAgIHRoaXMuc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgPVxuICAgICAgbmV3IFNlcnZlclNpZGVPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzKFxuICAgICAgICB0aGlzLFxuICAgICAgICBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZSArICdTZXJ2ZXJTaWRlUmVnaW9uYWxBbGFybXMnLFxuICAgICAgICB7XG4gICAgICAgICAgYXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczpcbiAgICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5zZXJ2ZXJTaWRlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICBsYXRlbmN5TWV0cmljRGV0YWlsczogcHJvcHMub3BlcmF0aW9uLnNlcnZlclNpZGVMYXRlbmN5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICBjb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlsczogcHJvcHMub3BlcmF0aW9uXG4gICAgICAgICAgICAuc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzXG4gICAgICAgICAgICA/IHByb3BzLm9wZXJhdGlvbi5zZXJ2ZXJTaWRlQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHNcbiAgICAgICAgICAgIDogcHJvcHMub3BlcmF0aW9uLnNlcnZpY2UuZGVmYXVsdENvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzLFxuICAgICAgICAgIG5hbWVTdWZmaXg6ICctc2VydmVyJyxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICBpZiAoXG4gICAgICBwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscyAhPSBudWxsXG4gICAgKSB7XG4gICAgICB0aGlzLmNhbmFyeVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgPVxuICAgICAgICBuZXcgQ2FuYXJ5T3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICsgJ0NhbmFyeVJlZ2lvbmFsQWxhcm1zJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzOlxuICAgICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgIC5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgICAgbGF0ZW5jeU1ldHJpY0RldGFpbHM6XG4gICAgICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgICAgbmFtZVN1ZmZpeDogJy1jYW5hcnknLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG5cbiAgICAgIHRoaXMuYWdncmVnYXRlUmVnaW9uYWxBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgcHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgKyAnQWdncmVnYXRlUmVnaW9uYWxBbGFybScsXG4gICAgICAgIHtcbiAgICAgICAgICBhY3Rpb25zRW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOlxuICAgICAgICAgICAgRm4ucmVmKCdBV1M6OlJlZ2lvbicpICtcbiAgICAgICAgICAgICctJyArXG4gICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZS50b0xvd2VyQ2FzZSgpICtcbiAgICAgICAgICAgICctJyArXG4gICAgICAgICAgICAnYWdncmVnYXRlLWFsYXJtJyxcbiAgICAgICAgICBhbGFybVJ1bGU6IEFsYXJtUnVsZS5hbnlPZihcbiAgICAgICAgICAgIHRoaXMuc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMuYXZhaWxhYmlsaXR5T3JMYXRlbmN5QWxhcm0sXG4gICAgICAgICAgICB0aGlzLmNhbmFyeVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMuYXZhaWxhYmlsaXR5T3JMYXRlbmN5QWxhcm0sXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWdncmVnYXRlUmVnaW9uYWxBbGFybSA9XG4gICAgICAgIHRoaXMuc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMuYXZhaWxhYmlsaXR5T3JMYXRlbmN5QWxhcm07XG4gICAgfVxuXG4gICAgbGV0IGNvdW50ZXI6IG51bWJlciA9IDE7XG5cbiAgICBwcm9wcy5vcGVyYXRpb24uc2VydmljZS5hdmFpbGFiaWxpdHlab25lTmFtZXMuZm9yRWFjaCgoYXZhaWxhYmlsaXR5Wm9uZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBsZXQgYXpMZXR0ZXI6IHN0cmluZyA9IGF2YWlsYWJpbGl0eVpvbmUuc3Vic3RyaW5nKGF2YWlsYWJpbGl0eVpvbmUubGVuZ3RoIC0gMSk7XG4gICAgICBsZXQgYXZhaWxhYmlsaXR5Wm9uZUlkOiBzdHJpbmcgPSBwcm9wcy5hek1hcHBlci5hdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihhekxldHRlcik7XG5cbiAgICAgIHRoaXMuc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXMucHVzaChcbiAgICAgICAgbmV3IFNlcnZlclNpZGVPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgcHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgK1xuICAgICAgICAgICAgJ0FaJyArXG4gICAgICAgICAgICBjb3VudGVyICtcbiAgICAgICAgICAgICdTZXJ2ZXJTaWRlWm9uYWxBbGFybXNBbmRSdWxlcycsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogYXZhaWxhYmlsaXR5Wm9uZSxcbiAgICAgICAgICAgIGF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM6XG4gICAgICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5zZXJ2ZXJTaWRlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIGxhdGVuY3lNZXRyaWNEZXRhaWxzOlxuICAgICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uc2VydmVyU2lkZUxhdGVuY3lNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgICAgY29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHM6IHByb3BzLm9wZXJhdGlvblxuICAgICAgICAgICAgICAuc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzXG4gICAgICAgICAgICAgID8gcHJvcHMub3BlcmF0aW9uLnNlcnZlclNpZGVDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlsc1xuICAgICAgICAgICAgICA6IHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmRlZmF1bHRDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscyxcbiAgICAgICAgICAgIGNvdW50ZXI6IGNvdW50ZXIsXG4gICAgICAgICAgICBvdXRsaWVyVGhyZXNob2xkOiBwcm9wcy5vdXRsaWVyVGhyZXNob2xkLFxuICAgICAgICAgICAgb3V0bGllckRldGVjdGlvbkFsZ29yaXRobTogcHJvcHMub3V0bGllckRldGVjdGlvbkFsZ29yaXRobSxcbiAgICAgICAgICAgIG5hbWVTdWZmaXg6ICctc2VydmVyJyxcbiAgICAgICAgICAgIG9wZXJhdGlvbjogcHJvcHMub3BlcmF0aW9uLFxuICAgICAgICAgICAgYXpNYXBwZXI6IHByb3BzLmF6TWFwcGVyLFxuICAgICAgICAgICAgb3V0bGllckRldGVjdGlvbkZ1bmN0aW9uOiBwcm9wcy5vdXRsaWVyRGV0ZWN0aW9uRnVuY3Rpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuc2VydmVyU2lkZVpvbmFsQWxhcm1zTWFwW2F2YWlsYWJpbGl0eVpvbmVJZF0gPVxuICAgICAgICB0aGlzLnNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzW2luZGV4XS5pc29sYXRlZEltcGFjdEFsYXJtO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHByb3BzLm9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgcHJvcHMub3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMgIT0gbnVsbFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuY2FuYXJ5Wm9uYWxBbGFybXNBbmRSdWxlcyEucHVzaChcbiAgICAgICAgICBuZXcgQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyhcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZSArXG4gICAgICAgICAgICAgICdBWicgK1xuICAgICAgICAgICAgICBjb3VudGVyICtcbiAgICAgICAgICAgICAgJ0NhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXMnLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lOiBhdmFpbGFiaWxpdHlab25lLFxuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzOlxuICAgICAgICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgICAgbGF0ZW5jeU1ldHJpY0RldGFpbHM6XG4gICAgICAgICAgICAgICAgcHJvcHMub3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgICAgIGNvdW50ZXI6IGNvdW50ZXIsXG4gICAgICAgICAgICAgIG91dGxpZXJUaHJlc2hvbGQ6IHByb3BzLm91dGxpZXJUaHJlc2hvbGQsXG4gICAgICAgICAgICAgIG91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG06IHByb3BzLm91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0sXG4gICAgICAgICAgICAgIG5hbWVTdWZmaXg6ICctY2FuYXJ5JyxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uOiBwcm9wcy5vcGVyYXRpb24sXG4gICAgICAgICAgICAgIGF6TWFwcGVyOiBwcm9wcy5hek1hcHBlcixcbiAgICAgICAgICAgICAgb3V0bGllckRldGVjdGlvbkZ1bmN0aW9uOiBwcm9wcy5vdXRsaWVyRGV0ZWN0aW9uRnVuY3Rpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hZ2dyZWdhdGVab25hbEFsYXJtcy5wdXNoKFxuICAgICAgICAgIG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZSArXG4gICAgICAgICAgICAgICdBWicgK1xuICAgICAgICAgICAgICBjb3VudGVyICtcbiAgICAgICAgICAgICAgJ0FnZ3JlZ2F0ZVpvbmFsSXNvbGF0ZWRJbXBhY3RBbGFybScsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTpcbiAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQgK1xuICAgICAgICAgICAgICAgICctJyArXG4gICAgICAgICAgICAgICAgcHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUudG9Mb3dlckNhc2UoKSArXG4gICAgICAgICAgICAgICAgJy1hZ2dyZWdhdGUtaXNvbGF0ZWQtYXotaW1wYWN0JyxcbiAgICAgICAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YoXG4gICAgICAgICAgICAgICAgdGhpcy5jYW5hcnlab25hbEFsYXJtc0FuZFJ1bGVzIVtpbmRleF0uaXNvbGF0ZWRJbXBhY3RBbGFybSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzW2luZGV4XS5pc29sYXRlZEltcGFjdEFsYXJtLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBhY3Rpb25zRW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgICAgIGFsYXJtRGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICAgJ3tcImxvYWRCYWxhbmNlclwiOlwiJyArXG4gICAgICAgICAgICAgICAgbG9hZEJhbGFuY2VyQXJuICtcbiAgICAgICAgICAgICAgICAnXCIsXCJhei1pZFwiOlwiJyArXG4gICAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZUlkICtcbiAgICAgICAgICAgICAgICAnXCJ9JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWdncmVnYXRlWm9uYWxBbGFybXMucHVzaChcbiAgICAgICAgICB0aGlzLnNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzW2luZGV4XS5pc29sYXRlZEltcGFjdEFsYXJtLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFnZ3JlZ2F0ZVpvbmFsQWxhcm1zTWFwW2F2YWlsYWJpbGl0eVpvbmVJZF0gPVxuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZVpvbmFsQWxhcm1zWy0xXTtcblxuICAgICAgY291bnRlcisrO1xuICAgIH0pO1xuICB9XG59Il19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zYW5kcnVsZXMvT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0QywrREFBK0U7QUFFL0UsMkNBQXVDO0FBQ3ZDLG1HQUFnRztBQUNoRyw2RkFBMEY7QUFPMUYsMkdBQXdHO0FBQ3hHLHFHQUFrRztBQUdsRzs7R0FFRztBQUNILE1BQWEsdUJBQ1gsU0FBUSxzQkFBUztJQTZDakIsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDO1FBRW5DLElBQUksZUFBZSxHQUFXLEVBQUUsQ0FBQztRQUVqQyxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixlQUFlLEdBQUksS0FBSyxDQUFDLFlBQWlDO2lCQUN2RCxlQUFlLENBQUM7UUFDckIsQ0FBQztRQUVELGlFQUFpRTtRQUNqRSxtRUFBbUU7UUFDbkUsbUVBQW1FO1FBQ25FLHdDQUF3QztRQUV4QyxtRUFBbUU7UUFDbkUsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxnQ0FBZ0M7WUFDbkMsSUFBSSxxRkFBeUMsQ0FDM0MsSUFBSSxFQUNKLEtBQUssQ0FBQyxTQUFTLENBQUMsYUFB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QUFJLENBQUMseUJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUMsbUJBQW1CLEVBQzFELElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxtQkFBbUIsQ0FDOUQ7b0JBQ0QsY0FBYyxFQUFFLEtBQUs7b0JBQ3JCLGdCQUFnQixFQUNkLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsSUFBSTtpQkFDUCxDQUNGLENBQ0YsQ0FBQztZQUNKLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUM1QixJQUFJLENBQUMsNkJBQTZCLENBQUMsS0FBSyxDQUFDLENBQUMsbUJBQW1CLENBQzlELENBQUM7WUFDSixDQUFDO1lBRUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixDQUFDO2dCQUM5QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTFORCwwREEwTkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBBbGFybVJ1bGUsIENvbXBvc2l0ZUFsYXJtLCBJQWxhcm0gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBCYXNlTG9hZEJhbGFuY2VyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9DYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IENhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0NhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lPcGVyYXRpb25BbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBPcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzIH0gZnJvbSAnLi9wcm9wcy9PcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzJztcbmltcG9ydCB7IFNlcnZlclNpZGVPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9TZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbiB9IGZyb20gJy4uL3NlcnZpY2VzL0lPcGVyYXRpb24nO1xuXG4vKipcbiAqIENyZWF0ZXMgYWxhcm1zIGFuZCBydWxlcyBmb3IgYW4gb3BlcmF0aW9uIGZvciBib3RoIHJlZ2lvbmFsIGFuZCB6b25hbCBtZXRyaWNzXG4gKi9cbmV4cG9ydCBjbGFzcyBPcGVyYXRpb25BbGFybXNBbmRSdWxlc1xuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB7XG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW9uIHRoZSBhbGFybXMgYW5kIHJ1bGVzIGFyZSBjcmVhdGVkIGZvclxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uOiBJT3BlcmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgcmVnaW9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM6IElTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcztcblxuICAvKipcbiAgICogVGhlIGNhbmFyeSByZWdpb25hbCBhbGFybXMgYW5kIHJ1bGVzXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzPzogSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgc2lkZSB6b25hbCBhbGFybXMgYW5kIHJ1bGVzXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlWm9uYWxBbGFybXNBbmRSdWxlczogSVNlcnZlclNpZGVPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzW107XG5cbiAgLyoqXG4gICAqIFRoZSBjYW5hcnkgem9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgY2FuYXJ5Wm9uYWxBbGFybXNBbmRSdWxlcz86IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzW107XG5cbiAgLyoqXG4gICAqIFRoZSBhZ2dyZWdhdGUgem9uYWwgYWxhcm1zLCBvbmUgcGVyIEFaLiBFYWNoIGFsYXJtIGluZGljYXRlcyB0aGVyZSBpcyBlaXRoZXJcbiAgICogbGF0ZW5jeSBvciBhdmFpbGFiaWxpdHkgaW1wYWN0IGluIHRoYXQgQVosIGFuZCB0aGUgQVogaXMgYW4gb3V0bGllciBmb3JcbiAgICogYXZhaWxhYmlsaXR5IG9yIGxhdGVuY3kgaW1wYWN0LiBCb3RoIHNlcnZlciBzaWRlIGFuZCBjYW5hcnkgbWV0cmljcyBhcmVcbiAgICogZXZhbHVhdGVkXG4gICAqL1xuICByZWFkb25seSBhZ2dyZWdhdGVab25hbEFsYXJtczogSUFsYXJtW107XG5cbiAgLyoqXG4gICAqIFRoZSBhZ2dyZWdhdGUgem9uYWwgYWxhcm0gaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBJZC5cbiAgICovXG4gIHJlYWRvbmx5IGFnZ3JlZ2F0ZVpvbmFsQWxhcm1zTWFwOiB7IFtrZXk6IHN0cmluZ106IElBbGFybSB9O1xuXG4gIC8qKlxuICAgKiBKdXN0IHRoZSBzZXJ2ZXIgc2lkZSB6b25hbCBhbGFybXNcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlclNpZGVab25hbEFsYXJtc01hcDogeyBba2V5OiBzdHJpbmddOiBJQWxhcm0gfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IE9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5zZXJ2ZXJTaWRlWm9uYWxBbGFybXNBbmRSdWxlcyA9IFtdO1xuICAgIHRoaXMuY2FuYXJ5Wm9uYWxBbGFybXNBbmRSdWxlcyA9IFtdO1xuICAgIHRoaXMuYWdncmVnYXRlWm9uYWxBbGFybXMgPSBbXTtcbiAgICB0aGlzLm9wZXJhdGlvbiA9IHByb3BzLm9wZXJhdGlvbjtcbiAgICB0aGlzLmFnZ3JlZ2F0ZVpvbmFsQWxhcm1zTWFwID0ge307XG4gICAgdGhpcy5zZXJ2ZXJTaWRlWm9uYWxBbGFybXNNYXAgPSB7fTtcblxuICAgIGxldCBsb2FkQmFsYW5jZXJBcm46IHN0cmluZyA9ICcnO1xuXG4gICAgaWYgKHByb3BzLmxvYWRCYWxhbmNlcikge1xuICAgICAgbG9hZEJhbGFuY2VyQXJuID0gKHByb3BzLmxvYWRCYWxhbmNlciBhcyBCYXNlTG9hZEJhbGFuY2VyKVxuICAgICAgICAubG9hZEJhbGFuY2VyQXJuO1xuICAgIH1cblxuICAgIC8vIFRPRE86IFRoZXNlIGFyZSBtb3N0bHkgdXNlZCBmb3IgdGhlIG9wZXJhdGlvbiBsZXZlbCBkYXNoYm9hcmQsXG4gICAgLy8gbWF5IG1ha2Ugc2Vuc2UgdG8gbW92ZSB0aGlzIGxvZ2ljIGFuZCBzaW1pbGFyIGNhbmFyeSBsb2dpYyB0aGVyZVxuICAgIC8vIG9yIGF0IGxlYXN0IGNhbGN1bGF0ZSBhIHJlZ2lvbmFsIGltcGFjdCBhbGFybSB3aGVuIHRoZSBvcGVyYXRpb25cbiAgICAvLyBpcyBpbXBhY3RlZCwgYnV0IG5vdCBpbiBwYXJ0aWN1bGFyIEFaXG5cbiAgICAvLyBDcmVhdGVzIHRoZSByZWdpb25hbCBpbXBhY3QgYWxhcm1zIGFuZCBjb250cmlidXRvciBpbnNpZ2h0IHJ1bGVzXG4gICAgLy8gZm9yIGNvbnRyaWJ1dG9ycyB0byByZWdpb25hbCBmYXVsdHMgYW5kIGxhdGVuY3lcbiAgICB0aGlzLnNlcnZlclNpZGVSZWdpb25hbEFsYXJtc0FuZFJ1bGVzID1cbiAgICAgIG5ldyBTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgcHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgKyAnU2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zJyxcbiAgICAgICAge1xuICAgICAgICAgIGF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM6XG4gICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uc2VydmVyU2lkZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgbGF0ZW5jeU1ldHJpY0RldGFpbHM6IHByb3BzLm9wZXJhdGlvbi5zZXJ2ZXJTaWRlTGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgY29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHM6IHByb3BzLm9wZXJhdGlvblxuICAgICAgICAgICAgLnNlcnZlclNpZGVDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlsc1xuICAgICAgICAgICAgPyBwcm9wcy5vcGVyYXRpb24uc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzXG4gICAgICAgICAgICA6IHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmRlZmF1bHRDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscyxcbiAgICAgICAgICBuYW1lU3VmZml4OiAnLXNlcnZlcicsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgLy8gSWYgY2FuYXJ5IG1ldHJpY3MgYXJlIGRlZmluZWQsIGNyZWF0ZSB0aGUgcmVnaW9uYWwgaW1wYWN0XG4gICAgLy8gYWxhcm1zIFxuICAgIGlmIChwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscykge1xuICAgICAgdGhpcy5jYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzID1cbiAgICAgICAgbmV3IENhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZSArICdDYW5hcnlSZWdpb25hbEFsYXJtcycsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczpcbiAgICAgICAgICAgICAgcHJvcHMub3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIGxhdGVuY3lNZXRyaWNEZXRhaWxzOlxuICAgICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIG5hbWVTdWZmaXg6ICctY2FuYXJ5JyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgem9uYWwgaXNvbGF0ZWQgaW1wYWN0IGFsYXJtc1xuXG4gICAgcHJvcHMub3BlcmF0aW9uLnNlcnZpY2UuYXZhaWxhYmlsaXR5Wm9uZU5hbWVzLmZvckVhY2goKGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgbGV0IGF6TGV0dGVyOiBzdHJpbmcgPSBhdmFpbGFiaWxpdHlab25lLnN1YnN0cmluZyhhdmFpbGFiaWxpdHlab25lLmxlbmd0aCAtIDEpO1xuICAgICAgbGV0IGF2YWlsYWJpbGl0eVpvbmVJZDogc3RyaW5nID0gcHJvcHMuYXpNYXBwZXIuYXZhaWxhYmlsaXR5Wm9uZUlkRnJvbUF2YWlsYWJpbGl0eVpvbmVMZXR0ZXIoYXpMZXR0ZXIpO1xuXG4gICAgICAvLyBUT0RPOiBDYW4gY29uZGVuc2UgdGhpcyBsb2dpYyBhbmQganVzdCBwYXNzIHRoZSBwYXJlbnQgcHJvcHMgYXMgYSBwYXJhbWV0ZXIgaW4gdGhlc2VcbiAgICAgIC8vIHByb3BzXG4gICAgICB0aGlzLnNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzLnB1c2goXG4gICAgICAgIG5ldyBTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICtcbiAgICAgICAgICAgICdBWicgK1xuICAgICAgICAgICAgaW5kZXggK1xuICAgICAgICAgICAgJ1NlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lOiBhdmFpbGFiaWxpdHlab25lLFxuICAgICAgICAgICAgYXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczpcbiAgICAgICAgICAgICAgcHJvcHMub3BlcmF0aW9uLnNlcnZlclNpZGVBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgICAgbGF0ZW5jeU1ldHJpY0RldGFpbHM6XG4gICAgICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5zZXJ2ZXJTaWRlTGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgICBjb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlsczogcHJvcHMub3BlcmF0aW9uXG4gICAgICAgICAgICAgIC5zZXJ2ZXJTaWRlQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHNcbiAgICAgICAgICAgICAgPyBwcm9wcy5vcGVyYXRpb24uc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzXG4gICAgICAgICAgICAgIDogcHJvcHMub3BlcmF0aW9uLnNlcnZpY2UuZGVmYXVsdENvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzLFxuICAgICAgICAgICAgY291bnRlcjogaW5kZXgsXG4gICAgICAgICAgICBhdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkOiBwcm9wcy5vdXRsaWVyVGhyZXNob2xkLFxuICAgICAgICAgICAgbGF0ZW5jeU91dGxpZXJUaHJlc2hvbGQ6IHByb3BzLm91dGxpZXJUaHJlc2hvbGQsXG4gICAgICAgICAgICBhdmFpbGFiaWxpdHlPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtOiBwcm9wcy5vdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLFxuICAgICAgICAgICAgbGF0ZW5jeU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG06IHByb3BzLm91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0sXG4gICAgICAgICAgICBuYW1lU3VmZml4OiAnLXNlcnZlcicsXG4gICAgICAgICAgICBvcGVyYXRpb246IHByb3BzLm9wZXJhdGlvbixcbiAgICAgICAgICAgIGF6TWFwcGVyOiBwcm9wcy5hek1hcHBlcixcbiAgICAgICAgICAgIG91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbjogcHJvcHMub3V0bGllckRldGVjdGlvbkZ1bmN0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICksXG4gICAgICApO1xuXG4gICAgICAvLyBUT0RPOiBNb3ZlIGFsbCBvZiB0aGUgYWxhcm1zIHRvIGRpY3Rpb25hcmllcyBiYXNlZCBvbiBBWiBuYW1lXG4gICAgICAvLyBhbmQgbWF5YmUgaW5jbHVkZSBBWiBJRCBpbiB0aGF0IG1hcFxuICAgICAgdGhpcy5zZXJ2ZXJTaWRlWm9uYWxBbGFybXNNYXBbYXZhaWxhYmlsaXR5Wm9uZUlkXSA9XG4gICAgICAgIHRoaXMuc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXNbaW5kZXhdLmlzb2xhdGVkSW1wYWN0QWxhcm07XG5cbiAgICAgIGlmIChcbiAgICAgICAgcHJvcHMub3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscyAhPSBudWxsXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5jYW5hcnlab25hbEFsYXJtc0FuZFJ1bGVzIS5wdXNoKFxuICAgICAgICAgIG5ldyBDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzKFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICtcbiAgICAgICAgICAgICAgJ0FaJyArXG4gICAgICAgICAgICAgIGluZGV4ICtcbiAgICAgICAgICAgICAgJ0NhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXMnLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lOiBhdmFpbGFiaWxpdHlab25lLFxuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzOlxuICAgICAgICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgICAgbGF0ZW5jeU1ldHJpY0RldGFpbHM6XG4gICAgICAgICAgICAgICAgcHJvcHMub3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgICAgIGNvdW50ZXI6IGluZGV4LFxuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkOiBwcm9wcy5vdXRsaWVyVGhyZXNob2xkLFxuICAgICAgICAgICAgICBsYXRlbmN5T3V0bGllclRocmVzaG9sZDogcHJvcHMub3V0bGllclRocmVzaG9sZCxcbiAgICAgICAgICAgICAgbGF0ZW5jeU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG06IHByb3BzLm91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0sXG4gICAgICAgICAgICAgIGF2YWlsYWJpbGl0eU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG06IHByb3BzLm91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0sXG4gICAgICAgICAgICAgIG5hbWVTdWZmaXg6ICctY2FuYXJ5JyxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uOiBwcm9wcy5vcGVyYXRpb24sXG4gICAgICAgICAgICAgIGF6TWFwcGVyOiBwcm9wcy5hek1hcHBlcixcbiAgICAgICAgICAgICAgb3V0bGllckRldGVjdGlvbkZ1bmN0aW9uOiBwcm9wcy5vdXRsaWVyRGV0ZWN0aW9uRnVuY3Rpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hZ2dyZWdhdGVab25hbEFsYXJtcy5wdXNoKFxuICAgICAgICAgIG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZSArXG4gICAgICAgICAgICAgICdBWicgK1xuICAgICAgICAgICAgICBpbmRleCArXG4gICAgICAgICAgICAgICdBZ2dyZWdhdGVab25hbElzb2xhdGVkSW1wYWN0QWxhcm0nLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6XG4gICAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZUlkICtcbiAgICAgICAgICAgICAgICAnLScgK1xuICAgICAgICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLnRvTG93ZXJDYXNlKCkgK1xuICAgICAgICAgICAgICAgICctYWdncmVnYXRlLWlzb2xhdGVkLWF6LWltcGFjdCcsXG4gICAgICAgICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgICAgICAgIHRoaXMuY2FuYXJ5Wm9uYWxBbGFybXNBbmRSdWxlcyFbaW5kZXhdLmlzb2xhdGVkSW1wYWN0QWxhcm0sXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXJTaWRlWm9uYWxBbGFybXNBbmRSdWxlc1tpbmRleF0uaXNvbGF0ZWRJbXBhY3RBbGFybSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgYWN0aW9uc0VuYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgICd7XCJsb2FkQmFsYW5jZXJcIjpcIicgK1xuICAgICAgICAgICAgICAgIGxvYWRCYWxhbmNlckFybiArXG4gICAgICAgICAgICAgICAgJ1wiLFwiYXotaWRcIjpcIicgK1xuICAgICAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmVJZCArXG4gICAgICAgICAgICAgICAgJ1wifScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZVpvbmFsQWxhcm1zLnB1c2goXG4gICAgICAgICAgdGhpcy5zZXJ2ZXJTaWRlWm9uYWxBbGFybXNBbmRSdWxlc1tpbmRleF0uaXNvbGF0ZWRJbXBhY3RBbGFybSxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hZ2dyZWdhdGVab25hbEFsYXJtc01hcFthdmFpbGFiaWxpdHlab25lSWRdID1cbiAgICAgICAgdGhpcy5hZ2dyZWdhdGVab25hbEFsYXJtc1stMV07XG4gICAgfSk7XG4gIH1cbn0iXX0=
@@ -1,12 +1,11 @@
1
1
  import { CfnInsightRule } from "aws-cdk-lib/aws-cloudwatch";
2
2
  import { Construct } from "constructs";
3
- import { BaseOperationRegionalAlarmsAndRules } from "./BaseOperationRegionalAlarmsAndRules";
4
3
  import { IServerSideOperationRegionalAlarmsAndRules } from "./IServerSideOperationRegionalAlarmsAndRules";
5
4
  import { ServerSideOperationRegionalAlarmsAndRulesProps } from "./props/ServerSideOperationRegionalAlarmsAndRulesProps";
6
5
  /**
7
6
  * The server side regional alarms and rules for an operation
8
7
  */
9
- export declare class ServerSideOperationRegionalAlarmsAndRules extends BaseOperationRegionalAlarmsAndRules implements IServerSideOperationRegionalAlarmsAndRules {
8
+ export declare class ServerSideOperationRegionalAlarmsAndRules extends Construct implements IServerSideOperationRegionalAlarmsAndRules {
10
9
  /**
11
10
  * A rule that shows which instances are contributing to high latency responses
12
11
  */
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServerSideOperationRegionalAlarmsAndRules = void 0;
4
+ const constructs_1 = require("constructs");
4
5
  const AvailabilityAndLatencyAlarmsAndRules_1 = require("./AvailabilityAndLatencyAlarmsAndRules");
5
- const BaseOperationRegionalAlarmsAndRules_1 = require("./BaseOperationRegionalAlarmsAndRules");
6
6
  /**
7
7
  * The server side regional alarms and rules for an operation
8
8
  */
9
- class ServerSideOperationRegionalAlarmsAndRules extends BaseOperationRegionalAlarmsAndRules_1.BaseOperationRegionalAlarmsAndRules {
9
+ class ServerSideOperationRegionalAlarmsAndRules extends constructs_1.Construct {
10
10
  constructor(scope, id, props) {
11
- super(scope, id, props);
11
+ super(scope, id);
12
12
  if (props.contributorInsightRuleDetails) {
13
13
  this.instanceContributorsToRegionalFaults =
14
14
  AvailabilityAndLatencyAlarmsAndRules_1.AvailabilityAndLatencyAlarmsAndRules.createRegionalInstanceContributorsToFaults(this, props.availabilityMetricDetails, props.contributorInsightRuleDetails);
@@ -18,4 +18,4 @@ class ServerSideOperationRegionalAlarmsAndRules extends BaseOperationRegionalAla
18
18
  }
19
19
  }
20
20
  exports.ServerSideOperationRegionalAlarmsAndRules = ServerSideOperationRegionalAlarmsAndRules;
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zYW5kcnVsZXMvU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsaUdBQThGO0FBQzlGLCtGQUE0RjtBQUk1Rjs7R0FFRztBQUNILE1BQWEseUNBQ1gsU0FBUSx5RUFBbUM7SUFhM0MsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBcUQ7UUFFckQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxLQUFLLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsb0NBQW9DO2dCQUN2QywyRUFBb0MsQ0FBQywwQ0FBMEMsQ0FDN0UsSUFBSSxFQUNKLEtBQUssQ0FBQyx5QkFBeUIsRUFDL0IsS0FBSyxDQUFDLDZCQUE2QixDQUNwQyxDQUFDO1lBQ0osSUFBSSxDQUFDLHlDQUF5QztnQkFDNUMsMkVBQW9DLENBQUMsK0NBQStDLENBQ2xGLElBQUksRUFDSixLQUFLLENBQUMsb0JBQW9CLEVBQzFCLEtBQUssQ0FBQyw2QkFBNkIsQ0FDcEMsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFwQ0QsOEZBb0NDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgQ2ZuSW5zaWdodFJ1bGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBdmFpbGFiaWxpdHlBbmRMYXRlbmN5QWxhcm1zQW5kUnVsZXMgfSBmcm9tIFwiLi9BdmFpbGFiaWxpdHlBbmRMYXRlbmN5QWxhcm1zQW5kUnVsZXNcIjtcbmltcG9ydCB7IEJhc2VPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSBcIi4vQmFzZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXNcIjtcbmltcG9ydCB7IElTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyB9IGZyb20gXCIuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlc1wiO1xuaW1wb3J0IHsgU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXNQcm9wcyB9IGZyb20gXCIuL3Byb3BzL1NlcnZlclNpZGVPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzUHJvcHNcIjtcblxuLyoqXG4gKiBUaGUgc2VydmVyIHNpZGUgcmVnaW9uYWwgYWxhcm1zIGFuZCBydWxlcyBmb3IgYW4gb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlc1xuICBleHRlbmRzIEJhc2VPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzXG4gIGltcGxlbWVudHMgSVNlcnZlclNpZGVPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzXG57XG4gIC8qKlxuICAgKiBBIHJ1bGUgdGhhdCBzaG93cyB3aGljaCBpbnN0YW5jZXMgYXJlIGNvbnRyaWJ1dGluZyB0byBoaWdoIGxhdGVuY3kgcmVzcG9uc2VzXG4gICAqL1xuICBpbnN0YW5jZUNvbnRyaWJ1dG9yc1RvUmVnaW9uYWxIaWdoTGF0ZW5jeT86IENmbkluc2lnaHRSdWxlO1xuXG4gIC8qKlxuICAgKiBBIHJ1bGUgdGhhdCBzaG93cyB3aGljaCBpbnN0YW5jZXMgYXJlIGNvbnRyaWJ1dGluZyB0byBmYXVsdHNcbiAgICovXG4gIGluc3RhbmNlQ29udHJpYnV0b3JzVG9SZWdpb25hbEZhdWx0cz86IENmbkluc2lnaHRSdWxlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBpZiAocHJvcHMuY29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMpIHtcbiAgICAgIHRoaXMuaW5zdGFuY2VDb250cmlidXRvcnNUb1JlZ2lvbmFsRmF1bHRzID1cbiAgICAgICAgQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeUFsYXJtc0FuZFJ1bGVzLmNyZWF0ZVJlZ2lvbmFsSW5zdGFuY2VDb250cmlidXRvcnNUb0ZhdWx0cyhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLmF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgcHJvcHMuY29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMsXG4gICAgICAgICk7XG4gICAgICB0aGlzLmluc3RhbmNlQ29udHJpYnV0b3JzVG9SZWdpb25hbEhpZ2hMYXRlbmN5ID1cbiAgICAgICAgQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeUFsYXJtc0FuZFJ1bGVzLmNyZWF0ZVJlZ2lvbmFsSW5zdGFuY2VDb250cmlidXRvcnNUb0hpZ2hMYXRlbmN5KFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgcHJvcHMubGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgcHJvcHMuY29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMsXG4gICAgICAgICk7XG4gICAgfVxuICB9XG59Il19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zYW5kcnVsZXMvU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsMkNBQXVDO0FBQ3ZDLGlHQUE4RjtBQUk5Rjs7R0FFRztBQUNILE1BQWEseUNBQ1gsU0FBUSxzQkFBUztJQWFqQixZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFxRDtRQUVyRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksS0FBSyxDQUFDLDZCQUE2QixFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLG9DQUFvQztnQkFDdkMsMkVBQW9DLENBQUMsMENBQTBDLENBQzdFLElBQUksRUFDSixLQUFLLENBQUMseUJBQXlCLEVBQy9CLEtBQUssQ0FBQyw2QkFBNkIsQ0FDcEMsQ0FBQztZQUNKLElBQUksQ0FBQyx5Q0FBeUM7Z0JBQzVDLDJFQUFvQyxDQUFDLCtDQUErQyxDQUNsRixJQUFJLEVBQ0osS0FBSyxDQUFDLG9CQUFvQixFQUMxQixLQUFLLENBQUMsNkJBQTZCLENBQ3BDLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBcENELDhGQW9DQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IENmbkluc2lnaHRSdWxlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeUFsYXJtc0FuZFJ1bGVzIH0gZnJvbSBcIi4vQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeUFsYXJtc0FuZFJ1bGVzXCI7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tIFwiLi9JU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXNcIjtcbmltcG9ydCB7IFNlcnZlclNpZGVPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzUHJvcHMgfSBmcm9tIFwiLi9wcm9wcy9TZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlc1Byb3BzXCI7XG5cbi8qKlxuICogVGhlIHNlcnZlciBzaWRlIHJlZ2lvbmFsIGFsYXJtcyBhbmQgcnVsZXMgZm9yIGFuIG9wZXJhdGlvblxuICovXG5leHBvcnQgY2xhc3MgU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXNcbiAgZXh0ZW5kcyBDb25zdHJ1Y3RcbiAgaW1wbGVtZW50cyBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXNcbntcbiAgLyoqXG4gICAqIEEgcnVsZSB0aGF0IHNob3dzIHdoaWNoIGluc3RhbmNlcyBhcmUgY29udHJpYnV0aW5nIHRvIGhpZ2ggbGF0ZW5jeSByZXNwb25zZXNcbiAgICovXG4gIGluc3RhbmNlQ29udHJpYnV0b3JzVG9SZWdpb25hbEhpZ2hMYXRlbmN5PzogQ2ZuSW5zaWdodFJ1bGU7XG5cbiAgLyoqXG4gICAqIEEgcnVsZSB0aGF0IHNob3dzIHdoaWNoIGluc3RhbmNlcyBhcmUgY29udHJpYnV0aW5nIHRvIGZhdWx0c1xuICAgKi9cbiAgaW5zdGFuY2VDb250cmlidXRvcnNUb1JlZ2lvbmFsRmF1bHRzPzogQ2ZuSW5zaWdodFJ1bGU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlc1Byb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKHByb3BzLmNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzKSB7XG4gICAgICB0aGlzLmluc3RhbmNlQ29udHJpYnV0b3JzVG9SZWdpb25hbEZhdWx0cyA9XG4gICAgICAgIEF2YWlsYWJpbGl0eUFuZExhdGVuY3lBbGFybXNBbmRSdWxlcy5jcmVhdGVSZWdpb25hbEluc3RhbmNlQ29udHJpYnV0b3JzVG9GYXVsdHMoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBwcm9wcy5hdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgIHByb3BzLmNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzLFxuICAgICAgICApO1xuICAgICAgdGhpcy5pbnN0YW5jZUNvbnRyaWJ1dG9yc1RvUmVnaW9uYWxIaWdoTGF0ZW5jeSA9XG4gICAgICAgIEF2YWlsYWJpbGl0eUFuZExhdGVuY3lBbGFybXNBbmRSdWxlcy5jcmVhdGVSZWdpb25hbEluc3RhbmNlQ29udHJpYnV0b3JzVG9IaWdoTGF0ZW5jeShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLmxhdGVuY3lNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgIHByb3BzLmNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzLFxuICAgICAgICApO1xuICAgIH1cbiAgfVxufSJdfQ==