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 }; 22 23 enum class SNMPAuthenticationProtocols{ 24 Invalid, 25 None, 26 HMAC_MD5, 27 HMAC_SHA96, 28 HMAC128_SHA224, 29 HMAC192_SHA256, 30 HMAC256_SHA384, 31 HMAC384_SHA512, 32 }; 33 34 enum class SNMPEncryptionProtocols{ 35 Invalid, 36 None, 37 CBC_DES, 38 CFB128_AES128, 39 CFB128_AES192, 40 CFB128_AES256, 41 }; 42 43 NLOHMANN_JSON_SERIALIZE_ENUM(AccountTypes, { 44 {AccountTypes::Invalid, "Invalid"}, 45 {AccountTypes::Redfish, "Redfish"}, 46 {AccountTypes::SNMP, "SNMP"}, 47 {AccountTypes::OEM, "OEM"}, 48 {AccountTypes::HostConsole, "HostConsole"}, 49 {AccountTypes::ManagerConsole, "ManagerConsole"}, 50 {AccountTypes::IPMI, "IPMI"}, 51 {AccountTypes::KVMIP, "KVMIP"}, 52 {AccountTypes::VirtualMedia, "VirtualMedia"}, 53 {AccountTypes::WebUI, "WebUI"}, 54 }); 55 56 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, { 57 {SNMPAuthenticationProtocols::Invalid, "Invalid"}, 58 {SNMPAuthenticationProtocols::None, "None"}, 59 {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"}, 60 {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"}, 61 {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"}, 62 {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"}, 63 {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"}, 64 {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"}, 65 }); 66 67 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, { 68 {SNMPEncryptionProtocols::Invalid, "Invalid"}, 69 {SNMPEncryptionProtocols::None, "None"}, 70 {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"}, 71 {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"}, 72 {SNMPEncryptionProtocols::CFB128_AES192, "CFB128_AES192"}, 73 {SNMPEncryptionProtocols::CFB128_AES256, "CFB128_AES256"}, 74 }); 75 76 } 77 // clang-format on 78