xref: /openbmc/bmcweb/redfish-core/include/generated/enums/chassis.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 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 NLOHMANN_JSON_SERIALIZE_ENUM(ChassisType, {
84     {ChassisType::Invalid, "Invalid"},
85     {ChassisType::Rack, "Rack"},
86     {ChassisType::Blade, "Blade"},
87     {ChassisType::Enclosure, "Enclosure"},
88     {ChassisType::StandAlone, "StandAlone"},
89     {ChassisType::RackMount, "RackMount"},
90     {ChassisType::Card, "Card"},
91     {ChassisType::Cartridge, "Cartridge"},
92     {ChassisType::Row, "Row"},
93     {ChassisType::Pod, "Pod"},
94     {ChassisType::Expansion, "Expansion"},
95     {ChassisType::Sidecar, "Sidecar"},
96     {ChassisType::Zone, "Zone"},
97     {ChassisType::Sled, "Sled"},
98     {ChassisType::Shelf, "Shelf"},
99     {ChassisType::Drawer, "Drawer"},
100     {ChassisType::Module, "Module"},
101     {ChassisType::Component, "Component"},
102     {ChassisType::IPBasedDrive, "IPBasedDrive"},
103     {ChassisType::RackGroup, "RackGroup"},
104     {ChassisType::StorageEnclosure, "StorageEnclosure"},
105     {ChassisType::ImmersionTank, "ImmersionTank"},
106     {ChassisType::HeatExchanger, "HeatExchanger"},
107     {ChassisType::PowerStrip, "PowerStrip"},
108     {ChassisType::Other, "Other"},
109 });
110 
111 NLOHMANN_JSON_SERIALIZE_ENUM(IndicatorLED, {
112     {IndicatorLED::Invalid, "Invalid"},
113     {IndicatorLED::Unknown, "Unknown"},
114     {IndicatorLED::Lit, "Lit"},
115     {IndicatorLED::Blinking, "Blinking"},
116     {IndicatorLED::Off, "Off"},
117 });
118 
119 NLOHMANN_JSON_SERIALIZE_ENUM(IntrusionSensor, {
120     {IntrusionSensor::Invalid, "Invalid"},
121     {IntrusionSensor::Normal, "Normal"},
122     {IntrusionSensor::HardwareIntrusion, "HardwareIntrusion"},
123     {IntrusionSensor::TamperingDetected, "TamperingDetected"},
124 });
125 
126 NLOHMANN_JSON_SERIALIZE_ENUM(IntrusionSensorReArm, {
127     {IntrusionSensorReArm::Invalid, "Invalid"},
128     {IntrusionSensorReArm::Manual, "Manual"},
129     {IntrusionSensorReArm::Automatic, "Automatic"},
130 });
131 
132 NLOHMANN_JSON_SERIALIZE_ENUM(EnvironmentalClass, {
133     {EnvironmentalClass::Invalid, "Invalid"},
134     {EnvironmentalClass::A1, "A1"},
135     {EnvironmentalClass::A2, "A2"},
136     {EnvironmentalClass::A3, "A3"},
137     {EnvironmentalClass::A4, "A4"},
138 });
139 
140 NLOHMANN_JSON_SERIALIZE_ENUM(ThermalDirection, {
141     {ThermalDirection::Invalid, "Invalid"},
142     {ThermalDirection::FrontToBack, "FrontToBack"},
143     {ThermalDirection::BackToFront, "BackToFront"},
144     {ThermalDirection::TopExhaust, "TopExhaust"},
145     {ThermalDirection::Sealed, "Sealed"},
146 });
147 
148 NLOHMANN_JSON_SERIALIZE_ENUM(DoorState, {
149     {DoorState::Invalid, "Invalid"},
150     {DoorState::Locked, "Locked"},
151     {DoorState::Closed, "Closed"},
152     {DoorState::LockedAndOpen, "LockedAndOpen"},
153     {DoorState::Open, "Open"},
154 });
155 
156 }
157 // clang-format on
158