1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace privileges 7 { 8 // clang-format off 9 10 enum class PrivilegeType{ 11 Invalid, 12 Login, 13 ConfigureManager, 14 ConfigureUsers, 15 ConfigureSelf, 16 ConfigureComponents, 17 NoAuth, 18 ConfigureCompositionInfrastructure, 19 AdministrateSystems, 20 OperateSystems, 21 AdministrateStorage, 22 OperateStorageBackup, 23 }; 24 25 NLOHMANN_JSON_SERIALIZE_ENUM(PrivilegeType, { 26 {PrivilegeType::Invalid, "Invalid"}, 27 {PrivilegeType::Login, "Login"}, 28 {PrivilegeType::ConfigureManager, "ConfigureManager"}, 29 {PrivilegeType::ConfigureUsers, "ConfigureUsers"}, 30 {PrivilegeType::ConfigureSelf, "ConfigureSelf"}, 31 {PrivilegeType::ConfigureComponents, "ConfigureComponents"}, 32 {PrivilegeType::NoAuth, "NoAuth"}, 33 {PrivilegeType::ConfigureCompositionInfrastructure, "ConfigureCompositionInfrastructure"}, 34 {PrivilegeType::AdministrateSystems, "AdministrateSystems"}, 35 {PrivilegeType::OperateSystems, "OperateSystems"}, 36 {PrivilegeType::AdministrateStorage, "AdministrateStorage"}, 37 {PrivilegeType::OperateStorageBackup, "OperateStorageBackup"}, 38 }); 39 40 } 41 // clang-format on 42