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 outlet 7853c0dc5SEd Tanous { 8853c0dc5SEd Tanous // clang-format off 9853c0dc5SEd Tanous 10f263e09cSEd Tanous enum class PowerState{ 11f263e09cSEd Tanous Invalid, 12f263e09cSEd Tanous On, 13f263e09cSEd Tanous Off, 14f263e09cSEd Tanous PowerCycle, 15f263e09cSEd Tanous }; 16f263e09cSEd Tanous 17853c0dc5SEd Tanous enum class ReceptacleType{ 18853c0dc5SEd Tanous Invalid, 19853c0dc5SEd Tanous NEMA_5_15R, 20853c0dc5SEd Tanous NEMA_5_20R, 21853c0dc5SEd Tanous NEMA_L5_20R, 22853c0dc5SEd Tanous NEMA_L5_30R, 23853c0dc5SEd Tanous NEMA_L6_20R, 24853c0dc5SEd Tanous NEMA_L6_30R, 25853c0dc5SEd Tanous IEC_60320_C13, 26853c0dc5SEd Tanous IEC_60320_C19, 27853c0dc5SEd Tanous CEE_7_Type_E, 28853c0dc5SEd Tanous CEE_7_Type_F, 29853c0dc5SEd Tanous SEV_1011_TYPE_12, 30853c0dc5SEd Tanous SEV_1011_TYPE_23, 31853c0dc5SEd Tanous BS_1363_Type_G, 32853c0dc5SEd Tanous BusConnection, 33853c0dc5SEd Tanous }; 34853c0dc5SEd Tanous 35853c0dc5SEd Tanous enum class VoltageType{ 36853c0dc5SEd Tanous Invalid, 37853c0dc5SEd Tanous AC, 38853c0dc5SEd Tanous DC, 39853c0dc5SEd Tanous }; 40853c0dc5SEd Tanous 41f263e09cSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PowerState, { 42f263e09cSEd Tanous {PowerState::Invalid, "Invalid"}, 43f263e09cSEd Tanous {PowerState::On, "On"}, 44f263e09cSEd Tanous {PowerState::Off, "Off"}, 45f263e09cSEd Tanous {PowerState::PowerCycle, "PowerCycle"}, 46f263e09cSEd Tanous }); 47f263e09cSEd Tanous 48853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ReceptacleType, { 49853c0dc5SEd Tanous {ReceptacleType::Invalid, "Invalid"}, 50853c0dc5SEd Tanous {ReceptacleType::NEMA_5_15R, "NEMA_5_15R"}, 51853c0dc5SEd Tanous {ReceptacleType::NEMA_5_20R, "NEMA_5_20R"}, 52853c0dc5SEd Tanous {ReceptacleType::NEMA_L5_20R, "NEMA_L5_20R"}, 53853c0dc5SEd Tanous {ReceptacleType::NEMA_L5_30R, "NEMA_L5_30R"}, 54853c0dc5SEd Tanous {ReceptacleType::NEMA_L6_20R, "NEMA_L6_20R"}, 55853c0dc5SEd Tanous {ReceptacleType::NEMA_L6_30R, "NEMA_L6_30R"}, 56853c0dc5SEd Tanous {ReceptacleType::IEC_60320_C13, "IEC_60320_C13"}, 57853c0dc5SEd Tanous {ReceptacleType::IEC_60320_C19, "IEC_60320_C19"}, 58853c0dc5SEd Tanous {ReceptacleType::CEE_7_Type_E, "CEE_7_Type_E"}, 59853c0dc5SEd Tanous {ReceptacleType::CEE_7_Type_F, "CEE_7_Type_F"}, 60853c0dc5SEd Tanous {ReceptacleType::SEV_1011_TYPE_12, "SEV_1011_TYPE_12"}, 61853c0dc5SEd Tanous {ReceptacleType::SEV_1011_TYPE_23, "SEV_1011_TYPE_23"}, 62853c0dc5SEd Tanous {ReceptacleType::BS_1363_Type_G, "BS_1363_Type_G"}, 63853c0dc5SEd Tanous {ReceptacleType::BusConnection, "BusConnection"}, 64853c0dc5SEd Tanous }); 65853c0dc5SEd Tanous 66853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(VoltageType, { 67853c0dc5SEd Tanous {VoltageType::Invalid, "Invalid"}, 68853c0dc5SEd Tanous {VoltageType::AC, "AC"}, 69853c0dc5SEd Tanous {VoltageType::DC, "DC"}, 70853c0dc5SEd Tanous }); 71853c0dc5SEd Tanous 72853c0dc5SEd Tanous } 73853c0dc5SEd Tanous // clang-format on 74