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_method 7 { 8 // clang-format off 9 10 enum class ConnectionMethodType{ 11 Invalid, 12 Redfish, 13 SNMP, 14 IPMI15, 15 IPMI20, 16 NETCONF, 17 OEM, 18 ModbusSerial, 19 ModbusTCP, 20 }; 21 22 enum class TunnelingProtocolType{ 23 Invalid, 24 SSH, 25 OEM, 26 }; 27 28 NLOHMANN_JSON_SERIALIZE_ENUM(ConnectionMethodType, { 29 {ConnectionMethodType::Invalid, "Invalid"}, 30 {ConnectionMethodType::Redfish, "Redfish"}, 31 {ConnectionMethodType::SNMP, "SNMP"}, 32 {ConnectionMethodType::IPMI15, "IPMI15"}, 33 {ConnectionMethodType::IPMI20, "IPMI20"}, 34 {ConnectionMethodType::NETCONF, "NETCONF"}, 35 {ConnectionMethodType::OEM, "OEM"}, 36 {ConnectionMethodType::ModbusSerial, "ModbusSerial"}, 37 {ConnectionMethodType::ModbusTCP, "ModbusTCP"}, 38 }); 39 40 NLOHMANN_JSON_SERIALIZE_ENUM(TunnelingProtocolType, { 41 {TunnelingProtocolType::Invalid, "Invalid"}, 42 {TunnelingProtocolType::SSH, "SSH"}, 43 {TunnelingProtocolType::OEM, "OEM"}, 44 }); 45 46 } 47 // clang-format on 48