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