1*853c0dc5SEd Tanous #pragma once 2*853c0dc5SEd Tanous #include <nlohmann/json.hpp> 3*853c0dc5SEd Tanous 4*853c0dc5SEd Tanous namespace power_distribution 5*853c0dc5SEd Tanous { 6*853c0dc5SEd Tanous // clang-format off 7*853c0dc5SEd Tanous 8*853c0dc5SEd Tanous enum class PowerEquipmentType{ 9*853c0dc5SEd Tanous Invalid, 10*853c0dc5SEd Tanous RackPDU, 11*853c0dc5SEd Tanous FloorPDU, 12*853c0dc5SEd Tanous ManualTransferSwitch, 13*853c0dc5SEd Tanous AutomaticTransferSwitch, 14*853c0dc5SEd Tanous Switchgear, 15*853c0dc5SEd Tanous PowerShelf, 16*853c0dc5SEd Tanous Bus, 17*853c0dc5SEd Tanous }; 18*853c0dc5SEd Tanous 19*853c0dc5SEd Tanous enum class TransferSensitivityType{ 20*853c0dc5SEd Tanous Invalid, 21*853c0dc5SEd Tanous High, 22*853c0dc5SEd Tanous Medium, 23*853c0dc5SEd Tanous Low, 24*853c0dc5SEd Tanous }; 25*853c0dc5SEd Tanous 26*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PowerEquipmentType, { 27*853c0dc5SEd Tanous {PowerEquipmentType::Invalid, "Invalid"}, 28*853c0dc5SEd Tanous {PowerEquipmentType::RackPDU, "RackPDU"}, 29*853c0dc5SEd Tanous {PowerEquipmentType::FloorPDU, "FloorPDU"}, 30*853c0dc5SEd Tanous {PowerEquipmentType::ManualTransferSwitch, "ManualTransferSwitch"}, 31*853c0dc5SEd Tanous {PowerEquipmentType::AutomaticTransferSwitch, "AutomaticTransferSwitch"}, 32*853c0dc5SEd Tanous {PowerEquipmentType::Switchgear, "Switchgear"}, 33*853c0dc5SEd Tanous {PowerEquipmentType::PowerShelf, "PowerShelf"}, 34*853c0dc5SEd Tanous {PowerEquipmentType::Bus, "Bus"}, 35*853c0dc5SEd Tanous }); 36*853c0dc5SEd Tanous 37*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(TransferSensitivityType, { 38*853c0dc5SEd Tanous {TransferSensitivityType::Invalid, "Invalid"}, 39*853c0dc5SEd Tanous {TransferSensitivityType::High, "High"}, 40*853c0dc5SEd Tanous {TransferSensitivityType::Medium, "Medium"}, 41*853c0dc5SEd Tanous {TransferSensitivityType::Low, "Low"}, 42*853c0dc5SEd Tanous }); 43*853c0dc5SEd Tanous 44*853c0dc5SEd Tanous } 45*853c0dc5SEd Tanous // clang-format on 46