140e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 240e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 30ec8b83dSEd Tanous #pragma once 40ec8b83dSEd Tanous #include <nlohmann/json.hpp> 50ec8b83dSEd Tanous 60ec8b83dSEd Tanous namespace redundancy 70ec8b83dSEd Tanous { 80ec8b83dSEd Tanous // clang-format off 90ec8b83dSEd Tanous 10*d1a3caa4SChandramohan Harkude enum class RedundancyMode{ 11*d1a3caa4SChandramohan Harkude Invalid, 12*d1a3caa4SChandramohan Harkude Failover, 13*d1a3caa4SChandramohan Harkude Nm, 14*d1a3caa4SChandramohan Harkude Sharing, 15*d1a3caa4SChandramohan Harkude Sparing, 16*d1a3caa4SChandramohan Harkude NotRedundant, 17*d1a3caa4SChandramohan Harkude }; 18*d1a3caa4SChandramohan Harkude 190ec8b83dSEd Tanous enum class RedundancyType{ 200ec8b83dSEd Tanous Invalid, 210ec8b83dSEd Tanous Failover, 220ec8b83dSEd Tanous NPlusM, 230ec8b83dSEd Tanous Sharing, 240ec8b83dSEd Tanous Sparing, 250ec8b83dSEd Tanous NotRedundant, 260ec8b83dSEd Tanous }; 270ec8b83dSEd Tanous 28*d1a3caa4SChandramohan Harkude NLOHMANN_JSON_SERIALIZE_ENUM(RedundancyMode, { 29*d1a3caa4SChandramohan Harkude {RedundancyMode::Invalid, "Invalid"}, 30*d1a3caa4SChandramohan Harkude {RedundancyMode::Failover, "Failover"}, 31*d1a3caa4SChandramohan Harkude {RedundancyMode::Nm, "N+m"}, 32*d1a3caa4SChandramohan Harkude {RedundancyMode::Sharing, "Sharing"}, 33*d1a3caa4SChandramohan Harkude {RedundancyMode::Sparing, "Sparing"}, 34*d1a3caa4SChandramohan Harkude {RedundancyMode::NotRedundant, "NotRedundant"}, 35*d1a3caa4SChandramohan Harkude }); 36*d1a3caa4SChandramohan Harkude 370ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(RedundancyType, { 380ec8b83dSEd Tanous {RedundancyType::Invalid, "Invalid"}, 390ec8b83dSEd Tanous {RedundancyType::Failover, "Failover"}, 400ec8b83dSEd Tanous {RedundancyType::NPlusM, "NPlusM"}, 410ec8b83dSEd Tanous {RedundancyType::Sharing, "Sharing"}, 420ec8b83dSEd Tanous {RedundancyType::Sparing, "Sparing"}, 430ec8b83dSEd Tanous {RedundancyType::NotRedundant, "NotRedundant"}, 440ec8b83dSEd Tanous }); 450ec8b83dSEd Tanous 460ec8b83dSEd Tanous } 470ec8b83dSEd Tanous // clang-format on 48