10ec8b83dSEd Tanous #pragma once 20ec8b83dSEd Tanous #include <nlohmann/json.hpp> 30ec8b83dSEd Tanous 40ec8b83dSEd Tanous namespace triggers 50ec8b83dSEd Tanous { 60ec8b83dSEd Tanous // clang-format off 70ec8b83dSEd Tanous 80ec8b83dSEd Tanous enum class MetricTypeEnum{ 90ec8b83dSEd Tanous Invalid, 100ec8b83dSEd Tanous Numeric, 110ec8b83dSEd Tanous Discrete, 120ec8b83dSEd Tanous }; 130ec8b83dSEd Tanous 140ec8b83dSEd Tanous enum class TriggerActionEnum{ 150ec8b83dSEd Tanous Invalid, 160ec8b83dSEd Tanous LogToLogService, 170ec8b83dSEd Tanous RedfishEvent, 180ec8b83dSEd Tanous RedfishMetricReport, 190ec8b83dSEd Tanous }; 200ec8b83dSEd Tanous 210ec8b83dSEd Tanous enum class DiscreteTriggerConditionEnum{ 220ec8b83dSEd Tanous Invalid, 230ec8b83dSEd Tanous Specified, 240ec8b83dSEd Tanous Changed, 250ec8b83dSEd Tanous }; 260ec8b83dSEd Tanous 270ec8b83dSEd Tanous enum class ThresholdActivation{ 280ec8b83dSEd Tanous Invalid, 290ec8b83dSEd Tanous Increasing, 300ec8b83dSEd Tanous Decreasing, 310ec8b83dSEd Tanous Either, 32*f263e09cSEd Tanous Disabled, 330ec8b83dSEd Tanous }; 340ec8b83dSEd Tanous 350ec8b83dSEd Tanous enum class DirectionOfCrossingEnum{ 360ec8b83dSEd Tanous Invalid, 370ec8b83dSEd Tanous Increasing, 380ec8b83dSEd Tanous Decreasing, 390ec8b83dSEd Tanous }; 400ec8b83dSEd Tanous 410ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MetricTypeEnum, { 420ec8b83dSEd Tanous {MetricTypeEnum::Invalid, "Invalid"}, 430ec8b83dSEd Tanous {MetricTypeEnum::Numeric, "Numeric"}, 440ec8b83dSEd Tanous {MetricTypeEnum::Discrete, "Discrete"}, 450ec8b83dSEd Tanous }); 460ec8b83dSEd Tanous 470ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(TriggerActionEnum, { 480ec8b83dSEd Tanous {TriggerActionEnum::Invalid, "Invalid"}, 490ec8b83dSEd Tanous {TriggerActionEnum::LogToLogService, "LogToLogService"}, 500ec8b83dSEd Tanous {TriggerActionEnum::RedfishEvent, "RedfishEvent"}, 510ec8b83dSEd Tanous {TriggerActionEnum::RedfishMetricReport, "RedfishMetricReport"}, 520ec8b83dSEd Tanous }); 530ec8b83dSEd Tanous 540ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(DiscreteTriggerConditionEnum, { 550ec8b83dSEd Tanous {DiscreteTriggerConditionEnum::Invalid, "Invalid"}, 560ec8b83dSEd Tanous {DiscreteTriggerConditionEnum::Specified, "Specified"}, 570ec8b83dSEd Tanous {DiscreteTriggerConditionEnum::Changed, "Changed"}, 580ec8b83dSEd Tanous }); 590ec8b83dSEd Tanous 600ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ThresholdActivation, { 610ec8b83dSEd Tanous {ThresholdActivation::Invalid, "Invalid"}, 620ec8b83dSEd Tanous {ThresholdActivation::Increasing, "Increasing"}, 630ec8b83dSEd Tanous {ThresholdActivation::Decreasing, "Decreasing"}, 640ec8b83dSEd Tanous {ThresholdActivation::Either, "Either"}, 65*f263e09cSEd Tanous {ThresholdActivation::Disabled, "Disabled"}, 660ec8b83dSEd Tanous }); 670ec8b83dSEd Tanous 680ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(DirectionOfCrossingEnum, { 690ec8b83dSEd Tanous {DirectionOfCrossingEnum::Invalid, "Invalid"}, 700ec8b83dSEd Tanous {DirectionOfCrossingEnum::Increasing, "Increasing"}, 710ec8b83dSEd Tanous {DirectionOfCrossingEnum::Decreasing, "Decreasing"}, 720ec8b83dSEd Tanous }); 730ec8b83dSEd Tanous 740ec8b83dSEd Tanous } 750ec8b83dSEd Tanous // clang-format on 76