xref: /openbmc/bmcweb/redfish-core/include/generated/enums/power.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 power
7 {
8 // clang-format off
9 
10 enum class PowerLimitException{
11     Invalid,
12     NoAction,
13     HardPowerOff,
14     LogEventOnly,
15     Oem,
16 };
17 
18 enum class PowerSupplyType{
19     Invalid,
20     Unknown,
21     AC,
22     DC,
23     ACorDC,
24 };
25 
26 enum class LineInputVoltageType{
27     Invalid,
28     Unknown,
29     ACLowLine,
30     ACMidLine,
31     ACHighLine,
32     DCNeg48V,
33     DC380V,
34     AC120V,
35     AC240V,
36     AC277V,
37     ACandDCWideRange,
38     ACWideRange,
39     DC240V,
40 };
41 
42 enum class InputType{
43     Invalid,
44     AC,
45     DC,
46 };
47 
48 NLOHMANN_JSON_SERIALIZE_ENUM(PowerLimitException, {
49     {PowerLimitException::Invalid, "Invalid"},
50     {PowerLimitException::NoAction, "NoAction"},
51     {PowerLimitException::HardPowerOff, "HardPowerOff"},
52     {PowerLimitException::LogEventOnly, "LogEventOnly"},
53     {PowerLimitException::Oem, "Oem"},
54 });
55 
56 NLOHMANN_JSON_SERIALIZE_ENUM(PowerSupplyType, {
57     {PowerSupplyType::Invalid, "Invalid"},
58     {PowerSupplyType::Unknown, "Unknown"},
59     {PowerSupplyType::AC, "AC"},
60     {PowerSupplyType::DC, "DC"},
61     {PowerSupplyType::ACorDC, "ACorDC"},
62 });
63 
64 NLOHMANN_JSON_SERIALIZE_ENUM(LineInputVoltageType, {
65     {LineInputVoltageType::Invalid, "Invalid"},
66     {LineInputVoltageType::Unknown, "Unknown"},
67     {LineInputVoltageType::ACLowLine, "ACLowLine"},
68     {LineInputVoltageType::ACMidLine, "ACMidLine"},
69     {LineInputVoltageType::ACHighLine, "ACHighLine"},
70     {LineInputVoltageType::DCNeg48V, "DCNeg48V"},
71     {LineInputVoltageType::DC380V, "DC380V"},
72     {LineInputVoltageType::AC120V, "AC120V"},
73     {LineInputVoltageType::AC240V, "AC240V"},
74     {LineInputVoltageType::AC277V, "AC277V"},
75     {LineInputVoltageType::ACandDCWideRange, "ACandDCWideRange"},
76     {LineInputVoltageType::ACWideRange, "ACWideRange"},
77     {LineInputVoltageType::DC240V, "DC240V"},
78 });
79 
80 NLOHMANN_JSON_SERIALIZE_ENUM(InputType, {
81     {InputType::Invalid, "Invalid"},
82     {InputType::AC, "AC"},
83     {InputType::DC, "DC"},
84 });
85 
86 }
87 // clang-format on
88