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