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 endpoint 7853c0dc5SEd Tanous { 8853c0dc5SEd Tanous // clang-format off 9853c0dc5SEd Tanous 10853c0dc5SEd Tanous enum class EntityType{ 11853c0dc5SEd Tanous Invalid, 12853c0dc5SEd Tanous StorageInitiator, 13853c0dc5SEd Tanous RootComplex, 14853c0dc5SEd Tanous NetworkController, 15853c0dc5SEd Tanous Drive, 16853c0dc5SEd Tanous StorageExpander, 17853c0dc5SEd Tanous DisplayController, 18853c0dc5SEd Tanous Bridge, 19853c0dc5SEd Tanous Processor, 20853c0dc5SEd Tanous Volume, 21853c0dc5SEd Tanous AccelerationFunction, 22853c0dc5SEd Tanous MediaController, 23853c0dc5SEd Tanous MemoryChunk, 24853c0dc5SEd Tanous Switch, 25853c0dc5SEd Tanous FabricBridge, 26853c0dc5SEd Tanous Manager, 27853c0dc5SEd Tanous StorageSubsystem, 28a8d8f9d8SEd Tanous Memory, 29a8d8f9d8SEd Tanous CXLDevice, 30853c0dc5SEd Tanous }; 31853c0dc5SEd Tanous 32853c0dc5SEd Tanous enum class EntityRole{ 33853c0dc5SEd Tanous Invalid, 34853c0dc5SEd Tanous Initiator, 35853c0dc5SEd Tanous Target, 36853c0dc5SEd Tanous Both, 37853c0dc5SEd Tanous }; 38853c0dc5SEd Tanous 39853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EntityType, { 40853c0dc5SEd Tanous {EntityType::Invalid, "Invalid"}, 41853c0dc5SEd Tanous {EntityType::StorageInitiator, "StorageInitiator"}, 42853c0dc5SEd Tanous {EntityType::RootComplex, "RootComplex"}, 43853c0dc5SEd Tanous {EntityType::NetworkController, "NetworkController"}, 44853c0dc5SEd Tanous {EntityType::Drive, "Drive"}, 45853c0dc5SEd Tanous {EntityType::StorageExpander, "StorageExpander"}, 46853c0dc5SEd Tanous {EntityType::DisplayController, "DisplayController"}, 47853c0dc5SEd Tanous {EntityType::Bridge, "Bridge"}, 48853c0dc5SEd Tanous {EntityType::Processor, "Processor"}, 49853c0dc5SEd Tanous {EntityType::Volume, "Volume"}, 50853c0dc5SEd Tanous {EntityType::AccelerationFunction, "AccelerationFunction"}, 51853c0dc5SEd Tanous {EntityType::MediaController, "MediaController"}, 52853c0dc5SEd Tanous {EntityType::MemoryChunk, "MemoryChunk"}, 53853c0dc5SEd Tanous {EntityType::Switch, "Switch"}, 54853c0dc5SEd Tanous {EntityType::FabricBridge, "FabricBridge"}, 55853c0dc5SEd Tanous {EntityType::Manager, "Manager"}, 56853c0dc5SEd Tanous {EntityType::StorageSubsystem, "StorageSubsystem"}, 57a8d8f9d8SEd Tanous {EntityType::Memory, "Memory"}, 58a8d8f9d8SEd Tanous {EntityType::CXLDevice, "CXLDevice"}, 59853c0dc5SEd Tanous }); 60853c0dc5SEd Tanous 61853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EntityRole, { 62853c0dc5SEd Tanous {EntityRole::Invalid, "Invalid"}, 63853c0dc5SEd Tanous {EntityRole::Initiator, "Initiator"}, 64853c0dc5SEd Tanous {EntityRole::Target, "Target"}, 65853c0dc5SEd Tanous {EntityRole::Both, "Both"}, 66853c0dc5SEd Tanous }); 67853c0dc5SEd Tanous 68853c0dc5SEd Tanous } 69853c0dc5SEd Tanous // clang-format on 70