1*665e7602SGunnar Mills #pragma once
2*665e7602SGunnar Mills /****************************************************************
3*665e7602SGunnar Mills  *                 READ THIS WARNING FIRST
4*665e7602SGunnar Mills  * This is an auto-generated header which contains definitions
5*665e7602SGunnar Mills  * for Redfish DMTF defined messages.
6*665e7602SGunnar Mills  * DO NOT modify this registry outside of running the
7*665e7602SGunnar Mills  * parse_registries.py script.  The definitions contained within
8*665e7602SGunnar Mills  * this file are owned by DMTF.  Any modifications to these files
9*665e7602SGunnar Mills  * should be first pushed to the relevant registry in the DMTF
10*665e7602SGunnar Mills  * github organization.
11*665e7602SGunnar Mills  ***************************************************************/
12*665e7602SGunnar Mills #include "registries.hpp"
13*665e7602SGunnar Mills 
14*665e7602SGunnar Mills #include <array>
15*665e7602SGunnar Mills 
16*665e7602SGunnar Mills // clang-format off
17*665e7602SGunnar Mills 
18*665e7602SGunnar Mills namespace redfish::registries::storage_device
19*665e7602SGunnar Mills {
20*665e7602SGunnar Mills const Header header = {
21*665e7602SGunnar Mills     "Copyright 2020-2023 DMTF. All rights reserved.",
22*665e7602SGunnar Mills     "#MessageRegistry.v1_6_2.MessageRegistry",
23*665e7602SGunnar Mills     "StorageDevice.1.2.1",
24*665e7602SGunnar Mills     "Storage Device Message Registry",
25*665e7602SGunnar Mills     "en",
26*665e7602SGunnar Mills     "This registry defines the messages for storage devices.",
27*665e7602SGunnar Mills     "StorageDevice",
28*665e7602SGunnar Mills     "1.2.1",
29*665e7602SGunnar Mills     "DMTF",
30*665e7602SGunnar Mills };
31*665e7602SGunnar Mills constexpr const char* url =
32*665e7602SGunnar Mills     "https://redfish.dmtf.org/registries/StorageDevice.1.2.1.json";
33*665e7602SGunnar Mills 
34*665e7602SGunnar Mills constexpr std::array registry =
35*665e7602SGunnar Mills {
36*665e7602SGunnar Mills     MessageEntry{
37*665e7602SGunnar Mills         "BatteryCharging",
38*665e7602SGunnar Mills         {
39*665e7602SGunnar Mills             "A battery charging condition was detected.",
40*665e7602SGunnar Mills             "A charging condition for the battery located in '%1' was detected.",
41*665e7602SGunnar Mills             "Warning",
42*665e7602SGunnar Mills             1,
43*665e7602SGunnar Mills             {
44*665e7602SGunnar Mills                 "string",
45*665e7602SGunnar Mills             },
46*665e7602SGunnar Mills             "None.  There may be reduced performance and features while the battery is charging.",
47*665e7602SGunnar Mills         }},
48*665e7602SGunnar Mills     MessageEntry{
49*665e7602SGunnar Mills         "BatteryFailure",
50*665e7602SGunnar Mills         {
51*665e7602SGunnar Mills             "A battery failure condition was detected.",
52*665e7602SGunnar Mills             "A failure condition for the battery located in '%1' was detected.",
53*665e7602SGunnar Mills             "Critical",
54*665e7602SGunnar Mills             1,
55*665e7602SGunnar Mills             {
56*665e7602SGunnar Mills                 "string",
57*665e7602SGunnar Mills             },
58*665e7602SGunnar Mills             "Ensure all cables are properly and securely connected.  Replace the failed battery.",
59*665e7602SGunnar Mills         }},
60*665e7602SGunnar Mills     MessageEntry{
61*665e7602SGunnar Mills         "BatteryMissing",
62*665e7602SGunnar Mills         {
63*665e7602SGunnar Mills             "A battery missing condition was detected.",
64*665e7602SGunnar Mills             "The battery located in '%1' is missing.",
65*665e7602SGunnar Mills             "Critical",
66*665e7602SGunnar Mills             1,
67*665e7602SGunnar Mills             {
68*665e7602SGunnar Mills                 "string",
69*665e7602SGunnar Mills             },
70*665e7602SGunnar Mills             "Attach the battery.  Ensure all cables are properly and securely connected.",
71*665e7602SGunnar Mills         }},
72*665e7602SGunnar Mills     MessageEntry{
73*665e7602SGunnar Mills         "BatteryOK",
74*665e7602SGunnar Mills         {
75*665e7602SGunnar Mills             "The health of a battery has changed to OK.",
76*665e7602SGunnar Mills             "The health of the battery located in '%1' has changed to OK.",
77*665e7602SGunnar Mills             "OK",
78*665e7602SGunnar Mills             1,
79*665e7602SGunnar Mills             {
80*665e7602SGunnar Mills                 "string",
81*665e7602SGunnar Mills             },
82*665e7602SGunnar Mills             "None.",
83*665e7602SGunnar Mills         }},
84*665e7602SGunnar Mills     MessageEntry{
85*665e7602SGunnar Mills         "ControllerDegraded",
86*665e7602SGunnar Mills         {
87*665e7602SGunnar Mills             "A storage controller degraded condition was detected.",
88*665e7602SGunnar Mills             "A degraded condition for the storage controller located in '%1' was detected due to reason '%2'.",
89*665e7602SGunnar Mills             "Warning",
90*665e7602SGunnar Mills             2,
91*665e7602SGunnar Mills             {
92*665e7602SGunnar Mills                 "string",
93*665e7602SGunnar Mills                 "string",
94*665e7602SGunnar Mills             },
95*665e7602SGunnar Mills             "Reseat the storage controller in the PCI slot.  Update the controller to the latest firmware version.  If the issue persists, replace the controller.",
96*665e7602SGunnar Mills         }},
97*665e7602SGunnar Mills     MessageEntry{
98*665e7602SGunnar Mills         "ControllerFailure",
99*665e7602SGunnar Mills         {
100*665e7602SGunnar Mills             "A storage controller failure was detected.",
101*665e7602SGunnar Mills             "A failure condition for the storage controller located in '%1' was detected.",
102*665e7602SGunnar Mills             "Critical",
103*665e7602SGunnar Mills             1,
104*665e7602SGunnar Mills             {
105*665e7602SGunnar Mills                 "string",
106*665e7602SGunnar Mills             },
107*665e7602SGunnar Mills             "Reseat the storage controller in the PCI slot.  Update the controller to the latest firmware version.  If the issue persists, replace the controller.",
108*665e7602SGunnar Mills         }},
109*665e7602SGunnar Mills     MessageEntry{
110*665e7602SGunnar Mills         "ControllerOK",
111*665e7602SGunnar Mills         {
112*665e7602SGunnar Mills             "The storage controller health has changed to OK.",
113*665e7602SGunnar Mills             "The health of the storage controller located in '%1' has changed to OK.",
114*665e7602SGunnar Mills             "OK",
115*665e7602SGunnar Mills             1,
116*665e7602SGunnar Mills             {
117*665e7602SGunnar Mills                 "string",
118*665e7602SGunnar Mills             },
119*665e7602SGunnar Mills             "None.",
120*665e7602SGunnar Mills         }},
121*665e7602SGunnar Mills     MessageEntry{
122*665e7602SGunnar Mills         "ControllerPasswordAccepted",
123*665e7602SGunnar Mills         {
124*665e7602SGunnar Mills             "The storage controller password was entered.",
125*665e7602SGunnar Mills             "A password was entered for the storage controller located in '%1'.",
126*665e7602SGunnar Mills             "OK",
127*665e7602SGunnar Mills             1,
128*665e7602SGunnar Mills             {
129*665e7602SGunnar Mills                 "string",
130*665e7602SGunnar Mills             },
131*665e7602SGunnar Mills             "None.",
132*665e7602SGunnar Mills         }},
133*665e7602SGunnar Mills     MessageEntry{
134*665e7602SGunnar Mills         "ControllerPasswordRequired",
135*665e7602SGunnar Mills         {
136*665e7602SGunnar Mills             "The storage controller requires a password.",
137*665e7602SGunnar Mills             "The storage controller located in '%1' requires a password.",
138*665e7602SGunnar Mills             "Critical",
139*665e7602SGunnar Mills             1,
140*665e7602SGunnar Mills             {
141*665e7602SGunnar Mills                 "string",
142*665e7602SGunnar Mills             },
143*665e7602SGunnar Mills             "Enter the controller password.",
144*665e7602SGunnar Mills         }},
145*665e7602SGunnar Mills     MessageEntry{
146*665e7602SGunnar Mills         "ControllerPortDegraded",
147*665e7602SGunnar Mills         {
148*665e7602SGunnar Mills             "A controller port degraded condition was detected.",
149*665e7602SGunnar Mills             "A degraded condition for the controller port located in '%1' was detected due to reason '%2'.",
150*665e7602SGunnar Mills             "Warning",
151*665e7602SGunnar Mills             2,
152*665e7602SGunnar Mills             {
153*665e7602SGunnar Mills                 "string",
154*665e7602SGunnar Mills                 "string",
155*665e7602SGunnar Mills             },
156*665e7602SGunnar Mills             "Ensure all cables are properly and securely connected.  Replace faulty cables.",
157*665e7602SGunnar Mills         }},
158*665e7602SGunnar Mills     MessageEntry{
159*665e7602SGunnar Mills         "ControllerPortFailure",
160*665e7602SGunnar Mills         {
161*665e7602SGunnar Mills             "A controller port failure condition was detected.",
162*665e7602SGunnar Mills             "A failure condition for the controller port located in '%1' was detected.",
163*665e7602SGunnar Mills             "Critical",
164*665e7602SGunnar Mills             1,
165*665e7602SGunnar Mills             {
166*665e7602SGunnar Mills                 "string",
167*665e7602SGunnar Mills             },
168*665e7602SGunnar Mills             "Ensure all cables are properly and securely connected.  Replace faulty cables.",
169*665e7602SGunnar Mills         }},
170*665e7602SGunnar Mills     MessageEntry{
171*665e7602SGunnar Mills         "ControllerPortOK",
172*665e7602SGunnar Mills         {
173*665e7602SGunnar Mills             "The health of a controller port has changed to OK.",
174*665e7602SGunnar Mills             "The health of the controller port located in '%1' has changed to OK.",
175*665e7602SGunnar Mills             "OK",
176*665e7602SGunnar Mills             1,
177*665e7602SGunnar Mills             {
178*665e7602SGunnar Mills                 "string",
179*665e7602SGunnar Mills             },
180*665e7602SGunnar Mills             "None.",
181*665e7602SGunnar Mills         }},
182*665e7602SGunnar Mills     MessageEntry{
183*665e7602SGunnar Mills         "ControllerPreviousError",
184*665e7602SGunnar Mills         {
185*665e7602SGunnar Mills             "A storage controller error was detected prior to reboot.",
186*665e7602SGunnar Mills             "A previous error condition for the storage controller located in '%1' was detected due to '%2'.",
187*665e7602SGunnar Mills             "Warning",
188*665e7602SGunnar Mills             2,
189*665e7602SGunnar Mills             {
190*665e7602SGunnar Mills                 "string",
191*665e7602SGunnar Mills                 "string",
192*665e7602SGunnar Mills             },
193*665e7602SGunnar Mills             "Update the controller to the latest firmware version.  If the issue persists, replace the controller.",
194*665e7602SGunnar Mills         }},
195*665e7602SGunnar Mills     MessageEntry{
196*665e7602SGunnar Mills         "DriveFailure",
197*665e7602SGunnar Mills         {
198*665e7602SGunnar Mills             "A drive failure condition was detected.",
199*665e7602SGunnar Mills             "A failure condition for the drive located in '%1' was detected.",
200*665e7602SGunnar Mills             "Critical",
201*665e7602SGunnar Mills             1,
202*665e7602SGunnar Mills             {
203*665e7602SGunnar Mills                 "string",
204*665e7602SGunnar Mills             },
205*665e7602SGunnar Mills             "Ensure all cables are properly and securely connected.  Ensure all drives are fully seated.  Replace the defective cables, drive, or both.",
206*665e7602SGunnar Mills         }},
207*665e7602SGunnar Mills     MessageEntry{
208*665e7602SGunnar Mills         "DriveFailureCleared",
209*665e7602SGunnar Mills         {
210*665e7602SGunnar Mills             "A previously detected failure condition on a drive was cleared.",
211*665e7602SGunnar Mills             "A failure condition for the drive located in '%1' was cleared.",
212*665e7602SGunnar Mills             "OK",
213*665e7602SGunnar Mills             1,
214*665e7602SGunnar Mills             {
215*665e7602SGunnar Mills                 "string",
216*665e7602SGunnar Mills             },
217*665e7602SGunnar Mills             "None.",
218*665e7602SGunnar Mills         }},
219*665e7602SGunnar Mills     MessageEntry{
220*665e7602SGunnar Mills         "DriveInserted",
221*665e7602SGunnar Mills         {
222*665e7602SGunnar Mills             "A drive was inserted.",
223*665e7602SGunnar Mills             "The drive located in '%1' was inserted.",
224*665e7602SGunnar Mills             "OK",
225*665e7602SGunnar Mills             1,
226*665e7602SGunnar Mills             {
227*665e7602SGunnar Mills                 "string",
228*665e7602SGunnar Mills             },
229*665e7602SGunnar Mills             "If the drive is not properly displayed, attempt to refresh the cached data.",
230*665e7602SGunnar Mills         }},
231*665e7602SGunnar Mills     MessageEntry{
232*665e7602SGunnar Mills         "DriveMissing",
233*665e7602SGunnar Mills         {
234*665e7602SGunnar Mills             "A drive missing condition was detected.",
235*665e7602SGunnar Mills             "A missing condition for the drive located in '%1' was detected.",
236*665e7602SGunnar Mills             "Critical",
237*665e7602SGunnar Mills             1,
238*665e7602SGunnar Mills             {
239*665e7602SGunnar Mills                 "string",
240*665e7602SGunnar Mills             },
241*665e7602SGunnar Mills             "Ensure all cables are properly and securely connected.  Ensure all drives are fully seated.  Replace the defective cables, drive, or both.  Delete the volume if it is no longer needed.",
242*665e7602SGunnar Mills         }},
243*665e7602SGunnar Mills     MessageEntry{
244*665e7602SGunnar Mills         "DriveMissingCleared",
245*665e7602SGunnar Mills         {
246*665e7602SGunnar Mills             "A previous drive missing condition was cleared.",
247*665e7602SGunnar Mills             "A missing condition for the drive located in '%1' was cleared.",
248*665e7602SGunnar Mills             "OK",
249*665e7602SGunnar Mills             1,
250*665e7602SGunnar Mills             {
251*665e7602SGunnar Mills                 "string",
252*665e7602SGunnar Mills             },
253*665e7602SGunnar Mills             "None.",
254*665e7602SGunnar Mills         }},
255*665e7602SGunnar Mills     MessageEntry{
256*665e7602SGunnar Mills         "DriveOK",
257*665e7602SGunnar Mills         {
258*665e7602SGunnar Mills             "The health of a drive has changed to OK.",
259*665e7602SGunnar Mills             "The health of the drive located in '%1' has changed to OK.",
260*665e7602SGunnar Mills             "OK",
261*665e7602SGunnar Mills             1,
262*665e7602SGunnar Mills             {
263*665e7602SGunnar Mills                 "string",
264*665e7602SGunnar Mills             },
265*665e7602SGunnar Mills             "None.",
266*665e7602SGunnar Mills         }},
267*665e7602SGunnar Mills     MessageEntry{
268*665e7602SGunnar Mills         "DriveOffline",
269*665e7602SGunnar Mills         {
270*665e7602SGunnar Mills             "A drive offline condition was detected.",
271*665e7602SGunnar Mills             "An offline condition for the drive located in '%1' was detected.",
272*665e7602SGunnar Mills             "Critical",
273*665e7602SGunnar Mills             1,
274*665e7602SGunnar Mills             {
275*665e7602SGunnar Mills                 "string",
276*665e7602SGunnar Mills             },
277*665e7602SGunnar Mills             "If the drive is unconfigured or needs an import, configure the drive.  If the drive operation is in progress, wait for the operation to complete.  If the drive is not supported, replace it.",
278*665e7602SGunnar Mills         }},
279*665e7602SGunnar Mills     MessageEntry{
280*665e7602SGunnar Mills         "DriveOfflineCleared",
281*665e7602SGunnar Mills         {
282*665e7602SGunnar Mills             "A drive offline condition was cleared.",
283*665e7602SGunnar Mills             "An offline condition for the drive located in '%1' was cleared.",
284*665e7602SGunnar Mills             "OK",
285*665e7602SGunnar Mills             1,
286*665e7602SGunnar Mills             {
287*665e7602SGunnar Mills                 "string",
288*665e7602SGunnar Mills             },
289*665e7602SGunnar Mills             "None.",
290*665e7602SGunnar Mills         }},
291*665e7602SGunnar Mills     MessageEntry{
292*665e7602SGunnar Mills         "DrivePredictiveFailure",
293*665e7602SGunnar Mills         {
294*665e7602SGunnar Mills             "A predictive drive failure condition was detected.",
295*665e7602SGunnar Mills             "A predictive failure condition for the drive located in '%1' was detected.",
296*665e7602SGunnar Mills             "Warning",
297*665e7602SGunnar Mills             1,
298*665e7602SGunnar Mills             {
299*665e7602SGunnar Mills                 "string",
300*665e7602SGunnar Mills             },
301*665e7602SGunnar Mills             "If this drive is not part of a fault-tolerant volume, first back up all data, then replace the drive and restore all data afterward.  If this drive is part of a fault-tolerant volume, replace this drive as soon as possible as long as the volume health is OK.",
302*665e7602SGunnar Mills         }},
303*665e7602SGunnar Mills     MessageEntry{
304*665e7602SGunnar Mills         "DrivePredictiveFailureCleared",
305*665e7602SGunnar Mills         {
306*665e7602SGunnar Mills             "A previously detected predictive failure condition on a drive was cleared.",
307*665e7602SGunnar Mills             "A predictive failure condition for the drive located in '%1' was cleared.",
308*665e7602SGunnar Mills             "OK",
309*665e7602SGunnar Mills             1,
310*665e7602SGunnar Mills             {
311*665e7602SGunnar Mills                 "string",
312*665e7602SGunnar Mills             },
313*665e7602SGunnar Mills             "None.",
314*665e7602SGunnar Mills         }},
315*665e7602SGunnar Mills     MessageEntry{
316*665e7602SGunnar Mills         "DriveRemoved",
317*665e7602SGunnar Mills         {
318*665e7602SGunnar Mills             "A drive was removed.",
319*665e7602SGunnar Mills             "The drive located in '%1' was removed.",
320*665e7602SGunnar Mills             "Critical",
321*665e7602SGunnar Mills             1,
322*665e7602SGunnar Mills             {
323*665e7602SGunnar Mills                 "string",
324*665e7602SGunnar Mills             },
325*665e7602SGunnar Mills             "If the drive is still displayed, attempt to refresh the cached data.",
326*665e7602SGunnar Mills         }},
327*665e7602SGunnar Mills     MessageEntry{
328*665e7602SGunnar Mills         "VolumeDegraded",
329*665e7602SGunnar Mills         {
330*665e7602SGunnar Mills             "The storage controller has detected a degraded volume condition.",
331*665e7602SGunnar Mills             "The volume '%1' attached to the storage controller located in '%2' is degraded.",
332*665e7602SGunnar Mills             "Warning",
333*665e7602SGunnar Mills             2,
334*665e7602SGunnar Mills             {
335*665e7602SGunnar Mills                 "string",
336*665e7602SGunnar Mills                 "string",
337*665e7602SGunnar Mills             },
338*665e7602SGunnar Mills             "Ensure all cables are properly and securely connected.  Replace failed drives.",
339*665e7602SGunnar Mills         }},
340*665e7602SGunnar Mills     MessageEntry{
341*665e7602SGunnar Mills         "VolumeFailure",
342*665e7602SGunnar Mills         {
343*665e7602SGunnar Mills             "The storage controller has detected a failed volume condition.",
344*665e7602SGunnar Mills             "The volume '%1' attached to the storage controller located in '%2' has failed.",
345*665e7602SGunnar Mills             "Critical",
346*665e7602SGunnar Mills             2,
347*665e7602SGunnar Mills             {
348*665e7602SGunnar Mills                 "string",
349*665e7602SGunnar Mills                 "string",
350*665e7602SGunnar Mills             },
351*665e7602SGunnar Mills             "Ensure all cables are properly and securely connected.  Ensure all drives are fully seated and operational.",
352*665e7602SGunnar Mills         }},
353*665e7602SGunnar Mills     MessageEntry{
354*665e7602SGunnar Mills         "VolumeOK",
355*665e7602SGunnar Mills         {
356*665e7602SGunnar Mills             "A volume health has changed to OK.",
357*665e7602SGunnar Mills             "The health of volume '%1' that is attached to the storage controller located in '%2' has changed to OK.",
358*665e7602SGunnar Mills             "OK",
359*665e7602SGunnar Mills             2,
360*665e7602SGunnar Mills             {
361*665e7602SGunnar Mills                 "string",
362*665e7602SGunnar Mills                 "string",
363*665e7602SGunnar Mills             },
364*665e7602SGunnar Mills             "None.",
365*665e7602SGunnar Mills         }},
366*665e7602SGunnar Mills     MessageEntry{
367*665e7602SGunnar Mills         "VolumeOffine",
368*665e7602SGunnar Mills         {
369*665e7602SGunnar Mills             "The storage controller has detected an offline volume condition.",
370*665e7602SGunnar Mills             "The volume '%1' attached to the storage controller located in '%2' is offline.",
371*665e7602SGunnar Mills             "Critical",
372*665e7602SGunnar Mills             2,
373*665e7602SGunnar Mills             {
374*665e7602SGunnar Mills                 "string",
375*665e7602SGunnar Mills                 "string",
376*665e7602SGunnar Mills             },
377*665e7602SGunnar Mills             "Use storage software to enable, repair, or import the volume.  You may also delete or move volume back to the original controller.",
378*665e7602SGunnar Mills         }},
379*665e7602SGunnar Mills     MessageEntry{
380*665e7602SGunnar Mills         "VolumeOffline",
381*665e7602SGunnar Mills         {
382*665e7602SGunnar Mills             "The storage controller has detected an offline volume condition.",
383*665e7602SGunnar Mills             "The volume '%1' attached to the storage controller located in '%2' is offline.",
384*665e7602SGunnar Mills             "Critical",
385*665e7602SGunnar Mills             2,
386*665e7602SGunnar Mills             {
387*665e7602SGunnar Mills                 "string",
388*665e7602SGunnar Mills                 "string",
389*665e7602SGunnar Mills             },
390*665e7602SGunnar Mills             "Use storage software to enable, repair, or import the volume.  You may also delete or move volume back to the original controller.",
391*665e7602SGunnar Mills         }},
392*665e7602SGunnar Mills     MessageEntry{
393*665e7602SGunnar Mills         "VolumeOfflineCleared",
394*665e7602SGunnar Mills         {
395*665e7602SGunnar Mills             "The storage controller has detected an online volume condition.",
396*665e7602SGunnar Mills             "The volume '%1' attached to the storage controller located in '%2' is online.",
397*665e7602SGunnar Mills             "OK",
398*665e7602SGunnar Mills             2,
399*665e7602SGunnar Mills             {
400*665e7602SGunnar Mills                 "string",
401*665e7602SGunnar Mills                 "string",
402*665e7602SGunnar Mills             },
403*665e7602SGunnar Mills             "None.",
404*665e7602SGunnar Mills         }},
405*665e7602SGunnar Mills     MessageEntry{
406*665e7602SGunnar Mills         "WriteCacheDataLoss",
407*665e7602SGunnar Mills         {
408*665e7602SGunnar Mills             "The write cache is reporting loss of data in posted-writes memory.",
409*665e7602SGunnar Mills             "The write cache on the storage controller located in '%1' has data loss.",
410*665e7602SGunnar Mills             "Critical",
411*665e7602SGunnar Mills             1,
412*665e7602SGunnar Mills             {
413*665e7602SGunnar Mills                 "string",
414*665e7602SGunnar Mills             },
415*665e7602SGunnar Mills             "Check the controller resource properties to determine the cause of the write cache data loss.",
416*665e7602SGunnar Mills         }},
417*665e7602SGunnar Mills     MessageEntry{
418*665e7602SGunnar Mills         "WriteCacheDegraded",
419*665e7602SGunnar Mills         {
420*665e7602SGunnar Mills             "The write cache state is degraded.",
421*665e7602SGunnar Mills             "The write cache state on the storage controller located in '%1' is degraded.",
422*665e7602SGunnar Mills             "Critical",
423*665e7602SGunnar Mills             1,
424*665e7602SGunnar Mills             {
425*665e7602SGunnar Mills                 "string",
426*665e7602SGunnar Mills             },
427*665e7602SGunnar Mills             "Check the controller to determine the cause of write cache degraded state, such as a missing battery or hardware failure.",
428*665e7602SGunnar Mills         }},
429*665e7602SGunnar Mills     MessageEntry{
430*665e7602SGunnar Mills         "WriteCacheProtected",
431*665e7602SGunnar Mills         {
432*665e7602SGunnar Mills             "A storage controller write cache state is in protected mode.",
433*665e7602SGunnar Mills             "The write cache state on the storage controller located in '%1' is in protected mode.",
434*665e7602SGunnar Mills             "OK",
435*665e7602SGunnar Mills             1,
436*665e7602SGunnar Mills             {
437*665e7602SGunnar Mills                 "string",
438*665e7602SGunnar Mills             },
439*665e7602SGunnar Mills             "None.",
440*665e7602SGunnar Mills         }},
441*665e7602SGunnar Mills     MessageEntry{
442*665e7602SGunnar Mills         "WriteCacheTemporarilyDegraded",
443*665e7602SGunnar Mills         {
444*665e7602SGunnar Mills             "The write cache state is temporarily degraded.",
445*665e7602SGunnar Mills             "The write cache state on the storage controller located in '%1' is temporarily degraded.",
446*665e7602SGunnar Mills             "Warning",
447*665e7602SGunnar Mills             1,
448*665e7602SGunnar Mills             {
449*665e7602SGunnar Mills                 "string",
450*665e7602SGunnar Mills             },
451*665e7602SGunnar Mills             "Check the controller to determine the cause of write cache temporarily degraded state, such as a battery is charging or a data recovery rebuild operation is pending.",
452*665e7602SGunnar Mills         }},
453*665e7602SGunnar Mills 
454*665e7602SGunnar Mills };
455*665e7602SGunnar Mills 
456*665e7602SGunnar Mills enum class Index
457*665e7602SGunnar Mills {
458*665e7602SGunnar Mills     batteryCharging = 0,
459*665e7602SGunnar Mills     batteryFailure = 1,
460*665e7602SGunnar Mills     batteryMissing = 2,
461*665e7602SGunnar Mills     batteryOK = 3,
462*665e7602SGunnar Mills     controllerDegraded = 4,
463*665e7602SGunnar Mills     controllerFailure = 5,
464*665e7602SGunnar Mills     controllerOK = 6,
465*665e7602SGunnar Mills     controllerPasswordAccepted = 7,
466*665e7602SGunnar Mills     controllerPasswordRequired = 8,
467*665e7602SGunnar Mills     controllerPortDegraded = 9,
468*665e7602SGunnar Mills     controllerPortFailure = 10,
469*665e7602SGunnar Mills     controllerPortOK = 11,
470*665e7602SGunnar Mills     controllerPreviousError = 12,
471*665e7602SGunnar Mills     driveFailure = 13,
472*665e7602SGunnar Mills     driveFailureCleared = 14,
473*665e7602SGunnar Mills     driveInserted = 15,
474*665e7602SGunnar Mills     driveMissing = 16,
475*665e7602SGunnar Mills     driveMissingCleared = 17,
476*665e7602SGunnar Mills     driveOK = 18,
477*665e7602SGunnar Mills     driveOffline = 19,
478*665e7602SGunnar Mills     driveOfflineCleared = 20,
479*665e7602SGunnar Mills     drivePredictiveFailure = 21,
480*665e7602SGunnar Mills     drivePredictiveFailureCleared = 22,
481*665e7602SGunnar Mills     driveRemoved = 23,
482*665e7602SGunnar Mills     volumeDegraded = 24,
483*665e7602SGunnar Mills     volumeFailure = 25,
484*665e7602SGunnar Mills     volumeOK = 26,
485*665e7602SGunnar Mills     volumeOffine = 27,
486*665e7602SGunnar Mills     volumeOffline = 28,
487*665e7602SGunnar Mills     volumeOfflineCleared = 29,
488*665e7602SGunnar Mills     writeCacheDataLoss = 30,
489*665e7602SGunnar Mills     writeCacheDegraded = 31,
490*665e7602SGunnar Mills     writeCacheProtected = 32,
491*665e7602SGunnar Mills     writeCacheTemporarilyDegraded = 33,
492*665e7602SGunnar Mills };
493*665e7602SGunnar Mills } // namespace redfish::registries::storage_device
494