10ec8b83dSEd Tanous #pragma once 20ec8b83dSEd Tanous #include <nlohmann/json.hpp> 30ec8b83dSEd Tanous 40ec8b83dSEd Tanous namespace account_service 50ec8b83dSEd Tanous { 60ec8b83dSEd Tanous // clang-format off 70ec8b83dSEd Tanous 8a8d8f9d8SEd Tanous enum class MFABypassType{ 9a8d8f9d8SEd Tanous Invalid, 10a8d8f9d8SEd Tanous All, 11a8d8f9d8SEd Tanous SecurID, 12a8d8f9d8SEd Tanous GoogleAuthenticator, 13a8d8f9d8SEd Tanous MicrosoftAuthenticator, 14a8d8f9d8SEd Tanous ClientCertificate, 15e9cc1bc9SEd Tanous OneTimePasscode, 16*dd5c81e9SGunnar Mills TimeBasedOneTimePassword, 17a8d8f9d8SEd Tanous OEM, 18a8d8f9d8SEd Tanous }; 19a8d8f9d8SEd Tanous 200ec8b83dSEd Tanous enum class LocalAccountAuth{ 210ec8b83dSEd Tanous Invalid, 220ec8b83dSEd Tanous Enabled, 230ec8b83dSEd Tanous Disabled, 240ec8b83dSEd Tanous Fallback, 250ec8b83dSEd Tanous LocalFirst, 260ec8b83dSEd Tanous }; 270ec8b83dSEd Tanous 280ec8b83dSEd Tanous enum class AccountProviderTypes{ 290ec8b83dSEd Tanous Invalid, 300ec8b83dSEd Tanous RedfishService, 310ec8b83dSEd Tanous ActiveDirectoryService, 320ec8b83dSEd Tanous LDAPService, 330ec8b83dSEd Tanous OEM, 340ec8b83dSEd Tanous TACACSplus, 350ec8b83dSEd Tanous OAuth2, 360ec8b83dSEd Tanous }; 370ec8b83dSEd Tanous 380ec8b83dSEd Tanous enum class AuthenticationTypes{ 390ec8b83dSEd Tanous Invalid, 400ec8b83dSEd Tanous Token, 410ec8b83dSEd Tanous KerberosKeytab, 420ec8b83dSEd Tanous UsernameAndPassword, 430ec8b83dSEd Tanous OEM, 440ec8b83dSEd Tanous }; 450ec8b83dSEd Tanous 460ec8b83dSEd Tanous enum class TACACSplusPasswordExchangeProtocol{ 470ec8b83dSEd Tanous Invalid, 480ec8b83dSEd Tanous ASCII, 490ec8b83dSEd Tanous PAP, 500ec8b83dSEd Tanous CHAP, 510ec8b83dSEd Tanous MSCHAPv1, 520ec8b83dSEd Tanous MSCHAPv2, 530ec8b83dSEd Tanous }; 540ec8b83dSEd Tanous 550ec8b83dSEd Tanous enum class OAuth2Mode{ 560ec8b83dSEd Tanous Invalid, 570ec8b83dSEd Tanous Discovery, 580ec8b83dSEd Tanous Offline, 590ec8b83dSEd Tanous }; 600ec8b83dSEd Tanous 61a8d8f9d8SEd Tanous enum class CertificateMappingAttribute{ 62a8d8f9d8SEd Tanous Invalid, 63a8d8f9d8SEd Tanous Whole, 64a8d8f9d8SEd Tanous CommonName, 65a8d8f9d8SEd Tanous UserPrincipalName, 66a8d8f9d8SEd Tanous }; 67a8d8f9d8SEd Tanous 682ae81db9SGunnar Mills enum class BasicAuthState{ 692ae81db9SGunnar Mills Invalid, 702ae81db9SGunnar Mills Enabled, 712ae81db9SGunnar Mills Unadvertised, 722ae81db9SGunnar Mills Disabled, 732ae81db9SGunnar Mills }; 742ae81db9SGunnar Mills 75a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MFABypassType, { 76a8d8f9d8SEd Tanous {MFABypassType::Invalid, "Invalid"}, 77a8d8f9d8SEd Tanous {MFABypassType::All, "All"}, 78a8d8f9d8SEd Tanous {MFABypassType::SecurID, "SecurID"}, 79a8d8f9d8SEd Tanous {MFABypassType::GoogleAuthenticator, "GoogleAuthenticator"}, 80a8d8f9d8SEd Tanous {MFABypassType::MicrosoftAuthenticator, "MicrosoftAuthenticator"}, 81a8d8f9d8SEd Tanous {MFABypassType::ClientCertificate, "ClientCertificate"}, 82e9cc1bc9SEd Tanous {MFABypassType::OneTimePasscode, "OneTimePasscode"}, 83*dd5c81e9SGunnar Mills {MFABypassType::TimeBasedOneTimePassword, "TimeBasedOneTimePassword"}, 84a8d8f9d8SEd Tanous {MFABypassType::OEM, "OEM"}, 85a8d8f9d8SEd Tanous }); 86a8d8f9d8SEd Tanous 870ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LocalAccountAuth, { 880ec8b83dSEd Tanous {LocalAccountAuth::Invalid, "Invalid"}, 890ec8b83dSEd Tanous {LocalAccountAuth::Enabled, "Enabled"}, 900ec8b83dSEd Tanous {LocalAccountAuth::Disabled, "Disabled"}, 910ec8b83dSEd Tanous {LocalAccountAuth::Fallback, "Fallback"}, 920ec8b83dSEd Tanous {LocalAccountAuth::LocalFirst, "LocalFirst"}, 930ec8b83dSEd Tanous }); 940ec8b83dSEd Tanous 950ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AccountProviderTypes, { 960ec8b83dSEd Tanous {AccountProviderTypes::Invalid, "Invalid"}, 970ec8b83dSEd Tanous {AccountProviderTypes::RedfishService, "RedfishService"}, 980ec8b83dSEd Tanous {AccountProviderTypes::ActiveDirectoryService, "ActiveDirectoryService"}, 990ec8b83dSEd Tanous {AccountProviderTypes::LDAPService, "LDAPService"}, 1000ec8b83dSEd Tanous {AccountProviderTypes::OEM, "OEM"}, 1010ec8b83dSEd Tanous {AccountProviderTypes::TACACSplus, "TACACSplus"}, 1020ec8b83dSEd Tanous {AccountProviderTypes::OAuth2, "OAuth2"}, 1030ec8b83dSEd Tanous }); 1040ec8b83dSEd Tanous 1050ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AuthenticationTypes, { 1060ec8b83dSEd Tanous {AuthenticationTypes::Invalid, "Invalid"}, 1070ec8b83dSEd Tanous {AuthenticationTypes::Token, "Token"}, 1080ec8b83dSEd Tanous {AuthenticationTypes::KerberosKeytab, "KerberosKeytab"}, 1090ec8b83dSEd Tanous {AuthenticationTypes::UsernameAndPassword, "UsernameAndPassword"}, 1100ec8b83dSEd Tanous {AuthenticationTypes::OEM, "OEM"}, 1110ec8b83dSEd Tanous }); 1120ec8b83dSEd Tanous 1130ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(TACACSplusPasswordExchangeProtocol, { 1140ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::Invalid, "Invalid"}, 1150ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::ASCII, "ASCII"}, 1160ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::PAP, "PAP"}, 1170ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::CHAP, "CHAP"}, 1180ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::MSCHAPv1, "MSCHAPv1"}, 1190ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::MSCHAPv2, "MSCHAPv2"}, 1200ec8b83dSEd Tanous }); 1210ec8b83dSEd Tanous 1220ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(OAuth2Mode, { 1230ec8b83dSEd Tanous {OAuth2Mode::Invalid, "Invalid"}, 1240ec8b83dSEd Tanous {OAuth2Mode::Discovery, "Discovery"}, 1250ec8b83dSEd Tanous {OAuth2Mode::Offline, "Offline"}, 1260ec8b83dSEd Tanous }); 1270ec8b83dSEd Tanous 128a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(CertificateMappingAttribute, { 129a8d8f9d8SEd Tanous {CertificateMappingAttribute::Invalid, "Invalid"}, 130a8d8f9d8SEd Tanous {CertificateMappingAttribute::Whole, "Whole"}, 131a8d8f9d8SEd Tanous {CertificateMappingAttribute::CommonName, "CommonName"}, 132a8d8f9d8SEd Tanous {CertificateMappingAttribute::UserPrincipalName, "UserPrincipalName"}, 133a8d8f9d8SEd Tanous }); 134a8d8f9d8SEd Tanous 1352ae81db9SGunnar Mills NLOHMANN_JSON_SERIALIZE_ENUM(BasicAuthState, { 1362ae81db9SGunnar Mills {BasicAuthState::Invalid, "Invalid"}, 1372ae81db9SGunnar Mills {BasicAuthState::Enabled, "Enabled"}, 1382ae81db9SGunnar Mills {BasicAuthState::Unadvertised, "Unadvertised"}, 1392ae81db9SGunnar Mills {BasicAuthState::Disabled, "Disabled"}, 1402ae81db9SGunnar Mills }); 1412ae81db9SGunnar Mills 1420ec8b83dSEd Tanous } 1430ec8b83dSEd Tanous // clang-format on 144