10ec8b83dSEd Tanous #pragma once
20ec8b83dSEd Tanous #include <nlohmann/json.hpp>
30ec8b83dSEd Tanous 
40ec8b83dSEd Tanous namespace settings
50ec8b83dSEd Tanous {
60ec8b83dSEd Tanous // clang-format off
70ec8b83dSEd Tanous 
80ec8b83dSEd Tanous enum class OperationApplyTime{
90ec8b83dSEd Tanous     Invalid,
100ec8b83dSEd Tanous     Immediate,
110ec8b83dSEd Tanous     OnReset,
120ec8b83dSEd Tanous     AtMaintenanceWindowStart,
130ec8b83dSEd Tanous     InMaintenanceWindowOnReset,
140ec8b83dSEd Tanous     OnStartUpdateRequest,
15*f2a8e57eSGunnar Mills     OnTargetReset,
160ec8b83dSEd Tanous };
170ec8b83dSEd Tanous 
180ec8b83dSEd Tanous enum class ApplyTime{
190ec8b83dSEd Tanous     Invalid,
200ec8b83dSEd Tanous     Immediate,
210ec8b83dSEd Tanous     OnReset,
220ec8b83dSEd Tanous     AtMaintenanceWindowStart,
230ec8b83dSEd Tanous     InMaintenanceWindowOnReset,
240ec8b83dSEd Tanous };
250ec8b83dSEd Tanous 
260ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(OperationApplyTime, {
270ec8b83dSEd Tanous     {OperationApplyTime::Invalid, "Invalid"},
280ec8b83dSEd Tanous     {OperationApplyTime::Immediate, "Immediate"},
290ec8b83dSEd Tanous     {OperationApplyTime::OnReset, "OnReset"},
300ec8b83dSEd Tanous     {OperationApplyTime::AtMaintenanceWindowStart, "AtMaintenanceWindowStart"},
310ec8b83dSEd Tanous     {OperationApplyTime::InMaintenanceWindowOnReset, "InMaintenanceWindowOnReset"},
320ec8b83dSEd Tanous     {OperationApplyTime::OnStartUpdateRequest, "OnStartUpdateRequest"},
33*f2a8e57eSGunnar Mills     {OperationApplyTime::OnTargetReset, "OnTargetReset"},
340ec8b83dSEd Tanous });
350ec8b83dSEd Tanous 
360ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ApplyTime, {
370ec8b83dSEd Tanous     {ApplyTime::Invalid, "Invalid"},
380ec8b83dSEd Tanous     {ApplyTime::Immediate, "Immediate"},
390ec8b83dSEd Tanous     {ApplyTime::OnReset, "OnReset"},
400ec8b83dSEd Tanous     {ApplyTime::AtMaintenanceWindowStart, "AtMaintenanceWindowStart"},
410ec8b83dSEd Tanous     {ApplyTime::InMaintenanceWindowOnReset, "InMaintenanceWindowOnReset"},
420ec8b83dSEd Tanous });
430ec8b83dSEd Tanous 
440ec8b83dSEd Tanous }
450ec8b83dSEd Tanous // clang-format on
46