1description: >
2    Provides threshold functionality for Metrics and Sensors. Any object
3    implementing Threshold interface must implement a Value interface at
4    corresponding path.
5
6properties:
7    - name: Value
8      type: dict[enum[self.Type],dict[enum[self.Bound],double]]
9      description: >
10          This indicates the threshold ranges applicable for the corresponding
11          Value interface. This property is experimental and may change based on
12          implementation. map{thresholdType,map{thresholdBound,thresholdValue}}
13      flags:
14          - readonly
15    - name: Asserted
16      type: set[struct[enum[self.Type],enum[self.Bound]]]
17      description: >
18          This indicates the set of asserted thresholds.
19          set{struct{thresholdType,thresholdBound}}
20      flags:
21          - readonly
22
23signals:
24    - name: AssertionChanged
25      description: >
26          This indicates the assertion change for a threshold.
27      properties:
28          - name: ThresholdType
29            type: enum[self.Type]
30            description: >
31                This indicates the threshold type for the assertion.
32          - name: ThresholdBound
33            type: enum[self.Bound]
34            description: >
35                This indicates the threshold bound for the assertion.
36          - name: Status
37            type: boolean
38            description: >
39                This indicates whether the assertion has been asserted(true) or
40                deasserted(false).
41          - name: Value
42            type: double
43            description: >
44                The value that triggered the assertion change.
45
46enumerations:
47    - name: Type
48      description: >
49          This indicates the type of threshold.
50      values:
51          - name: Warning
52            description: >
53                Indicates the warning level.
54          - name: Critical
55            description: >
56                Indicates the critical level.
57          - name: PerformanceLoss
58            description: >
59                Indicates the performance loss level.
60          - name: SoftShutdown
61            description: >
62                Indicates the soft shutdown level.
63          - name: HardShutdown
64            description: >
65                Indicates the hard shutdown level.
66    - name: Bound
67      description: >
68          This indicates the threshold direction.
69      values:
70          - name: Upper
71            description: >
72                Indicates the upper bound of the threshold.
73          - name: Lower
74            description: >
75                Indicates the lower bound of the threshold.
76