xref: /openbmc/bmcweb/features/redfish/include/generated/enums/control.hpp (revision c6d7a45d427f9a6d9e761afcf305761dca60d7cf)
140e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0
240e9b92eSEd 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,
21*c6d7a45dSGunnar Mills     LinearPosition,
22*c6d7a45dSGunnar Mills     LinearVelocity,
23*c6d7a45dSGunnar Mills     LinearAcceleration,
24*c6d7a45dSGunnar Mills     RotationalPosition,
25*c6d7a45dSGunnar Mills     RotationalVelocity,
26*c6d7a45dSGunnar Mills     RotationalAcceleration,
279b46bc0bSMyung Bae     LiquidFlowLPM,
28853c0dc5SEd Tanous };
29853c0dc5SEd Tanous 
30853c0dc5SEd Tanous enum class SetPointType{
31853c0dc5SEd Tanous     Invalid,
32853c0dc5SEd Tanous     Single,
33853c0dc5SEd Tanous     Range,
34*c6d7a45dSGunnar Mills     Monitor,
35853c0dc5SEd Tanous };
36853c0dc5SEd Tanous 
37853c0dc5SEd Tanous enum class ControlMode{
38853c0dc5SEd Tanous     Invalid,
39853c0dc5SEd Tanous     Automatic,
40853c0dc5SEd Tanous     Override,
41853c0dc5SEd Tanous     Manual,
42853c0dc5SEd Tanous     Disabled,
43853c0dc5SEd Tanous };
44853c0dc5SEd Tanous 
45853c0dc5SEd Tanous enum class ImplementationType{
46853c0dc5SEd Tanous     Invalid,
47853c0dc5SEd Tanous     Programmable,
48853c0dc5SEd Tanous     Direct,
49853c0dc5SEd Tanous     Monitored,
50853c0dc5SEd Tanous };
51853c0dc5SEd Tanous 
52853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ControlType, {
53853c0dc5SEd Tanous     {ControlType::Invalid, "Invalid"},
54853c0dc5SEd Tanous     {ControlType::Temperature, "Temperature"},
55853c0dc5SEd Tanous     {ControlType::Power, "Power"},
56853c0dc5SEd Tanous     {ControlType::Frequency, "Frequency"},
57853c0dc5SEd Tanous     {ControlType::FrequencyMHz, "FrequencyMHz"},
58853c0dc5SEd Tanous     {ControlType::Pressure, "Pressure"},
59f263e09cSEd Tanous     {ControlType::PressurekPa, "PressurekPa"},
60f263e09cSEd Tanous     {ControlType::Valve, "Valve"},
612ae81db9SGunnar Mills     {ControlType::Percent, "Percent"},
622ae81db9SGunnar Mills     {ControlType::DutyCycle, "DutyCycle"},
63*c6d7a45dSGunnar Mills     {ControlType::LinearPosition, "LinearPosition"},
64*c6d7a45dSGunnar Mills     {ControlType::LinearVelocity, "LinearVelocity"},
65*c6d7a45dSGunnar Mills     {ControlType::LinearAcceleration, "LinearAcceleration"},
66*c6d7a45dSGunnar Mills     {ControlType::RotationalPosition, "RotationalPosition"},
67*c6d7a45dSGunnar Mills     {ControlType::RotationalVelocity, "RotationalVelocity"},
68*c6d7a45dSGunnar Mills     {ControlType::RotationalAcceleration, "RotationalAcceleration"},
699b46bc0bSMyung Bae     {ControlType::LiquidFlowLPM, "LiquidFlowLPM"},
70853c0dc5SEd Tanous });
71853c0dc5SEd Tanous 
72853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SetPointType, {
73853c0dc5SEd Tanous     {SetPointType::Invalid, "Invalid"},
74853c0dc5SEd Tanous     {SetPointType::Single, "Single"},
75853c0dc5SEd Tanous     {SetPointType::Range, "Range"},
76*c6d7a45dSGunnar Mills     {SetPointType::Monitor, "Monitor"},
77853c0dc5SEd Tanous });
78853c0dc5SEd Tanous 
79853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ControlMode, {
80853c0dc5SEd Tanous     {ControlMode::Invalid, "Invalid"},
81853c0dc5SEd Tanous     {ControlMode::Automatic, "Automatic"},
82853c0dc5SEd Tanous     {ControlMode::Override, "Override"},
83853c0dc5SEd Tanous     {ControlMode::Manual, "Manual"},
84853c0dc5SEd Tanous     {ControlMode::Disabled, "Disabled"},
85853c0dc5SEd Tanous });
86853c0dc5SEd Tanous 
87853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ImplementationType, {
88853c0dc5SEd Tanous     {ImplementationType::Invalid, "Invalid"},
89853c0dc5SEd Tanous     {ImplementationType::Programmable, "Programmable"},
90853c0dc5SEd Tanous     {ImplementationType::Direct, "Direct"},
91853c0dc5SEd Tanous     {ImplementationType::Monitored, "Monitored"},
92853c0dc5SEd Tanous });
93853c0dc5SEd Tanous 
94853c0dc5SEd Tanous }
95853c0dc5SEd Tanous // clang-format on
96