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 };
16 
17 enum class ApplyTime{
18     Invalid,
19     Immediate,
20     OnReset,
21     AtMaintenanceWindowStart,
22     InMaintenanceWindowOnReset,
23 };
24 
25 NLOHMANN_JSON_SERIALIZE_ENUM(OperationApplyTime, {
26     {OperationApplyTime::Invalid, "Invalid"},
27     {OperationApplyTime::Immediate, "Immediate"},
28     {OperationApplyTime::OnReset, "OnReset"},
29     {OperationApplyTime::AtMaintenanceWindowStart, "AtMaintenanceWindowStart"},
30     {OperationApplyTime::InMaintenanceWindowOnReset, "InMaintenanceWindowOnReset"},
31     {OperationApplyTime::OnStartUpdateRequest, "OnStartUpdateRequest"},
32 });
33 
34 NLOHMANN_JSON_SERIALIZE_ENUM(ApplyTime, {
35     {ApplyTime::Invalid, "Invalid"},
36     {ApplyTime::Immediate, "Immediate"},
37     {ApplyTime::OnReset, "OnReset"},
38     {ApplyTime::AtMaintenanceWindowStart, "AtMaintenanceWindowStart"},
39     {ApplyTime::InMaintenanceWindowOnReset, "InMaintenanceWindowOnReset"},
40 });
41 
42 }
43 // clang-format on
44