xref: /openbmc/bmcweb/redfish-core/include/generated/enums/chassis.hpp (revision 5ecf7b4e1bb6988dd3403fa80b723afbe2be30ae)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #pragma once
4 #include <nlohmann/json.hpp>
5 
6 namespace chassis
7 {
8 // clang-format off
9 
10 enum class ChassisType{
11     Invalid,
12     Rack,
13     Blade,
14     Enclosure,
15     StandAlone,
16     RackMount,
17     Card,
18     Cartridge,
19     Row,
20     Pod,
21     Expansion,
22     Sidecar,
23     Zone,
24     Sled,
25     Shelf,
26     Drawer,
27     Module,
28     Component,
29     IPBasedDrive,
30     RackGroup,
31     StorageEnclosure,
32     ImmersionTank,
33     HeatExchanger,
34     PowerStrip,
35     Other,
36 };
37 
38 enum class IndicatorLED{
39     Invalid,
40     Unknown,
41     Lit,
42     Blinking,
43     Off,
44 };
45 
46 enum class IntrusionSensor{
47     Invalid,
48     Normal,
49     HardwareIntrusion,
50     TamperingDetected,
51 };
52 
53 enum class IntrusionSensorReArm{
54     Invalid,
55     Manual,
56     Automatic,
57 };
58 
59 enum class EnvironmentalClass{
60     Invalid,
61     A1,
62     A2,
63     A3,
64     A4,
65 };
66 
67 enum class ThermalDirection{
68     Invalid,
69     FrontToBack,
70     BackToFront,
71     TopExhaust,
72     Sealed,
73 };
74 
75 enum class DoorState{
76     Invalid,
77     Locked,
78     Closed,
79     LockedAndOpen,
80     Open,
81 };
82 
83 enum class RackUnits{
84     Invalid,
85     OpenU,
86     EIA_310,
87 };
88 
89 enum class RackMountWidth{
90     Invalid,
91     OpenU,
92     EIA_310,
93     EIA_310_Telco,
94     HalfWidth,
95 };
96 
97 NLOHMANN_JSON_SERIALIZE_ENUM(ChassisType, {
98     {ChassisType::Invalid, "Invalid"},
99     {ChassisType::Rack, "Rack"},
100     {ChassisType::Blade, "Blade"},
101     {ChassisType::Enclosure, "Enclosure"},
102     {ChassisType::StandAlone, "StandAlone"},
103     {ChassisType::RackMount, "RackMount"},
104     {ChassisType::Card, "Card"},
105     {ChassisType::Cartridge, "Cartridge"},
106     {ChassisType::Row, "Row"},
107     {ChassisType::Pod, "Pod"},
108     {ChassisType::Expansion, "Expansion"},
109     {ChassisType::Sidecar, "Sidecar"},
110     {ChassisType::Zone, "Zone"},
111     {ChassisType::Sled, "Sled"},
112     {ChassisType::Shelf, "Shelf"},
113     {ChassisType::Drawer, "Drawer"},
114     {ChassisType::Module, "Module"},
115     {ChassisType::Component, "Component"},
116     {ChassisType::IPBasedDrive, "IPBasedDrive"},
117     {ChassisType::RackGroup, "RackGroup"},
118     {ChassisType::StorageEnclosure, "StorageEnclosure"},
119     {ChassisType::ImmersionTank, "ImmersionTank"},
120     {ChassisType::HeatExchanger, "HeatExchanger"},
121     {ChassisType::PowerStrip, "PowerStrip"},
122     {ChassisType::Other, "Other"},
123 });
124 
125 NLOHMANN_JSON_SERIALIZE_ENUM(IndicatorLED, {
126     {IndicatorLED::Invalid, "Invalid"},
127     {IndicatorLED::Unknown, "Unknown"},
128     {IndicatorLED::Lit, "Lit"},
129     {IndicatorLED::Blinking, "Blinking"},
130     {IndicatorLED::Off, "Off"},
131 });
132 
133 NLOHMANN_JSON_SERIALIZE_ENUM(IntrusionSensor, {
134     {IntrusionSensor::Invalid, "Invalid"},
135     {IntrusionSensor::Normal, "Normal"},
136     {IntrusionSensor::HardwareIntrusion, "HardwareIntrusion"},
137     {IntrusionSensor::TamperingDetected, "TamperingDetected"},
138 });
139 
140 NLOHMANN_JSON_SERIALIZE_ENUM(IntrusionSensorReArm, {
141     {IntrusionSensorReArm::Invalid, "Invalid"},
142     {IntrusionSensorReArm::Manual, "Manual"},
143     {IntrusionSensorReArm::Automatic, "Automatic"},
144 });
145 
146 NLOHMANN_JSON_SERIALIZE_ENUM(EnvironmentalClass, {
147     {EnvironmentalClass::Invalid, "Invalid"},
148     {EnvironmentalClass::A1, "A1"},
149     {EnvironmentalClass::A2, "A2"},
150     {EnvironmentalClass::A3, "A3"},
151     {EnvironmentalClass::A4, "A4"},
152 });
153 
154 NLOHMANN_JSON_SERIALIZE_ENUM(ThermalDirection, {
155     {ThermalDirection::Invalid, "Invalid"},
156     {ThermalDirection::FrontToBack, "FrontToBack"},
157     {ThermalDirection::BackToFront, "BackToFront"},
158     {ThermalDirection::TopExhaust, "TopExhaust"},
159     {ThermalDirection::Sealed, "Sealed"},
160 });
161 
162 NLOHMANN_JSON_SERIALIZE_ENUM(DoorState, {
163     {DoorState::Invalid, "Invalid"},
164     {DoorState::Locked, "Locked"},
165     {DoorState::Closed, "Closed"},
166     {DoorState::LockedAndOpen, "LockedAndOpen"},
167     {DoorState::Open, "Open"},
168 });
169 
170 NLOHMANN_JSON_SERIALIZE_ENUM(RackUnits, {
171     {RackUnits::Invalid, "Invalid"},
172     {RackUnits::OpenU, "OpenU"},
173     {RackUnits::EIA_310, "EIA_310"},
174 });
175 
176 NLOHMANN_JSON_SERIALIZE_ENUM(RackMountWidth, {
177     {RackMountWidth::Invalid, "Invalid"},
178     {RackMountWidth::OpenU, "OpenU"},
179     {RackMountWidth::EIA_310, "EIA_310"},
180     {RackMountWidth::EIA_310_Telco, "EIA_310_Telco"},
181     {RackMountWidth::HalfWidth, "HalfWidth"},
182 });
183 
184 }
185 // clang-format on
186