@cdklabs/multi-az-observability 0.0.1-alpha.6 → 0.0.1-alpha.60

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 (188) hide show
  1. package/.jsii +2826 -1008
  2. package/.jsii.tabl.json +1 -0
  3. package/API.md +5406 -1585
  4. package/README.md +176 -152
  5. package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.d.ts +18 -14
  6. package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.js +98 -60
  7. package/lib/alarmsandrules/BaseOperationRegionalAlarmsAndRules.d.ts +3 -3
  8. package/lib/alarmsandrules/BaseOperationRegionalAlarmsAndRules.js +2 -2
  9. package/lib/alarmsandrules/BaseOperationZonalAlarmsAndRules.d.ts +6 -15
  10. package/lib/alarmsandrules/BaseOperationZonalAlarmsAndRules.js +2 -10
  11. package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.d.ts +11 -3
  12. package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.js +29 -13
  13. package/lib/alarmsandrules/IBaseOperationZonalAlarmsAndRules.d.ts +0 -8
  14. package/lib/alarmsandrules/IBaseOperationZonalAlarmsAndRules.js +1 -1
  15. package/lib/alarmsandrules/IOperationAlarmsAndRules.d.ts +26 -23
  16. package/lib/alarmsandrules/IOperationAlarmsAndRules.js +1 -1
  17. package/lib/alarmsandrules/IServerSideOperationRegionalAlarmsAndRules.js +1 -1
  18. package/lib/alarmsandrules/IServiceAlarmsAndRules.d.ts +19 -15
  19. package/lib/alarmsandrules/IServiceAlarmsAndRules.js +1 -1
  20. package/lib/alarmsandrules/OperationAlarmsAndRules.d.ts +21 -18
  21. package/lib/alarmsandrules/OperationAlarmsAndRules.js +60 -72
  22. package/lib/alarmsandrules/ServerSideOperationRegionalAlarmsAndRules.d.ts +5 -5
  23. package/lib/alarmsandrules/ServerSideOperationRegionalAlarmsAndRules.js +2 -3
  24. package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.d.ts +21 -13
  25. package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.js +48 -29
  26. package/lib/alarmsandrules/ServiceAlarmsAndRules.d.ts +19 -15
  27. package/lib/alarmsandrules/ServiceAlarmsAndRules.js +34 -136
  28. package/lib/alarmsandrules/props/BaseOperationRegionalAlarmsAndRulesProps.d.ts +4 -3
  29. package/lib/alarmsandrules/props/BaseOperationRegionalAlarmsAndRulesProps.js +1 -1
  30. package/lib/alarmsandrules/props/BaseOperationZonalAlarmsAndRulesProps.d.ts +6 -44
  31. package/lib/alarmsandrules/props/BaseOperationZonalAlarmsAndRulesProps.js +1 -1
  32. package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.d.ts +39 -7
  33. package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.js +1 -1
  34. package/lib/azmapper/AvailabilityZoneMapper.js +8 -9
  35. package/lib/basic_observability/BasicServiceDashboard.d.ts +0 -3
  36. package/lib/basic_observability/BasicServiceDashboard.js +24 -112
  37. package/lib/basic_observability/BasicServiceMultiAZObservability.d.ts +8 -9
  38. package/lib/basic_observability/BasicServiceMultiAZObservability.js +97 -349
  39. package/lib/basic_observability/props/ApplicationLoadBalancerDetectionProps.d.ts +66 -0
  40. package/lib/basic_observability/props/ApplicationLoadBalancerDetectionProps.js +3 -0
  41. package/lib/basic_observability/props/BasicServiceDashboardProps.d.ts +27 -13
  42. package/lib/basic_observability/props/BasicServiceDashboardProps.js +1 -1
  43. package/lib/basic_observability/props/BasicServiceMultiAZObservabilityProps.d.ts +10 -44
  44. package/lib/basic_observability/props/BasicServiceMultiAZObservabilityProps.js +1 -1
  45. package/lib/basic_observability/props/NatGatewayDetectionProps.d.ts +31 -0
  46. package/lib/basic_observability/props/NatGatewayDetectionProps.js +3 -0
  47. package/lib/canaries/CanaryFunction.js +14 -13
  48. package/lib/canaries/CanaryTest.js +4 -4
  49. package/lib/canaries/src/canary.zip +0 -0
  50. package/lib/dashboards/ContributorInsightsWidget.d.ts +1 -1
  51. package/lib/dashboards/ContributorInsightsWidget.js +13 -17
  52. package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.d.ts +2 -6
  53. package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.js +436 -510
  54. package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.d.ts +2 -10
  55. package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +420 -416
  56. package/lib/dashboards/props/OperationAvailabilityAndLatencyDashboardProps.d.ts +3 -66
  57. package/lib/dashboards/props/OperationAvailabilityAndLatencyDashboardProps.js +1 -1
  58. package/lib/dashboards/props/OperationAvailabilityWidgetProps.d.ts +7 -2
  59. package/lib/dashboards/props/OperationAvailabilityWidgetProps.js +1 -1
  60. package/lib/dashboards/props/OperationLatencyWidgetProps.d.ts +7 -2
  61. package/lib/dashboards/props/OperationLatencyWidgetProps.js +1 -1
  62. package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.d.ts +8 -8
  63. package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.js +1 -1
  64. package/lib/index.d.ts +56 -25
  65. package/lib/index.js +37 -19
  66. package/lib/metrics/ApplicationLoadBalancerMetrics.d.ts +79 -2
  67. package/lib/metrics/ApplicationLoadBalancerMetrics.js +883 -26
  68. package/lib/metrics/AvailabilityAndLatencyMetrics.d.ts +23 -0
  69. package/lib/metrics/AvailabilityAndLatencyMetrics.js +125 -31
  70. package/lib/metrics/NatGatewayMetrics.d.ts +113 -0
  71. package/lib/metrics/NatGatewayMetrics.js +357 -0
  72. package/lib/metrics/RegionalAvailabilityMetrics.js +9 -10
  73. package/lib/metrics/RegionalLatencyMetrics.d.ts +1 -1
  74. package/lib/metrics/RegionalLatencyMetrics.js +27 -20
  75. package/lib/metrics/ZonalAvailabilityMetrics.d.ts +2 -8
  76. package/lib/metrics/ZonalAvailabilityMetrics.js +13 -28
  77. package/lib/metrics/ZonalLatencyMetrics.d.ts +2 -1
  78. package/lib/metrics/ZonalLatencyMetrics.js +33 -23
  79. package/lib/metrics/props/AvailabilityAndLatencyMetricProps.d.ts +4 -0
  80. package/lib/metrics/props/AvailabilityAndLatencyMetricProps.js +1 -1
  81. package/lib/metrics/props/LatencyMetricProps.d.ts +6 -0
  82. package/lib/metrics/props/LatencyMetricProps.js +1 -1
  83. package/lib/metrics/props/ZonalAvailabilityMetricProps.d.ts +4 -0
  84. package/lib/metrics/props/ZonalAvailabilityMetricProps.js +1 -1
  85. package/lib/metrics/props/ZonalLatencyMetricProps.d.ts +4 -0
  86. package/lib/metrics/props/ZonalLatencyMetricProps.js +1 -1
  87. package/lib/monitoring/src/monitoring-layer.zip +0 -0
  88. package/lib/outlier-detection/ApplicationLoadBalancerAvailabilityOutlierAlgorithm.d.ts +10 -0
  89. package/lib/outlier-detection/ApplicationLoadBalancerAvailabilityOutlierAlgorithm.js +15 -0
  90. package/lib/{basic_observability/props/ApplicationLoadBalancerLatencyOutlierCalculation.d.ts → outlier-detection/ApplicationLoadBalancerLatencyOutlierAlgorithm.d.ts} +1 -1
  91. package/lib/outlier-detection/ApplicationLoadBalancerLatencyOutlierAlgorithm.js +23 -0
  92. package/lib/outlier-detection/LatencyOutlierMetricAggregation.d.ts +22 -0
  93. package/lib/outlier-detection/LatencyOutlierMetricAggregation.js +27 -0
  94. package/lib/outlier-detection/OutlierDetectionFunction.js +7 -6
  95. package/lib/outlier-detection/PacketLossOutlierAlgorithm.d.ts +10 -0
  96. package/lib/outlier-detection/PacketLossOutlierAlgorithm.js +15 -0
  97. package/lib/outlier-detection/src/outlier-detection.zip +0 -0
  98. package/lib/outlier-detection/src/scipy-layer.zip +0 -0
  99. package/lib/services/CanaryMetrics.d.ts +4 -3
  100. package/lib/services/CanaryMetrics.js +3 -4
  101. package/lib/services/CanaryTestAvailabilityMetricsOverride.d.ts +21 -0
  102. package/lib/services/CanaryTestAvailabilityMetricsOverride.js +23 -0
  103. package/lib/services/CanaryTestLatencyMetricsOverride.d.ts +15 -0
  104. package/lib/services/CanaryTestLatencyMetricsOverride.js +20 -0
  105. package/lib/services/CanaryTestMetricsOverride.d.ts +1 -13
  106. package/lib/services/CanaryTestMetricsOverride.js +2 -4
  107. package/lib/services/ContributorInsightRuleDetails.js +1 -1
  108. package/lib/services/ICanaryMetrics.d.ts +4 -3
  109. package/lib/services/ICanaryMetrics.js +1 -1
  110. package/lib/services/ICanaryTestAvailabilityMetricsOverride.d.ts +23 -0
  111. package/lib/services/ICanaryTestAvailabilityMetricsOverride.js +3 -0
  112. package/lib/services/ICanaryTestLatencyMetricsOverride.d.ts +13 -0
  113. package/lib/services/ICanaryTestLatencyMetricsOverride.js +3 -0
  114. package/lib/services/ICanaryTestMetricsOverride.d.ts +0 -12
  115. package/lib/services/ICanaryTestMetricsOverride.js +1 -1
  116. package/lib/services/IInstrumentedServiceMultiAZObservability.d.ts +13 -3
  117. package/lib/services/IInstrumentedServiceMultiAZObservability.js +1 -1
  118. package/lib/services/IOperation.d.ts +8 -6
  119. package/lib/services/IOperation.js +1 -1
  120. package/lib/services/IOperationAvailabilityMetricDetails.d.ts +18 -0
  121. package/lib/services/IOperationAvailabilityMetricDetails.js +3 -0
  122. package/lib/services/IOperationLatencyMetricDetails.d.ts +12 -0
  123. package/lib/services/IOperationLatencyMetricDetails.js +3 -0
  124. package/lib/services/IOperationMetricDetails.d.ts +0 -12
  125. package/lib/services/IOperationMetricDetails.js +1 -1
  126. package/lib/services/IService.d.ts +18 -4
  127. package/lib/services/IService.js +1 -1
  128. package/lib/services/IServiceAvailabilityMetricDetails.d.ts +18 -0
  129. package/lib/services/IServiceAvailabilityMetricDetails.js +3 -0
  130. package/lib/services/IServiceLatencyMetricDetails.d.ts +12 -0
  131. package/lib/services/IServiceLatencyMetricDetails.js +3 -0
  132. package/lib/services/IServiceMetricDetails.d.ts +0 -12
  133. package/lib/services/IServiceMetricDetails.js +1 -1
  134. package/lib/services/InstrumentedServiceMultiAZObservability.d.ts +15 -3
  135. package/lib/services/InstrumentedServiceMultiAZObservability.js +252 -228
  136. package/lib/services/Operation.d.ts +8 -6
  137. package/lib/services/Operation.js +4 -3
  138. package/lib/services/OperationAvailabilityMetricDetails.d.ts +22 -0
  139. package/lib/services/OperationAvailabilityMetricDetails.js +24 -0
  140. package/lib/services/OperationLatencyMetricDetails.d.ts +16 -0
  141. package/lib/services/OperationLatencyMetricDetails.js +21 -0
  142. package/lib/services/OperationMetricDetails.d.ts +1 -13
  143. package/lib/services/OperationMetricDetails.js +2 -8
  144. package/lib/services/Service.d.ts +18 -4
  145. package/lib/services/Service.js +4 -2
  146. package/lib/services/ServiceAvailabilityMetricDetails.d.ts +21 -0
  147. package/lib/services/ServiceAvailabilityMetricDetails.js +20 -0
  148. package/lib/services/ServiceLatencyMetricDetails.d.ts +15 -0
  149. package/lib/services/ServiceLatencyMetricDetails.js +19 -0
  150. package/lib/services/ServiceMetricDetails.d.ts +1 -13
  151. package/lib/services/ServiceMetricDetails.js +2 -4
  152. package/lib/services/props/CanaryMetricProps.d.ts +4 -3
  153. package/lib/services/props/CanaryMetricProps.js +1 -1
  154. package/lib/services/props/CanaryTestAvailabilityMetricsOverrideProps.d.ts +22 -0
  155. package/lib/services/props/CanaryTestAvailabilityMetricsOverrideProps.js +3 -0
  156. package/lib/services/props/CanaryTestLatencyMetricsOverrideProps.d.ts +14 -0
  157. package/lib/services/props/CanaryTestLatencyMetricsOverrideProps.js +3 -0
  158. package/lib/services/props/CanaryTestMetricsOverrideProps.d.ts +0 -16
  159. package/lib/services/props/CanaryTestMetricsOverrideProps.js +1 -1
  160. package/lib/services/props/InstrumentedServiceMultiAZObservabilityProps.d.ts +50 -5
  161. package/lib/services/props/InstrumentedServiceMultiAZObservabilityProps.js +1 -1
  162. package/lib/services/props/MetricDimensions.js +1 -1
  163. package/lib/services/props/OperationAvailabilityMetricDetailsProps.d.ts +22 -0
  164. package/lib/services/props/OperationAvailabilityMetricDetailsProps.js +3 -0
  165. package/lib/services/props/OperationLatencyMetricDetailsProps.d.ts +14 -0
  166. package/lib/services/props/OperationLatencyMetricDetailsProps.js +3 -0
  167. package/lib/services/props/OperationMetricDetailsProps.d.ts +0 -16
  168. package/lib/services/props/OperationMetricDetailsProps.js +1 -1
  169. package/lib/services/props/OperationProps.d.ts +4 -3
  170. package/lib/services/props/OperationProps.js +1 -1
  171. package/lib/services/props/ServiceAvailabilityMetricDetailsProps.d.ts +18 -0
  172. package/lib/services/props/ServiceAvailabilityMetricDetailsProps.js +3 -0
  173. package/lib/services/props/ServiceLatencyMetricDetailsProps.d.ts +12 -0
  174. package/lib/services/props/ServiceLatencyMetricDetailsProps.js +3 -0
  175. package/lib/services/props/ServiceMetricDetailsProps.d.ts +0 -12
  176. package/lib/services/props/ServiceMetricDetailsProps.js +1 -1
  177. package/lib/services/props/ServiceProps.d.ts +18 -4
  178. package/lib/services/props/ServiceProps.js +1 -1
  179. package/lib/utilities/MetricsHelper.d.ts +17 -9
  180. package/lib/utilities/MetricsHelper.js +34 -10
  181. package/lib/utilities/MinimumUnhealthyTargets.d.ts +25 -0
  182. package/lib/utilities/MinimumUnhealthyTargets.js +3 -0
  183. package/package.json +14 -14
  184. package/rosetta/default.ts-fixture +72 -0
  185. package/rosetta/service.ts-fixture +144 -0
  186. package/lib/basic_observability/props/ApplicationLoadBalancerLatencyOutlierCalculation.js +0 -23
  187. package/lib/services/IBasicServiceMultiAZObservability.d.ts +0 -45
  188. package/lib/services/IBasicServiceMultiAZObservability.js +0 -3
@@ -0,0 +1,66 @@
1
+ import { IApplicationLoadBalancer, ITargetGroup } from "aws-cdk-lib/aws-elasticloadbalancingv2";
2
+ import { ApplicationLoadBalancerAvailabilityOutlierAlgorithm } from "../../outlier-detection/ApplicationLoadBalancerAvailabilityOutlierAlgorithm";
3
+ import { ApplicationLoadBalancerLatencyOutlierAlgorithm } from "../../outlier-detection/ApplicationLoadBalancerLatencyOutlierAlgorithm";
4
+ import { Duration } from "aws-cdk-lib";
5
+ /**
6
+ * An object to map an ALB to its target groups
7
+ */
8
+ export interface AlbTargetGroupMap {
9
+ /**
10
+ * The application load balancer
11
+ */
12
+ readonly applicationLoadBalancer: IApplicationLoadBalancer;
13
+ /**
14
+ * The target groups associated with the ALB
15
+ *
16
+ * @default No target groups are associated and will not display anomalous hosts or mitigated hosts on the dashboard
17
+ */
18
+ readonly targetGroups?: ITargetGroup[];
19
+ }
20
+ /**
21
+ * The properties for performing zonal impact detection with ALB(s).
22
+ */
23
+ export interface ApplicationLoadBalancerDetectionProps {
24
+ /**
25
+ * Map of target groups per ALB to collect metrics from.
26
+ */
27
+ readonly albTargetGroupMap: AlbTargetGroupMap[];
28
+ /**
29
+ * The percentage of faults for a single ALB to consider an AZ
30
+ * to be unhealthy, a number between 0 and 100. This should align with your availability goal. For example
31
+ * 1% or 5%, provided as 1 or 5.
32
+ */
33
+ readonly faultCountPercentThreshold: number;
34
+ /**
35
+ * The threshold in milliseconds for ALB targets whose responses are slower than this
36
+ * value at the specified percentile statistic.
37
+ */
38
+ readonly latencyThreshold: Duration;
39
+ /**
40
+ * The statistic used to measure target response latency, like p99,
41
+ * which can be specified using Stats.percentile(99) or "p99".
42
+ */
43
+ readonly latencyStatistic: string;
44
+ /**
45
+ * The method used to determine if an AZ is an outlier for latency for Application Load Balancer metrics.
46
+ * @default Z_SCORE
47
+ */
48
+ readonly latencyOutlierAlgorithm?: ApplicationLoadBalancerLatencyOutlierAlgorithm;
49
+ /**
50
+ * The method used to determine if an AZ is an outlier for availability for Application Load Balancer metrics.
51
+ * @default STATIC
52
+ */
53
+ readonly availabilityOutlierAlgorithm?: ApplicationLoadBalancerAvailabilityOutlierAlgorithm;
54
+ /**
55
+ * The threshold for the outlier detection algorithm.
56
+ *
57
+ * @default "This depends on the algorithm used. STATIC: 66"
58
+ */
59
+ readonly availabilityOutlierThreshold?: number;
60
+ /**
61
+ * The threshold for the outlier detection algorithm.
62
+ *
63
+ * @default "This depends on the algorithm used. STATIC: 66. Z_SCORE: 3."
64
+ */
65
+ readonly latencyOutlierThreshold?: number;
66
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJEZXRlY3Rpb25Qcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNpY19vYnNlcnZhYmlsaXR5L3Byb3BzL0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyRGV0ZWN0aW9uUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlciwgSVRhcmdldEdyb3VwIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyXCI7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckF2YWlsYWJpbGl0eU91dGxpZXJBbGdvcml0aG0gfSBmcm9tIFwiLi4vLi4vb3V0bGllci1kZXRlY3Rpb24vQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtXCI7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckxhdGVuY3lPdXRsaWVyQWxnb3JpdGhtIH0gZnJvbSBcIi4uLy4uL291dGxpZXItZGV0ZWN0aW9uL0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTGF0ZW5jeU91dGxpZXJBbGdvcml0aG1cIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbi8qKlxuICogQW4gb2JqZWN0IHRvIG1hcCBhbiBBTEIgdG8gaXRzIHRhcmdldCBncm91cHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbGJUYXJnZXRHcm91cE1hcCB7XG4gIC8qKlxuICAgKiBUaGUgYXBwbGljYXRpb24gbG9hZCBiYWxhbmNlclxuICAgKi9cbiAgcmVhZG9ubHkgYXBwbGljYXRpb25Mb2FkQmFsYW5jZXI6IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcjtcblxuICAvKipcbiAgICogVGhlIHRhcmdldCBncm91cHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBBTEJcbiAgICogXG4gICAqIEBkZWZhdWx0IE5vIHRhcmdldCBncm91cHMgYXJlIGFzc29jaWF0ZWQgYW5kIHdpbGwgbm90IGRpc3BsYXkgYW5vbWFsb3VzIGhvc3RzIG9yIG1pdGlnYXRlZCBob3N0cyBvbiB0aGUgZGFzaGJvYXJkXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRHcm91cHM/OiBJVGFyZ2V0R3JvdXBbXTtcbn1cblxuLyoqXG4gKiBUaGUgcHJvcGVydGllcyBmb3IgcGVyZm9ybWluZyB6b25hbCBpbXBhY3QgZGV0ZWN0aW9uIHdpdGggQUxCKHMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyRGV0ZWN0aW9uUHJvcHMge1xuXG4gIC8qKlxuICAgKiBNYXAgb2YgdGFyZ2V0IGdyb3VwcyBwZXIgQUxCIHRvIGNvbGxlY3QgbWV0cmljcyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxiVGFyZ2V0R3JvdXBNYXA6IEFsYlRhcmdldEdyb3VwTWFwW107XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJjZW50YWdlIG9mIGZhdWx0cyBmb3IgYSBzaW5nbGUgQUxCIHRvIGNvbnNpZGVyIGFuIEFaXG4gICAqIHRvIGJlIHVuaGVhbHRoeSwgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxMDAuIFRoaXMgc2hvdWxkIGFsaWduIHdpdGggeW91ciBhdmFpbGFiaWxpdHkgZ29hbC4gRm9yIGV4YW1wbGVcbiAgICogMSUgb3IgNSUsIHByb3ZpZGVkIGFzIDEgb3IgNS5cbiAgICovXG4gIHJlYWRvbmx5IGZhdWx0Q291bnRQZXJjZW50VGhyZXNob2xkOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0aHJlc2hvbGQgaW4gbWlsbGlzZWNvbmRzIGZvciBBTEIgdGFyZ2V0cyB3aG9zZSByZXNwb25zZXMgYXJlIHNsb3dlciB0aGFuIHRoaXNcbiAgICogdmFsdWUgYXQgdGhlIHNwZWNpZmllZCBwZXJjZW50aWxlIHN0YXRpc3RpYy5cbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lUaHJlc2hvbGQ6IER1cmF0aW9uO1xuICBcbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWMgdXNlZCB0byBtZWFzdXJlIHRhcmdldCByZXNwb25zZSBsYXRlbmN5LCBsaWtlIHA5OSwgXG4gICAqIHdoaWNoIGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgU3RhdHMucGVyY2VudGlsZSg5OSkgb3IgXCJwOTlcIi5cbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lTdGF0aXN0aWM6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1ldGhvZCB1c2VkIHRvIGRldGVybWluZSBpZiBhbiBBWiBpcyBhbiBvdXRsaWVyIGZvciBsYXRlbmN5IGZvciBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyIG1ldHJpY3MuXG4gICAqIEBkZWZhdWx0IFpfU0NPUkVcbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lPdXRsaWVyQWxnb3JpdGhtPzogQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5T3V0bGllckFsZ29yaXRobTtcblxuICAvKipcbiAgICogVGhlIG1ldGhvZCB1c2VkIHRvIGRldGVybWluZSBpZiBhbiBBWiBpcyBhbiBvdXRsaWVyIGZvciBhdmFpbGFiaWxpdHkgZm9yIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgbWV0cmljcy5cbiAgICogQGRlZmF1bHQgU1RBVElDXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtPzogQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciB0aGUgb3V0bGllciBkZXRlY3Rpb24gYWxnb3JpdGhtLlxuICAgKiBcbiAgICogQGRlZmF1bHQgXCJUaGlzIGRlcGVuZHMgb24gdGhlIGFsZ29yaXRobSB1c2VkLiBTVEFUSUM6IDY2XCJcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eU91dGxpZXJUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0aHJlc2hvbGQgZm9yIHRoZSBvdXRsaWVyIGRldGVjdGlvbiBhbGdvcml0aG0uXG4gICAqIFxuICAgKiBAZGVmYXVsdCBcIlRoaXMgZGVwZW5kcyBvbiB0aGUgYWxnb3JpdGhtIHVzZWQuIFNUQVRJQzogNjYuIFpfU0NPUkU6IDMuXCJcbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lPdXRsaWVyVGhyZXNob2xkPzogbnVtYmVyO1xuICBcbn0iXX0=
@@ -1,26 +1,40 @@
1
1
  import { Duration } from 'aws-cdk-lib';
2
- import { IAlarm, IMetric } from 'aws-cdk-lib/aws-cloudwatch';
2
+ import { IAlarm } from 'aws-cdk-lib/aws-cloudwatch';
3
3
  import { AvailabilityZoneMapper } from '../../azmapper/AvailabilityZoneMapper';
4
+ import { ApplicationLoadBalancerDetectionProps } from './ApplicationLoadBalancerDetectionProps';
5
+ import { NatGatewayDetectionProps } from './NatGatewayDetectionProps';
4
6
  /**
5
7
  * The properties for creating a dashboard with basic metrics
6
8
  */
7
9
  export interface BasicServiceDashboardProps {
10
+ /**
11
+ * The service's name
12
+ */
8
13
  readonly serviceName: string;
9
- readonly zonalLoadBalancerIsolatedImpactAlarms?: {
10
- [key: string]: IAlarm;
11
- };
12
- readonly zonalNatGatewayIsolatedImpactAlarms?: {
13
- [key: string]: IAlarm;
14
- };
14
+ /**
15
+ * The alarms indicating a single AZ impact, one per AZ
16
+ */
15
17
  readonly zonalAggregateIsolatedImpactAlarms: {
16
18
  [key: string]: IAlarm;
17
19
  };
18
- readonly zonalLoadBalancerFaultRateMetrics?: {
19
- [key: string]: IMetric;
20
- };
21
- readonly zonalNatGatewayPacketDropMetrics?: {
22
- [key: string]: IMetric;
23
- };
20
+ /**
21
+ * The interval for the dashboard
22
+ */
24
23
  readonly interval?: Duration;
24
+ /**
25
+ * The AZ mapper to convert AZ name/letter to AZ ID
26
+ */
25
27
  readonly azMapper: AvailabilityZoneMapper;
28
+ /**
29
+ * The ALBs being used for the service
30
+ */
31
+ readonly albs?: ApplicationLoadBalancerDetectionProps;
32
+ /**
33
+ * The NAT Gateways being used for the service, a list of gateways per Availability zone
34
+ */
35
+ readonly natgws?: NatGatewayDetectionProps;
36
+ /**
37
+ * The period for metric measurement
38
+ */
39
+ readonly period: Duration;
26
40
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlRGFzaGJvYXJkUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFzaWNfb2JzZXJ2YWJpbGl0eS9wcm9wcy9CYXNpY1NlcnZpY2VEYXNoYm9hcmRQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBJQWxhcm0sIElNZXRyaWMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBBdmFpbGFiaWxpdHlab25lTWFwcGVyIH0gZnJvbSAnLi4vLi4vYXptYXBwZXIvQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcic7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgZGFzaGJvYXJkIHdpdGggYmFzaWMgbWV0cmljc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2ljU2VydmljZURhc2hib2FyZFByb3BzIHtcbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICByZWFkb25seSB6b25hbExvYWRCYWxhbmNlcklzb2xhdGVkSW1wYWN0QWxhcm1zPzogeyBba2V5OiBzdHJpbmddOiBJQWxhcm0gfTtcblxuICByZWFkb25seSB6b25hbE5hdEdhdGV3YXlJc29sYXRlZEltcGFjdEFsYXJtcz86IHsgW2tleTogc3RyaW5nXTogSUFsYXJtIH07XG5cbiAgcmVhZG9ubHkgem9uYWxBZ2dyZWdhdGVJc29sYXRlZEltcGFjdEFsYXJtczogeyBba2V5OiBzdHJpbmddOiBJQWxhcm0gfTtcblxuICByZWFkb25seSB6b25hbExvYWRCYWxhbmNlckZhdWx0UmF0ZU1ldHJpY3M/OiB7IFtrZXk6IHN0cmluZ106IElNZXRyaWMgfTtcblxuICByZWFkb25seSB6b25hbE5hdEdhdGV3YXlQYWNrZXREcm9wTWV0cmljcz86IHsgW2tleTogc3RyaW5nXTogSU1ldHJpYyB9O1xuXG4gIHJlYWRvbmx5IGludGVydmFsPzogRHVyYXRpb247XG5cbiAgcmVhZG9ubHkgYXpNYXBwZXI6IEF2YWlsYWJpbGl0eVpvbmVNYXBwZXI7XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlRGFzaGJvYXJkUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFzaWNfb2JzZXJ2YWJpbGl0eS9wcm9wcy9CYXNpY1NlcnZpY2VEYXNoYm9hcmRQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBJQWxhcm0gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBBdmFpbGFiaWxpdHlab25lTWFwcGVyIH0gZnJvbSAnLi4vLi4vYXptYXBwZXIvQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckRldGVjdGlvblByb3BzIH0gZnJvbSAnLi9BcHBsaWNhdGlvbkxvYWRCYWxhbmNlckRldGVjdGlvblByb3BzJztcbmltcG9ydCB7IE5hdEdhdGV3YXlEZXRlY3Rpb25Qcm9wcyB9IGZyb20gJy4vTmF0R2F0ZXdheURldGVjdGlvblByb3BzJztcblxuLyoqXG4gKiBUaGUgcHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBkYXNoYm9hcmQgd2l0aCBiYXNpYyBtZXRyaWNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzaWNTZXJ2aWNlRGFzaGJvYXJkUHJvcHMge1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSdzIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhbGFybXMgaW5kaWNhdGluZyBhIHNpbmdsZSBBWiBpbXBhY3QsIG9uZSBwZXIgQVpcbiAgICovXG4gIHJlYWRvbmx5IHpvbmFsQWdncmVnYXRlSXNvbGF0ZWRJbXBhY3RBbGFybXM6IHsgW2tleTogc3RyaW5nXTogSUFsYXJtIH07XG5cbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCBmb3IgdGhlIGRhc2hib2FyZFxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZXJ2YWw/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIEFaIG1hcHBlciB0byBjb252ZXJ0IEFaIG5hbWUvbGV0dGVyIHRvIEFaIElEXG4gICAqL1xuICByZWFkb25seSBhek1hcHBlcjogQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcjtcblxuICAvKipcbiAgICogVGhlIEFMQnMgYmVpbmcgdXNlZCBmb3IgdGhlIHNlcnZpY2VcbiAgICovXG4gIHJlYWRvbmx5IGFsYnM/OiBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckRldGVjdGlvblByb3BzO1xuXG4gIC8qKlxuICAgKiBUaGUgTkFUIEdhdGV3YXlzIGJlaW5nIHVzZWQgZm9yIHRoZSBzZXJ2aWNlLCBhIGxpc3Qgb2YgZ2F0ZXdheXMgcGVyIEF2YWlsYWJpbGl0eSB6b25lXG4gICAqL1xuICByZWFkb25seSBuYXRnd3M/OiBOYXRHYXRld2F5RGV0ZWN0aW9uUHJvcHM7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJpb2QgZm9yIG1ldHJpYyBtZWFzdXJlbWVudFxuICAgKi9cbiAgcmVhZG9ubHkgcGVyaW9kOiBEdXJhdGlvbjtcbn1cbiJdfQ==
@@ -1,57 +1,28 @@
1
1
  import { Duration } from 'aws-cdk-lib';
2
- import { CfnNatGateway } from 'aws-cdk-lib/aws-ec2';
3
- import { IApplicationLoadBalancer } from 'aws-cdk-lib/aws-elasticloadbalancingv2';
4
- import { ApplicationLoadBalancerLatencyOutlierCalculation } from './ApplicationLoadBalancerLatencyOutlierCalculation';
2
+ import { ApplicationLoadBalancerDetectionProps } from './ApplicationLoadBalancerDetectionProps';
3
+ import { NatGatewayDetectionProps } from './NatGatewayDetectionProps';
5
4
  /**
6
5
  * Properties for creating basic multi-AZ observability
7
6
  */
8
7
  export interface BasicServiceMultiAZObservabilityProps {
9
8
  /**
10
- * (Optional) A map of Availability Zone name to the NAT Gateways
11
- * in that AZ. One alarm per NAT GW will be created. If multiple NAT GWs
12
- * are provided for a single AZ, those alarms will be aggregated into
13
- * a composite alarm for the AZ. You must either specify an ALB or a NAT GW.
9
+ * Properties for NAT Gateways to detect single AZ impact. You must specify
10
+ * this and/or applicationLoadBalancerProps.
14
11
  *
15
- * @default "No alarms for NAT Gateways will be created"
12
+ * @default "No NAT Gateways will be used to calculate impact."
16
13
  */
17
- readonly natGateways?: {
18
- [key: string]: CfnNatGateway[];
19
- };
14
+ readonly natGatewayProps?: NatGatewayDetectionProps;
20
15
  /**
21
- * The application load balancers being used by the service. There will be an alarm created for
22
- * each AZ for each ALB. Then, there will be a composite alarm for AZ created from the input
23
- * of all ALBs. You must either specify an ALB or a NAT GW.
16
+ * Properties for ALBs to detect single AZ impact. You must specify this
17
+ * and/or natGatewayProps.
24
18
  *
25
- * @default "No alarms for ALBs will be created"
19
+ * @default "No ALBs will be used to calculate impact."
26
20
  */
27
- readonly applicationLoadBalancers?: IApplicationLoadBalancer[];
21
+ readonly applicationLoadBalancerProps?: ApplicationLoadBalancerDetectionProps;
28
22
  /**
29
23
  * The service's name
30
24
  */
31
25
  readonly serviceName: string;
32
- /**
33
- * The amount of packet loss in a NAT GW to determine if an AZ
34
- * is actually impacted, recommendation is 0.01%
35
- *
36
- * @default "0.01 (as in 0.01%)"
37
- */
38
- readonly packetLossImpactPercentageThreshold?: number;
39
- /**
40
- * The percentage of faults for a single ALB to consider an AZ
41
- * to be unhealthy, this should align with your availability goal. For example
42
- * 1% or 5%, specify as 1 or 5.
43
- */
44
- readonly faultCountPercentageThreshold: number;
45
- /**
46
- * The threshold in seconds for ALB targets whose responses are slower than this
47
- * value at the specified percentile statistic.
48
- */
49
- readonly latencyThreshold: number;
50
- /**
51
- * The statistic used to measure target response latency, like p99,
52
- * which can be specified using Stats.percentile(99) or "p99".
53
- */
54
- readonly latencyStatistic: string;
55
26
  /**
56
27
  * The period to evaluate metrics
57
28
  *
@@ -107,9 +78,4 @@ export interface BasicServiceMultiAZObservabilityProps {
107
78
  * The number of datapoints to alarm on for latency and availability alarms
108
79
  */
109
80
  readonly datapointsToAlarm: number;
110
- /**
111
- * The method used to determine if an AZ is an outlier for latency for Application Load Balancer metrics.
112
- * @default Z_SCORE
113
- */
114
- readonly latencyOutlierCalculation?: ApplicationLoadBalancerLatencyOutlierCalculation;
115
81
  }
@@ -2,4 +2,4 @@
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNpY19vYnNlcnZhYmlsaXR5L3Byb3BzL0Jhc2ljU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ2ZuTmF0R2F0ZXdheSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5T3V0bGllckNhbGN1bGF0aW9uIH0gZnJvbSAnLi9BcHBsaWNhdGlvbkxvYWRCYWxhbmNlckxhdGVuY3lPdXRsaWVyQ2FsY3VsYXRpb24nO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGJhc2ljIG11bHRpLUFaIG9ic2VydmFiaWxpdHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNpY1NlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eVByb3BzIHtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQSBtYXAgb2YgQXZhaWxhYmlsaXR5IFpvbmUgbmFtZSB0byB0aGUgTkFUIEdhdGV3YXlzXG4gICAqIGluIHRoYXQgQVouIE9uZSBhbGFybSBwZXIgTkFUIEdXIHdpbGwgYmUgY3JlYXRlZC4gSWYgbXVsdGlwbGUgTkFUIEdXc1xuICAgKiBhcmUgcHJvdmlkZWQgZm9yIGEgc2luZ2xlIEFaLCB0aG9zZSBhbGFybXMgd2lsbCBiZSBhZ2dyZWdhdGVkIGludG9cbiAgICogYSBjb21wb3NpdGUgYWxhcm0gZm9yIHRoZSBBWi4gWW91IG11c3QgZWl0aGVyIHNwZWNpZnkgYW4gQUxCIG9yIGEgTkFUIEdXLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIk5vIGFsYXJtcyBmb3IgTkFUIEdhdGV3YXlzIHdpbGwgYmUgY3JlYXRlZFwiXG4gICAqL1xuICByZWFkb25seSBuYXRHYXRld2F5cz86IHsgW2tleTogc3RyaW5nXTogQ2ZuTmF0R2F0ZXdheVtdIH07XG5cbiAgLyoqXG4gICAqIFRoZSBhcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VycyBiZWluZyB1c2VkIGJ5IHRoZSBzZXJ2aWNlLiBUaGVyZSB3aWxsIGJlIGFuIGFsYXJtIGNyZWF0ZWQgZm9yIFxuICAgKiBlYWNoIEFaIGZvciBlYWNoIEFMQi4gVGhlbiwgdGhlcmUgd2lsbCBiZSBhIGNvbXBvc2l0ZSBhbGFybSBmb3IgQVogY3JlYXRlZCBmcm9tIHRoZSBpbnB1dFxuICAgKiBvZiBhbGwgQUxCcy4gWW91IG11c3QgZWl0aGVyIHNwZWNpZnkgYW4gQUxCIG9yIGEgTkFUIEdXLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIk5vIGFsYXJtcyBmb3IgQUxCcyB3aWxsIGJlIGNyZWF0ZWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJzPzogSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyW107XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlJ3MgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiBwYWNrZXQgbG9zcyBpbiBhIE5BVCBHVyB0byBkZXRlcm1pbmUgaWYgYW4gQVpcbiAgICogaXMgYWN0dWFsbHkgaW1wYWN0ZWQsIHJlY29tbWVuZGF0aW9uIGlzIDAuMDElXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiMC4wMSAoYXMgaW4gMC4wMSUpXCJcbiAgICovXG4gIHJlYWRvbmx5IHBhY2tldExvc3NJbXBhY3RQZXJjZW50YWdlVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyY2VudGFnZSBvZiBmYXVsdHMgZm9yIGEgc2luZ2xlIEFMQiB0byBjb25zaWRlciBhbiBBWlxuICAgKiB0byBiZSB1bmhlYWx0aHksIHRoaXMgc2hvdWxkIGFsaWduIHdpdGggeW91ciBhdmFpbGFiaWxpdHkgZ29hbC4gRm9yIGV4YW1wbGVcbiAgICogMSUgb3IgNSUsIHNwZWNpZnkgYXMgMSBvciA1LlxuICAgKi9cbiAgcmVhZG9ubHkgZmF1bHRDb3VudFBlcmNlbnRhZ2VUaHJlc2hvbGQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBpbiBzZWNvbmRzIGZvciBBTEIgdGFyZ2V0cyB3aG9zZSByZXNwb25zZXMgYXJlIHNsb3dlciB0aGFuIHRoaXNcbiAgICogdmFsdWUgYXQgdGhlIHNwZWNpZmllZCBwZXJjZW50aWxlIHN0YXRpc3RpYy5cbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lUaHJlc2hvbGQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHN0YXRpc3RpYyB1c2VkIHRvIG1lYXN1cmUgdGFyZ2V0IHJlc3BvbnNlIGxhdGVuY3ksIGxpa2UgcDk5LCBcbiAgICogd2hpY2ggY2FuIGJlIHNwZWNpZmllZCB1c2luZyBTdGF0cy5wZXJjZW50aWxlKDk5KSBvciBcInA5OVwiLlxuICAgKi9cbiAgcmVhZG9ubHkgbGF0ZW5jeVN0YXRpc3RpYzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyaW9kIHRvIGV2YWx1YXRlIG1ldHJpY3NcbiAgICogXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLm1pbnV0ZXMoMSlcbiAgICovXG4gIHJlYWRvbmx5IHBlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNyZWF0ZSBhIGRhc2hib2FyZCBkaXNwbGF5aW5nIHRoZSBtZXRyaWNzIGFuZCBhbGFybXNcbiAgICogXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVEYXNoYm9hcmQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEYXNoYm9hcmQgaW50ZXJ2YWxcbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uaG91cnMoMSlcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIElmIHlvdSBhcmUgbm90IHVzaW5nIGEgc3RhdGljIGJ1Y2tldCB0byBkZXBsb3kgYXNzZXRzLCBmb3IgZXhhbXBsZVxuICAgKiB5b3UgYXJlIHN5bnRoaW5nIHRoaXMgYW5kIGl0IGdldHMgdXBsb2FkZWQgdG8gYSBidWNrZXQgd2hvc2UgbmFtZVxuICAgKiBpcyB1bmtub3duIHRvIHlvdSAobWF5YmUgdXNlZCBhcyBwYXJ0IG9mIGEgY2VudHJhbCBDSS9DRCBzeXN0ZW0pXG4gICAqIGFuZCBpcyBwcm92aWRlZCBhcyBhIHBhcmFtZXRlciB0byB5b3VyIHN0YWNrLCBzcGVjaWZ5IHRoYXQgcGFyYW1ldGVyXG4gICAqIG5hbWUgaGVyZS4gSXQgd2lsbCBvdmVycmlkZSB0aGUgYnVja2V0IGxvY2F0aW9uIENESyBwcm92aWRlcyBieVxuICAgKiBkZWZhdWx0IGZvciBidW5kbGVkIGFzc2V0cy4gVGhlIHN0YWNrIGNvbnRhaW5pbmcgdGhpcyBjb250cnVjdCBuZWVkc1xuICAgKiB0byBoYXZlIGEgcGFyYW1ldGVyIGRlZmluZWQgdGhhdCB1c2VzIHRoaXMgbmFtZS4gVGhlIHVuZGVybHlpbmdcbiAgICogc3RhY2tzIGluIHRoaXMgY29uc3RydWN0IHRoYXQgZGVwbG95IGFzc2V0cyB3aWxsIGNvcHkgdGhlIHBhcmVudCBzdGFjaydzXG4gICAqIHZhbHVlIGZvciB0aGlzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIlRoZSBhc3NldHMgd2lsbCBiZSB1cGxvYWRlZCB0byB0aGUgZGVmYXVsdCBkZWZpbmVkIGFzc2V0IGxvY2F0aW9uLlwiXG4gICAqL1xuICByZWFkb25seSBhc3NldHNCdWNrZXRQYXJhbWV0ZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiB5b3UgYXJlIG5vdCB1c2luZyBhIHN0YXRpYyBidWNrZXQgdG8gZGVwbG95IGFzc2V0cywgZm9yIGV4YW1wbGVcbiAgICogeW91IGFyZSBzeW50aGluZyB0aGlzIGFuZCBpdCBnZXRzIHVwbG9hZGVkIHRvIGEgYnVja2V0IHRoYXQgdXNlcyBhIHByZWZpeFxuICAgKiB0aGF0IGlzIHVua25vd24gdG8geW91IChtYXliZSB1c2VkIGFzIHBhcnQgb2YgYSBjZW50cmFsIENJL0NEIHN5c3RlbSlcbiAgICogYW5kIGlzIHByb3ZpZGVkIGFzIGEgcGFyYW1ldGVyIHRvIHlvdXIgc3RhY2ssIHNwZWNpZnkgdGhhdCBwYXJhbWV0ZXJcbiAgICogbmFtZSBoZXJlLiBJdCB3aWxsIG92ZXJyaWRlIHRoZSBidWNrZXQgcHJlZml4IENESyBwcm92aWRlcyBieVxuICAgKiBkZWZhdWx0IGZvciBidW5kbGVkIGFzc2V0cy4gVGhpcyBwcm9wZXJ0eSBvbmx5IHRha2VzIGVmZmVjdCBpZiB5b3VcbiAgICogZGVmaW5lZCB0aGUgYXNzZXRzQnVja2V0UGFyYW1ldGVyTmFtZS4gVGhlIHN0YWNrIGNvbnRhaW5pbmcgdGhpcyBjb250cnVjdCBuZWVkc1xuICAgKiB0byBoYXZlIGEgcGFyYW1ldGVyIGRlZmluZWQgdGhhdCB1c2VzIHRoaXMgbmFtZS4gVGhlIHVuZGVybHlpbmdcbiAgICogc3RhY2tzIGluIHRoaXMgY29uc3RydWN0IHRoYXQgZGVwbG95IGFzc2V0cyB3aWxsIGNvcHkgdGhlIHBhcmVudCBzdGFjaydzXG4gICAqIHZhbHVlIGZvciB0aGlzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIk5vIG9iamVjdCBwcmVmaXggd2lsbCBiZSBhZGRlZCB0byB5b3VyIGN1c3RvbSBhc3NldHMgbG9jYXRpb24uIEhvd2V2ZXIsIGlmIHlvdSBoYXZlIG92ZXJyaWRkZW4gc29tZXRoaW5nIGxpa2UgdGhlICdCdWNrZXRQcmVmaXgnIHByb3BlcnR5IGluIHlvdXIgc3RhY2sgc3ludGhlc2l6ZXIgd2l0aCBhIHZhcmlhYmxlIGxpa2UgJyR7QXNzZXRzQnVja2V0UHJlZml4fScsIHlvdSB3aWxsIG5lZWQgdG8gZGVmaW5lIHRoaXMgcHJvcGVydHkgc28gaXQgZG9lc24ndCBjYXVzZSBhIHJlZmVyZW5jZSBlcnJvciBldmVuIGlmIHRoZSBwcmVmaXggdmFsdWUgaXMgYmxhbmsuXCJcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZXZhbHVhdGlvbiBwZXJpb2RzIGZvciBsYXRlbmN5IGFuZCBhdmFpbGFiaWx0aXkgYWxhcm1zXG4gICAqL1xuICByZWFkb25seSBldmFsdWF0aW9uUGVyaW9kczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRhdGFwb2ludHMgdG8gYWxhcm0gb24gZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbGl0eSBhbGFybXNcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFwb2ludHNUb0FsYXJtOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgdXNlZCB0byBkZXRlcm1pbmUgaWYgYW4gQVogaXMgYW4gb3V0bGllciBmb3IgbGF0ZW5jeSBmb3IgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciBtZXRyaWNzLlxuICAgKiBAZGVmYXVsdCBaX1NDT1JFXG4gICAqL1xuICByZWFkb25seSBsYXRlbmN5T3V0bGllckNhbGN1bGF0aW9uPzogQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5T3V0bGllckNhbGN1bGF0aW9uO1xufVxuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNpY19vYnNlcnZhYmlsaXR5L3Byb3BzL0Jhc2ljU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJEZXRlY3Rpb25Qcm9wcyB9IGZyb20gJy4vQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJEZXRlY3Rpb25Qcm9wcyc7XG5pbXBvcnQgeyBOYXRHYXRld2F5RGV0ZWN0aW9uUHJvcHMgfSBmcm9tICcuL05hdEdhdGV3YXlEZXRlY3Rpb25Qcm9wcyc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYmFzaWMgbXVsdGktQVogb2JzZXJ2YWJpbGl0eVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2ljU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMge1xuICAvKipcbiAgICogUHJvcGVydGllcyBmb3IgTkFUIEdhdGV3YXlzIHRvIGRldGVjdCBzaW5nbGUgQVogaW1wYWN0LiBZb3UgbXVzdCBzcGVjaWZ5XG4gICAqIHRoaXMgYW5kL29yIGFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHMuXG4gICAqIFxuICAgKiBAZGVmYXVsdCBcIk5vIE5BVCBHYXRld2F5cyB3aWxsIGJlIHVzZWQgdG8gY2FsY3VsYXRlIGltcGFjdC5cIlxuICAgKi9cbiAgcmVhZG9ubHkgbmF0R2F0ZXdheVByb3BzPzogTmF0R2F0ZXdheURldGVjdGlvblByb3BzO1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIGZvciBBTEJzIHRvIGRldGVjdCBzaW5nbGUgQVogaW1wYWN0LiBZb3UgbXVzdCBzcGVjaWZ5IHRoaXNcbiAgICogYW5kL29yIG5hdEdhdGV3YXlQcm9wcy5cbiAgICogXG4gICAqIEBkZWZhdWx0IFwiTm8gQUxCcyB3aWxsIGJlIHVzZWQgdG8gY2FsY3VsYXRlIGltcGFjdC5cIlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcz86IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyRGV0ZWN0aW9uUHJvcHM7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlJ3MgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBlcmlvZCB0byBldmFsdWF0ZSBtZXRyaWNzXG4gICAqIFxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5taW51dGVzKDEpXG4gICAqL1xuICByZWFkb25seSBwZXJpb2Q/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjcmVhdGUgYSBkYXNoYm9hcmQgZGlzcGxheWluZyB0aGUgbWV0cmljcyBhbmQgYWxhcm1zXG4gICAqIFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlRGFzaGJvYXJkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGFzaGJvYXJkIGludGVydmFsXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLmhvdXJzKDEpXG4gICAqL1xuICByZWFkb25seSBpbnRlcnZhbD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiB5b3UgYXJlIG5vdCB1c2luZyBhIHN0YXRpYyBidWNrZXQgdG8gZGVwbG95IGFzc2V0cywgZm9yIGV4YW1wbGVcbiAgICogeW91IGFyZSBzeW50aGluZyB0aGlzIGFuZCBpdCBnZXRzIHVwbG9hZGVkIHRvIGEgYnVja2V0IHdob3NlIG5hbWVcbiAgICogaXMgdW5rbm93biB0byB5b3UgKG1heWJlIHVzZWQgYXMgcGFydCBvZiBhIGNlbnRyYWwgQ0kvQ0Qgc3lzdGVtKVxuICAgKiBhbmQgaXMgcHJvdmlkZWQgYXMgYSBwYXJhbWV0ZXIgdG8geW91ciBzdGFjaywgc3BlY2lmeSB0aGF0IHBhcmFtZXRlclxuICAgKiBuYW1lIGhlcmUuIEl0IHdpbGwgb3ZlcnJpZGUgdGhlIGJ1Y2tldCBsb2NhdGlvbiBDREsgcHJvdmlkZXMgYnlcbiAgICogZGVmYXVsdCBmb3IgYnVuZGxlZCBhc3NldHMuIFRoZSBzdGFjayBjb250YWluaW5nIHRoaXMgY29udHJ1Y3QgbmVlZHNcbiAgICogdG8gaGF2ZSBhIHBhcmFtZXRlciBkZWZpbmVkIHRoYXQgdXNlcyB0aGlzIG5hbWUuIFRoZSB1bmRlcmx5aW5nXG4gICAqIHN0YWNrcyBpbiB0aGlzIGNvbnN0cnVjdCB0aGF0IGRlcGxveSBhc3NldHMgd2lsbCBjb3B5IHRoZSBwYXJlbnQgc3RhY2snc1xuICAgKiB2YWx1ZSBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJUaGUgYXNzZXRzIHdpbGwgYmUgdXBsb2FkZWQgdG8gdGhlIGRlZmF1bHQgZGVmaW5lZCBhc3NldCBsb2NhdGlvbi5cIlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRzQnVja2V0UGFyYW1ldGVyTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgeW91IGFyZSBub3QgdXNpbmcgYSBzdGF0aWMgYnVja2V0IHRvIGRlcGxveSBhc3NldHMsIGZvciBleGFtcGxlXG4gICAqIHlvdSBhcmUgc3ludGhpbmcgdGhpcyBhbmQgaXQgZ2V0cyB1cGxvYWRlZCB0byBhIGJ1Y2tldCB0aGF0IHVzZXMgYSBwcmVmaXhcbiAgICogdGhhdCBpcyB1bmtub3duIHRvIHlvdSAobWF5YmUgdXNlZCBhcyBwYXJ0IG9mIGEgY2VudHJhbCBDSS9DRCBzeXN0ZW0pXG4gICAqIGFuZCBpcyBwcm92aWRlZCBhcyBhIHBhcmFtZXRlciB0byB5b3VyIHN0YWNrLCBzcGVjaWZ5IHRoYXQgcGFyYW1ldGVyXG4gICAqIG5hbWUgaGVyZS4gSXQgd2lsbCBvdmVycmlkZSB0aGUgYnVja2V0IHByZWZpeCBDREsgcHJvdmlkZXMgYnlcbiAgICogZGVmYXVsdCBmb3IgYnVuZGxlZCBhc3NldHMuIFRoaXMgcHJvcGVydHkgb25seSB0YWtlcyBlZmZlY3QgaWYgeW91XG4gICAqIGRlZmluZWQgdGhlIGFzc2V0c0J1Y2tldFBhcmFtZXRlck5hbWUuIFRoZSBzdGFjayBjb250YWluaW5nIHRoaXMgY29udHJ1Y3QgbmVlZHNcbiAgICogdG8gaGF2ZSBhIHBhcmFtZXRlciBkZWZpbmVkIHRoYXQgdXNlcyB0aGlzIG5hbWUuIFRoZSB1bmRlcmx5aW5nXG4gICAqIHN0YWNrcyBpbiB0aGlzIGNvbnN0cnVjdCB0aGF0IGRlcGxveSBhc3NldHMgd2lsbCBjb3B5IHRoZSBwYXJlbnQgc3RhY2snc1xuICAgKiB2YWx1ZSBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJObyBvYmplY3QgcHJlZml4IHdpbGwgYmUgYWRkZWQgdG8geW91ciBjdXN0b20gYXNzZXRzIGxvY2F0aW9uLiBIb3dldmVyLCBpZiB5b3UgaGF2ZSBvdmVycmlkZGVuIHNvbWV0aGluZyBsaWtlIHRoZSAnQnVja2V0UHJlZml4JyBwcm9wZXJ0eSBpbiB5b3VyIHN0YWNrIHN5bnRoZXNpemVyIHdpdGggYSB2YXJpYWJsZSBsaWtlICcke0Fzc2V0c0J1Y2tldFByZWZpeH0nLCB5b3Ugd2lsbCBuZWVkIHRvIGRlZmluZSB0aGlzIHByb3BlcnR5IHNvIGl0IGRvZXNuJ3QgY2F1c2UgYSByZWZlcmVuY2UgZXJyb3IgZXZlbiBpZiB0aGUgcHJlZml4IHZhbHVlIGlzIGJsYW5rLlwiXG4gICAqL1xuICByZWFkb25seSBhc3NldHNCdWNrZXRQcmVmaXhQYXJhbWV0ZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGV2YWx1YXRpb24gcGVyaW9kcyBmb3IgbGF0ZW5jeSBhbmQgYXZhaWxhYmlsdGl5IGFsYXJtc1xuICAgKi9cbiAgcmVhZG9ubHkgZXZhbHVhdGlvblBlcmlvZHM6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXRhcG9pbnRzIHRvIGFsYXJtIG9uIGZvciBsYXRlbmN5IGFuZCBhdmFpbGFiaWxpdHkgYWxhcm1zXG4gICAqL1xuICByZWFkb25seSBkYXRhcG9pbnRzVG9BbGFybTogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,31 @@
1
+ import { CfnNatGateway } from "aws-cdk-lib/aws-ec2";
2
+ import { PacketLossOutlierAlgorithm } from "../../outlier-detection/PacketLossOutlierAlgorithm";
3
+ /**
4
+ * The properties for performing zonal impact detection with NAT Gateway(s).
5
+ */
6
+ export interface NatGatewayDetectionProps {
7
+ /**
8
+ * A list of NAT Gateways per Availability Zone (using the AZ name as the key)
9
+ */
10
+ readonly natGateways: {
11
+ [key: string]: CfnNatGateway[];
12
+ };
13
+ /**
14
+ * The percentage of packet loss at which you consider there to be impact.
15
+ *
16
+ * @default 0.01 (as in 0.01%)
17
+ */
18
+ readonly packetLossPercentThreshold?: number;
19
+ /**
20
+ * The algorithm to use to calculate an AZ as an outlier for packet loss.
21
+ *
22
+ * @default PacketLossOutlierAlgorithm.STATIC
23
+ */
24
+ readonly packetLossOutlierAlgorithm?: PacketLossOutlierAlgorithm;
25
+ /**
26
+ * The threshold used with the outlier calculation.
27
+ *
28
+ * @default "This depends on the outlier algorithm. STATIC: 66. Z-SCORE: 3."
29
+ */
30
+ readonly packetLossOutlierThreshold?: number;
31
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmF0R2F0ZXdheURldGVjdGlvblByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jhc2ljX29ic2VydmFiaWxpdHkvcHJvcHMvTmF0R2F0ZXdheURldGVjdGlvblByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5OYXRHYXRld2F5IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IFBhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtIH0gZnJvbSBcIi4uLy4uL291dGxpZXItZGV0ZWN0aW9uL1BhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtXCI7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIHBlcmZvcm1pbmcgem9uYWwgaW1wYWN0IGRldGVjdGlvbiB3aXRoIE5BVCBHYXRld2F5KHMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hdEdhdGV3YXlEZXRlY3Rpb25Qcm9wcyB7XG5cbiAgICAvKipcbiAgICAgKiBBIGxpc3Qgb2YgTkFUIEdhdGV3YXlzIHBlciBBdmFpbGFiaWxpdHkgWm9uZSAodXNpbmcgdGhlIEFaIG5hbWUgYXMgdGhlIGtleSlcbiAgICAgKi9cbiAgICByZWFkb25seSBuYXRHYXRld2F5czoge1trZXk6IHN0cmluZ106IENmbk5hdEdhdGV3YXlbXX07XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcGVyY2VudGFnZSBvZiBwYWNrZXQgbG9zcyBhdCB3aGljaCB5b3UgY29uc2lkZXIgdGhlcmUgdG8gYmUgaW1wYWN0LlxuICAgICAqIFxuICAgICAqIEBkZWZhdWx0IDAuMDEgKGFzIGluIDAuMDElKVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBhY2tldExvc3NQZXJjZW50VGhyZXNob2xkPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGFsZ29yaXRobSB0byB1c2UgdG8gY2FsY3VsYXRlIGFuIEFaIGFzIGFuIG91dGxpZXIgZm9yIHBhY2tldCBsb3NzLlxuICAgICAqIFxuICAgICAqIEBkZWZhdWx0IFBhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtLlNUQVRJQ1xuICAgICAqL1xuICAgIHJlYWRvbmx5IHBhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtPzogUGFja2V0TG9zc091dGxpZXJBbGdvcml0aG07XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGhyZXNob2xkIHVzZWQgd2l0aCB0aGUgb3V0bGllciBjYWxjdWxhdGlvbi5cbiAgICAgKiBcbiAgICAgKiBAZGVmYXVsdCBcIlRoaXMgZGVwZW5kcyBvbiB0aGUgb3V0bGllciBhbGdvcml0aG0uIFNUQVRJQzogNjYuIFotU0NPUkU6IDMuXCJcbiAgICAgKi9cbiAgICByZWFkb25seSBwYWNrZXRMb3NzT3V0bGllclRocmVzaG9sZD86IG51bWJlcjtcbn0iXX0=
@@ -10,6 +10,7 @@ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
10
10
  const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
11
11
  const aws_logs_1 = require("aws-cdk-lib/aws-logs");
12
12
  const constructs_1 = require("constructs");
13
+ const MetricsHelper_1 = require("../utilities/MetricsHelper");
13
14
  class CanaryFunction extends constructs_1.Construct {
14
15
  constructor(scope, id, props) {
15
16
  super(scope, id);
@@ -51,8 +52,8 @@ class CanaryFunction extends constructs_1.Construct {
51
52
  /*
52
53
  let code: AssetCode = Code.fromAsset(path.join(__dirname, "src/"), {
53
54
  bundling: {
54
- //image: new Runtime('python3.12:latest-arm64', RuntimeFamily.PYTHON).bundlingImage,
55
- image: Runtime.PYTHON_3_12.bundlingImage,
55
+ //image: new Runtime('python3.13:latest-arm64', RuntimeFamily.PYTHON).bundlingImage,
56
+ image: MetricsHelper.PythonRuntime.bundlingImage,
56
57
  command: [
57
58
  'bash', '-c',
58
59
  'pip install --no-cache -r requirements.txt -t /asset-output && cp --archive --update . /asset-output',
@@ -64,7 +65,7 @@ class CanaryFunction extends constructs_1.Construct {
64
65
  let monitoringLayer = new aws_lambda_1.LayerVersion(this, 'MonitoringLayer', {
65
66
  code: aws_lambda_1.Code.fromAsset(path.join(__dirname, '../monitoring/src/monitoring-layer.zip')),
66
67
  compatibleArchitectures: [aws_lambda_1.Architecture.ARM_64],
67
- compatibleRuntimes: [aws_lambda_1.Runtime.PYTHON_3_12],
68
+ compatibleRuntimes: [MetricsHelper_1.MetricsHelper.PythonRuntime],
68
69
  });
69
70
  if (props.vpc !== undefined && props.vpc != null) {
70
71
  let sg = new aws_ec2_1.SecurityGroup(this, 'canarySecurityGroup', {
@@ -73,7 +74,7 @@ class CanaryFunction extends constructs_1.Construct {
73
74
  allowAllOutbound: true,
74
75
  });
75
76
  this.function = new aws_lambda_1.Function(this, 'canary', {
76
- runtime: aws_lambda_1.Runtime.PYTHON_3_12,
77
+ runtime: MetricsHelper_1.MetricsHelper.PythonRuntime,
77
78
  code: aws_lambda_1.Code.fromAsset(path.join(__dirname, 'src/canary.zip')),
78
79
  handler: 'index.handler',
79
80
  role: executionRole,
@@ -83,10 +84,10 @@ class CanaryFunction extends constructs_1.Construct {
83
84
  memorySize: 512,
84
85
  layers: [monitoringLayer],
85
86
  environment: {
86
- REGION: aws_cdk_lib_1.Fn.ref('AWS::Region'),
87
- PARTITION: aws_cdk_lib_1.Fn.ref('AWS::Partition'),
87
+ REGION: aws_cdk_lib_1.Aws.REGION,
88
+ PARTITION: aws_cdk_lib_1.Aws.PARTITION,
88
89
  TIMEOUT: props.httpTimeout !== undefined
89
- ? props.httpTimeout.toSeconds().toString()
90
+ ? props.httpTimeout.toSeconds({ integral: false }).toString()
90
91
  : '2',
91
92
  IGNORE_SSL_ERRORS: (props.ignoreTlsErrors !== undefined && props.ignoreTlsErrors == true)
92
93
  .toString()
@@ -99,7 +100,7 @@ class CanaryFunction extends constructs_1.Construct {
99
100
  }
100
101
  else {
101
102
  this.function = new aws_lambda_1.Function(this, 'canary', {
102
- runtime: aws_lambda_1.Runtime.PYTHON_3_12,
103
+ runtime: MetricsHelper_1.MetricsHelper.PythonRuntime,
103
104
  code: aws_lambda_1.Code.fromAsset(path.join(__dirname, 'src/canary.zip')),
104
105
  handler: 'index.handler',
105
106
  role: executionRole,
@@ -109,10 +110,10 @@ class CanaryFunction extends constructs_1.Construct {
109
110
  memorySize: 512,
110
111
  layers: [monitoringLayer],
111
112
  environment: {
112
- REGION: aws_cdk_lib_1.Fn.ref('AWS::Region'),
113
- PARTITION: aws_cdk_lib_1.Fn.ref('AWS::Partition'),
113
+ REGION: aws_cdk_lib_1.Aws.REGION,
114
+ PARTITION: aws_cdk_lib_1.Aws.PARTITION,
114
115
  TIMEOUT: props.httpTimeout !== undefined
115
- ? props.httpTimeout.toSeconds().toString()
116
+ ? props.httpTimeout.toSeconds({ integral: false }).toString()
116
117
  : '2',
117
118
  IGNORE_SSL_ERRORS: (props.ignoreTlsErrors !== undefined && props.ignoreTlsErrors == true)
118
119
  .toString()
@@ -123,7 +124,7 @@ class CanaryFunction extends constructs_1.Construct {
123
124
  this.function.addPermission('invokePermission', {
124
125
  action: 'lambda:InvokeFunction',
125
126
  principal: new aws_iam_1.ServicePrincipal('events.amazonaws.com'),
126
- sourceArn: aws_cdk_lib_1.Fn.sub('arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:rule/*'),
127
+ sourceArn: `arn:${aws_cdk_lib_1.Aws.PARTITION}:events:${aws_cdk_lib_1.Aws.REGION}:${aws_cdk_lib_1.Aws.ACCOUNT_ID}:rule/*`
127
128
  });
128
129
  this.logGroup = new aws_logs_1.LogGroup(this, 'logGroup', {
129
130
  logGroupName: `/aws/lambda/${this.function.functionName}`,
@@ -149,4 +150,4 @@ class CanaryFunction extends constructs_1.Construct {
149
150
  }
150
151
  }
151
152
  exports.CanaryFunction = CanaryFunction;
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5RnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2FuYXJpZXMvQ2FuYXJ5RnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0Qyw2QkFBNkI7QUFDN0IsNkNBQTBEO0FBQzFELGlEQUFvRTtBQUNwRSxpREFRNkI7QUFDN0IsdURBU2dDO0FBQ2hDLG1EQUEwRTtBQUMxRSwyQ0FBdUM7QUFJdkMsTUFBYSxjQUFlLFNBQVEsc0JBQVM7SUFXM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksaUJBQWlCLEdBQW1CLElBQUksdUJBQWEsQ0FDdkQsSUFBSSxFQUNKLG1CQUFtQixFQUNuQjtZQUNFLElBQUksRUFBRSxVQUFVO1lBQ2hCLFVBQVUsRUFBRTtnQkFDVixJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRTt3QkFDUCx1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2Qix5QkFBeUI7d0JBQ3pCLG9DQUFvQztxQkFDckM7b0JBQ0QsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSztvQkFDcEIsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO2lCQUNqQixDQUFDO2FBQ0g7U0FDRixDQUNGLENBQUM7UUFDRixJQUFJLGdCQUFnQixHQUFHLElBQUksdUJBQWEsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDakUsSUFBSSxFQUFFLFVBQVU7WUFDaEIsVUFBVSxFQUFFO2dCQUNWLElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFO3dCQUNQLDRCQUE0Qjt3QkFDNUIsK0JBQStCO3dCQUMvQiw0QkFBNEI7cUJBQzdCO29CQUNELE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JBQ3BCLFNBQVMsRUFBRSxD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QkFBYSxDQUFDLFFBQVE7WUFDakMsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztTQUNyQyxDQUFDLENBQUM7UUFFSCxJQUFJLHVCQUFhLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQ3pDLElBQUksRUFBRSxVQUFVO1lBQ2hCLFVBQVUsRUFBRTtnQkFDVixJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixDQUFDO29CQUNyQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO29CQUNwQixTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7aUJBQ2pCLENBQUM7Z0JBQ0YsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxtQkFBbUIsQ0FBQztvQkFDdEQsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSztvQkFDcEIsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7aUJBQ3ZDLENBQUM7YUFDSDtZQUNELEtBQUssRUFBRSxDQUFDLGFBQWEsQ0FBQztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE1S0Qsd0NBNEtDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IER1cmF0aW9uLCBGbiwgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElTZWN1cml0eUdyb3VwLCBTZWN1cml0eUdyb3VwIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQge1xuICBFZmZlY3QsXG4gIElNYW5hZ2VkUG9saWN5LFxuICBJUm9sZSxcbiAgTWFuYWdlZFBvbGljeSxcbiAgUG9saWN5U3RhdGVtZW50LFxuICBSb2xlLFxuICBTZXJ2aWNlUHJpbmNpcGFsLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7XG4gIEFyY2hpdGVjdHVyZSxcbiAgQ29kZSxcbiAgRnVuY3Rpb24sXG4gIElGdW5jdGlvbixcbiAgSUxheWVyVmVyc2lvbixcbiAgTGF5ZXJWZXJzaW9uLFxuICBSdW50aW1lLFxuICBUcmFjaW5nLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IElMb2dHcm91cCwgTG9nR3JvdXAsIFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElDYW5hcnlGdW5jdGlvbiB9IGZyb20gJy4vSUNhbmFyeUZ1bmN0aW9uJztcbmltcG9ydCB7IENhbmFyeUZ1bmN0aW9uUHJvcHMgfSBmcm9tICcuL3Byb3BzL0NhbmFyeUZ1bmN0aW9uUHJvcHMnO1xuXG5leHBvcnQgY2xhc3MgQ2FuYXJ5RnVuY3Rpb24gZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJQ2FuYXJ5RnVuY3Rpb24ge1xuICAvKipcbiAgICogVGhlIGNhbmFyeSBmdW5jdGlvblxuICAgKi9cbiAgZnVuY3Rpb246IElGdW5jdGlvbjtcblxuICAvKipcbiAgICogVGhlIGxvZyBncm91cCB3aGVyZSB0aGUgY2FuYXJ0eSBsb2dzIHdpbGwgYmUgc2VudFxuICAgKi9cbiAgbG9nR3JvdXA6IElMb2dHcm91cDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2FuYXJ5RnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBsZXQgeHJheU1hbmFnZWRQb2xpY3k6IElNYW5hZ2VkUG9saWN5ID0gbmV3IE1hbmFnZWRQb2xpY3koXG4gICAgICB0aGlzLFxuICAgICAgJ3hyYXlNYW5hZ2VkUG9saWN5JyxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJy9jYW5hcnkvJyxcbiAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAneHJheTpQdXRUcmFjZVNlZ21lbnRzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6UHV0VGVsZW1ldHJ5UmVjb3JkcycsXG4gICAgICAgICAgICAgICd4cmF5OkdldFNhbXBsaW5nUnVsZXMnLFxuICAgICAgICAgICAgICAneHJheTpHZXRTYW1wbGluZ1RhcmdldHMnLFxuICAgICAgICAgICAgICAneHJheTpHZXRTYW1wbGluZ1N0YXRpc3RpY1N1bW1hcmllcycsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICApO1xuICAgIGxldCBlYzJNYW5hZ2VkUG9saWN5ID0gbmV3IE1hbmFnZWRQb2xpY3kodGhpcywgJ2VjMk1hbmFnZWRQb2xpY3knLCB7XG4gICAgICBwYXRoOiAnL2NhbmFyeS8nLFxuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAnZWMyOkNyZWF0ZU5ldHdvcmtJbnRlcmZhY2UnLFxuICAgICAgICAgICAgJ2VjMjpEZXNjcmliZU5ldHdvcmtJbnRlcmZhY2VzJyxcbiAgICAgICAgICAgICdlYzI6RGVsZXRlTmV0d29ya0ludGVyZmFjZScsXG4gICAgICAgICAgXSxcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBsZXQgZXhlY3V0aW9uUm9sZTogSVJvbGUgPSBuZXcgUm9sZSh0aGlzLCAnZXhlY3V0aW9uUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoJ2xhbWJkYS5hbWF6b25hd3MuY29tJyksXG4gICAgICBwYXRoOiAnL2NhbmFyeS8nLFxuICAgICAgbWFuYWdlZFBvbGljaWVzOiBbeHJheU1hbmFnZWRQb2xpY3ksIGVjMk1hbmFnZWRQb2xpY3ldLFxuICAgIH0pO1xuXG4gICAgLypcbiAgICBsZXQgY29kZTogQXNzZXRDb2RlID0gQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgXCJzcmMvXCIpLCB7XG4gICAgICBidW5kbGluZzoge1xuICAgICAgICAvL2ltYWdlOiBuZXcgUnVudGltZSgncHl0aG9uMy4xMjpsYXRlc3QtYXJtNjQnLCBSdW50aW1lRmFtaWx5LlBZVEhPTikuYnVuZGxpbmdJbWFnZSxcbiAgICAgICAgaW1hZ2U6IFJ1bnRpbWUuUFlUSE9OXzNfMTIuYnVuZGxpbmdJbWFnZSxcbiAgICAgICAgY29tbWFuZDogW1xuICAgICAgICAgICdiYXNoJywgJy1jJyxcbiAgICAgICAgICAncGlwIGluc3RhbGwgLS1uby1jYWNoZSAtciByZXF1aXJlbWVudHMudHh0IC10IC9hc3NldC1vdXRwdXQgJiYgY3AgLS1hcmNoaXZlIC0tdXBkYXRlIC4gL2Fzc2V0LW91dHB1dCcsXG4gICAgICAgIF0sXG4gICAgICAgIHBsYXRmb3JtOiAnbGludXgvYXJtNjQnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICAqL1xuICAgIGxldCBtb25pdG9yaW5nTGF5ZXI6IElMYXllclZlcnNpb24gPSBuZXcgTGF5ZXJWZXJzaW9uKFxuICAgICAgdGhpcyxcbiAgICAgICdNb25pdG9yaW5nTGF5ZXInLFxuICAgICAge1xuICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChcbiAgICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vbW9uaXRvcmluZy9zcmMvbW9uaXRvcmluZy1sYXllci56aXAnKSxcbiAgICAgICAgKSxcbiAgICAgICAgY29tcGF0aWJsZUFyY2hpdGVjdHVyZXM6IFtBcmNoaXRlY3R1cmUuQVJNXzY0XSxcbiAgICAgICAgY29tcGF0aWJsZVJ1bnRpbWVzOiBbUnVudGltZS5QWVRIT05fM18xMl0sXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBpZiAocHJvcHMudnBjICE9PSB1bmRlZmluZWQgJiYgcHJvcHMudnBjICE9IG51bGwpIHtcbiAgICAgIGxldCBzZzogSVNlY3VyaXR5R3JvdXAgPSBuZXcgU2VjdXJpdHlHcm91cCh0aGlzLCAnY2FuYXJ5U2VjdXJpdHlHcm91cCcsIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdBbGxvdyBjYW5hcnkgdG8gY29tbXVuaWNhdGUgd2l0aCBsb2FkIGJhbGFuY2VyJyxcbiAgICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICAgIGFsbG93QWxsT3V0Ym91bmQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5mdW5jdGlvbiA9IG5ldyBGdW5jdGlvbih0aGlzLCAnY2FuYXJ5Jywge1xuICAgICAgICBydW50aW1lOiBSdW50aW1lLlBZVEhPTl8zXzEyLFxuICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnc3JjL2NhbmFyeS56aXAnKSksXG4gICAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgICAgcm9sZTogZXhlY3V0aW9uUm9sZSxcbiAgICAgICAgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgICB0cmFjaW5nOiBUcmFjaW5nLkFDVElWRSxcbiAgICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygyNDApLFxuICAgICAgICBtZW1vcnlTaXplOiA1MTIsXG4gICAgICAgIGxheWVyczogW21vbml0b3JpbmdMYXllcl0sXG4gICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgUkVHSU9OOiBGbi5yZWYoJ0FXUzo6UmVnaW9uJyksXG4gICAgICAgICAgUEFSVElUSU9OOiBGbi5yZWYoJ0FXUzo6UGFydGl0aW9uJyksXG4gICAgICAgICAgVElNRU9VVDpcbiAgICAgICAgICAgIHByb3BzLmh0dHBUaW1lb3V0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPyBwcm9wcy5odHRwVGltZW91dC50b1NlY29uZHMoKS50b1N0cmluZygpXG4gICAgICAgICAgICAgIDogJzInLFxuICAgICAgICAgIElHTk9SRV9TU0xfRVJST1JTOiAoXG4gICAgICAgICAgICBwcm9wcy5pZ25vcmVUbHNFcnJvcnMgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5pZ25vcmVUbHNFcnJvcnMgPT0gdHJ1ZVxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgfSxcbiAgICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICAgIHNlY3VyaXR5R3JvdXBzOiBbc2ddLFxuICAgICAgICB2cGNTdWJuZXRzOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mdW5jdGlvbiA9IG5ldyBGdW5jdGlvbih0aGlzLCAnY2FuYXJ5Jywge1xuICAgICAgICBydW50aW1lOiBSdW50aW1lLlBZVEhPTl8zXzEyLFxuICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnc3JjL2NhbmFyeS56aXAnKSksXG4gICAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgICAgcm9sZTogZXhlY3V0aW9uUm9sZSxcbiAgICAgICAgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgICB0cmFjaW5nOiBUcmFjaW5nLkFDVElWRSxcbiAgICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygyNDApLFxuICAgICAgICBtZW1vcnlTaXplOiA1MTIsXG4gICAgICAgIGxheWVyczogW21vbml0b3JpbmdMYXllcl0sXG4gICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgUkVHSU9OOiBGbi5yZWYoJ0FXUzo6UmVnaW9uJyksXG4gICAgICAgICAgUEFSVElUSU9OOiBGbi5yZWYoJ0FXUzo6UGFydGl0aW9uJyksXG4gICAgICAgICAgVElNRU9VVDpcbiAgICAgICAgICAgIHByb3BzLmh0dHBUaW1lb3V0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPyBwcm9wcy5odHRwVGltZW91dC50b1NlY29uZHMoKS50b1N0cmluZygpXG4gICAgICAgICAgICAgIDogJzInLFxuICAgICAgICAgIElHTk9SRV9TU0xfRVJST1JTOiAoXG4gICAgICAgICAgICBwcm9wcy5pZ25vcmVUbHNFcnJvcnMgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5pZ25vcmVUbHNFcnJvcnMgPT0gdHJ1ZVxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZnVuY3Rpb24uYWRkUGVybWlzc2lvbignaW52b2tlUGVybWlzc2lvbicsIHtcbiAgICAgIGFjdGlvbjogJ2xhbWJkYTpJbnZva2VGdW5jdGlvbicsXG4gICAgICBwcmluY2lwYWw6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKCdldmVudHMuYW1hem9uYXdzLmNvbScpLFxuICAgICAgc291cmNlQXJuOiBGbi5zdWIoXG4gICAgICAgICdhcm46JHtBV1M6OlBhcnRpdGlvbn06ZXZlbnRzOiR7QVdTOjpSZWdpb259OiR7QVdTOjpBY2NvdW50SWR9OnJ1bGUvKicsXG4gICAgICApLFxuICAgIH0pO1xuXG4gICAgdGhpcy5sb2dHcm91cCA9IG5ldyBMb2dHcm91cCh0aGlzLCAnbG9nR3JvdXAnLCB7XG4gICAgICBsb2dHcm91cE5hbWU6IGAvYXdzL2xhbWJkYS8ke3RoaXMuZnVuY3Rpb24uZnVuY3Rpb25OYW1lfWAsXG4gICAgICByZXRlbnRpb246IFJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSk7XG5cbiAgICBuZXcgTWFuYWdlZFBvbGljeSh0aGlzLCAnY3dNYW5hZ2VkUG9saWN5Jywge1xuICAgICAgcGF0aDogJy9jYW5hcnkvJyxcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogWydjbG91ZHdhdGNoOlB1dE1ldHJpY0RhdGEnXSxcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICB9KSxcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogWydsb2dzOkNyZWF0ZUxvZ1N0cmVhbScsICdsb2dzOlB1dExvZ0V2ZW50cyddLFxuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIHJlc291cmNlczogW3RoaXMubG9nR3JvdXAubG9nR3JvdXBBcm5dLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgICByb2xlczogW2V4ZWN1dGlvblJvbGVdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5RnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2FuYXJpZXMvQ2FuYXJ5RnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0Qyw2QkFBNkI7QUFDN0IsNkNBQTJEO0FBQzNELGlEQUFvRTtBQUNwRSxpREFRNkI7QUFDN0IsdURBUWdDO0FBQ2hDLG1EQUEwRTtBQUMxRSwyQ0FBdUM7QUFHdkMsOERBQTJEO0FBRTNELE1BQWEsY0FBZSxTQUFRLHNCQUFTO0lBVzNDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLGlCQUFpQixHQUFtQixJQUFJLHVCQUFhLENBQ3ZELElBQUksRUFDSixtQkFBbUIsRUFDbkI7WUFDRSxJQUFJLEVBQUUsVUFBVTtZQUNoQixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUU7d0JBQ1AsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QixvQ0FBb0M7cUJBQ3JDO29CQUNELE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQzthQUNIO1NBQ0YsQ0FDRixDQUFDO1FBQ0YsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLHVCQUFhLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ2pFLElBQUksRUFBRSxVQUFVO1lBQ2hCLFVBQVUsRUFBRTtnQkFDVixJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRTt3QkFDUCw0QkFBNEI7d0JBQzVCLCtCQUErQjt3QkFDL0IsNEJBQTRCO3FCQUM3QjtvQkFDRCxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO29CQUNw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SSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUU7WUFDekQsU0FBUyxFQUFFLHdCQUFhLENBQUMsUUFBUTtZQUNqQyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1NBQ3JDLENBQUMsQ0FBQztRQUVILElBQUksdUJBQWEsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDekMsSUFBSSxFQUFFLFVBQVU7WUFDaEIsVUFBVSxFQUFFO2dCQUNWLElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQ3JDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQztnQkFDRixJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLG1CQUFtQixDQUFDO29CQUN0RCxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO29CQUNwQixTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztpQkFDdkMsQ0FBQzthQUNIO1lBQ0QsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFDO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTFLRCx3Q0EwS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQXdzLCBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElTZWN1cml0eUdyb3VwLCBTZWN1cml0eUdyb3VwIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQge1xuICBFZmZlY3QsXG4gIElNYW5hZ2VkUG9saWN5LFxuICBJUm9sZSxcbiAgTWFuYWdlZFBvbGljeSxcbiAgUG9saWN5U3RhdGVtZW50LFxuICBSb2xlLFxuICBTZXJ2aWNlUHJpbmNpcGFsLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7XG4gIEFyY2hpdGVjdHVyZSxcbiAgQ29kZSxcbiAgRnVuY3Rpb24sXG4gIElGdW5jdGlvbixcbiAgSUxheWVyVmVyc2lvbixcbiAgTGF5ZXJWZXJzaW9uLFxuICBUcmFjaW5nLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IElMb2dHcm91cCwgTG9nR3JvdXAsIFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElDYW5hcnlGdW5jdGlvbiB9IGZyb20gJy4vSUNhbmFyeUZ1bmN0aW9uJztcbmltcG9ydCB7IENhbmFyeUZ1bmN0aW9uUHJvcHMgfSBmcm9tICcuL3Byb3BzL0NhbmFyeUZ1bmN0aW9uUHJvcHMnO1xuaW1wb3J0IHsgTWV0cmljc0hlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9NZXRyaWNzSGVscGVyJztcblxuZXhwb3J0IGNsYXNzIENhbmFyeUZ1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSUNhbmFyeUZ1bmN0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBjYW5hcnkgZnVuY3Rpb25cbiAgICovXG4gIGZ1bmN0aW9uOiBJRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsb2cgZ3JvdXAgd2hlcmUgdGhlIGNhbmFydHkgbG9ncyB3aWxsIGJlIHNlbnRcbiAgICovXG4gIGxvZ0dyb3VwOiBJTG9nR3JvdXA7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENhbmFyeUZ1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbGV0IHhyYXlNYW5hZ2VkUG9saWN5OiBJTWFuYWdlZFBvbGljeSA9IG5ldyBNYW5hZ2VkUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgICd4cmF5TWFuYWdlZFBvbGljeScsXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICcvY2FuYXJ5LycsXG4gICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgJ3hyYXk6UHV0VHJhY2VTZWdtZW50cycsXG4gICAgICAgICAgICAgICd4cmF5OlB1dFRlbGVtZXRyeVJlY29yZHMnLFxuICAgICAgICAgICAgICAneHJheTpHZXRTYW1wbGluZ1J1bGVzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6R2V0U2FtcGxpbmdUYXJnZXRzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6R2V0U2FtcGxpbmdTdGF0aXN0aWNTdW1tYXJpZXMnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBsZXQgZWMyTWFuYWdlZFBvbGljeSA9IG5ldyBNYW5hZ2VkUG9saWN5KHRoaXMsICdlYzJNYW5hZ2VkUG9saWN5Jywge1xuICAgICAgcGF0aDogJy9jYW5hcnkvJyxcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgJ2VjMjpDcmVhdGVOZXR3b3JrSW50ZXJmYWNlJyxcbiAgICAgICAgICAgICdlYzI6RGVzY3JpYmVOZXR3b3JrSW50ZXJmYWNlcycsXG4gICAgICAgICAgICAnZWMyOkRlbGV0ZU5ldHdvcmtJbnRlcmZhY2UnLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgbGV0IGV4ZWN1dGlvblJvbGU6IElSb2xlID0gbmV3IFJvbGUodGhpcywgJ2V4ZWN1dGlvblJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKCdsYW1iZGEuYW1hem9uYXdzLmNvbScpLFxuICAgICAgcGF0aDogJy9jYW5hcnkvJyxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW3hyYXlNYW5hZ2VkUG9saWN5LCBlYzJNYW5hZ2VkUG9saWN5XSxcbiAgICB9KTtcblxuICAgIC8qXG4gICAgbGV0IGNvZGU6IEFzc2V0Q29kZSA9IENvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsIFwic3JjL1wiKSwge1xuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgLy9pbWFnZTogbmV3IFJ1bnRpbWUoJ3B5dGhvbjMuMTM6bGF0ZXN0LWFybTY0JywgUnVudGltZUZhbWlseS5QWVRIT04pLmJ1bmRsaW5nSW1hZ2UsXG4gICAgICAgIGltYWdlOiBNZXRyaWNzSGVscGVyLlB5dGhvblJ1bnRpbWUuYnVuZGxpbmdJbWFnZSxcbiAgICAgICAgY29tbWFuZDogW1xuICAgICAgICAgICdiYXNoJywgJy1jJyxcbiAgICAgICAgICAncGlwIGluc3RhbGwgLS1uby1jYWNoZSAtciByZXF1aXJlbWVudHMudHh0IC10IC9hc3NldC1vdXRwdXQgJiYgY3AgLS1hcmNoaXZlIC0tdXBkYXRlIC4gL2Fzc2V0LW91dHB1dCcsXG4gICAgICAgIF0sXG4gICAgICAgIHBsYXRmb3JtOiAnbGludXgvYXJtNjQnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICAqL1xuICAgIGxldCBtb25pdG9yaW5nTGF5ZXI6IElMYXllclZlcnNpb24gPSBuZXcgTGF5ZXJWZXJzaW9uKFxuICAgICAgdGhpcyxcbiAgICAgICdNb25pdG9yaW5nTGF5ZXInLFxuICAgICAge1xuICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChcbiAgICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vbW9uaXRvcmluZy9zcmMvbW9uaXRvcmluZy1sYXllci56aXAnKSxcbiAgICAgICAgKSxcbiAgICAgICAgY29tcGF0aWJsZUFyY2hpdGVjdHVyZXM6IFtBcmNoaXRlY3R1cmUuQVJNXzY0XSxcbiAgICAgICAgY29tcGF0aWJsZVJ1bnRpbWVzOiBbTWV0cmljc0hlbHBlci5QeXRob25SdW50aW1lXSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlmIChwcm9wcy52cGMgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52cGMgIT0gbnVsbCkge1xuICAgICAgbGV0IHNnOiBJU2VjdXJpdHlHcm91cCA9IG5ldyBTZWN1cml0eUdyb3VwKHRoaXMsICdjYW5hcnlTZWN1cml0eUdyb3VwJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ0FsbG93IGNhbmFyeSB0byBjb21tdW5pY2F0ZSB3aXRoIGxvYWQgYmFsYW5jZXInLFxuICAgICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmZ1bmN0aW9uID0gbmV3IEZ1bmN0aW9uKHRoaXMsICdjYW5hcnknLCB7XG4gICAgICAgIHJ1bnRpbWU6IE1ldHJpY3NIZWxwZXIuUHl0aG9uUnVudGltZSxcbiAgICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJ3NyYy9jYW5hcnkuemlwJykpLFxuICAgICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICAgIHJvbGU6IGV4ZWN1dGlvblJvbGUsXG4gICAgICAgIGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgICAgdHJhY2luZzogVHJhY2luZy5BQ1RJVkUsXG4gICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMjQwKSxcbiAgICAgICAgbWVtb3J5U2l6ZTogNTEyLFxuICAgICAgICBsYXllcnM6IFttb25pdG9yaW5nTGF5ZXJdLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIFJFR0lPTjpBd3MuUkVHSU9OLFxuICAgICAgICAgIFBBUlRJVElPTjogQXdzLlBBUlRJVElPTixcbiAgICAgICAgICBUSU1FT1VUOlxuICAgICAgICAgICAgcHJvcHMuaHR0cFRpbWVvdXQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IHByb3BzLmh0dHBUaW1lb3V0LnRvU2Vjb25kcyh7aW50ZWdyYWw6IGZhbHNlfSkudG9TdHJpbmcoKVxuICAgICAgICAgICAgICA6ICcyJyxcbiAgICAgICAgICBJR05PUkVfU1NMX0VSUk9SUzogKFxuICAgICAgICAgICAgcHJvcHMuaWdub3JlVGxzRXJyb3JzICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuaWdub3JlVGxzRXJyb3JzID09IHRydWVcbiAgICAgICAgICApXG4gICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIH0sXG4gICAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgICBzZWN1cml0eUdyb3VwczogW3NnXSxcbiAgICAgICAgdnBjU3VibmV0czogcHJvcHMuc3VibmV0U2VsZWN0aW9uLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24odGhpcywgJ2NhbmFyeScsIHtcbiAgICAgICAgcnVudGltZTogTWV0cmljc0hlbHBlci5QeXRob25SdW50aW1lLFxuICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnc3JjL2NhbmFyeS56aXAnKSksXG4gICAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgICAgcm9sZTogZXhlY3V0aW9uUm9sZSxcbiAgICAgICAgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgICB0cmFjaW5nOiBUcmFjaW5nLkFDVElWRSxcbiAgICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygyNDApLFxuICAgICAgICBtZW1vcnlTaXplOiA1MTIsXG4gICAgICAgIGxheWVyczogW21vbml0b3JpbmdMYXllcl0sXG4gICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgUkVHSU9OOiBBd3MuUkVHSU9OLFxuICAgICAgICAgIFBBUlRJVElPTjogQXdzLlBBUlRJVElPTixcbiAgICAgICAgICBUSU1FT1VUOlxuICAgICAgICAgICAgcHJvcHMuaHR0cFRpbWVvdXQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IHByb3BzLmh0dHBUaW1lb3V0LnRvU2Vjb25kcyh7aW50ZWdyYWw6IGZhbHNlfSkudG9TdHJpbmcoKVxuICAgICAgICAgICAgICA6ICcyJyxcbiAgICAgICAgICBJR05PUkVfU1NMX0VSUk9SUzogKFxuICAgICAgICAgICAgcHJvcHMuaWdub3JlVGxzRXJyb3JzICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuaWdub3JlVGxzRXJyb3JzID09IHRydWVcbiAgICAgICAgICApXG4gICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmZ1bmN0aW9uLmFkZFBlcm1pc3Npb24oJ2ludm9rZVBlcm1pc3Npb24nLCB7XG4gICAgICBhY3Rpb246ICdsYW1iZGE6SW52b2tlRnVuY3Rpb24nLFxuICAgICAgcHJpbmNpcGFsOiBuZXcgU2VydmljZVByaW5jaXBhbCgnZXZlbnRzLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIHNvdXJjZUFybjogYGFybjoke0F3cy5QQVJUSVRJT059OmV2ZW50czoke0F3cy5SRUdJT059OiR7QXdzLkFDQ09VTlRfSUR9OnJ1bGUvKmBcbiAgICB9KTtcblxuICAgIHRoaXMubG9nR3JvdXAgPSBuZXcgTG9nR3JvdXAodGhpcywgJ2xvZ0dyb3VwJywge1xuICAgICAgbG9nR3JvdXBOYW1lOiBgL2F3cy9sYW1iZGEvJHt0aGlzLmZ1bmN0aW9uLmZ1bmN0aW9uTmFtZX1gLFxuICAgICAgcmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLk9ORV9XRUVLLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIH0pO1xuXG4gICAgbmV3IE1hbmFnZWRQb2xpY3kodGhpcywgJ2N3TWFuYWdlZFBvbGljeScsIHtcbiAgICAgIHBhdGg6ICcvY2FuYXJ5LycsXG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFsnY2xvdWR3YXRjaDpQdXRNZXRyaWNEYXRhJ10sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgfSksXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFsnbG9nczpDcmVhdGVMb2dTdHJlYW0nLCAnbG9nczpQdXRMb2dFdmVudHMnXSxcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICByZXNvdXJjZXM6IFt0aGlzLmxvZ0dyb3VwLmxvZ0dyb3VwQXJuXSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgICAgcm9sZXM6IFtleGVjdXRpb25Sb2xlXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CanaryTest = 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_events_1 = require("aws-cdk-lib/aws-events");
8
7
  const aws_events_targets_1 = require("aws-cdk-lib/aws-events-targets");
9
8
  const constructs_1 = require("constructs");
9
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
10
10
  class CanaryTest extends constructs_1.Construct {
11
11
  constructor(scope, id, props) {
12
12
  super(scope, id);
@@ -63,13 +63,13 @@ class CanaryTest extends constructs_1.Construct {
63
63
  postData: props.postData === undefined ? '' : props.postData,
64
64
  headers: props.headers === undefined ? {} : props.headers,
65
65
  operation: props.operation.operationName,
66
- faultBoundaryId: aws_cdk_lib_1.Fn.ref('AWS::Region'),
66
+ faultBoundaryId: aws_cdk_lib_1.Aws.REGION,
67
67
  faultBoundary: 'region',
68
68
  metricNamespace: this.metricNamespace,
69
69
  requestCount: props.regionalRequestCount,
70
70
  },
71
71
  };
72
- this.timedEventRules[aws_cdk_lib_1.Fn.ref('AWS::Region')] = new aws_events_1.Rule(this, 'RegionalTimedEvent', {
72
+ this.timedEventRules[aws_cdk_lib_1.Aws.REGION] = new aws_events_1.Rule(this, 'RegionalTimedEvent', {
73
73
  schedule: aws_events_1.Schedule.expression(props.schedule),
74
74
  enabled: true,
75
75
  targets: [
@@ -81,4 +81,4 @@ class CanaryTest extends constructs_1.Construct {
81
81
  }
82
82
  }
83
83
  exports.CanaryTest = CanaryTest;
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5VGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYW5hcmllcy9DYW5hcnlUZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFDdEMsNkNBQWlDO0FBQ2pDLHVEQUFnRjtBQUNoRix1RUFBZ0U7QUFDaEUsMkNBQXVDO0FBR3ZDLE1BQWEsVUFBVyxTQUFRLHNCQUFTO0lBS3ZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUUxQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsbUJBQW1CO1lBQ3hELENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLCtCQUErQjtpQkFDbEUsZUFBZTtZQUNsQixDQUFDLENBQUMsZ0JBQWdCLENBQUM7UUFFckIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUNuRCxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzlCLElBQUksa0JBQWtCLEdBQ3BCLEtBQUssQ0FBQyxRQUFRLENBQUMsNENBQTRDLENBQ3pELG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQ2hFLENBQUM7WUFFSixJQUFJLE1BQU0sR0FBVyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25FLElBQUksR0FBRyxHQUNMLE1BQU07Z0JBQ04sS0FBSztnQkFDTCxvQkFBb0I7Z0JBQ3BCLEdBQUc7Z0JBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxtQkFBbUI7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UUFBUSxFQUFFLHFCQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDN0MsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxtQ0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7b0JBQ2pDLEtBQUssRUFBRSw0QkFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7aUJBQ3hDLENBQUM7YUFDSDtTQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXJHRCxnQ0FxR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBGbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElSdWxlLCBSdWxlLCBSdWxlVGFyZ2V0SW5wdXQsIFNjaGVkdWxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgeyBMYW1iZGFGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENhbmFyeVRlc3RQcm9wcyB9IGZyb20gJy4vcHJvcHMvQ2FuYXJ5VGVzdFByb3BzJztcblxuZXhwb3J0IGNsYXNzIENhbmFyeVRlc3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICB0aW1lZEV2ZW50UnVsZXM6IHsgW2tleTogc3RyaW5nXTogSVJ1bGUgfTtcblxuICBtZXRyaWNOYW1lc3BhY2U6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2FuYXJ5VGVzdFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnRpbWVkRXZlbnRSdWxlcyA9IHt9O1xuXG4gICAgdGhpcy5tZXRyaWNOYW1lc3BhY2UgPSBwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlsc1xuICAgICAgPyBwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgIC5tZXRyaWNOYW1lc3BhY2VcbiAgICAgIDogJ2NhbmFyeS9tZXRyaWNzJztcblxuICAgIHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmF2YWlsYWJpbGl0eVpvbmVOYW1lcy5mb3JFYWNoKFxuICAgICAgKGF2YWlsYWJpbGl0eVpvbmVOYW1lLCBpbmRleCkgPT4ge1xuICAgICAgICBsZXQgYXZhaWxhYmlsaXR5Wm9uZUlkOiBzdHJpbmcgPVxuICAgICAgICAgIHByb3BzLmF6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKFxuICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZU5hbWUuc3Vic3RyaW5nKGF2YWlsYWJpbGl0eVpvbmVOYW1lLmxlbmd0aCAtIDEpLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgbGV0IHNjaGVtZTogc3RyaW5nID0gcHJvcHMub3BlcmF0aW9uLnNlcnZpY2UuYmFzZVVybC5zcGxpdCgnOicpWzBdO1xuICAgICAgICBsZXQgdXJsOiBzdHJpbmcgPVxuICAgICAgICAgIHNjaGVtZSArXG4gICAgICAgICAgJzovLycgK1xuICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmVOYW1lICtcbiAgICAgICAgICAnLicgK1xuICAgICAgICAgIHByb3BzLmxvYWRCYWxhbmNlci5sb2FkQmFsYW5jZXJEbnNOYW1lICtcbiAgICAgICAgICBwcm9wcy5vcGVyYXRpb24ucGF0aDtcblxuICAgICAgICBsZXQgZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBtZXRob2RzOlxuICAgICAgICAgICAgICBwcm9wcy5odHRwTWV0aG9kcyAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyBwcm9wcy5odHRwTWV0aG9kc1xuICAgICAgICAgICAgICAgIDogcHJvcHMub3BlcmF0aW9uLmh0dHBNZXRob2RzLFxuICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICBwb3N0RGF0YTogcHJvcHMucG9zdERhdGEgPT09IHVuZGVmaW5lZCA/ICcnIDogcHJvcHMucG9zdERhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiBwcm9wcy5oZWFkZXJzID09PSB1bmRlZmluZWQgPyB7fSA6IHByb3BzLmhlYWRlcnMsXG4gICAgICAgICAgICBvcGVyYXRpb246IHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgICAgZmF1bHRCb3VuZGFyeUlkOiBhdmFpbGFiaWxpdHlab25lSWQsXG4gICAgICAgICAgICBmYXVsdEJvdW5kYXJ5OiAnYXonLFxuICAgICAgICAgICAgbWV0cmljTmFtZXNwYWNlOiB0aGlzLm1ldHJpY05hbWVzcGFjZSxcbiAgICAgICAgICAgIHJlcXVlc3RDb3VudDogcHJvcHMucmVxdWVzdENvdW50LFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy50aW1lZEV2ZW50UnVsZXNbYXZhaWxhYmlsaXR5Wm9uZUlkXSA9IG5ldyBSdWxlKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgJ0FaJyArIGluZGV4ICsgcHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgKyAnVGltZWRFdmVudCcsXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2NoZWR1bGU6IFNjaGVkdWxlLmV4cHJlc3Npb24ocHJvcHMuc2NoZWR1bGUpLFxuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIHRhcmdldHM6IFtcbiAgICAgICAgICAgICAgbmV3IExhbWJkYUZ1bmN0aW9uKHByb3BzLmZ1bmN0aW9uLCB7XG4gICAgICAgICAgICAgICAgZXZlbnQ6IFJ1bGVUYXJnZXRJbnB1dC5mcm9tT2JqZWN0KGRhdGEpLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGxldCBzY2hlbWU6IHN0cmluZyA9IHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmJhc2VVcmwuc3BsaXQoJzonKVswXTtcbiAgICBsZXQgdXJsOiBzdHJpbmcgPVxuICAgICAgc2NoZW1lICtcbiAgICAgICc6Ly8nICtcbiAgICAgIHByb3BzLmxvYWRCYWxhbmNlci5sb2FkQmFsYW5jZXJEbnNOYW1lICtcbiAgICAgIHByb3BzLm9wZXJhdGlvbi5wYXRoO1xuXG4gICAgbGV0IGRhdGE6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIG1ldGhvZHM6XG4gICAgICAgICAgcHJvcHMuaHR0cE1ldGhvZHMgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyBwcm9wcy5odHRwTWV0aG9kc1xuICAgICAgICAgICAgOiBwcm9wcy5vcGVyYXRpb24uaHR0cE1ldGhvZHMsXG4gICAgICAgIHVybDogdXJsLFxuICAgICAgICBwb3N0RGF0YTogcHJvcHMucG9zdERhdGEgPT09IHVuZGVmaW5lZCA/ICcnIDogcHJvcHMucG9zdERhdGEsXG4gICAgICAgIGhlYWRlcnM6IHByb3BzLmhlYWRlcnMgPT09IHVuZGVmaW5lZCA/IHt9IDogcHJvcHMuaGVhZGVycyxcbiAgICAgICAgb3BlcmF0aW9uOiBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZSxcbiAgICAgICAgZmF1bHRCb3VuZGFyeUlkOiBGbi5yZWYoJ0FXUzo6UmVnaW9uJyksXG4gICAgICAgIGZhdWx0Qm91bmRhcnk6ICdyZWdpb24nLFxuICAgICAgICBtZXRyaWNOYW1lc3BhY2U6IHRoaXMubWV0cmljTmFtZXNwYWNlLFxuICAgICAgICByZXF1ZXN0Q291bnQ6IHByb3BzLnJlZ2lvbmFsUmVxdWVzdENvdW50LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgdGhpcy50aW1lZEV2ZW50UnVsZXNbRm4ucmVmKCdBV1M6OlJlZ2lvbicpXSA9IG5ldyBSdWxlKFxuICAgICAgdGhpcyxcbiAgICAgICdSZWdpb25hbFRpbWVkRXZlbnQnLFxuICAgICAge1xuICAgICAgICBzY2hlZHVsZTogU2NoZWR1bGUuZXhwcmVzc2lvbihwcm9wcy5zY2hlZHVsZSksXG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIHRhcmdldHM6IFtcbiAgICAgICAgICBuZXcgTGFtYmRhRnVuY3Rpb24ocHJvcHMuZnVuY3Rpb24sIHtcbiAgICAgICAgICAgIGV2ZW50OiBSdWxlVGFyZ2V0SW5wdXQuZnJvbU9iamVjdChkYXRhKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5VGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYW5hcmllcy9DYW5hcnlUZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFDdEMsdURBQWdGO0FBQ2hGLHVFQUFnRTtBQUNoRSwyQ0FBdUM7QUFFdkMsNkNBQWtDO0FBRWxDLE1BQWEsVUFBVyxTQUFRLHNCQUFTO0lBS3ZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUUxQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsbUJBQW1CO1lBQ3hELENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLCtCQUErQjtpQkFDbEUsZUFBZTtZQUNsQixDQUFDLENBQUMsZ0JBQWdCLENBQUM7UUFFckIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUNuRCxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzlCLElBQUksa0JBQWtCLEdBQ3BCLEtBQUssQ0FBQyxRQUFRLENBQUMsNENBQTRDLENBQ3pELG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQ2hFLENBQUM7WUFFSixJQUFJLE1BQU0sR0FBVyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25FLElBQUksR0FBRyxHQUNMLE1BQU07Z0JBQ04sS0FBSztnQkFDTCxvQkFBb0I7Z0JBQ3BCLEdBQUc7Z0JBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxtQkFBbUI7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LEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDN0MsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxtQ0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7b0JBQ2pDLEtBQUssRUFBRSw0QkFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7aUJBQ3hDLENBQUM7YUFDSDtTQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXJHRCxnQ0FxR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBJUnVsZSwgUnVsZSwgUnVsZVRhcmdldElucHV0LCBTY2hlZHVsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDYW5hcnlUZXN0UHJvcHMgfSBmcm9tICcuL3Byb3BzL0NhbmFyeVRlc3RQcm9wcyc7XG5pbXBvcnQgeyBBd3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbmV4cG9ydCBjbGFzcyBDYW5hcnlUZXN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgdGltZWRFdmVudFJ1bGVzOiB7IFtrZXk6IHN0cmluZ106IElSdWxlIH07XG5cbiAgbWV0cmljTmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENhbmFyeVRlc3RQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy50aW1lZEV2ZW50UnVsZXMgPSB7fTtcblxuICAgIHRoaXMubWV0cmljTmFtZXNwYWNlID0gcHJvcHMub3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHNcbiAgICAgID8gcHJvcHMub3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAubWV0cmljTmFtZXNwYWNlXG4gICAgICA6ICdjYW5hcnkvbWV0cmljcyc7XG5cbiAgICBwcm9wcy5vcGVyYXRpb24uc2VydmljZS5hdmFpbGFiaWxpdHlab25lTmFtZXMuZm9yRWFjaChcbiAgICAgIChhdmFpbGFiaWxpdHlab25lTmFtZSwgaW5kZXgpID0+IHtcbiAgICAgICAgbGV0IGF2YWlsYWJpbGl0eVpvbmVJZDogc3RyaW5nID1cbiAgICAgICAgICBwcm9wcy5hek1hcHBlci5hdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihcbiAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmVOYW1lLnN1YnN0cmluZyhhdmFpbGFiaWxpdHlab25lTmFtZS5sZW5ndGggLSAxKSxcbiAgICAgICAgICApO1xuXG4gICAgICAgIGxldCBzY2hlbWU6IHN0cmluZyA9IHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmJhc2VVcmwuc3BsaXQoJzonKVswXTtcbiAgICAgICAgbGV0IHVybDogc3RyaW5nID1cbiAgICAgICAgICBzY2hlbWUgK1xuICAgICAgICAgICc6Ly8nICtcbiAgICAgICAgICBhdmFpbGFiaWxpdHlab25lTmFtZSArXG4gICAgICAgICAgJy4nICtcbiAgICAgICAgICBwcm9wcy5sb2FkQmFsYW5jZXIubG9hZEJhbGFuY2VyRG5zTmFtZSArXG4gICAgICAgICAgcHJvcHMub3BlcmF0aW9uLnBhdGg7XG5cbiAgICAgICAgbGV0IGRhdGE6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgbWV0aG9kczpcbiAgICAgICAgICAgICAgcHJvcHMuaHR0cE1ldGhvZHMgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gcHJvcHMuaHR0cE1ldGhvZHNcbiAgICAgICAgICAgICAgICA6IHByb3BzLm9wZXJhdGlvbi5odHRwTWV0aG9kcyxcbiAgICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgICAgcG9zdERhdGE6IHByb3BzLnBvc3REYXRhID09PSB1bmRlZmluZWQgPyAnJyA6IHByb3BzLnBvc3REYXRhLFxuICAgICAgICAgICAgaGVhZGVyczogcHJvcHMuaGVhZGVycyA9PT0gdW5kZWZpbmVkID8ge30gOiBwcm9wcy5oZWFkZXJzLFxuICAgICAgICAgICAgb3BlcmF0aW9uOiBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZSxcbiAgICAgICAgICAgIGZhdWx0Qm91bmRhcnlJZDogYXZhaWxhYmlsaXR5Wm9uZUlkLFxuICAgICAgICAgICAgZmF1bHRCb3VuZGFyeTogJ2F6JyxcbiAgICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTogdGhpcy5tZXRyaWNOYW1lc3BhY2UsXG4gICAgICAgICAgICByZXF1ZXN0Q291bnQ6IHByb3BzLnJlcXVlc3RDb3VudCxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMudGltZWRFdmVudFJ1bGVzW2F2YWlsYWJpbGl0eVpvbmVJZF0gPSBuZXcgUnVsZShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdBWicgKyBpbmRleCArIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICsgJ1RpbWVkRXZlbnQnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5leHByZXNzaW9uKHByb3BzLnNjaGVkdWxlKSxcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICB0YXJnZXRzOiBbXG4gICAgICAgICAgICAgIG5ldyBMYW1iZGFGdW5jdGlvbihwcm9wcy5mdW5jdGlvbiwge1xuICAgICAgICAgICAgICAgIGV2ZW50OiBSdWxlVGFyZ2V0SW5wdXQuZnJvbU9iamVjdChkYXRhKSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICBsZXQgc2NoZW1lOiBzdHJpbmcgPSBwcm9wcy5vcGVyYXRpb24uc2VydmljZS5iYXNlVXJsLnNwbGl0KCc6JylbMF07XG4gICAgbGV0IHVybDogc3RyaW5nID1cbiAgICAgIHNjaGVtZSArXG4gICAgICAnOi8vJyArXG4gICAgICBwcm9wcy5sb2FkQmFsYW5jZXIubG9hZEJhbGFuY2VyRG5zTmFtZSArXG4gICAgICBwcm9wcy5vcGVyYXRpb24ucGF0aDtcblxuICAgIGxldCBkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBtZXRob2RzOlxuICAgICAgICAgIHByb3BzLmh0dHBNZXRob2RzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gcHJvcHMuaHR0cE1ldGhvZHNcbiAgICAgICAgICAgIDogcHJvcHMub3BlcmF0aW9uLmh0dHBNZXRob2RzLFxuICAgICAgICB1cmw6IHVybCxcbiAgICAgICAgcG9zdERhdGE6IHByb3BzLnBvc3REYXRhID09PSB1bmRlZmluZWQgPyAnJyA6IHByb3BzLnBvc3REYXRhLFxuICAgICAgICBoZWFkZXJzOiBwcm9wcy5oZWFkZXJzID09PSB1bmRlZmluZWQgPyB7fSA6IHByb3BzLmhlYWRlcnMsXG4gICAgICAgIG9wZXJhdGlvbjogcHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsXG4gICAgICAgIGZhdWx0Qm91bmRhcnlJZDpBd3MuUkVHSU9OLFxuICAgICAgICBmYXVsdEJvdW5kYXJ5OiAncmVnaW9uJyxcbiAgICAgICAgbWV0cmljTmFtZXNwYWNlOiB0aGlzLm1ldHJpY05hbWVzcGFjZSxcbiAgICAgICAgcmVxdWVzdENvdW50OiBwcm9wcy5yZWdpb25hbFJlcXVlc3RDb3VudCxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRoaXMudGltZWRFdmVudFJ1bGVzW0F3cy5SRUdJT05dID0gbmV3IFJ1bGUoXG4gICAgICB0aGlzLFxuICAgICAgJ1JlZ2lvbmFsVGltZWRFdmVudCcsXG4gICAgICB7XG4gICAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5leHByZXNzaW9uKHByb3BzLnNjaGVkdWxlKSxcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgdGFyZ2V0czogW1xuICAgICAgICAgIG5ldyBMYW1iZGFGdW5jdGlvbihwcm9wcy5mdW5jdGlvbiwge1xuICAgICAgICAgICAgZXZlbnQ6IFJ1bGVUYXJnZXRJbnB1dC5mcm9tT2JqZWN0KGRhdGEpLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICApO1xuICB9XG59XG4iXX0=
Binary file
@@ -7,7 +7,7 @@ export declare class ContributorInsightsWidget extends ConcreteWidget implements
7
7
  /**
8
8
  * The widget properties
9
9
  */
10
- properties: ContributorInsightWidgetProps;
10
+ private readonly props;
11
11
  /**
12
12
  * Creates the widget
13
13
  * @param props
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ContributorInsightsWidget = 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");
7
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
8
8
  /**
9
9
  * A Contributor Insight dashboard widget
10
10
  */
@@ -14,8 +14,8 @@ class ContributorInsightsWidget extends aws_cloudwatch_1.ConcreteWidget {
14
14
  * @param props
15
15
  */
16
16
  constructor(props) {
17
- super(props.width === undefined ? 6 : props.width, props.height === undefined ? 6 : props.height);
18
- this.properties = props;
17
+ super(props.width || 6, props.height || 6);
18
+ this.props = props;
19
19
  }
20
20
  /**
21
21
  * Converts the widget into an array of JSON objects (not string), this returns
@@ -31,25 +31,21 @@ class ContributorInsightsWidget extends aws_cloudwatch_1.ConcreteWidget {
31
31
  x: this.x,
32
32
  y: this.y,
33
33
  properties: {
34
+ view: 'timeSeries',
35
+ title: this.props.title,
36
+ region: this.props.region || aws_cdk_lib_1.Aws.REGION,
34
37
  insightRule: {
35
- maxContributorCount: this.properties.topContributors,
36
- orderBy: this.properties.orderStatistic,
37
- ruleName: this.properties.insightRule.attrRuleName,
38
+ maxContributorCount: this.props.topContributors,
39
+ orderBy: this.props.orderStatistic,
40
+ ruleName: this.props.insightRule.attrRuleName,
38
41
  },
39
- region: this.properties.region !== undefined
40
- ? this.properties.region
41
- : aws_cdk_lib_1.Fn.ref('AWS::Region'),
42
- legend: {
43
- position: this.properties.legendPosition,
44
- },
45
- view: 'timeSeries',
46
- period: this.properties.period.toSeconds(),
47
- title: this.properties.title,
48
- accountId: this.properties.accountId,
42
+ legend: this.props.legendPosition !== undefined ? { position: this.props.legendPosition } : undefined,
43
+ period: this.props.period?.toSeconds(),
44
+ accountId: this.props.accountId
49
45
  },
50
46
  },
51
47
  ];
52
48
  }
53
49
  }
54
50
  exports.ContributorInsightsWidget = ContributorInsightsWidget;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJpYnV0b3JJbnNpZ2h0c1dpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXNoYm9hcmRzL0NvbnRyaWJ1dG9ySW5zaWdodHNXaWRnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0Qyw2Q0FBaUM7QUFDakMsK0RBQXFFO0FBR3JFOztHQUVHO0FBQ0gsTUFBYSx5QkFDWCxTQUFRLCtCQUFjO0lBT3RCOzs7T0FHRztJQUNILFlBQVksS0FBb0M7UUFDOUMsS0FBSyxDQUNILEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQzNDLEtBQUssQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQzlDLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU07UUFDSixPQUFPO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDVCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ1QsVUFBVSxFQUFFO29CQUNWLFdBQVcsRUFBRTt3QkFDWCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWU7d0JBQ3BELE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWM7d0JBQ3ZDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxZQUFZO3FCQUNuRDtvQkFDRCxNQUFNLEVBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssU0FBUzt3QkFDbEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTt3QkFDeEIsQ0FBQyxDQUFDLGdCQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztvQkFDM0IsTUFBTSxFQUFFO3dCQUNOLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWM7cUJBQ3pDO29CQUNELElBQUksRUFBRSxZQUFZO29CQUNsQixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO29CQUMxQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLO29CQUM1QixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTO2lCQUNyQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXRERCw4REFzREMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBGbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbmNyZXRlV2lkZ2V0LCBJV2lkZ2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQ29udHJpYnV0b3JJbnNpZ2h0V2lkZ2V0UHJvcHMgfSBmcm9tICcuL3Byb3BzL0NvbnRyaWJ1dG9ySW5zaWdodFdpZGdldFByb3BzJztcblxuLyoqXG4gKiBBIENvbnRyaWJ1dG9yIEluc2lnaHQgZGFzaGJvYXJkIHdpZGdldFxuICovXG5leHBvcnQgY2xhc3MgQ29udHJpYnV0b3JJbnNpZ2h0c1dpZGdldFxuICBleHRlbmRzIENvbmNyZXRlV2lkZ2V0XG4gIGltcGxlbWVudHMgSVdpZGdldCB7XG4gIC8qKlxuICAgKiBUaGUgd2lkZ2V0IHByb3BlcnRpZXNcbiAgICovXG4gIHByb3BlcnRpZXM6IENvbnRyaWJ1dG9ySW5zaWdodFdpZGdldFByb3BzO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSB3aWRnZXRcbiAgICogQHBhcmFtIHByb3BzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wczogQ29udHJpYnV0b3JJbnNpZ2h0V2lkZ2V0UHJvcHMpIHtcbiAgICBzdXBlcihcbiAgICAgIHByb3BzLndpZHRoID09PSB1bmRlZmluZWQgPyA2IDogcHJvcHMud2lkdGgsXG4gICAgICBwcm9wcy5oZWlnaHQgPT09IHVuZGVmaW5lZCA/IDYgOiBwcm9wcy5oZWlnaHQsXG4gICAgKTtcbiAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgd2lkZ2V0IGludG8gYW4gYXJyYXkgb2YgSlNPTiBvYmplY3RzIChub3Qgc3RyaW5nKSwgdGhpcyByZXR1cm5zXG4gICAqIGEgc2luZ2xlIGl0ZW0gaW4gdGhlIGFycmF5XG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGRpY3Rpb25hcmllc1xuICAgKi9cbiAgdG9Kc29uKCk6IGFueVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnbWV0cmljJyxcbiAgICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXG4gICAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXG4gICAgICAgIHg6IHRoaXMueCxcbiAgICAgICAgeTogdGhpcy55LFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgaW5zaWdodFJ1bGU6IHtcbiAgICAgICAgICAgIG1heENvbnRyaWJ1dG9yQ291bnQ6IHRoaXMucHJvcGVydGllcy50b3BDb250cmlidXRvcnMsXG4gICAgICAgICAgICBvcmRlckJ5OiB0aGlzLnByb3BlcnRpZXMub3JkZXJTdGF0aXN0aWMsXG4gICAgICAgICAgICBydWxlTmFtZTogdGhpcy5wcm9wZXJ0aWVzLmluc2lnaHRSdWxlLmF0dHJSdWxlTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlZ2lvbjpcbiAgICAgICAgICAgIHRoaXMucHJvcGVydGllcy5yZWdpb24gIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IHRoaXMucHJvcGVydGllcy5yZWdpb25cbiAgICAgICAgICAgICAgOiBGbi5yZWYoJ0FXUzo6UmVnaW9uJyksXG4gICAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogdGhpcy5wcm9wZXJ0aWVzLmxlZ2VuZFBvc2l0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmlldzogJ3RpbWVTZXJpZXMnLFxuICAgICAgICAgIHBlcmlvZDogdGhpcy5wcm9wZXJ0aWVzLnBlcmlvZC50b1NlY29uZHMoKSxcbiAgICAgICAgICB0aXRsZTogdGhpcy5wcm9wZXJ0aWVzLnRpdGxlLFxuICAgICAgICAgIGFjY291bnRJZDogdGhpcy5wcm9wZXJ0aWVzLmFjY291bnRJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJpYnV0b3JJbnNpZ2h0c1dpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXNoYm9hcmRzL0NvbnRyaWJ1dG9ySW5zaWdodHNXaWRnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0QywrREFBcUU7QUFFckUsNkNBQWtDO0FBRWxDOztHQUVHO0FBQ0gsTUFBYSx5QkFDWCxTQUFRLCtCQUFjO0lBT3RCOzs7T0FHRztJQUNILFlBQVksS0FBb0M7UUFDOUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNO1FBQ0osT0FBTztZQUNMO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ1QsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNULFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsWUFBWTtvQkFDbEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztvQkFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFHLGlCQUFHLENBQUMsTUFBTTtvQkFDdEMsV0FBVyxFQUFFO3dCQUNYLG1CQUFtQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZTt3QkFDL0MsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYzt3QkFDbEMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVk7cUJBQzlDO29CQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7b0JBQ3JHLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUU7b0JBQ3RDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7aUJBQ2hDO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBOUNELDhEQThDQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IENvbmNyZXRlV2lkZ2V0LCBJV2lkZ2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQ29udHJpYnV0b3JJbnNpZ2h0V2lkZ2V0UHJvcHMgfSBmcm9tICcuL3Byb3BzL0NvbnRyaWJ1dG9ySW5zaWdodFdpZGdldFByb3BzJztcbmltcG9ydCB7IEF3cyB9IGZyb20gJ2F3cy1jZGstbGliJztcblxuLyoqXG4gKiBBIENvbnRyaWJ1dG9yIEluc2lnaHQgZGFzaGJvYXJkIHdpZGdldFxuICovXG5leHBvcnQgY2xhc3MgQ29udHJpYnV0b3JJbnNpZ2h0c1dpZGdldFxuICBleHRlbmRzIENvbmNyZXRlV2lkZ2V0XG4gIGltcGxlbWVudHMgSVdpZGdldCB7XG4gIC8qKlxuICAgKiBUaGUgd2lkZ2V0IHByb3BlcnRpZXNcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IENvbnRyaWJ1dG9ySW5zaWdodFdpZGdldFByb3BzO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSB3aWRnZXRcbiAgICogQHBhcmFtIHByb3BzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wczogQ29udHJpYnV0b3JJbnNpZ2h0V2lkZ2V0UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcy53aWR0aCB8fCA2LCBwcm9wcy5oZWlnaHQgfHwgNik7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSB3aWRnZXQgaW50byBhbiBhcnJheSBvZiBKU09OIG9iamVjdHMgKG5vdCBzdHJpbmcpLCB0aGlzIHJldHVybnNcbiAgICogYSBzaW5nbGUgaXRlbSBpbiB0aGUgYXJyYXlcbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgZGljdGlvbmFyaWVzXG4gICAqL1xuICB0b0pzb24oKTogYW55W10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdtZXRyaWMnLFxuICAgICAgICB3aWR0aDogdGhpcy53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCxcbiAgICAgICAgeDogdGhpcy54LFxuICAgICAgICB5OiB0aGlzLnksXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICB2aWV3OiAndGltZVNlcmllcycsXG4gICAgICAgICAgdGl0bGU6IHRoaXMucHJvcHMudGl0bGUsXG4gICAgICAgICAgcmVnaW9uOiB0aGlzLnByb3BzLnJlZ2lvbnx8IEF3cy5SRUdJT04sICAgICBcbiAgICAgICAgICBpbnNpZ2h0UnVsZToge1xuICAgICAgICAgICAgbWF4Q29udHJpYnV0b3JDb3VudDogdGhpcy5wcm9wcy50b3BDb250cmlidXRvcnMsXG4gICAgICAgICAgICBvcmRlckJ5OiB0aGlzLnByb3BzLm9yZGVyU3RhdGlzdGljLFxuICAgICAgICAgICAgcnVsZU5hbWU6IHRoaXMucHJvcHMuaW5zaWdodFJ1bGUuYXR0clJ1bGVOYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGVnZW5kOiB0aGlzLnByb3BzLmxlZ2VuZFBvc2l0aW9uICE9PSB1bmRlZmluZWQgPyB7IHBvc2l0aW9uOiB0aGlzLnByb3BzLmxlZ2VuZFBvc2l0aW9uIH0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgcGVyaW9kOiB0aGlzLnByb3BzLnBlcmlvZD8udG9TZWNvbmRzKCksXG4gICAgICAgICAgYWNjb3VudElkOiB0aGlzLnByb3BzLmFjY291bnRJZFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICB9XG59XG4iXX0=