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