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