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