xref: /openbmc/bmcweb/redfish-core/include/generated/enums/storage.hpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #pragma once
4 #include <nlohmann/json.hpp>
5 
6 namespace storage
7 {
8 // clang-format off
9 
10 enum class ResetToDefaultsType{
11     Invalid,
12     ResetAll,
13     PreserveVolumes,
14 };
15 
16 enum class HotspareActivationPolicy{
17     Invalid,
18     OnDriveFailure,
19     OnDrivePredictedFailure,
20     OEM,
21 };
22 
23 enum class EncryptionMode{
24     Invalid,
25     Disabled,
26     UseExternalKey,
27     UseLocalKey,
28     PasswordOnly,
29     PasswordWithExternalKey,
30     PasswordWithLocalKey,
31 };
32 
33 enum class AutoVolumeCreate{
34     Invalid,
35     Disabled,
36     NonRAID,
37     RAID0,
38     RAID1,
39 };
40 
41 enum class ConfigurationLock{
42     Invalid,
43     Enabled,
44     Disabled,
45     Partial,
46 };
47 
48 enum class TargetConfigurationLockLevel{
49     Invalid,
50     Baseline,
51 };
52 
53 enum class ConfigLockOptions{
54     Invalid,
55     Unlocked,
56     Locked,
57     LockdownUnsupported,
58     CommandUnsupported,
59 };
60 
61 NLOHMANN_JSON_SERIALIZE_ENUM(ResetToDefaultsType, {
62     {ResetToDefaultsType::Invalid, "Invalid"},
63     {ResetToDefaultsType::ResetAll, "ResetAll"},
64     {ResetToDefaultsType::PreserveVolumes, "PreserveVolumes"},
65 });
66 
67 NLOHMANN_JSON_SERIALIZE_ENUM(HotspareActivationPolicy, {
68     {HotspareActivationPolicy::Invalid, "Invalid"},
69     {HotspareActivationPolicy::OnDriveFailure, "OnDriveFailure"},
70     {HotspareActivationPolicy::OnDrivePredictedFailure, "OnDrivePredictedFailure"},
71     {HotspareActivationPolicy::OEM, "OEM"},
72 });
73 
74 NLOHMANN_JSON_SERIALIZE_ENUM(EncryptionMode, {
75     {EncryptionMode::Invalid, "Invalid"},
76     {EncryptionMode::Disabled, "Disabled"},
77     {EncryptionMode::UseExternalKey, "UseExternalKey"},
78     {EncryptionMode::UseLocalKey, "UseLocalKey"},
79     {EncryptionMode::PasswordOnly, "PasswordOnly"},
80     {EncryptionMode::PasswordWithExternalKey, "PasswordWithExternalKey"},
81     {EncryptionMode::PasswordWithLocalKey, "PasswordWithLocalKey"},
82 });
83 
84 NLOHMANN_JSON_SERIALIZE_ENUM(AutoVolumeCreate, {
85     {AutoVolumeCreate::Invalid, "Invalid"},
86     {AutoVolumeCreate::Disabled, "Disabled"},
87     {AutoVolumeCreate::NonRAID, "NonRAID"},
88     {AutoVolumeCreate::RAID0, "RAID0"},
89     {AutoVolumeCreate::RAID1, "RAID1"},
90 });
91 
92 NLOHMANN_JSON_SERIALIZE_ENUM(ConfigurationLock, {
93     {ConfigurationLock::Invalid, "Invalid"},
94     {ConfigurationLock::Enabled, "Enabled"},
95     {ConfigurationLock::Disabled, "Disabled"},
96     {ConfigurationLock::Partial, "Partial"},
97 });
98 
99 NLOHMANN_JSON_SERIALIZE_ENUM(TargetConfigurationLockLevel, {
100     {TargetConfigurationLockLevel::Invalid, "Invalid"},
101     {TargetConfigurationLockLevel::Baseline, "Baseline"},
102 });
103 
104 NLOHMANN_JSON_SERIALIZE_ENUM(ConfigLockOptions, {
105     {ConfigLockOptions::Invalid, "Invalid"},
106     {ConfigLockOptions::Unlocked, "Unlocked"},
107     {ConfigLockOptions::Locked, "Locked"},
108     {ConfigLockOptions::LockdownUnsupported, "LockdownUnsupported"},
109     {ConfigLockOptions::CommandUnsupported, "CommandUnsupported"},
110 });
111 
112 }
113 // clang-format on
114