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