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