10ec8b83dSEd Tanous #pragma once 20ec8b83dSEd Tanous #include <nlohmann/json.hpp> 30ec8b83dSEd Tanous 40ec8b83dSEd Tanous namespace manager_account 50ec8b83dSEd Tanous { 60ec8b83dSEd Tanous // clang-format off 70ec8b83dSEd Tanous 80ec8b83dSEd Tanous enum class AccountTypes{ 90ec8b83dSEd Tanous Invalid, 100ec8b83dSEd Tanous Redfish, 110ec8b83dSEd Tanous SNMP, 120ec8b83dSEd Tanous OEM, 130ec8b83dSEd Tanous HostConsole, 140ec8b83dSEd Tanous ManagerConsole, 150ec8b83dSEd Tanous IPMI, 160ec8b83dSEd Tanous KVMIP, 170ec8b83dSEd Tanous VirtualMedia, 180ec8b83dSEd Tanous WebUI, 190ec8b83dSEd Tanous }; 200ec8b83dSEd Tanous 210ec8b83dSEd Tanous enum class SNMPAuthenticationProtocols{ 220ec8b83dSEd Tanous Invalid, 230ec8b83dSEd Tanous None, 240ec8b83dSEd Tanous HMAC_MD5, 250ec8b83dSEd Tanous HMAC_SHA96, 260ec8b83dSEd Tanous HMAC128_SHA224, 270ec8b83dSEd Tanous HMAC192_SHA256, 280ec8b83dSEd Tanous HMAC256_SHA384, 290ec8b83dSEd Tanous HMAC384_SHA512, 300ec8b83dSEd Tanous }; 310ec8b83dSEd Tanous 320ec8b83dSEd Tanous enum class SNMPEncryptionProtocols{ 330ec8b83dSEd Tanous Invalid, 340ec8b83dSEd Tanous None, 350ec8b83dSEd Tanous CBC_DES, 360ec8b83dSEd Tanous CFB128_AES128, 37*2ae81db9SGunnar Mills CFB128_AES192, 38*2ae81db9SGunnar Mills CFB128_AES256, 390ec8b83dSEd Tanous }; 400ec8b83dSEd Tanous 410ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AccountTypes, { 420ec8b83dSEd Tanous {AccountTypes::Invalid, "Invalid"}, 430ec8b83dSEd Tanous {AccountTypes::Redfish, "Redfish"}, 440ec8b83dSEd Tanous {AccountTypes::SNMP, "SNMP"}, 450ec8b83dSEd Tanous {AccountTypes::OEM, "OEM"}, 460ec8b83dSEd Tanous {AccountTypes::HostConsole, "HostConsole"}, 470ec8b83dSEd Tanous {AccountTypes::ManagerConsole, "ManagerConsole"}, 480ec8b83dSEd Tanous {AccountTypes::IPMI, "IPMI"}, 490ec8b83dSEd Tanous {AccountTypes::KVMIP, "KVMIP"}, 500ec8b83dSEd Tanous {AccountTypes::VirtualMedia, "VirtualMedia"}, 510ec8b83dSEd Tanous {AccountTypes::WebUI, "WebUI"}, 520ec8b83dSEd Tanous }); 530ec8b83dSEd Tanous 540ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, { 550ec8b83dSEd Tanous {SNMPAuthenticationProtocols::Invalid, "Invalid"}, 560ec8b83dSEd Tanous {SNMPAuthenticationProtocols::None, "None"}, 570ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"}, 580ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"}, 590ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"}, 600ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"}, 610ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"}, 620ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"}, 630ec8b83dSEd Tanous }); 640ec8b83dSEd Tanous 650ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, { 660ec8b83dSEd Tanous {SNMPEncryptionProtocols::Invalid, "Invalid"}, 670ec8b83dSEd Tanous {SNMPEncryptionProtocols::None, "None"}, 680ec8b83dSEd Tanous {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"}, 690ec8b83dSEd Tanous {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"}, 70*2ae81db9SGunnar Mills {SNMPEncryptionProtocols::CFB128_AES192, "CFB128_AES192"}, 71*2ae81db9SGunnar Mills {SNMPEncryptionProtocols::CFB128_AES256, "CFB128_AES256"}, 720ec8b83dSEd Tanous }); 730ec8b83dSEd Tanous 740ec8b83dSEd Tanous } 750ec8b83dSEd Tanous // clang-format on 76