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