1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace triggers 7 { 8 // clang-format off 9 10 enum class MetricTypeEnum{ 11 Invalid, 12 Numeric, 13 Discrete, 14 }; 15 16 enum class TriggerActionEnum{ 17 Invalid, 18 LogToLogService, 19 RedfishEvent, 20 RedfishMetricReport, 21 }; 22 23 enum class DiscreteTriggerConditionEnum{ 24 Invalid, 25 Specified, 26 Changed, 27 }; 28 29 enum class ThresholdActivation{ 30 Invalid, 31 Increasing, 32 Decreasing, 33 Either, 34 Disabled, 35 }; 36 37 enum class DirectionOfCrossingEnum{ 38 Invalid, 39 Increasing, 40 Decreasing, 41 }; 42 43 enum class TriggerActionMessage{ 44 Invalid, 45 Telemetry, 46 DriveMediaLife, 47 ConnectionSpeed, 48 }; 49 50 NLOHMANN_JSON_SERIALIZE_ENUM(MetricTypeEnum, { 51 {MetricTypeEnum::Invalid, "Invalid"}, 52 {MetricTypeEnum::Numeric, "Numeric"}, 53 {MetricTypeEnum::Discrete, "Discrete"}, 54 }); 55 56 NLOHMANN_JSON_SERIALIZE_ENUM(TriggerActionEnum, { 57 {TriggerActionEnum::Invalid, "Invalid"}, 58 {TriggerActionEnum::LogToLogService, "LogToLogService"}, 59 {TriggerActionEnum::RedfishEvent, "RedfishEvent"}, 60 {TriggerActionEnum::RedfishMetricReport, "RedfishMetricReport"}, 61 }); 62 63 NLOHMANN_JSON_SERIALIZE_ENUM(DiscreteTriggerConditionEnum, { 64 {DiscreteTriggerConditionEnum::Invalid, "Invalid"}, 65 {DiscreteTriggerConditionEnum::Specified, "Specified"}, 66 {DiscreteTriggerConditionEnum::Changed, "Changed"}, 67 }); 68 69 NLOHMANN_JSON_SERIALIZE_ENUM(ThresholdActivation, { 70 {ThresholdActivation::Invalid, "Invalid"}, 71 {ThresholdActivation::Increasing, "Increasing"}, 72 {ThresholdActivation::Decreasing, "Decreasing"}, 73 {ThresholdActivation::Either, "Either"}, 74 {ThresholdActivation::Disabled, "Disabled"}, 75 }); 76 77 NLOHMANN_JSON_SERIALIZE_ENUM(DirectionOfCrossingEnum, { 78 {DirectionOfCrossingEnum::Invalid, "Invalid"}, 79 {DirectionOfCrossingEnum::Increasing, "Increasing"}, 80 {DirectionOfCrossingEnum::Decreasing, "Decreasing"}, 81 }); 82 83 NLOHMANN_JSON_SERIALIZE_ENUM(TriggerActionMessage, { 84 {TriggerActionMessage::Invalid, "Invalid"}, 85 {TriggerActionMessage::Telemetry, "Telemetry"}, 86 {TriggerActionMessage::DriveMediaLife, "DriveMediaLife"}, 87 {TriggerActionMessage::ConnectionSpeed, "ConnectionSpeed"}, 88 }); 89 90 } 91 // clang-format on 92