1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3853c0dc5SEd Tanous #pragma once 4853c0dc5SEd Tanous #include <nlohmann/json.hpp> 5853c0dc5SEd Tanous 6853c0dc5SEd Tanous namespace resource_block 7853c0dc5SEd Tanous { 8853c0dc5SEd Tanous // clang-format off 9853c0dc5SEd Tanous 10853c0dc5SEd Tanous enum class ResourceBlockType{ 11853c0dc5SEd Tanous Invalid, 12853c0dc5SEd Tanous Compute, 13853c0dc5SEd Tanous Processor, 14853c0dc5SEd Tanous Memory, 15853c0dc5SEd Tanous Network, 16853c0dc5SEd Tanous Storage, 17853c0dc5SEd Tanous ComputerSystem, 18853c0dc5SEd Tanous Expansion, 19853c0dc5SEd Tanous IndependentResource, 20853c0dc5SEd Tanous }; 21853c0dc5SEd Tanous 22853c0dc5SEd Tanous enum class CompositionState{ 23853c0dc5SEd Tanous Invalid, 24853c0dc5SEd Tanous Composing, 25853c0dc5SEd Tanous ComposedAndAvailable, 26853c0dc5SEd Tanous Composed, 27853c0dc5SEd Tanous Unused, 28853c0dc5SEd Tanous Failed, 29853c0dc5SEd Tanous Unavailable, 30853c0dc5SEd Tanous }; 31853c0dc5SEd Tanous 32853c0dc5SEd Tanous enum class PoolType{ 33853c0dc5SEd Tanous Invalid, 34853c0dc5SEd Tanous Free, 35853c0dc5SEd Tanous Active, 36853c0dc5SEd Tanous Unassigned, 37853c0dc5SEd Tanous }; 38853c0dc5SEd Tanous 39853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ResourceBlockType, { 40853c0dc5SEd Tanous {ResourceBlockType::Invalid, "Invalid"}, 41853c0dc5SEd Tanous {ResourceBlockType::Compute, "Compute"}, 42853c0dc5SEd Tanous {ResourceBlockType::Processor, "Processor"}, 43853c0dc5SEd Tanous {ResourceBlockType::Memory, "Memory"}, 44853c0dc5SEd Tanous {ResourceBlockType::Network, "Network"}, 45853c0dc5SEd Tanous {ResourceBlockType::Storage, "Storage"}, 46853c0dc5SEd Tanous {ResourceBlockType::ComputerSystem, "ComputerSystem"}, 47853c0dc5SEd Tanous {ResourceBlockType::Expansion, "Expansion"}, 48853c0dc5SEd Tanous {ResourceBlockType::IndependentResource, "IndependentResource"}, 49853c0dc5SEd Tanous }); 50853c0dc5SEd Tanous 51853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(CompositionState, { 52853c0dc5SEd Tanous {CompositionState::Invalid, "Invalid"}, 53853c0dc5SEd Tanous {CompositionState::Composing, "Composing"}, 54853c0dc5SEd Tanous {CompositionState::ComposedAndAvailable, "ComposedAndAvailable"}, 55853c0dc5SEd Tanous {CompositionState::Composed, "Composed"}, 56853c0dc5SEd Tanous {CompositionState::Unused, "Unused"}, 57853c0dc5SEd Tanous {CompositionState::Failed, "Failed"}, 58853c0dc5SEd Tanous {CompositionState::Unavailable, "Unavailable"}, 59853c0dc5SEd Tanous }); 60853c0dc5SEd Tanous 61853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PoolType, { 62853c0dc5SEd Tanous {PoolType::Invalid, "Invalid"}, 63853c0dc5SEd Tanous {PoolType::Free, "Free"}, 64853c0dc5SEd Tanous {PoolType::Active, "Active"}, 65853c0dc5SEd Tanous {PoolType::Unassigned, "Unassigned"}, 66853c0dc5SEd Tanous }); 67853c0dc5SEd Tanous 68853c0dc5SEd Tanous } 69853c0dc5SEd Tanous // clang-format on 70