1853c0dc5SEd Tanous #pragma once 2853c0dc5SEd Tanous #include <nlohmann/json.hpp> 3853c0dc5SEd Tanous 4853c0dc5SEd Tanous namespace endpoint 5853c0dc5SEd Tanous { 6853c0dc5SEd Tanous // clang-format off 7853c0dc5SEd Tanous 8853c0dc5SEd Tanous enum class EntityType{ 9853c0dc5SEd Tanous Invalid, 10853c0dc5SEd Tanous StorageInitiator, 11853c0dc5SEd Tanous RootComplex, 12853c0dc5SEd Tanous NetworkController, 13853c0dc5SEd Tanous Drive, 14853c0dc5SEd Tanous StorageExpander, 15853c0dc5SEd Tanous DisplayController, 16853c0dc5SEd Tanous Bridge, 17853c0dc5SEd Tanous Processor, 18853c0dc5SEd Tanous Volume, 19853c0dc5SEd Tanous AccelerationFunction, 20853c0dc5SEd Tanous MediaController, 21853c0dc5SEd Tanous MemoryChunk, 22853c0dc5SEd Tanous Switch, 23853c0dc5SEd Tanous FabricBridge, 24853c0dc5SEd Tanous Manager, 25853c0dc5SEd Tanous StorageSubsystem, 26*a8d8f9d8SEd Tanous Memory, 27*a8d8f9d8SEd Tanous CXLDevice, 28853c0dc5SEd Tanous }; 29853c0dc5SEd Tanous 30853c0dc5SEd Tanous enum class EntityRole{ 31853c0dc5SEd Tanous Invalid, 32853c0dc5SEd Tanous Initiator, 33853c0dc5SEd Tanous Target, 34853c0dc5SEd Tanous Both, 35853c0dc5SEd Tanous }; 36853c0dc5SEd Tanous 37853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EntityType, { 38853c0dc5SEd Tanous {EntityType::Invalid, "Invalid"}, 39853c0dc5SEd Tanous {EntityType::StorageInitiator, "StorageInitiator"}, 40853c0dc5SEd Tanous {EntityType::RootComplex, "RootComplex"}, 41853c0dc5SEd Tanous {EntityType::NetworkController, "NetworkController"}, 42853c0dc5SEd Tanous {EntityType::Drive, "Drive"}, 43853c0dc5SEd Tanous {EntityType::StorageExpander, "StorageExpander"}, 44853c0dc5SEd Tanous {EntityType::DisplayController, "DisplayController"}, 45853c0dc5SEd Tanous {EntityType::Bridge, "Bridge"}, 46853c0dc5SEd Tanous {EntityType::Processor, "Processor"}, 47853c0dc5SEd Tanous {EntityType::Volume, "Volume"}, 48853c0dc5SEd Tanous {EntityType::AccelerationFunction, "AccelerationFunction"}, 49853c0dc5SEd Tanous {EntityType::MediaController, "MediaController"}, 50853c0dc5SEd Tanous {EntityType::MemoryChunk, "MemoryChunk"}, 51853c0dc5SEd Tanous {EntityType::Switch, "Switch"}, 52853c0dc5SEd Tanous {EntityType::FabricBridge, "FabricBridge"}, 53853c0dc5SEd Tanous {EntityType::Manager, "Manager"}, 54853c0dc5SEd Tanous {EntityType::StorageSubsystem, "StorageSubsystem"}, 55*a8d8f9d8SEd Tanous {EntityType::Memory, "Memory"}, 56*a8d8f9d8SEd Tanous {EntityType::CXLDevice, "CXLDevice"}, 57853c0dc5SEd Tanous }); 58853c0dc5SEd Tanous 59853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EntityRole, { 60853c0dc5SEd Tanous {EntityRole::Invalid, "Invalid"}, 61853c0dc5SEd Tanous {EntityRole::Initiator, "Initiator"}, 62853c0dc5SEd Tanous {EntityRole::Target, "Target"}, 63853c0dc5SEd Tanous {EntityRole::Both, "Both"}, 64853c0dc5SEd Tanous }); 65853c0dc5SEd Tanous 66853c0dc5SEd Tanous } 67853c0dc5SEd Tanous // clang-format on 68