1*853c0dc5SEd Tanous #pragma once 2*853c0dc5SEd Tanous #include <nlohmann/json.hpp> 3*853c0dc5SEd Tanous 4*853c0dc5SEd Tanous namespace endpoint 5*853c0dc5SEd Tanous { 6*853c0dc5SEd Tanous // clang-format off 7*853c0dc5SEd Tanous 8*853c0dc5SEd Tanous enum class EntityType{ 9*853c0dc5SEd Tanous Invalid, 10*853c0dc5SEd Tanous StorageInitiator, 11*853c0dc5SEd Tanous RootComplex, 12*853c0dc5SEd Tanous NetworkController, 13*853c0dc5SEd Tanous Drive, 14*853c0dc5SEd Tanous StorageExpander, 15*853c0dc5SEd Tanous DisplayController, 16*853c0dc5SEd Tanous Bridge, 17*853c0dc5SEd Tanous Processor, 18*853c0dc5SEd Tanous Volume, 19*853c0dc5SEd Tanous AccelerationFunction, 20*853c0dc5SEd Tanous MediaController, 21*853c0dc5SEd Tanous MemoryChunk, 22*853c0dc5SEd Tanous Switch, 23*853c0dc5SEd Tanous FabricBridge, 24*853c0dc5SEd Tanous Manager, 25*853c0dc5SEd Tanous StorageSubsystem, 26*853c0dc5SEd Tanous }; 27*853c0dc5SEd Tanous 28*853c0dc5SEd Tanous enum class EntityRole{ 29*853c0dc5SEd Tanous Invalid, 30*853c0dc5SEd Tanous Initiator, 31*853c0dc5SEd Tanous Target, 32*853c0dc5SEd Tanous Both, 33*853c0dc5SEd Tanous }; 34*853c0dc5SEd Tanous 35*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EntityType, { 36*853c0dc5SEd Tanous {EntityType::Invalid, "Invalid"}, 37*853c0dc5SEd Tanous {EntityType::StorageInitiator, "StorageInitiator"}, 38*853c0dc5SEd Tanous {EntityType::RootComplex, "RootComplex"}, 39*853c0dc5SEd Tanous {EntityType::NetworkController, "NetworkController"}, 40*853c0dc5SEd Tanous {EntityType::Drive, "Drive"}, 41*853c0dc5SEd Tanous {EntityType::StorageExpander, "StorageExpander"}, 42*853c0dc5SEd Tanous {EntityType::DisplayController, "DisplayController"}, 43*853c0dc5SEd Tanous {EntityType::Bridge, "Bridge"}, 44*853c0dc5SEd Tanous {EntityType::Processor, "Processor"}, 45*853c0dc5SEd Tanous {EntityType::Volume, "Volume"}, 46*853c0dc5SEd Tanous {EntityType::AccelerationFunction, "AccelerationFunction"}, 47*853c0dc5SEd Tanous {EntityType::MediaController, "MediaController"}, 48*853c0dc5SEd Tanous {EntityType::MemoryChunk, "MemoryChunk"}, 49*853c0dc5SEd Tanous {EntityType::Switch, "Switch"}, 50*853c0dc5SEd Tanous {EntityType::FabricBridge, "FabricBridge"}, 51*853c0dc5SEd Tanous {EntityType::Manager, "Manager"}, 52*853c0dc5SEd Tanous {EntityType::StorageSubsystem, "StorageSubsystem"}, 53*853c0dc5SEd Tanous }); 54*853c0dc5SEd Tanous 55*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EntityRole, { 56*853c0dc5SEd Tanous {EntityRole::Invalid, "Invalid"}, 57*853c0dc5SEd Tanous {EntityRole::Initiator, "Initiator"}, 58*853c0dc5SEd Tanous {EntityRole::Target, "Target"}, 59*853c0dc5SEd Tanous {EntityRole::Both, "Both"}, 60*853c0dc5SEd Tanous }); 61*853c0dc5SEd Tanous 62*853c0dc5SEd Tanous } 63*853c0dc5SEd Tanous // clang-format on 64