1 #pragma once
2 #include <nlohmann/json.hpp>
3 
4 namespace triggers
5 {
6 // clang-format off
7 
8 enum class MetricTypeEnum{
9     Invalid,
10     Numeric,
11     Discrete,
12 };
13 
14 enum class TriggerActionEnum{
15     Invalid,
16     LogToLogService,
17     RedfishEvent,
18     RedfishMetricReport,
19 };
20 
21 enum class DiscreteTriggerConditionEnum{
22     Invalid,
23     Specified,
24     Changed,
25 };
26 
27 enum class ThresholdActivation{
28     Invalid,
29     Increasing,
30     Decreasing,
31     Either,
32 };
33 
34 enum class DirectionOfCrossingEnum{
35     Invalid,
36     Increasing,
37     Decreasing,
38 };
39 
40 NLOHMANN_JSON_SERIALIZE_ENUM(MetricTypeEnum, {
41     {MetricTypeEnum::Invalid, "Invalid"},
42     {MetricTypeEnum::Numeric, "Numeric"},
43     {MetricTypeEnum::Discrete, "Discrete"},
44 });
45 
46 NLOHMANN_JSON_SERIALIZE_ENUM(TriggerActionEnum, {
47     {TriggerActionEnum::Invalid, "Invalid"},
48     {TriggerActionEnum::LogToLogService, "LogToLogService"},
49     {TriggerActionEnum::RedfishEvent, "RedfishEvent"},
50     {TriggerActionEnum::RedfishMetricReport, "RedfishMetricReport"},
51 });
52 
53 NLOHMANN_JSON_SERIALIZE_ENUM(DiscreteTriggerConditionEnum, {
54     {DiscreteTriggerConditionEnum::Invalid, "Invalid"},
55     {DiscreteTriggerConditionEnum::Specified, "Specified"},
56     {DiscreteTriggerConditionEnum::Changed, "Changed"},
57 });
58 
59 NLOHMANN_JSON_SERIALIZE_ENUM(ThresholdActivation, {
60     {ThresholdActivation::Invalid, "Invalid"},
61     {ThresholdActivation::Increasing, "Increasing"},
62     {ThresholdActivation::Decreasing, "Decreasing"},
63     {ThresholdActivation::Either, "Either"},
64 });
65 
66 NLOHMANN_JSON_SERIALIZE_ENUM(DirectionOfCrossingEnum, {
67     {DirectionOfCrossingEnum::Invalid, "Invalid"},
68     {DirectionOfCrossingEnum::Increasing, "Increasing"},
69     {DirectionOfCrossingEnum::Decreasing, "Decreasing"},
70 });
71 
72 }
73 // clang-format on
74