1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace outlet_group 7 { 8 // clang-format off 9 10 enum class PowerState{ 11 Invalid, 12 On, 13 Off, 14 PowerCycle, 15 }; 16 17 enum class OutletGroupType{ 18 Invalid, 19 HardwareDefined, 20 UserDefined, 21 }; 22 23 NLOHMANN_JSON_SERIALIZE_ENUM(PowerState, { 24 {PowerState::Invalid, "Invalid"}, 25 {PowerState::On, "On"}, 26 {PowerState::Off, "Off"}, 27 {PowerState::PowerCycle, "PowerCycle"}, 28 }); 29 30 NLOHMANN_JSON_SERIALIZE_ENUM(OutletGroupType, { 31 {OutletGroupType::Invalid, "Invalid"}, 32 {OutletGroupType::HardwareDefined, "HardwareDefined"}, 33 {OutletGroupType::UserDefined, "UserDefined"}, 34 }); 35 36 } 37 // clang-format on 38