1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 30ec8b83dSEd Tanous #pragma once 40ec8b83dSEd Tanous #include <nlohmann/json.hpp> 50ec8b83dSEd Tanous 60ec8b83dSEd Tanous namespace storage 70ec8b83dSEd Tanous { 80ec8b83dSEd Tanous // clang-format off 90ec8b83dSEd Tanous 100ec8b83dSEd Tanous enum class ResetToDefaultsType{ 110ec8b83dSEd Tanous Invalid, 120ec8b83dSEd Tanous ResetAll, 130ec8b83dSEd Tanous PreserveVolumes, 140ec8b83dSEd Tanous }; 150ec8b83dSEd Tanous 16a8d8f9d8SEd Tanous enum class HotspareActivationPolicy{ 17a8d8f9d8SEd Tanous Invalid, 18a8d8f9d8SEd Tanous OnDriveFailure, 19a8d8f9d8SEd Tanous OnDrivePredictedFailure, 20a8d8f9d8SEd Tanous OEM, 21a8d8f9d8SEd Tanous }; 22a8d8f9d8SEd Tanous 23a8d8f9d8SEd Tanous enum class EncryptionMode{ 24a8d8f9d8SEd Tanous Invalid, 25a8d8f9d8SEd Tanous Disabled, 26a8d8f9d8SEd Tanous UseExternalKey, 27a8d8f9d8SEd Tanous UseLocalKey, 2828cfceb2SGunnar Mills PasswordOnly, 2928cfceb2SGunnar Mills PasswordWithExternalKey, 3028cfceb2SGunnar Mills PasswordWithLocalKey, 31a8d8f9d8SEd Tanous }; 32a8d8f9d8SEd Tanous 33f263e09cSEd Tanous enum class AutoVolumeCreate{ 34f263e09cSEd Tanous Invalid, 35f263e09cSEd Tanous Disabled, 36f263e09cSEd Tanous NonRAID, 37f263e09cSEd Tanous RAID0, 38f263e09cSEd Tanous RAID1, 39f263e09cSEd Tanous }; 40f263e09cSEd Tanous 41f2a8e57eSGunnar Mills enum class ConfigurationLock{ 42f2a8e57eSGunnar Mills Invalid, 43f2a8e57eSGunnar Mills Enabled, 44f2a8e57eSGunnar Mills Disabled, 45f2a8e57eSGunnar Mills Partial, 46f2a8e57eSGunnar Mills }; 47f2a8e57eSGunnar Mills 4828cfceb2SGunnar Mills enum class TargetConfigurationLockLevel{ 4928cfceb2SGunnar Mills Invalid, 5028cfceb2SGunnar Mills Baseline, 5128cfceb2SGunnar Mills }; 5228cfceb2SGunnar Mills 5328cfceb2SGunnar Mills enum class ConfigLockOptions{ 5428cfceb2SGunnar Mills Invalid, 5528cfceb2SGunnar Mills Unlocked, 5628cfceb2SGunnar Mills Locked, 5728cfceb2SGunnar Mills LockdownUnsupported, 5828cfceb2SGunnar Mills CommandUnsupported, 5928cfceb2SGunnar Mills }; 6028cfceb2SGunnar Mills 610ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ResetToDefaultsType, { 620ec8b83dSEd Tanous {ResetToDefaultsType::Invalid, "Invalid"}, 630ec8b83dSEd Tanous {ResetToDefaultsType::ResetAll, "ResetAll"}, 640ec8b83dSEd Tanous {ResetToDefaultsType::PreserveVolumes, "PreserveVolumes"}, 650ec8b83dSEd Tanous }); 660ec8b83dSEd Tanous 67a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(HotspareActivationPolicy, { 68a8d8f9d8SEd Tanous {HotspareActivationPolicy::Invalid, "Invalid"}, 69a8d8f9d8SEd Tanous {HotspareActivationPolicy::OnDriveFailure, "OnDriveFailure"}, 70a8d8f9d8SEd Tanous {HotspareActivationPolicy::OnDrivePredictedFailure, "OnDrivePredictedFailure"}, 71a8d8f9d8SEd Tanous {HotspareActivationPolicy::OEM, "OEM"}, 72a8d8f9d8SEd Tanous }); 73a8d8f9d8SEd Tanous 74a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EncryptionMode, { 75a8d8f9d8SEd Tanous {EncryptionMode::Invalid, "Invalid"}, 76a8d8f9d8SEd Tanous {EncryptionMode::Disabled, "Disabled"}, 77a8d8f9d8SEd Tanous {EncryptionMode::UseExternalKey, "UseExternalKey"}, 78a8d8f9d8SEd Tanous {EncryptionMode::UseLocalKey, "UseLocalKey"}, 7928cfceb2SGunnar Mills {EncryptionMode::PasswordOnly, "PasswordOnly"}, 8028cfceb2SGunnar Mills {EncryptionMode::PasswordWithExternalKey, "PasswordWithExternalKey"}, 8128cfceb2SGunnar Mills {EncryptionMode::PasswordWithLocalKey, "PasswordWithLocalKey"}, 82a8d8f9d8SEd Tanous }); 83a8d8f9d8SEd Tanous 84f263e09cSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AutoVolumeCreate, { 85f263e09cSEd Tanous {AutoVolumeCreate::Invalid, "Invalid"}, 86f263e09cSEd Tanous {AutoVolumeCreate::Disabled, "Disabled"}, 87f263e09cSEd Tanous {AutoVolumeCreate::NonRAID, "NonRAID"}, 88f263e09cSEd Tanous {AutoVolumeCreate::RAID0, "RAID0"}, 89f263e09cSEd Tanous {AutoVolumeCreate::RAID1, "RAID1"}, 90f263e09cSEd Tanous }); 91f263e09cSEd Tanous 92f2a8e57eSGunnar Mills NLOHMANN_JSON_SERIALIZE_ENUM(ConfigurationLock, { 93f2a8e57eSGunnar Mills {ConfigurationLock::Invalid, "Invalid"}, 94f2a8e57eSGunnar Mills {ConfigurationLock::Enabled, "Enabled"}, 95f2a8e57eSGunnar Mills {ConfigurationLock::Disabled, "Disabled"}, 96f2a8e57eSGunnar Mills {ConfigurationLock::Partial, "Partial"}, 97f2a8e57eSGunnar Mills }); 98f2a8e57eSGunnar Mills 9928cfceb2SGunnar Mills NLOHMANN_JSON_SERIALIZE_ENUM(TargetConfigurationLockLevel, { 10028cfceb2SGunnar Mills {TargetConfigurationLockLevel::Invalid, "Invalid"}, 10128cfceb2SGunnar Mills {TargetConfigurationLockLevel::Baseline, "Baseline"}, 10228cfceb2SGunnar Mills }); 10328cfceb2SGunnar Mills 10428cfceb2SGunnar Mills NLOHMANN_JSON_SERIALIZE_ENUM(ConfigLockOptions, { 10528cfceb2SGunnar Mills {ConfigLockOptions::Invalid, "Invalid"}, 10628cfceb2SGunnar Mills {ConfigLockOptions::Unlocked, "Unlocked"}, 10728cfceb2SGunnar Mills {ConfigLockOptions::Locked, "Locked"}, 10828cfceb2SGunnar Mills {ConfigLockOptions::LockdownUnsupported, "LockdownUnsupported"}, 10928cfceb2SGunnar Mills {ConfigLockOptions::CommandUnsupported, "CommandUnsupported"}, 11028cfceb2SGunnar Mills }); 11128cfceb2SGunnar Mills 1120ec8b83dSEd Tanous } 1130ec8b83dSEd Tanous // clang-format on 114