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