1*853c0dc5SEd Tanous #pragma once 2*853c0dc5SEd Tanous #include <nlohmann/json.hpp> 3*853c0dc5SEd Tanous 4*853c0dc5SEd Tanous namespace resource_block 5*853c0dc5SEd Tanous { 6*853c0dc5SEd Tanous // clang-format off 7*853c0dc5SEd Tanous 8*853c0dc5SEd Tanous enum class ResourceBlockType{ 9*853c0dc5SEd Tanous Invalid, 10*853c0dc5SEd Tanous Compute, 11*853c0dc5SEd Tanous Processor, 12*853c0dc5SEd Tanous Memory, 13*853c0dc5SEd Tanous Network, 14*853c0dc5SEd Tanous Storage, 15*853c0dc5SEd Tanous ComputerSystem, 16*853c0dc5SEd Tanous Expansion, 17*853c0dc5SEd Tanous IndependentResource, 18*853c0dc5SEd Tanous }; 19*853c0dc5SEd Tanous 20*853c0dc5SEd Tanous enum class CompositionState{ 21*853c0dc5SEd Tanous Invalid, 22*853c0dc5SEd Tanous Composing, 23*853c0dc5SEd Tanous ComposedAndAvailable, 24*853c0dc5SEd Tanous Composed, 25*853c0dc5SEd Tanous Unused, 26*853c0dc5SEd Tanous Failed, 27*853c0dc5SEd Tanous Unavailable, 28*853c0dc5SEd Tanous }; 29*853c0dc5SEd Tanous 30*853c0dc5SEd Tanous enum class PoolType{ 31*853c0dc5SEd Tanous Invalid, 32*853c0dc5SEd Tanous Free, 33*853c0dc5SEd Tanous Active, 34*853c0dc5SEd Tanous Unassigned, 35*853c0dc5SEd Tanous }; 36*853c0dc5SEd Tanous 37*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ResourceBlockType, { 38*853c0dc5SEd Tanous {ResourceBlockType::Invalid, "Invalid"}, 39*853c0dc5SEd Tanous {ResourceBlockType::Compute, "Compute"}, 40*853c0dc5SEd Tanous {ResourceBlockType::Processor, "Processor"}, 41*853c0dc5SEd Tanous {ResourceBlockType::Memory, "Memory"}, 42*853c0dc5SEd Tanous {ResourceBlockType::Network, "Network"}, 43*853c0dc5SEd Tanous {ResourceBlockType::Storage, "Storage"}, 44*853c0dc5SEd Tanous {ResourceBlockType::ComputerSystem, "ComputerSystem"}, 45*853c0dc5SEd Tanous {ResourceBlockType::Expansion, "Expansion"}, 46*853c0dc5SEd Tanous {ResourceBlockType::IndependentResource, "IndependentResource"}, 47*853c0dc5SEd Tanous }); 48*853c0dc5SEd Tanous 49*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(CompositionState, { 50*853c0dc5SEd Tanous {CompositionState::Invalid, "Invalid"}, 51*853c0dc5SEd Tanous {CompositionState::Composing, "Composing"}, 52*853c0dc5SEd Tanous {CompositionState::ComposedAndAvailable, "ComposedAndAvailable"}, 53*853c0dc5SEd Tanous {CompositionState::Composed, "Composed"}, 54*853c0dc5SEd Tanous {CompositionState::Unused, "Unused"}, 55*853c0dc5SEd Tanous {CompositionState::Failed, "Failed"}, 56*853c0dc5SEd Tanous {CompositionState::Unavailable, "Unavailable"}, 57*853c0dc5SEd Tanous }); 58*853c0dc5SEd Tanous 59*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PoolType, { 60*853c0dc5SEd Tanous {PoolType::Invalid, "Invalid"}, 61*853c0dc5SEd Tanous {PoolType::Free, "Free"}, 62*853c0dc5SEd Tanous {PoolType::Active, "Active"}, 63*853c0dc5SEd Tanous {PoolType::Unassigned, "Unassigned"}, 64*853c0dc5SEd Tanous }); 65*853c0dc5SEd Tanous 66*853c0dc5SEd Tanous } 67*853c0dc5SEd Tanous // clang-format on 68