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