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, 16a8d8f9d8SEd Tanous OEM, 17a8d8f9d8SEd Tanous }; 18a8d8f9d8SEd Tanous 190ec8b83dSEd Tanous enum class LocalAccountAuth{ 200ec8b83dSEd Tanous Invalid, 210ec8b83dSEd Tanous Enabled, 220ec8b83dSEd Tanous Disabled, 230ec8b83dSEd Tanous Fallback, 240ec8b83dSEd Tanous LocalFirst, 250ec8b83dSEd Tanous }; 260ec8b83dSEd Tanous 270ec8b83dSEd Tanous enum class AccountProviderTypes{ 280ec8b83dSEd Tanous Invalid, 290ec8b83dSEd Tanous RedfishService, 300ec8b83dSEd Tanous ActiveDirectoryService, 310ec8b83dSEd Tanous LDAPService, 320ec8b83dSEd Tanous OEM, 330ec8b83dSEd Tanous TACACSplus, 340ec8b83dSEd Tanous OAuth2, 350ec8b83dSEd Tanous }; 360ec8b83dSEd Tanous 370ec8b83dSEd Tanous enum class AuthenticationTypes{ 380ec8b83dSEd Tanous Invalid, 390ec8b83dSEd Tanous Token, 400ec8b83dSEd Tanous KerberosKeytab, 410ec8b83dSEd Tanous UsernameAndPassword, 420ec8b83dSEd Tanous OEM, 430ec8b83dSEd Tanous }; 440ec8b83dSEd Tanous 450ec8b83dSEd Tanous enum class TACACSplusPasswordExchangeProtocol{ 460ec8b83dSEd Tanous Invalid, 470ec8b83dSEd Tanous ASCII, 480ec8b83dSEd Tanous PAP, 490ec8b83dSEd Tanous CHAP, 500ec8b83dSEd Tanous MSCHAPv1, 510ec8b83dSEd Tanous MSCHAPv2, 520ec8b83dSEd Tanous }; 530ec8b83dSEd Tanous 540ec8b83dSEd Tanous enum class OAuth2Mode{ 550ec8b83dSEd Tanous Invalid, 560ec8b83dSEd Tanous Discovery, 570ec8b83dSEd Tanous Offline, 580ec8b83dSEd Tanous }; 590ec8b83dSEd Tanous 60a8d8f9d8SEd Tanous enum class CertificateMappingAttribute{ 61a8d8f9d8SEd Tanous Invalid, 62a8d8f9d8SEd Tanous Whole, 63a8d8f9d8SEd Tanous CommonName, 64a8d8f9d8SEd Tanous UserPrincipalName, 65a8d8f9d8SEd Tanous }; 66a8d8f9d8SEd Tanous 67*2ae81db9SGunnar Mills enum class BasicAuthState{ 68*2ae81db9SGunnar Mills Invalid, 69*2ae81db9SGunnar Mills Enabled, 70*2ae81db9SGunnar Mills Unadvertised, 71*2ae81db9SGunnar Mills Disabled, 72*2ae81db9SGunnar Mills }; 73*2ae81db9SGunnar Mills 74a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MFABypassType, { 75a8d8f9d8SEd Tanous {MFABypassType::Invalid, "Invalid"}, 76a8d8f9d8SEd Tanous {MFABypassType::All, "All"}, 77a8d8f9d8SEd Tanous {MFABypassType::SecurID, "SecurID"}, 78a8d8f9d8SEd Tanous {MFABypassType::GoogleAuthenticator, "GoogleAuthenticator"}, 79a8d8f9d8SEd Tanous {MFABypassType::MicrosoftAuthenticator, "MicrosoftAuthenticator"}, 80a8d8f9d8SEd Tanous {MFABypassType::ClientCertificate, "ClientCertificate"}, 81e9cc1bc9SEd Tanous {MFABypassType::OneTimePasscode, "OneTimePasscode"}, 82a8d8f9d8SEd Tanous {MFABypassType::OEM, "OEM"}, 83a8d8f9d8SEd Tanous }); 84a8d8f9d8SEd Tanous 850ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LocalAccountAuth, { 860ec8b83dSEd Tanous {LocalAccountAuth::Invalid, "Invalid"}, 870ec8b83dSEd Tanous {LocalAccountAuth::Enabled, "Enabled"}, 880ec8b83dSEd Tanous {LocalAccountAuth::Disabled, "Disabled"}, 890ec8b83dSEd Tanous {LocalAccountAuth::Fallback, "Fallback"}, 900ec8b83dSEd Tanous {LocalAccountAuth::LocalFirst, "LocalFirst"}, 910ec8b83dSEd Tanous }); 920ec8b83dSEd Tanous 930ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AccountProviderTypes, { 940ec8b83dSEd Tanous {AccountProviderTypes::Invalid, "Invalid"}, 950ec8b83dSEd Tanous {AccountProviderTypes::RedfishService, "RedfishService"}, 960ec8b83dSEd Tanous {AccountProviderTypes::ActiveDirectoryService, "ActiveDirectoryService"}, 970ec8b83dSEd Tanous {AccountProviderTypes::LDAPService, "LDAPService"}, 980ec8b83dSEd Tanous {AccountProviderTypes::OEM, "OEM"}, 990ec8b83dSEd Tanous {AccountProviderTypes::TACACSplus, "TACACSplus"}, 1000ec8b83dSEd Tanous {AccountProviderTypes::OAuth2, "OAuth2"}, 1010ec8b83dSEd Tanous }); 1020ec8b83dSEd Tanous 1030ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AuthenticationTypes, { 1040ec8b83dSEd Tanous {AuthenticationTypes::Invalid, "Invalid"}, 1050ec8b83dSEd Tanous {AuthenticationTypes::Token, "Token"}, 1060ec8b83dSEd Tanous {AuthenticationTypes::KerberosKeytab, "KerberosKeytab"}, 1070ec8b83dSEd Tanous {AuthenticationTypes::UsernameAndPassword, "UsernameAndPassword"}, 1080ec8b83dSEd Tanous {AuthenticationTypes::OEM, "OEM"}, 1090ec8b83dSEd Tanous }); 1100ec8b83dSEd Tanous 1110ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(TACACSplusPasswordExchangeProtocol, { 1120ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::Invalid, "Invalid"}, 1130ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::ASCII, "ASCII"}, 1140ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::PAP, "PAP"}, 1150ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::CHAP, "CHAP"}, 1160ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::MSCHAPv1, "MSCHAPv1"}, 1170ec8b83dSEd Tanous {TACACSplusPasswordExchangeProtocol::MSCHAPv2, "MSCHAPv2"}, 1180ec8b83dSEd Tanous }); 1190ec8b83dSEd Tanous 1200ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(OAuth2Mode, { 1210ec8b83dSEd Tanous {OAuth2Mode::Invalid, "Invalid"}, 1220ec8b83dSEd Tanous {OAuth2Mode::Discovery, "Discovery"}, 1230ec8b83dSEd Tanous {OAuth2Mode::Offline, "Offline"}, 1240ec8b83dSEd Tanous }); 1250ec8b83dSEd Tanous 126a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(CertificateMappingAttribute, { 127a8d8f9d8SEd Tanous {CertificateMappingAttribute::Invalid, "Invalid"}, 128a8d8f9d8SEd Tanous {CertificateMappingAttribute::Whole, "Whole"}, 129a8d8f9d8SEd Tanous {CertificateMappingAttribute::CommonName, "CommonName"}, 130a8d8f9d8SEd Tanous {CertificateMappingAttribute::UserPrincipalName, "UserPrincipalName"}, 131a8d8f9d8SEd Tanous }); 132a8d8f9d8SEd Tanous 133*2ae81db9SGunnar Mills NLOHMANN_JSON_SERIALIZE_ENUM(BasicAuthState, { 134*2ae81db9SGunnar Mills {BasicAuthState::Invalid, "Invalid"}, 135*2ae81db9SGunnar Mills {BasicAuthState::Enabled, "Enabled"}, 136*2ae81db9SGunnar Mills {BasicAuthState::Unadvertised, "Unadvertised"}, 137*2ae81db9SGunnar Mills {BasicAuthState::Disabled, "Disabled"}, 138*2ae81db9SGunnar Mills }); 139*2ae81db9SGunnar Mills 1400ec8b83dSEd Tanous } 1410ec8b83dSEd Tanous // clang-format on 142