1 #pragma once
2 #include <nlohmann/json.hpp>
3 
4 namespace settings
5 {
6 // clang-format off
7 
8 enum class OperationApplyTime{
9     Invalid,
10     Immediate,
11     OnReset,
12     AtMaintenanceWindowStart,
13     InMaintenanceWindowOnReset,
14     OnStartUpdateRequest,
15     OnTargetReset,
16 };
17 
18 enum class ApplyTime{
19     Invalid,
20     Immediate,
21     OnReset,
22     AtMaintenanceWindowStart,
23     InMaintenanceWindowOnReset,
24 };
25 
26 NLOHMANN_JSON_SERIALIZE_ENUM(OperationApplyTime, {
27     {OperationApplyTime::Invalid, "Invalid"},
28     {OperationApplyTime::Immediate, "Immediate"},
29     {OperationApplyTime::OnReset, "OnReset"},
30     {OperationApplyTime::AtMaintenanceWindowStart, "AtMaintenanceWindowStart"},
31     {OperationApplyTime::InMaintenanceWindowOnReset, "InMaintenanceWindowOnReset"},
32     {OperationApplyTime::OnStartUpdateRequest, "OnStartUpdateRequest"},
33     {OperationApplyTime::OnTargetReset, "OnTargetReset"},
34 });
35 
36 NLOHMANN_JSON_SERIALIZE_ENUM(ApplyTime, {
37     {ApplyTime::Invalid, "Invalid"},
38     {ApplyTime::Immediate, "Immediate"},
39     {ApplyTime::OnReset, "OnReset"},
40     {ApplyTime::AtMaintenanceWindowStart, "AtMaintenanceWindowStart"},
41     {ApplyTime::InMaintenanceWindowOnReset, "InMaintenanceWindowOnReset"},
42 });
43 
44 }
45 // clang-format on
46