1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace manager_account 7 { 8 // clang-format off 9 10 enum class AccountTypes{ 11 Invalid, 12 Redfish, 13 SNMP, 14 OEM, 15 HostConsole, 16 ManagerConsole, 17 IPMI, 18 KVMIP, 19 VirtualMedia, 20 WebUI, 21 ControlPanel, 22 }; 23 24 enum class SNMPAuthenticationProtocols{ 25 Invalid, 26 None, 27 HMAC_MD5, 28 HMAC_SHA96, 29 HMAC128_SHA224, 30 HMAC192_SHA256, 31 HMAC256_SHA384, 32 HMAC384_SHA512, 33 }; 34 35 enum class SNMPEncryptionProtocols{ 36 Invalid, 37 None, 38 CBC_DES, 39 CFB128_AES128, 40 CFB128_AES192, 41 CFB128_AES256, 42 }; 43 44 NLOHMANN_JSON_SERIALIZE_ENUM(AccountTypes, { 45 {AccountTypes::Invalid, "Invalid"}, 46 {AccountTypes::Redfish, "Redfish"}, 47 {AccountTypes::SNMP, "SNMP"}, 48 {AccountTypes::OEM, "OEM"}, 49 {AccountTypes::HostConsole, "HostConsole"}, 50 {AccountTypes::ManagerConsole, "ManagerConsole"}, 51 {AccountTypes::IPMI, "IPMI"}, 52 {AccountTypes::KVMIP, "KVMIP"}, 53 {AccountTypes::VirtualMedia, "VirtualMedia"}, 54 {AccountTypes::WebUI, "WebUI"}, 55 {AccountTypes::ControlPanel, "ControlPanel"}, 56 }); 57 58 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, { 59 {SNMPAuthenticationProtocols::Invalid, "Invalid"}, 60 {SNMPAuthenticationProtocols::None, "None"}, 61 {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"}, 62 {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"}, 63 {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"}, 64 {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"}, 65 {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"}, 66 {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"}, 67 }); 68 69 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, { 70 {SNMPEncryptionProtocols::Invalid, "Invalid"}, 71 {SNMPEncryptionProtocols::None, "None"}, 72 {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"}, 73 {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"}, 74 {SNMPEncryptionProtocols::CFB128_AES192, "CFB128_AES192"}, 75 {SNMPEncryptionProtocols::CFB128_AES256, "CFB128_AES256"}, 76 }); 77 78 } 79 // clang-format on 80