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