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