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