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 14a8d8f9d8SEd Tanous enum class HotspareActivationPolicy{ 15a8d8f9d8SEd Tanous Invalid, 16a8d8f9d8SEd Tanous OnDriveFailure, 17a8d8f9d8SEd Tanous OnDrivePredictedFailure, 18a8d8f9d8SEd Tanous OEM, 19a8d8f9d8SEd Tanous }; 20a8d8f9d8SEd Tanous 21a8d8f9d8SEd Tanous enum class EncryptionMode{ 22a8d8f9d8SEd Tanous Invalid, 23a8d8f9d8SEd Tanous Disabled, 24a8d8f9d8SEd Tanous UseExternalKey, 25a8d8f9d8SEd Tanous UseLocalKey, 26a8d8f9d8SEd Tanous }; 27a8d8f9d8SEd Tanous 28*f263e09cSEd Tanous enum class AutoVolumeCreate{ 29*f263e09cSEd Tanous Invalid, 30*f263e09cSEd Tanous Disabled, 31*f263e09cSEd Tanous NonRAID, 32*f263e09cSEd Tanous RAID0, 33*f263e09cSEd Tanous RAID1, 34*f263e09cSEd Tanous }; 35*f263e09cSEd Tanous 360ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ResetToDefaultsType, { 370ec8b83dSEd Tanous {ResetToDefaultsType::Invalid, "Invalid"}, 380ec8b83dSEd Tanous {ResetToDefaultsType::ResetAll, "ResetAll"}, 390ec8b83dSEd Tanous {ResetToDefaultsType::PreserveVolumes, "PreserveVolumes"}, 400ec8b83dSEd Tanous }); 410ec8b83dSEd Tanous 42a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(HotspareActivationPolicy, { 43a8d8f9d8SEd Tanous {HotspareActivationPolicy::Invalid, "Invalid"}, 44a8d8f9d8SEd Tanous {HotspareActivationPolicy::OnDriveFailure, "OnDriveFailure"}, 45a8d8f9d8SEd Tanous {HotspareActivationPolicy::OnDrivePredictedFailure, "OnDrivePredictedFailure"}, 46a8d8f9d8SEd Tanous {HotspareActivationPolicy::OEM, "OEM"}, 47a8d8f9d8SEd Tanous }); 48a8d8f9d8SEd Tanous 49a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EncryptionMode, { 50a8d8f9d8SEd Tanous {EncryptionMode::Invalid, "Invalid"}, 51a8d8f9d8SEd Tanous {EncryptionMode::Disabled, "Disabled"}, 52a8d8f9d8SEd Tanous {EncryptionMode::UseExternalKey, "UseExternalKey"}, 53a8d8f9d8SEd Tanous {EncryptionMode::UseLocalKey, "UseLocalKey"}, 54a8d8f9d8SEd Tanous }); 55a8d8f9d8SEd Tanous 56*f263e09cSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AutoVolumeCreate, { 57*f263e09cSEd Tanous {AutoVolumeCreate::Invalid, "Invalid"}, 58*f263e09cSEd Tanous {AutoVolumeCreate::Disabled, "Disabled"}, 59*f263e09cSEd Tanous {AutoVolumeCreate::NonRAID, "NonRAID"}, 60*f263e09cSEd Tanous {AutoVolumeCreate::RAID0, "RAID0"}, 61*f263e09cSEd Tanous {AutoVolumeCreate::RAID1, "RAID1"}, 62*f263e09cSEd Tanous }); 63*f263e09cSEd Tanous 640ec8b83dSEd Tanous } 650ec8b83dSEd Tanous // clang-format on 66