xref: /openbmc/bmcweb/features/redfish/include/generated/enums/control.hpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0
2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3853c0dc5SEd Tanous #pragma once
4853c0dc5SEd Tanous #include <nlohmann/json.hpp>
5853c0dc5SEd Tanous 
6853c0dc5SEd Tanous namespace control
7853c0dc5SEd Tanous {
8853c0dc5SEd Tanous // clang-format off
9853c0dc5SEd Tanous 
10853c0dc5SEd Tanous enum class ControlType{
11853c0dc5SEd Tanous     Invalid,
12853c0dc5SEd Tanous     Temperature,
13853c0dc5SEd Tanous     Power,
14853c0dc5SEd Tanous     Frequency,
15853c0dc5SEd Tanous     FrequencyMHz,
16853c0dc5SEd Tanous     Pressure,
17f263e09cSEd Tanous     PressurekPa,
18f263e09cSEd Tanous     Valve,
192ae81db9SGunnar Mills     Percent,
202ae81db9SGunnar Mills     DutyCycle,
21853c0dc5SEd Tanous };
22853c0dc5SEd Tanous 
23853c0dc5SEd Tanous enum class SetPointType{
24853c0dc5SEd Tanous     Invalid,
25853c0dc5SEd Tanous     Single,
26853c0dc5SEd Tanous     Range,
27853c0dc5SEd Tanous };
28853c0dc5SEd Tanous 
29853c0dc5SEd Tanous enum class ControlMode{
30853c0dc5SEd Tanous     Invalid,
31853c0dc5SEd Tanous     Automatic,
32853c0dc5SEd Tanous     Override,
33853c0dc5SEd Tanous     Manual,
34853c0dc5SEd Tanous     Disabled,
35853c0dc5SEd Tanous };
36853c0dc5SEd Tanous 
37853c0dc5SEd Tanous enum class ImplementationType{
38853c0dc5SEd Tanous     Invalid,
39853c0dc5SEd Tanous     Programmable,
40853c0dc5SEd Tanous     Direct,
41853c0dc5SEd Tanous     Monitored,
42853c0dc5SEd Tanous };
43853c0dc5SEd Tanous 
44853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ControlType, {
45853c0dc5SEd Tanous     {ControlType::Invalid, "Invalid"},
46853c0dc5SEd Tanous     {ControlType::Temperature, "Temperature"},
47853c0dc5SEd Tanous     {ControlType::Power, "Power"},
48853c0dc5SEd Tanous     {ControlType::Frequency, "Frequency"},
49853c0dc5SEd Tanous     {ControlType::FrequencyMHz, "FrequencyMHz"},
50853c0dc5SEd Tanous     {ControlType::Pressure, "Pressure"},
51f263e09cSEd Tanous     {ControlType::PressurekPa, "PressurekPa"},
52f263e09cSEd Tanous     {ControlType::Valve, "Valve"},
532ae81db9SGunnar Mills     {ControlType::Percent, "Percent"},
542ae81db9SGunnar Mills     {ControlType::DutyCycle, "DutyCycle"},
55853c0dc5SEd Tanous });
56853c0dc5SEd Tanous 
57853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SetPointType, {
58853c0dc5SEd Tanous     {SetPointType::Invalid, "Invalid"},
59853c0dc5SEd Tanous     {SetPointType::Single, "Single"},
60853c0dc5SEd Tanous     {SetPointType::Range, "Range"},
61853c0dc5SEd Tanous });
62853c0dc5SEd Tanous 
63853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ControlMode, {
64853c0dc5SEd Tanous     {ControlMode::Invalid, "Invalid"},
65853c0dc5SEd Tanous     {ControlMode::Automatic, "Automatic"},
66853c0dc5SEd Tanous     {ControlMode::Override, "Override"},
67853c0dc5SEd Tanous     {ControlMode::Manual, "Manual"},
68853c0dc5SEd Tanous     {ControlMode::Disabled, "Disabled"},
69853c0dc5SEd Tanous });
70853c0dc5SEd Tanous 
71853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ImplementationType, {
72853c0dc5SEd Tanous     {ImplementationType::Invalid, "Invalid"},
73853c0dc5SEd Tanous     {ImplementationType::Programmable, "Programmable"},
74853c0dc5SEd Tanous     {ImplementationType::Direct, "Direct"},
75853c0dc5SEd Tanous     {ImplementationType::Monitored, "Monitored"},
76853c0dc5SEd Tanous });
77853c0dc5SEd Tanous 
78853c0dc5SEd Tanous }
79853c0dc5SEd Tanous // clang-format on
80