1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3853c0dc5SEd Tanous #pragma once 4853c0dc5SEd Tanous #include <nlohmann/json.hpp> 5853c0dc5SEd Tanous 6853c0dc5SEd Tanous namespace external_account_provider 7853c0dc5SEd Tanous { 8853c0dc5SEd Tanous // clang-format off 9853c0dc5SEd Tanous 10853c0dc5SEd Tanous enum class AccountProviderTypes{ 11853c0dc5SEd Tanous Invalid, 12853c0dc5SEd Tanous RedfishService, 13853c0dc5SEd Tanous ActiveDirectoryService, 14853c0dc5SEd Tanous LDAPService, 15853c0dc5SEd Tanous OEM, 16853c0dc5SEd Tanous TACACSplus, 17853c0dc5SEd Tanous OAuth2, 18853c0dc5SEd Tanous }; 19853c0dc5SEd Tanous 20853c0dc5SEd Tanous enum class AuthenticationTypes{ 21853c0dc5SEd Tanous Invalid, 22853c0dc5SEd Tanous Token, 23853c0dc5SEd Tanous KerberosKeytab, 24853c0dc5SEd Tanous UsernameAndPassword, 25853c0dc5SEd Tanous OEM, 26853c0dc5SEd Tanous }; 27853c0dc5SEd Tanous 28853c0dc5SEd Tanous enum class TACACSplusPasswordExchangeProtocol{ 29853c0dc5SEd Tanous Invalid, 30853c0dc5SEd Tanous ASCII, 31853c0dc5SEd Tanous PAP, 32853c0dc5SEd Tanous CHAP, 33853c0dc5SEd Tanous MSCHAPv1, 34853c0dc5SEd Tanous MSCHAPv2, 35853c0dc5SEd Tanous }; 36853c0dc5SEd Tanous 37853c0dc5SEd Tanous enum class OAuth2Mode{ 38853c0dc5SEd Tanous Invalid, 39853c0dc5SEd Tanous Discovery, 40853c0dc5SEd Tanous Offline, 41853c0dc5SEd Tanous }; 42853c0dc5SEd Tanous 43853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AccountProviderTypes, { 44853c0dc5SEd Tanous {AccountProviderTypes::Invalid, "Invalid"}, 45853c0dc5SEd Tanous {AccountProviderTypes::RedfishService, "RedfishService"}, 46853c0dc5SEd Tanous {AccountProviderTypes::ActiveDirectoryService, "ActiveDirectoryService"}, 47853c0dc5SEd Tanous {AccountProviderTypes::LDAPService, "LDAPService"}, 48853c0dc5SEd Tanous {AccountProviderTypes::OEM, "OEM"}, 49853c0dc5SEd Tanous {AccountProviderTypes::TACACSplus, "TACACSplus"}, 50853c0dc5SEd Tanous {AccountProviderTypes::OAuth2, "OAuth2"}, 51853c0dc5SEd Tanous }); 52853c0dc5SEd Tanous 53853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AuthenticationTypes, { 54853c0dc5SEd Tanous {AuthenticationTypes::Invalid, "Invalid"}, 55853c0dc5SEd Tanous {AuthenticationTypes::Token, "Token"}, 56853c0dc5SEd Tanous {AuthenticationTypes::KerberosKeytab, "KerberosKeytab"}, 57853c0dc5SEd Tanous {AuthenticationTypes::UsernameAndPassword, "UsernameAndPassword"}, 58853c0dc5SEd Tanous {AuthenticationTypes::OEM, "OEM"}, 59853c0dc5SEd Tanous }); 60853c0dc5SEd Tanous 61853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(TACACSplusPasswordExchangeProtocol, { 62853c0dc5SEd Tanous {TACACSplusPasswordExchangeProtocol::Invalid, "Invalid"}, 63853c0dc5SEd Tanous {TACACSplusPasswordExchangeProtocol::ASCII, "ASCII"}, 64853c0dc5SEd Tanous {TACACSplusPasswordExchangeProtocol::PAP, "PAP"}, 65853c0dc5SEd Tanous {TACACSplusPasswordExchangeProtocol::CHAP, "CHAP"}, 66853c0dc5SEd Tanous {TACACSplusPasswordExchangeProtocol::MSCHAPv1, "MSCHAPv1"}, 67853c0dc5SEd Tanous {TACACSplusPasswordExchangeProtocol::MSCHAPv2, "MSCHAPv2"}, 68853c0dc5SEd Tanous }); 69853c0dc5SEd Tanous 70853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(OAuth2Mode, { 71853c0dc5SEd Tanous {OAuth2Mode::Invalid, "Invalid"}, 72853c0dc5SEd Tanous {OAuth2Mode::Discovery, "Discovery"}, 73853c0dc5SEd Tanous {OAuth2Mode::Offline, "Offline"}, 74853c0dc5SEd Tanous }); 75853c0dc5SEd Tanous 76853c0dc5SEd Tanous } 77853c0dc5SEd Tanous // clang-format on 78