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[struct[enum[self.Type],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.
13          map{struct{thresholdType,thresholdBound},thresholdValue}
14      flags:
15          - readonly
16    - name: Asserted
17      type: set[struct[enum[self.Type],enum[self.Bound]]]
18      description: >
19          This indicates the set of asserted thresholds.
20          set{struct{thresholdType,thresholdBound}}
21      flags:
22          - readonly
23
24signals:
25    - name: AssertionChanged
26      description: >
27          This indicates the assertion change for a threshold.
28      properties:
29          - name: ThresholdType
30            type: enum[self.Type]
31            description: >
32                This indicates the threshold type for the assertion.
33          - name: ThresholdBound
34            type: enum[self.Bound]
35            description: >
36                This indicates the threshold bound for the assertion.
37          - name: Status
38            type: boolean
39            description: >
40                This indicates whether the assertion has been asserted(true) or
41                deasserted(false).
42          - name: Value
43            type: double
44            description: >
45                The value that triggered the assertion change.
46
47enumerations:
48    - name: Type
49      description: >
50          This indicates the type of threshold.
51      values:
52          - name: Warning
53            description: >
54                Indicates the warning level.
55          - name: Critical
56            description: >
57                Indicates the critical level.
58          - name: PerformanceLoss
59            description: >
60                Indicates the performance loss level.
61          - name: SoftShutdown
62            description: >
63                Indicates the soft shutdown level.
64          - name: HardShutdown
65            description: >
66                Indicates the hard shutdown level.
67    - name: Bound
68      description: >
69          This indicates the threshold direction.
70      values:
71          - name: Upper
72            description: >
73                Indicates the upper bound of the threshold.
74          - name: Lower
75            description: >
76                Indicates the lower bound of the threshold.
77