1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace connection 7 { 8 // clang-format off 9 10 enum class ConnectionType{ 11 Invalid, 12 Storage, 13 Memory, 14 }; 15 16 enum class AccessCapability{ 17 Invalid, 18 Read, 19 Write, 20 }; 21 22 enum class AccessState{ 23 Invalid, 24 Optimized, 25 NonOptimized, 26 Standby, 27 Unavailable, 28 Transitioning, 29 }; 30 31 NLOHMANN_JSON_SERIALIZE_ENUM(ConnectionType, { 32 {ConnectionType::Invalid, "Invalid"}, 33 {ConnectionType::Storage, "Storage"}, 34 {ConnectionType::Memory, "Memory"}, 35 }); 36 37 NLOHMANN_JSON_SERIALIZE_ENUM(AccessCapability, { 38 {AccessCapability::Invalid, "Invalid"}, 39 {AccessCapability::Read, "Read"}, 40 {AccessCapability::Write, "Write"}, 41 }); 42 43 NLOHMANN_JSON_SERIALIZE_ENUM(AccessState, { 44 {AccessState::Invalid, "Invalid"}, 45 {AccessState::Optimized, "Optimized"}, 46 {AccessState::NonOptimized, "NonOptimized"}, 47 {AccessState::Standby, "Standby"}, 48 {AccessState::Unavailable, "Unavailable"}, 49 {AccessState::Transitioning, "Transitioning"}, 50 }); 51 52 } 53 // clang-format on 54