10ec8b83dSEd Tanous #pragma once 20ec8b83dSEd Tanous #include <nlohmann/json.hpp> 30ec8b83dSEd Tanous 40ec8b83dSEd Tanous namespace storage 50ec8b83dSEd Tanous { 60ec8b83dSEd Tanous // clang-format off 70ec8b83dSEd Tanous 80ec8b83dSEd Tanous enum class ResetToDefaultsType{ 90ec8b83dSEd Tanous Invalid, 100ec8b83dSEd Tanous ResetAll, 110ec8b83dSEd Tanous PreserveVolumes, 120ec8b83dSEd Tanous }; 130ec8b83dSEd Tanous 14*a8d8f9d8SEd Tanous enum class HotspareActivationPolicy{ 15*a8d8f9d8SEd Tanous Invalid, 16*a8d8f9d8SEd Tanous OnDriveFailure, 17*a8d8f9d8SEd Tanous OnDrivePredictedFailure, 18*a8d8f9d8SEd Tanous OEM, 19*a8d8f9d8SEd Tanous }; 20*a8d8f9d8SEd Tanous 21*a8d8f9d8SEd Tanous enum class EncryptionMode{ 22*a8d8f9d8SEd Tanous Invalid, 23*a8d8f9d8SEd Tanous Disabled, 24*a8d8f9d8SEd Tanous UseExternalKey, 25*a8d8f9d8SEd Tanous UseLocalKey, 26*a8d8f9d8SEd Tanous }; 27*a8d8f9d8SEd Tanous 280ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ResetToDefaultsType, { 290ec8b83dSEd Tanous {ResetToDefaultsType::Invalid, "Invalid"}, 300ec8b83dSEd Tanous {ResetToDefaultsType::ResetAll, "ResetAll"}, 310ec8b83dSEd Tanous {ResetToDefaultsType::PreserveVolumes, "PreserveVolumes"}, 320ec8b83dSEd Tanous }); 330ec8b83dSEd Tanous 34*a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(HotspareActivationPolicy, { 35*a8d8f9d8SEd Tanous {HotspareActivationPolicy::Invalid, "Invalid"}, 36*a8d8f9d8SEd Tanous {HotspareActivationPolicy::OnDriveFailure, "OnDriveFailure"}, 37*a8d8f9d8SEd Tanous {HotspareActivationPolicy::OnDrivePredictedFailure, "OnDrivePredictedFailure"}, 38*a8d8f9d8SEd Tanous {HotspareActivationPolicy::OEM, "OEM"}, 39*a8d8f9d8SEd Tanous }); 40*a8d8f9d8SEd Tanous 41*a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EncryptionMode, { 42*a8d8f9d8SEd Tanous {EncryptionMode::Invalid, "Invalid"}, 43*a8d8f9d8SEd Tanous {EncryptionMode::Disabled, "Disabled"}, 44*a8d8f9d8SEd Tanous {EncryptionMode::UseExternalKey, "UseExternalKey"}, 45*a8d8f9d8SEd Tanous {EncryptionMode::UseLocalKey, "UseLocalKey"}, 46*a8d8f9d8SEd Tanous }); 47*a8d8f9d8SEd Tanous 480ec8b83dSEd Tanous } 490ec8b83dSEd Tanous // clang-format on 50