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