1 #pragma once
2 #include <nlohmann/json.hpp>
3 
4 namespace license
5 {
6 // clang-format off
7 
8 enum class LicenseType{
9     Invalid,
10     Production,
11     Prototype,
12     Trial,
13 };
14 
15 enum class AuthorizationScope{
16     Invalid,
17     Device,
18     Capacity,
19     Service,
20 };
21 
22 enum class LicenseOrigin{
23     Invalid,
24     BuiltIn,
25     Installed,
26 };
27 
28 NLOHMANN_JSON_SERIALIZE_ENUM(LicenseType, {
29     {LicenseType::Invalid, "Invalid"},
30     {LicenseType::Production, "Production"},
31     {LicenseType::Prototype, "Prototype"},
32     {LicenseType::Trial, "Trial"},
33 });
34 
35 NLOHMANN_JSON_SERIALIZE_ENUM(AuthorizationScope, {
36     {AuthorizationScope::Invalid, "Invalid"},
37     {AuthorizationScope::Device, "Device"},
38     {AuthorizationScope::Capacity, "Capacity"},
39     {AuthorizationScope::Service, "Service"},
40 });
41 
42 NLOHMANN_JSON_SERIALIZE_ENUM(LicenseOrigin, {
43     {LicenseOrigin::Invalid, "Invalid"},
44     {LicenseOrigin::BuiltIn, "BuiltIn"},
45     {LicenseOrigin::Installed, "Installed"},
46 });
47 
48 }
49 // clang-format on
50