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