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 8*a8d8f9d8SEd Tanous enum class MFABypassType{ 9*a8d8f9d8SEd Tanous Invalid, 10*a8d8f9d8SEd Tanous All, 11*a8d8f9d8SEd Tanous SecurID, 12*a8d8f9d8SEd Tanous GoogleAuthenticator, 13*a8d8f9d8SEd Tanous MicrosoftAuthenticator, 14*a8d8f9d8SEd Tanous ClientCertificate, 15*a8d8f9d8SEd Tanous OEM, 16*a8d8f9d8SEd Tanous }; 17*a8d8f9d8SEd Tanous 180ec8b83dSEd Tanous enum class LocalAccountAuth{ 190ec8b83dSEd Tanous Invalid, 200ec8b83dSEd Tanous Enabled, 210ec8b83dSEd Tanous Disabled, 220ec8b83dSEd Tanous Fallback, 230ec8b83dSEd Tanous LocalFirst, 240ec8b83dSEd Tanous }; 250ec8b83dSEd Tanous 260ec8b83dSEd Tanous enum class AccountProviderTypes{ 270ec8b83dSEd Tanous Invalid, 280ec8b83dSEd Tanous RedfishService, 290ec8b83dSEd Tanous ActiveDirectoryService, 300ec8b83dSEd Tanous LDAPService, 310ec8b83dSEd Tanous OEM, 320ec8b83dSEd Tanous TACACSplus, 330ec8b83dSEd Tanous OAuth2, 340ec8b83dSEd Tanous }; 350ec8b83dSEd Tanous 360ec8b83dSEd Tanous enum class AuthenticationTypes{ 370ec8b83dSEd Tanous Invalid, 380ec8b83dSEd Tanous Token, 390ec8b83dSEd Tanous KerberosKeytab, 400ec8b83dSEd Tanous UsernameAndPassword, 410ec8b83dSEd Tanous OEM, 420ec8b83dSEd Tanous }; 430ec8b83dSEd Tanous 440ec8b83dSEd Tanous enum class TACACSplusPasswordExchangeProtocol{ 450ec8b83dSEd Tanous Invalid, 460ec8b83dSEd Tanous ASCII, 470ec8b83dSEd Tanous PAP, 480ec8b83dSEd Tanous CHAP, 490ec8b83dSEd Tanous MSCHAPv1, 500ec8b83dSEd Tanous MSCHAPv2, 510ec8b83dSEd Tanous }; 520ec8b83dSEd Tanous 530ec8b83dSEd Tanous enum class OAuth2Mode{ 540ec8b83dSEd Tanous Invalid, 550ec8b83dSEd Tanous Discovery, 560ec8b83dSEd Tanous Offline, 570ec8b83dSEd Tanous }; 580ec8b83dSEd Tanous 59*a8d8f9d8SEd Tanous enum class CertificateMappingAttribute{ 60*a8d8f9d8SEd Tanous Invalid, 61*a8d8f9d8SEd Tanous Whole, 62*a8d8f9d8SEd Tanous CommonName, 63*a8d8f9d8SEd Tanous UserPrincipalName, 64*a8d8f9d8SEd Tanous }; 65*a8d8f9d8SEd Tanous 66*a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MFABypassType, { 67*a8d8f9d8SEd Tanous {MFABypassType::Invalid, "Invalid"}, 68*a8d8f9d8SEd Tanous {MFABypassType::All, "All"}, 69*a8d8f9d8SEd Tanous {MFABypassType::SecurID, "SecurID"}, 70*a8d8f9d8SEd Tanous {MFABypassType::GoogleAuthenticator, "GoogleAuthenticator"}, 71*a8d8f9d8SEd Tanous {MFABypassType::MicrosoftAuthenticator, "MicrosoftAuthenticator"}, 72*a8d8f9d8SEd Tanous {MFABypassType::ClientCertificate, "ClientCertificate"}, 73*a8d8f9d8SEd Tanous {MFABypassType::OEM, "OEM"}, 74*a8d8f9d8SEd Tanous }); 75*a8d8f9d8SEd Tanous 760ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LocalAccountAuth, { 770ec8b83dSEd Tanous {LocalAccountAuth::Invalid, "Invalid"}, 780ec8b83dSEd Tanous {LocalAccountAuth::Enabled, "Enabled"}, 790ec8b83dSEd Tanous {LocalAccountAuth::Disabled, "Disabled"}, 800ec8b83dSEd Tanous {LocalAccountAuth::Fallback, "Fallback"}, 810ec8b83dSEd Tanous {LocalAccountAuth::LocalFirst, "LocalFirst"}, 820ec8b83dSEd Tanous }); 830ec8b83dSEd Tanous 840ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AccountProviderTypes, { 850ec8b83dSEd Tanous {AccountProviderTypes::Invalid, "Invalid"}, 860ec8b83dSEd Tanous {AccountProviderTypes::RedfishService, "RedfishService"}, 870ec8b83dSEd Tanous {AccountProviderTypes::ActiveDirectoryService, "ActiveDirectoryService"}, 880ec8b83dSEd Tanous {AccountProviderTypes::LDAPService, "LDAPService"}, 890ec8b83dSEd Tanous {AccountProviderTypes::OEM, "OEM"}, 900ec8b83dSEd Tanous {AccountProviderTypes::TACACSplus, "TACACSplus"}, 910ec8b83dSEd Tanous {AccountProviderTypes::OAuth2, "OAuth2"}, 920ec8b83dSEd Tanous }); 930ec8b83dSEd Tanous 940ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AuthenticationTypes, { 950ec8b83dSEd Tanous {AuthenticationTypes::Invalid, "Invalid"}, 960ec8b83dSEd Tanous {AuthenticationTypes::Token, "Token"}, 970ec8b83dSEd Tanous {AuthenticationTypes::KerberosKeytab, "KerberosKeytab"}, 980ec8b83dSEd Tanous {AuthenticationTypes::UsernameAndPassword, "UsernameAndPassword"}, 990ec8b83dSEd Tanous {AuthenticationTypes::OEM, "OEM"}, 1000ec8b83dSEd Tanous }); 1010ec8b83dSEd Tanous 1020ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(TACACSplusPasswordExchangeProtocol, { 1030ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::Invalid, "Invalid"}, 1040ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::ASCII, "ASCII"}, 1050ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::PAP, "PAP"}, 1060ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::CHAP, "CHAP"}, 1070ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::MSCHAPv1, "MSCHAPv1"}, 1080ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::MSCHAPv2, "MSCHAPv2"}, 1090ec8b83dSEd Tanous }); 1100ec8b83dSEd Tanous 1110ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(OAuth2Mode, { 1120ec8b83dSEd Tanous {OAuth2Mode::Invalid, "Invalid"}, 1130ec8b83dSEd Tanous {OAuth2Mode::Discovery, "Discovery"}, 1140ec8b83dSEd Tanous {OAuth2Mode::Offline, "Offline"}, 1150ec8b83dSEd Tanous }); 1160ec8b83dSEd Tanous 117*a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(CertificateMappingAttribute, { 118*a8d8f9d8SEd Tanous {CertificateMappingAttribute::Invalid, "Invalid"}, 119*a8d8f9d8SEd Tanous {CertificateMappingAttribute::Whole, "Whole"}, 120*a8d8f9d8SEd Tanous {CertificateMappingAttribute::CommonName, "CommonName"}, 121*a8d8f9d8SEd Tanous {CertificateMappingAttribute::UserPrincipalName, "UserPrincipalName"}, 122*a8d8f9d8SEd Tanous }); 123*a8d8f9d8SEd Tanous 1240ec8b83dSEd Tanous } 1250ec8b83dSEd Tanous // clang-format on 126