| #pragma once |
| #include <cstdint> |
| #include <nlohmann/json.hpp> |
| |
| namespace external_account_provider |
| { |
| // clang-format off |
| |
| enum class AccountProviderTypes : std::uint8_t{ |
| Invalid, |
| RedfishService, |
| ActiveDirectoryService, |
| LDAPService, |
| OEM, |
| TACACSplus, |
| OAuth2, |
| }; |
| |
| enum class AuthenticationTypes : std::uint8_t{ |
| Invalid, |
| Token, |
| KerberosKeytab, |
| UsernameAndPassword, |
| OEM, |
| }; |
| |
| enum class TACACSplusPasswordExchangeProtocol : std::uint8_t{ |
| Invalid, |
| ASCII, |
| PAP, |
| CHAP, |
| MSCHAPv1, |
| MSCHAPv2, |
| }; |
| |
| enum class OAuth2Mode : std::uint8_t{ |
| Invalid, |
| Discovery, |
| Offline, |
| }; |
| |
| NLOHMANN_JSON_SERIALIZE_ENUM(AccountProviderTypes, { |
| {AccountProviderTypes::Invalid, "Invalid"}, |
| {AccountProviderTypes::RedfishService, "RedfishService"}, |
| {AccountProviderTypes::ActiveDirectoryService, "ActiveDirectoryService"}, |
| {AccountProviderTypes::LDAPService, "LDAPService"}, |
| {AccountProviderTypes::OEM, "OEM"}, |
| {AccountProviderTypes::TACACSplus, "TACACSplus"}, |
| {AccountProviderTypes::OAuth2, "OAuth2"}, |
| }); |
| |
| NLOHMANN_JSON_SERIALIZE_ENUM(AuthenticationTypes, { |
| {AuthenticationTypes::Invalid, "Invalid"}, |
| {AuthenticationTypes::Token, "Token"}, |
| {AuthenticationTypes::KerberosKeytab, "KerberosKeytab"}, |
| {AuthenticationTypes::UsernameAndPassword, "UsernameAndPassword"}, |
| {AuthenticationTypes::OEM, "OEM"}, |
| }); |
| |
| NLOHMANN_JSON_SERIALIZE_ENUM(TACACSplusPasswordExchangeProtocol, { |
| {TACACSplusPasswordExchangeProtocol::Invalid, "Invalid"}, |
| {TACACSplusPasswordExchangeProtocol::ASCII, "ASCII"}, |
| {TACACSplusPasswordExchangeProtocol::PAP, "PAP"}, |
| {TACACSplusPasswordExchangeProtocol::CHAP, "CHAP"}, |
| {TACACSplusPasswordExchangeProtocol::MSCHAPv1, "MSCHAPv1"}, |
| {TACACSplusPasswordExchangeProtocol::MSCHAPv2, "MSCHAPv2"}, |
| }); |
| |
| NLOHMANN_JSON_SERIALIZE_ENUM(OAuth2Mode, { |
| {OAuth2Mode::Invalid, "Invalid"}, |
| {OAuth2Mode::Discovery, "Discovery"}, |
| {OAuth2Mode::Offline, "Offline"}, |
| }); |
| |
| } // namespace external_account_provider |
| // clang-format on |