xref: /openbmc/bmcweb/features/redfish/include/generated/enums/metric_definition.hpp (revision 0ec8b83db7e8629c721c0e632de702bf1018f58f)
1*0ec8b83dSEd Tanous #pragma once
2*0ec8b83dSEd Tanous #include <nlohmann/json.hpp>
3*0ec8b83dSEd Tanous 
4*0ec8b83dSEd Tanous namespace metric_definition
5*0ec8b83dSEd Tanous {
6*0ec8b83dSEd Tanous // clang-format off
7*0ec8b83dSEd Tanous 
8*0ec8b83dSEd Tanous enum class MetricType{
9*0ec8b83dSEd Tanous     Invalid,
10*0ec8b83dSEd Tanous     Numeric,
11*0ec8b83dSEd Tanous     Discrete,
12*0ec8b83dSEd Tanous     Gauge,
13*0ec8b83dSEd Tanous     Counter,
14*0ec8b83dSEd Tanous     Countdown,
15*0ec8b83dSEd Tanous     String,
16*0ec8b83dSEd Tanous };
17*0ec8b83dSEd Tanous 
18*0ec8b83dSEd Tanous enum class ImplementationType{
19*0ec8b83dSEd Tanous     Invalid,
20*0ec8b83dSEd Tanous     PhysicalSensor,
21*0ec8b83dSEd Tanous     Calculated,
22*0ec8b83dSEd Tanous     Synthesized,
23*0ec8b83dSEd Tanous     DigitalMeter,
24*0ec8b83dSEd Tanous };
25*0ec8b83dSEd Tanous 
26*0ec8b83dSEd Tanous enum class MetricDataType{
27*0ec8b83dSEd Tanous     Invalid,
28*0ec8b83dSEd Tanous     Boolean,
29*0ec8b83dSEd Tanous     DateTime,
30*0ec8b83dSEd Tanous     Decimal,
31*0ec8b83dSEd Tanous     Integer,
32*0ec8b83dSEd Tanous     String,
33*0ec8b83dSEd Tanous     Enumeration,
34*0ec8b83dSEd Tanous };
35*0ec8b83dSEd Tanous 
36*0ec8b83dSEd Tanous enum class Calculable{
37*0ec8b83dSEd Tanous     Invalid,
38*0ec8b83dSEd Tanous     NonCalculatable,
39*0ec8b83dSEd Tanous     Summable,
40*0ec8b83dSEd Tanous     NonSummable,
41*0ec8b83dSEd Tanous };
42*0ec8b83dSEd Tanous 
43*0ec8b83dSEd Tanous enum class CalculationAlgorithmEnum{
44*0ec8b83dSEd Tanous     Invalid,
45*0ec8b83dSEd Tanous     Average,
46*0ec8b83dSEd Tanous     Maximum,
47*0ec8b83dSEd Tanous     Minimum,
48*0ec8b83dSEd Tanous     OEM,
49*0ec8b83dSEd Tanous };
50*0ec8b83dSEd Tanous 
51*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MetricType, {
52*0ec8b83dSEd Tanous     {MetricType::Invalid, "Invalid"},
53*0ec8b83dSEd Tanous     {MetricType::Numeric, "Numeric"},
54*0ec8b83dSEd Tanous     {MetricType::Discrete, "Discrete"},
55*0ec8b83dSEd Tanous     {MetricType::Gauge, "Gauge"},
56*0ec8b83dSEd Tanous     {MetricType::Counter, "Counter"},
57*0ec8b83dSEd Tanous     {MetricType::Countdown, "Countdown"},
58*0ec8b83dSEd Tanous     {MetricType::String, "String"},
59*0ec8b83dSEd Tanous });
60*0ec8b83dSEd Tanous 
61*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ImplementationType, {
62*0ec8b83dSEd Tanous     {ImplementationType::Invalid, "Invalid"},
63*0ec8b83dSEd Tanous     {ImplementationType::PhysicalSensor, "PhysicalSensor"},
64*0ec8b83dSEd Tanous     {ImplementationType::Calculated, "Calculated"},
65*0ec8b83dSEd Tanous     {ImplementationType::Synthesized, "Synthesized"},
66*0ec8b83dSEd Tanous     {ImplementationType::DigitalMeter, "DigitalMeter"},
67*0ec8b83dSEd Tanous });
68*0ec8b83dSEd Tanous 
69*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MetricDataType, {
70*0ec8b83dSEd Tanous     {MetricDataType::Invalid, "Invalid"},
71*0ec8b83dSEd Tanous     {MetricDataType::Boolean, "Boolean"},
72*0ec8b83dSEd Tanous     {MetricDataType::DateTime, "DateTime"},
73*0ec8b83dSEd Tanous     {MetricDataType::Decimal, "Decimal"},
74*0ec8b83dSEd Tanous     {MetricDataType::Integer, "Integer"},
75*0ec8b83dSEd Tanous     {MetricDataType::String, "String"},
76*0ec8b83dSEd Tanous     {MetricDataType::Enumeration, "Enumeration"},
77*0ec8b83dSEd Tanous });
78*0ec8b83dSEd Tanous 
79*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(Calculable, {
80*0ec8b83dSEd Tanous     {Calculable::Invalid, "Invalid"},
81*0ec8b83dSEd Tanous     {Calculable::NonCalculatable, "NonCalculatable"},
82*0ec8b83dSEd Tanous     {Calculable::Summable, "Summable"},
83*0ec8b83dSEd Tanous     {Calculable::NonSummable, "NonSummable"},
84*0ec8b83dSEd Tanous });
85*0ec8b83dSEd Tanous 
86*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(CalculationAlgorithmEnum, {
87*0ec8b83dSEd Tanous     {CalculationAlgorithmEnum::Invalid, "Invalid"},
88*0ec8b83dSEd Tanous     {CalculationAlgorithmEnum::Average, "Average"},
89*0ec8b83dSEd Tanous     {CalculationAlgorithmEnum::Maximum, "Maximum"},
90*0ec8b83dSEd Tanous     {CalculationAlgorithmEnum::Minimum, "Minimum"},
91*0ec8b83dSEd Tanous     {CalculationAlgorithmEnum::OEM, "OEM"},
92*0ec8b83dSEd Tanous });
93*0ec8b83dSEd Tanous 
94*0ec8b83dSEd Tanous }
95*0ec8b83dSEd Tanous // clang-format on
96