xref: /openbmc/bmcweb/features/redfish/include/generated/enums/chassis.hpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0
2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors
30ec8b83dSEd Tanous #pragma once
40ec8b83dSEd Tanous #include <nlohmann/json.hpp>
50ec8b83dSEd Tanous 
60ec8b83dSEd Tanous namespace chassis
70ec8b83dSEd Tanous {
80ec8b83dSEd Tanous // clang-format off
90ec8b83dSEd Tanous 
100ec8b83dSEd Tanous enum class ChassisType{
110ec8b83dSEd Tanous     Invalid,
120ec8b83dSEd Tanous     Rack,
130ec8b83dSEd Tanous     Blade,
140ec8b83dSEd Tanous     Enclosure,
150ec8b83dSEd Tanous     StandAlone,
160ec8b83dSEd Tanous     RackMount,
170ec8b83dSEd Tanous     Card,
180ec8b83dSEd Tanous     Cartridge,
190ec8b83dSEd Tanous     Row,
200ec8b83dSEd Tanous     Pod,
210ec8b83dSEd Tanous     Expansion,
220ec8b83dSEd Tanous     Sidecar,
230ec8b83dSEd Tanous     Zone,
240ec8b83dSEd Tanous     Sled,
250ec8b83dSEd Tanous     Shelf,
260ec8b83dSEd Tanous     Drawer,
270ec8b83dSEd Tanous     Module,
280ec8b83dSEd Tanous     Component,
290ec8b83dSEd Tanous     IPBasedDrive,
300ec8b83dSEd Tanous     RackGroup,
310ec8b83dSEd Tanous     StorageEnclosure,
32f263e09cSEd Tanous     ImmersionTank,
33f263e09cSEd Tanous     HeatExchanger,
342ae81db9SGunnar Mills     PowerStrip,
350ec8b83dSEd Tanous     Other,
360ec8b83dSEd Tanous };
370ec8b83dSEd Tanous 
380ec8b83dSEd Tanous enum class IndicatorLED{
390ec8b83dSEd Tanous     Invalid,
400ec8b83dSEd Tanous     Unknown,
410ec8b83dSEd Tanous     Lit,
420ec8b83dSEd Tanous     Blinking,
430ec8b83dSEd Tanous     Off,
440ec8b83dSEd Tanous };
450ec8b83dSEd Tanous 
460ec8b83dSEd Tanous enum class IntrusionSensor{
470ec8b83dSEd Tanous     Invalid,
480ec8b83dSEd Tanous     Normal,
490ec8b83dSEd Tanous     HardwareIntrusion,
500ec8b83dSEd Tanous     TamperingDetected,
510ec8b83dSEd Tanous };
520ec8b83dSEd Tanous 
530ec8b83dSEd Tanous enum class IntrusionSensorReArm{
540ec8b83dSEd Tanous     Invalid,
550ec8b83dSEd Tanous     Manual,
560ec8b83dSEd Tanous     Automatic,
570ec8b83dSEd Tanous };
580ec8b83dSEd Tanous 
590ec8b83dSEd Tanous enum class EnvironmentalClass{
600ec8b83dSEd Tanous     Invalid,
610ec8b83dSEd Tanous     A1,
620ec8b83dSEd Tanous     A2,
630ec8b83dSEd Tanous     A3,
640ec8b83dSEd Tanous     A4,
650ec8b83dSEd Tanous };
660ec8b83dSEd Tanous 
670ec8b83dSEd Tanous enum class ThermalDirection{
680ec8b83dSEd Tanous     Invalid,
690ec8b83dSEd Tanous     FrontToBack,
700ec8b83dSEd Tanous     BackToFront,
710ec8b83dSEd Tanous     TopExhaust,
720ec8b83dSEd Tanous     Sealed,
730ec8b83dSEd Tanous };
740ec8b83dSEd Tanous 
75e9cc1bc9SEd Tanous enum class DoorState{
76e9cc1bc9SEd Tanous     Invalid,
77e9cc1bc9SEd Tanous     Locked,
78e9cc1bc9SEd Tanous     Closed,
79e9cc1bc9SEd Tanous     LockedAndOpen,
80e9cc1bc9SEd Tanous     Open,
81e9cc1bc9SEd Tanous };
82e9cc1bc9SEd Tanous 
830ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ChassisType, {
840ec8b83dSEd Tanous     {ChassisType::Invalid, "Invalid"},
850ec8b83dSEd Tanous     {ChassisType::Rack, "Rack"},
860ec8b83dSEd Tanous     {ChassisType::Blade, "Blade"},
870ec8b83dSEd Tanous     {ChassisType::Enclosure, "Enclosure"},
880ec8b83dSEd Tanous     {ChassisType::StandAlone, "StandAlone"},
890ec8b83dSEd Tanous     {ChassisType::RackMount, "RackMount"},
900ec8b83dSEd Tanous     {ChassisType::Card, "Card"},
910ec8b83dSEd Tanous     {ChassisType::Cartridge, "Cartridge"},
920ec8b83dSEd Tanous     {ChassisType::Row, "Row"},
930ec8b83dSEd Tanous     {ChassisType::Pod, "Pod"},
940ec8b83dSEd Tanous     {ChassisType::Expansion, "Expansion"},
950ec8b83dSEd Tanous     {ChassisType::Sidecar, "Sidecar"},
960ec8b83dSEd Tanous     {ChassisType::Zone, "Zone"},
970ec8b83dSEd Tanous     {ChassisType::Sled, "Sled"},
980ec8b83dSEd Tanous     {ChassisType::Shelf, "Shelf"},
990ec8b83dSEd Tanous     {ChassisType::Drawer, "Drawer"},
1000ec8b83dSEd Tanous     {ChassisType::Module, "Module"},
1010ec8b83dSEd Tanous     {ChassisType::Component, "Component"},
1020ec8b83dSEd Tanous     {ChassisType::IPBasedDrive, "IPBasedDrive"},
1030ec8b83dSEd Tanous     {ChassisType::RackGroup, "RackGroup"},
1040ec8b83dSEd Tanous     {ChassisType::StorageEnclosure, "StorageEnclosure"},
105f263e09cSEd Tanous     {ChassisType::ImmersionTank, "ImmersionTank"},
106f263e09cSEd Tanous     {ChassisType::HeatExchanger, "HeatExchanger"},
1072ae81db9SGunnar Mills     {ChassisType::PowerStrip, "PowerStrip"},
1080ec8b83dSEd Tanous     {ChassisType::Other, "Other"},
1090ec8b83dSEd Tanous });
1100ec8b83dSEd Tanous 
1110ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(IndicatorLED, {
1120ec8b83dSEd Tanous     {IndicatorLED::Invalid, "Invalid"},
1130ec8b83dSEd Tanous     {IndicatorLED::Unknown, "Unknown"},
1140ec8b83dSEd Tanous     {IndicatorLED::Lit, "Lit"},
1150ec8b83dSEd Tanous     {IndicatorLED::Blinking, "Blinking"},
1160ec8b83dSEd Tanous     {IndicatorLED::Off, "Off"},
1170ec8b83dSEd Tanous });
1180ec8b83dSEd Tanous 
1190ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(IntrusionSensor, {
1200ec8b83dSEd Tanous     {IntrusionSensor::Invalid, "Invalid"},
1210ec8b83dSEd Tanous     {IntrusionSensor::Normal, "Normal"},
1220ec8b83dSEd Tanous     {IntrusionSensor::HardwareIntrusion, "HardwareIntrusion"},
1230ec8b83dSEd Tanous     {IntrusionSensor::TamperingDetected, "TamperingDetected"},
1240ec8b83dSEd Tanous });
1250ec8b83dSEd Tanous 
1260ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(IntrusionSensorReArm, {
1270ec8b83dSEd Tanous     {IntrusionSensorReArm::Invalid, "Invalid"},
1280ec8b83dSEd Tanous     {IntrusionSensorReArm::Manual, "Manual"},
1290ec8b83dSEd Tanous     {IntrusionSensorReArm::Automatic, "Automatic"},
1300ec8b83dSEd Tanous });
1310ec8b83dSEd Tanous 
1320ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EnvironmentalClass, {
1330ec8b83dSEd Tanous     {EnvironmentalClass::Invalid, "Invalid"},
1340ec8b83dSEd Tanous     {EnvironmentalClass::A1, "A1"},
1350ec8b83dSEd Tanous     {EnvironmentalClass::A2, "A2"},
1360ec8b83dSEd Tanous     {EnvironmentalClass::A3, "A3"},
1370ec8b83dSEd Tanous     {EnvironmentalClass::A4, "A4"},
1380ec8b83dSEd Tanous });
1390ec8b83dSEd Tanous 
1400ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ThermalDirection, {
1410ec8b83dSEd Tanous     {ThermalDirection::Invalid, "Invalid"},
1420ec8b83dSEd Tanous     {ThermalDirection::FrontToBack, "FrontToBack"},
1430ec8b83dSEd Tanous     {ThermalDirection::BackToFront, "BackToFront"},
1440ec8b83dSEd Tanous     {ThermalDirection::TopExhaust, "TopExhaust"},
1450ec8b83dSEd Tanous     {ThermalDirection::Sealed, "Sealed"},
1460ec8b83dSEd Tanous });
1470ec8b83dSEd Tanous 
148e9cc1bc9SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(DoorState, {
149e9cc1bc9SEd Tanous     {DoorState::Invalid, "Invalid"},
150e9cc1bc9SEd Tanous     {DoorState::Locked, "Locked"},
151e9cc1bc9SEd Tanous     {DoorState::Closed, "Closed"},
152e9cc1bc9SEd Tanous     {DoorState::LockedAndOpen, "LockedAndOpen"},
153e9cc1bc9SEd Tanous     {DoorState::Open, "Open"},
154e9cc1bc9SEd Tanous });
155e9cc1bc9SEd Tanous 
1560ec8b83dSEd Tanous }
1570ec8b83dSEd Tanous // clang-format on
158