xref: /openbmc/bmcweb/redfish-core/include/generated/enums/storage.hpp (revision 5ecf7b4e1bb6988dd3403fa80b723afbe2be30ae)
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 enum class VolumeAssignmentPolicy{
62     Invalid,
63     Unassigned,
64     Supervisor,
65     WeightedRoundRobin,
66 };
67 
68 NLOHMANN_JSON_SERIALIZE_ENUM(ResetToDefaultsType, {
69     {ResetToDefaultsType::Invalid, "Invalid"},
70     {ResetToDefaultsType::ResetAll, "ResetAll"},
71     {ResetToDefaultsType::PreserveVolumes, "PreserveVolumes"},
72 });
73 
74 NLOHMANN_JSON_SERIALIZE_ENUM(HotspareActivationPolicy, {
75     {HotspareActivationPolicy::Invalid, "Invalid"},
76     {HotspareActivationPolicy::OnDriveFailure, "OnDriveFailure"},
77     {HotspareActivationPolicy::OnDrivePredictedFailure, "OnDrivePredictedFailure"},
78     {HotspareActivationPolicy::OEM, "OEM"},
79 });
80 
81 NLOHMANN_JSON_SERIALIZE_ENUM(EncryptionMode, {
82     {EncryptionMode::Invalid, "Invalid"},
83     {EncryptionMode::Disabled, "Disabled"},
84     {EncryptionMode::UseExternalKey, "UseExternalKey"},
85     {EncryptionMode::UseLocalKey, "UseLocalKey"},
86     {EncryptionMode::PasswordOnly, "PasswordOnly"},
87     {EncryptionMode::PasswordWithExternalKey, "PasswordWithExternalKey"},
88     {EncryptionMode::PasswordWithLocalKey, "PasswordWithLocalKey"},
89 });
90 
91 NLOHMANN_JSON_SERIALIZE_ENUM(AutoVolumeCreate, {
92     {AutoVolumeCreate::Invalid, "Invalid"},
93     {AutoVolumeCreate::Disabled, "Disabled"},
94     {AutoVolumeCreate::NonRAID, "NonRAID"},
95     {AutoVolumeCreate::RAID0, "RAID0"},
96     {AutoVolumeCreate::RAID1, "RAID1"},
97 });
98 
99 NLOHMANN_JSON_SERIALIZE_ENUM(ConfigurationLock, {
100     {ConfigurationLock::Invalid, "Invalid"},
101     {ConfigurationLock::Enabled, "Enabled"},
102     {ConfigurationLock::Disabled, "Disabled"},
103     {ConfigurationLock::Partial, "Partial"},
104 });
105 
106 NLOHMANN_JSON_SERIALIZE_ENUM(TargetConfigurationLockLevel, {
107     {TargetConfigurationLockLevel::Invalid, "Invalid"},
108     {TargetConfigurationLockLevel::Baseline, "Baseline"},
109 });
110 
111 NLOHMANN_JSON_SERIALIZE_ENUM(ConfigLockOptions, {
112     {ConfigLockOptions::Invalid, "Invalid"},
113     {ConfigLockOptions::Unlocked, "Unlocked"},
114     {ConfigLockOptions::Locked, "Locked"},
115     {ConfigLockOptions::LockdownUnsupported, "LockdownUnsupported"},
116     {ConfigLockOptions::CommandUnsupported, "CommandUnsupported"},
117 });
118 
119 NLOHMANN_JSON_SERIALIZE_ENUM(VolumeAssignmentPolicy, {
120     {VolumeAssignmentPolicy::Invalid, "Invalid"},
121     {VolumeAssignmentPolicy::Unassigned, "Unassigned"},
122     {VolumeAssignmentPolicy::Supervisor, "Supervisor"},
123     {VolumeAssignmentPolicy::WeightedRoundRobin, "WeightedRoundRobin"},
124 });
125 
126 }
127 // clang-format on
128