1*853c0dc5SEd Tanous #pragma once 2*853c0dc5SEd Tanous #include <nlohmann/json.hpp> 3*853c0dc5SEd Tanous 4*853c0dc5SEd Tanous namespace external_account_provider 5*853c0dc5SEd Tanous { 6*853c0dc5SEd Tanous // clang-format off 7*853c0dc5SEd Tanous 8*853c0dc5SEd Tanous enum class AccountProviderTypes{ 9*853c0dc5SEd Tanous Invalid, 10*853c0dc5SEd Tanous RedfishService, 11*853c0dc5SEd Tanous ActiveDirectoryService, 12*853c0dc5SEd Tanous LDAPService, 13*853c0dc5SEd Tanous OEM, 14*853c0dc5SEd Tanous TACACSplus, 15*853c0dc5SEd Tanous OAuth2, 16*853c0dc5SEd Tanous }; 17*853c0dc5SEd Tanous 18*853c0dc5SEd Tanous enum class AuthenticationTypes{ 19*853c0dc5SEd Tanous Invalid, 20*853c0dc5SEd Tanous Token, 21*853c0dc5SEd Tanous KerberosKeytab, 22*853c0dc5SEd Tanous UsernameAndPassword, 23*853c0dc5SEd Tanous OEM, 24*853c0dc5SEd Tanous }; 25*853c0dc5SEd Tanous 26*853c0dc5SEd Tanous enum class TACACSplusPasswordExchangeProtocol{ 27*853c0dc5SEd Tanous Invalid, 28*853c0dc5SEd Tanous ASCII, 29*853c0dc5SEd Tanous PAP, 30*853c0dc5SEd Tanous CHAP, 31*853c0dc5SEd Tanous MSCHAPv1, 32*853c0dc5SEd Tanous MSCHAPv2, 33*853c0dc5SEd Tanous }; 34*853c0dc5SEd Tanous 35*853c0dc5SEd Tanous enum class OAuth2Mode{ 36*853c0dc5SEd Tanous Invalid, 37*853c0dc5SEd Tanous Discovery, 38*853c0dc5SEd Tanous Offline, 39*853c0dc5SEd Tanous }; 40*853c0dc5SEd Tanous 41*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AccountProviderTypes, { 42*853c0dc5SEd Tanous {AccountProviderTypes::Invalid, "Invalid"}, 43*853c0dc5SEd Tanous {AccountProviderTypes::RedfishService, "RedfishService"}, 44*853c0dc5SEd Tanous {AccountProviderTypes::ActiveDirectoryService, "ActiveDirectoryService"}, 45*853c0dc5SEd Tanous {AccountProviderTypes::LDAPService, "LDAPService"}, 46*853c0dc5SEd Tanous {AccountProviderTypes::OEM, "OEM"}, 47*853c0dc5SEd Tanous {AccountProviderTypes::TACACSplus, "TACACSplus"}, 48*853c0dc5SEd Tanous {AccountProviderTypes::OAuth2, "OAuth2"}, 49*853c0dc5SEd Tanous }); 50*853c0dc5SEd Tanous 51*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AuthenticationTypes, { 52*853c0dc5SEd Tanous {AuthenticationTypes::Invalid, "Invalid"}, 53*853c0dc5SEd Tanous {AuthenticationTypes::Token, "Token"}, 54*853c0dc5SEd Tanous {AuthenticationTypes::KerberosKeytab, "KerberosKeytab"}, 55*853c0dc5SEd Tanous {AuthenticationTypes::UsernameAndPassword, "UsernameAndPassword"}, 56*853c0dc5SEd Tanous {AuthenticationTypes::OEM, "OEM"}, 57*853c0dc5SEd Tanous }); 58*853c0dc5SEd Tanous 59*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(TACACSplusPasswordExchangeProtocol, { 60*853c0dc5SEd Tanous {TACACSplusPasswordExchangeProtocol::Invalid, "Invalid"}, 61*853c0dc5SEd Tanous {TACACSplusPasswordExchangeProtocol::ASCII, "ASCII"}, 62*853c0dc5SEd Tanous {TACACSplusPasswordExchangeProtocol::PAP, "PAP"}, 63*853c0dc5SEd Tanous {TACACSplusPasswordExchangeProtocol::CHAP, "CHAP"}, 64*853c0dc5SEd Tanous {TACACSplusPasswordExchangeProtocol::MSCHAPv1, "MSCHAPv1"}, 65*853c0dc5SEd Tanous {TACACSplusPasswordExchangeProtocol::MSCHAPv2, "MSCHAPv2"}, 66*853c0dc5SEd Tanous }); 67*853c0dc5SEd Tanous 68*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(OAuth2Mode, { 69*853c0dc5SEd Tanous {OAuth2Mode::Invalid, "Invalid"}, 70*853c0dc5SEd Tanous {OAuth2Mode::Discovery, "Discovery"}, 71*853c0dc5SEd Tanous {OAuth2Mode::Offline, "Offline"}, 72*853c0dc5SEd Tanous }); 73*853c0dc5SEd Tanous 74*853c0dc5SEd Tanous } 75*853c0dc5SEd Tanous // clang-format on 76