xref: /openbmc/bmcweb/features/redfish/include/registries/storage_device_message_registry.hpp (revision 4a102cd48c588d32c0a4d6610b4a9ed616f255f3)
140e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0
240e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3665e7602SGunnar Mills #pragma once
4665e7602SGunnar Mills /****************************************************************
5665e7602SGunnar Mills  *                 READ THIS WARNING FIRST
6665e7602SGunnar Mills  * This is an auto-generated header which contains definitions
7665e7602SGunnar Mills  * for Redfish DMTF defined messages.
8665e7602SGunnar Mills  * DO NOT modify this registry outside of running the
9665e7602SGunnar Mills  * parse_registries.py script.  The definitions contained within
10665e7602SGunnar Mills  * this file are owned by DMTF.  Any modifications to these files
11665e7602SGunnar Mills  * should be first pushed to the relevant registry in the DMTF
12665e7602SGunnar Mills  * github organization.
13665e7602SGunnar Mills  ***************************************************************/
14665e7602SGunnar Mills #include "registries.hpp"
15665e7602SGunnar Mills 
16665e7602SGunnar Mills #include <array>
17665e7602SGunnar Mills 
18665e7602SGunnar Mills // clang-format off
19665e7602SGunnar Mills 
20*4a102cd4SPatrick Williams namespace redfish::registries
21665e7602SGunnar Mills {
22*4a102cd4SPatrick Williams struct StorageDevice
23*4a102cd4SPatrick Williams {
24*4a102cd4SPatrick Williams static constexpr Header header = {
25665e7602SGunnar Mills     "Copyright 2020-2023 DMTF. All rights reserved.",
26665e7602SGunnar Mills     "#MessageRegistry.v1_6_2.MessageRegistry",
2756b81992SEd Tanous     1,
2856b81992SEd Tanous     2,
2956b81992SEd Tanous     1,
30665e7602SGunnar Mills     "Storage Device Message Registry",
31665e7602SGunnar Mills     "en",
32665e7602SGunnar Mills     "This registry defines the messages for storage devices.",
33665e7602SGunnar Mills     "StorageDevice",
34665e7602SGunnar Mills     "DMTF",
35665e7602SGunnar Mills };
36*4a102cd4SPatrick Williams 
37*4a102cd4SPatrick Williams static constexpr const char* url =
38665e7602SGunnar Mills     "https://redfish.dmtf.org/registries/StorageDevice.1.2.1.json";
39665e7602SGunnar Mills 
40*4a102cd4SPatrick Williams static constexpr std::array registry =
41665e7602SGunnar Mills {
42665e7602SGunnar Mills     MessageEntry{
43665e7602SGunnar Mills         "BatteryCharging",
44665e7602SGunnar Mills         {
45665e7602SGunnar Mills             "A battery charging condition was detected.",
46665e7602SGunnar Mills             "A charging condition for the battery located in '%1' was detected.",
47665e7602SGunnar Mills             "Warning",
48665e7602SGunnar Mills             1,
49665e7602SGunnar Mills             {
50665e7602SGunnar Mills                 "string",
51665e7602SGunnar Mills             },
52665e7602SGunnar Mills             "None.  There may be reduced performance and features while the battery is charging.",
53665e7602SGunnar Mills         }},
54665e7602SGunnar Mills     MessageEntry{
55665e7602SGunnar Mills         "BatteryFailure",
56665e7602SGunnar Mills         {
57665e7602SGunnar Mills             "A battery failure condition was detected.",
58665e7602SGunnar Mills             "A failure condition for the battery located in '%1' was detected.",
59665e7602SGunnar Mills             "Critical",
60665e7602SGunnar Mills             1,
61665e7602SGunnar Mills             {
62665e7602SGunnar Mills                 "string",
63665e7602SGunnar Mills             },
64665e7602SGunnar Mills             "Ensure all cables are properly and securely connected.  Replace the failed battery.",
65665e7602SGunnar Mills         }},
66665e7602SGunnar Mills     MessageEntry{
67665e7602SGunnar Mills         "BatteryMissing",
68665e7602SGunnar Mills         {
69665e7602SGunnar Mills             "A battery missing condition was detected.",
70665e7602SGunnar Mills             "The battery located in '%1' is missing.",
71665e7602SGunnar Mills             "Critical",
72665e7602SGunnar Mills             1,
73665e7602SGunnar Mills             {
74665e7602SGunnar Mills                 "string",
75665e7602SGunnar Mills             },
76665e7602SGunnar Mills             "Attach the battery.  Ensure all cables are properly and securely connected.",
77665e7602SGunnar Mills         }},
78665e7602SGunnar Mills     MessageEntry{
79665e7602SGunnar Mills         "BatteryOK",
80665e7602SGunnar Mills         {
81665e7602SGunnar Mills             "The health of a battery has changed to OK.",
82665e7602SGunnar Mills             "The health of the battery located in '%1' has changed to OK.",
83665e7602SGunnar Mills             "OK",
84665e7602SGunnar Mills             1,
85665e7602SGunnar Mills             {
86665e7602SGunnar Mills                 "string",
87665e7602SGunnar Mills             },
88665e7602SGunnar Mills             "None.",
89665e7602SGunnar Mills         }},
90665e7602SGunnar Mills     MessageEntry{
91665e7602SGunnar Mills         "ControllerDegraded",
92665e7602SGunnar Mills         {
93665e7602SGunnar Mills             "A storage controller degraded condition was detected.",
94665e7602SGunnar Mills             "A degraded condition for the storage controller located in '%1' was detected due to reason '%2'.",
95665e7602SGunnar Mills             "Warning",
96665e7602SGunnar Mills             2,
97665e7602SGunnar Mills             {
98665e7602SGunnar Mills                 "string",
99665e7602SGunnar Mills                 "string",
100665e7602SGunnar Mills             },
101665e7602SGunnar Mills             "Reseat the storage controller in the PCI slot.  Update the controller to the latest firmware version.  If the issue persists, replace the controller.",
102665e7602SGunnar Mills         }},
103665e7602SGunnar Mills     MessageEntry{
104665e7602SGunnar Mills         "ControllerFailure",
105665e7602SGunnar Mills         {
106665e7602SGunnar Mills             "A storage controller failure was detected.",
107665e7602SGunnar Mills             "A failure condition for the storage controller located in '%1' was detected.",
108665e7602SGunnar Mills             "Critical",
109665e7602SGunnar Mills             1,
110665e7602SGunnar Mills             {
111665e7602SGunnar Mills                 "string",
112665e7602SGunnar Mills             },
113665e7602SGunnar Mills             "Reseat the storage controller in the PCI slot.  Update the controller to the latest firmware version.  If the issue persists, replace the controller.",
114665e7602SGunnar Mills         }},
115665e7602SGunnar Mills     MessageEntry{
116665e7602SGunnar Mills         "ControllerOK",
117665e7602SGunnar Mills         {
118665e7602SGunnar Mills             "The storage controller health has changed to OK.",
119665e7602SGunnar Mills             "The health of the storage controller located in '%1' has changed to OK.",
120665e7602SGunnar Mills             "OK",
121665e7602SGunnar Mills             1,
122665e7602SGunnar Mills             {
123665e7602SGunnar Mills                 "string",
124665e7602SGunnar Mills             },
125665e7602SGunnar Mills             "None.",
126665e7602SGunnar Mills         }},
127665e7602SGunnar Mills     MessageEntry{
128665e7602SGunnar Mills         "ControllerPasswordAccepted",
129665e7602SGunnar Mills         {
130665e7602SGunnar Mills             "The storage controller password was entered.",
131665e7602SGunnar Mills             "A password was entered for the storage controller located in '%1'.",
132665e7602SGunnar Mills             "OK",
133665e7602SGunnar Mills             1,
134665e7602SGunnar Mills             {
135665e7602SGunnar Mills                 "string",
136665e7602SGunnar Mills             },
137665e7602SGunnar Mills             "None.",
138665e7602SGunnar Mills         }},
139665e7602SGunnar Mills     MessageEntry{
140665e7602SGunnar Mills         "ControllerPasswordRequired",
141665e7602SGunnar Mills         {
142665e7602SGunnar Mills             "The storage controller requires a password.",
143665e7602SGunnar Mills             "The storage controller located in '%1' requires a password.",
144665e7602SGunnar Mills             "Critical",
145665e7602SGunnar Mills             1,
146665e7602SGunnar Mills             {
147665e7602SGunnar Mills                 "string",
148665e7602SGunnar Mills             },
149665e7602SGunnar Mills             "Enter the controller password.",
150665e7602SGunnar Mills         }},
151665e7602SGunnar Mills     MessageEntry{
152665e7602SGunnar Mills         "ControllerPortDegraded",
153665e7602SGunnar Mills         {
154665e7602SGunnar Mills             "A controller port degraded condition was detected.",
155665e7602SGunnar Mills             "A degraded condition for the controller port located in '%1' was detected due to reason '%2'.",
156665e7602SGunnar Mills             "Warning",
157665e7602SGunnar Mills             2,
158665e7602SGunnar Mills             {
159665e7602SGunnar Mills                 "string",
160665e7602SGunnar Mills                 "string",
161665e7602SGunnar Mills             },
162665e7602SGunnar Mills             "Ensure all cables are properly and securely connected.  Replace faulty cables.",
163665e7602SGunnar Mills         }},
164665e7602SGunnar Mills     MessageEntry{
165665e7602SGunnar Mills         "ControllerPortFailure",
166665e7602SGunnar Mills         {
167665e7602SGunnar Mills             "A controller port failure condition was detected.",
168665e7602SGunnar Mills             "A failure condition for the controller port located in '%1' was detected.",
169665e7602SGunnar Mills             "Critical",
170665e7602SGunnar Mills             1,
171665e7602SGunnar Mills             {
172665e7602SGunnar Mills                 "string",
173665e7602SGunnar Mills             },
174665e7602SGunnar Mills             "Ensure all cables are properly and securely connected.  Replace faulty cables.",
175665e7602SGunnar Mills         }},
176665e7602SGunnar Mills     MessageEntry{
177665e7602SGunnar Mills         "ControllerPortOK",
178665e7602SGunnar Mills         {
179665e7602SGunnar Mills             "The health of a controller port has changed to OK.",
180665e7602SGunnar Mills             "The health of the controller port located in '%1' has changed to OK.",
181665e7602SGunnar Mills             "OK",
182665e7602SGunnar Mills             1,
183665e7602SGunnar Mills             {
184665e7602SGunnar Mills                 "string",
185665e7602SGunnar Mills             },
186665e7602SGunnar Mills             "None.",
187665e7602SGunnar Mills         }},
188665e7602SGunnar Mills     MessageEntry{
189665e7602SGunnar Mills         "ControllerPreviousError",
190665e7602SGunnar Mills         {
191665e7602SGunnar Mills             "A storage controller error was detected prior to reboot.",
192665e7602SGunnar Mills             "A previous error condition for the storage controller located in '%1' was detected due to '%2'.",
193665e7602SGunnar Mills             "Warning",
194665e7602SGunnar Mills             2,
195665e7602SGunnar Mills             {
196665e7602SGunnar Mills                 "string",
197665e7602SGunnar Mills                 "string",
198665e7602SGunnar Mills             },
199665e7602SGunnar Mills             "Update the controller to the latest firmware version.  If the issue persists, replace the controller.",
200665e7602SGunnar Mills         }},
201665e7602SGunnar Mills     MessageEntry{
202665e7602SGunnar Mills         "DriveFailure",
203665e7602SGunnar Mills         {
204665e7602SGunnar Mills             "A drive failure condition was detected.",
205665e7602SGunnar Mills             "A failure condition for the drive located in '%1' was detected.",
206665e7602SGunnar Mills             "Critical",
207665e7602SGunnar Mills             1,
208665e7602SGunnar Mills             {
209665e7602SGunnar Mills                 "string",
210665e7602SGunnar Mills             },
211665e7602SGunnar Mills             "Ensure all cables are properly and securely connected.  Ensure all drives are fully seated.  Replace the defective cables, drive, or both.",
212665e7602SGunnar Mills         }},
213665e7602SGunnar Mills     MessageEntry{
214665e7602SGunnar Mills         "DriveFailureCleared",
215665e7602SGunnar Mills         {
216665e7602SGunnar Mills             "A previously detected failure condition on a drive was cleared.",
217665e7602SGunnar Mills             "A failure condition for the drive located in '%1' was cleared.",
218665e7602SGunnar Mills             "OK",
219665e7602SGunnar Mills             1,
220665e7602SGunnar Mills             {
221665e7602SGunnar Mills                 "string",
222665e7602SGunnar Mills             },
223665e7602SGunnar Mills             "None.",
224665e7602SGunnar Mills         }},
225665e7602SGunnar Mills     MessageEntry{
226665e7602SGunnar Mills         "DriveInserted",
227665e7602SGunnar Mills         {
228665e7602SGunnar Mills             "A drive was inserted.",
229665e7602SGunnar Mills             "The drive located in '%1' was inserted.",
230665e7602SGunnar Mills             "OK",
231665e7602SGunnar Mills             1,
232665e7602SGunnar Mills             {
233665e7602SGunnar Mills                 "string",
234665e7602SGunnar Mills             },
235665e7602SGunnar Mills             "If the drive is not properly displayed, attempt to refresh the cached data.",
236665e7602SGunnar Mills         }},
237665e7602SGunnar Mills     MessageEntry{
238665e7602SGunnar Mills         "DriveMissing",
239665e7602SGunnar Mills         {
240665e7602SGunnar Mills             "A drive missing condition was detected.",
241665e7602SGunnar Mills             "A missing condition for the drive located in '%1' was detected.",
242665e7602SGunnar Mills             "Critical",
243665e7602SGunnar Mills             1,
244665e7602SGunnar Mills             {
245665e7602SGunnar Mills                 "string",
246665e7602SGunnar Mills             },
247665e7602SGunnar 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.",
248665e7602SGunnar Mills         }},
249665e7602SGunnar Mills     MessageEntry{
250665e7602SGunnar Mills         "DriveMissingCleared",
251665e7602SGunnar Mills         {
252665e7602SGunnar Mills             "A previous drive missing condition was cleared.",
253665e7602SGunnar Mills             "A missing condition for the drive located in '%1' was cleared.",
254665e7602SGunnar Mills             "OK",
255665e7602SGunnar Mills             1,
256665e7602SGunnar Mills             {
257665e7602SGunnar Mills                 "string",
258665e7602SGunnar Mills             },
259665e7602SGunnar Mills             "None.",
260665e7602SGunnar Mills         }},
261665e7602SGunnar Mills     MessageEntry{
262665e7602SGunnar Mills         "DriveOK",
263665e7602SGunnar Mills         {
264665e7602SGunnar Mills             "The health of a drive has changed to OK.",
265665e7602SGunnar Mills             "The health of the drive located in '%1' has changed to OK.",
266665e7602SGunnar Mills             "OK",
267665e7602SGunnar Mills             1,
268665e7602SGunnar Mills             {
269665e7602SGunnar Mills                 "string",
270665e7602SGunnar Mills             },
271665e7602SGunnar Mills             "None.",
272665e7602SGunnar Mills         }},
273665e7602SGunnar Mills     MessageEntry{
274665e7602SGunnar Mills         "DriveOffline",
275665e7602SGunnar Mills         {
276665e7602SGunnar Mills             "A drive offline condition was detected.",
277665e7602SGunnar Mills             "An offline condition for the drive located in '%1' was detected.",
278665e7602SGunnar Mills             "Critical",
279665e7602SGunnar Mills             1,
280665e7602SGunnar Mills             {
281665e7602SGunnar Mills                 "string",
282665e7602SGunnar Mills             },
283665e7602SGunnar 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.",
284665e7602SGunnar Mills         }},
285665e7602SGunnar Mills     MessageEntry{
286665e7602SGunnar Mills         "DriveOfflineCleared",
287665e7602SGunnar Mills         {
288665e7602SGunnar Mills             "A drive offline condition was cleared.",
289665e7602SGunnar Mills             "An offline condition for the drive located in '%1' was cleared.",
290665e7602SGunnar Mills             "OK",
291665e7602SGunnar Mills             1,
292665e7602SGunnar Mills             {
293665e7602SGunnar Mills                 "string",
294665e7602SGunnar Mills             },
295665e7602SGunnar Mills             "None.",
296665e7602SGunnar Mills         }},
297665e7602SGunnar Mills     MessageEntry{
298665e7602SGunnar Mills         "DrivePredictiveFailure",
299665e7602SGunnar Mills         {
300665e7602SGunnar Mills             "A predictive drive failure condition was detected.",
301665e7602SGunnar Mills             "A predictive failure condition for the drive located in '%1' was detected.",
302665e7602SGunnar Mills             "Warning",
303665e7602SGunnar Mills             1,
304665e7602SGunnar Mills             {
305665e7602SGunnar Mills                 "string",
306665e7602SGunnar Mills             },
307665e7602SGunnar 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.",
308665e7602SGunnar Mills         }},
309665e7602SGunnar Mills     MessageEntry{
310665e7602SGunnar Mills         "DrivePredictiveFailureCleared",
311665e7602SGunnar Mills         {
312665e7602SGunnar Mills             "A previously detected predictive failure condition on a drive was cleared.",
313665e7602SGunnar Mills             "A predictive failure condition for the drive located in '%1' was cleared.",
314665e7602SGunnar Mills             "OK",
315665e7602SGunnar Mills             1,
316665e7602SGunnar Mills             {
317665e7602SGunnar Mills                 "string",
318665e7602SGunnar Mills             },
319665e7602SGunnar Mills             "None.",
320665e7602SGunnar Mills         }},
321665e7602SGunnar Mills     MessageEntry{
322665e7602SGunnar Mills         "DriveRemoved",
323665e7602SGunnar Mills         {
324665e7602SGunnar Mills             "A drive was removed.",
325665e7602SGunnar Mills             "The drive located in '%1' was removed.",
326665e7602SGunnar Mills             "Critical",
327665e7602SGunnar Mills             1,
328665e7602SGunnar Mills             {
329665e7602SGunnar Mills                 "string",
330665e7602SGunnar Mills             },
331665e7602SGunnar Mills             "If the drive is still displayed, attempt to refresh the cached data.",
332665e7602SGunnar Mills         }},
333665e7602SGunnar Mills     MessageEntry{
334665e7602SGunnar Mills         "VolumeDegraded",
335665e7602SGunnar Mills         {
336665e7602SGunnar Mills             "The storage controller has detected a degraded volume condition.",
337665e7602SGunnar Mills             "The volume '%1' attached to the storage controller located in '%2' is degraded.",
338665e7602SGunnar Mills             "Warning",
339665e7602SGunnar Mills             2,
340665e7602SGunnar Mills             {
341665e7602SGunnar Mills                 "string",
342665e7602SGunnar Mills                 "string",
343665e7602SGunnar Mills             },
344665e7602SGunnar Mills             "Ensure all cables are properly and securely connected.  Replace failed drives.",
345665e7602SGunnar Mills         }},
346665e7602SGunnar Mills     MessageEntry{
347665e7602SGunnar Mills         "VolumeFailure",
348665e7602SGunnar Mills         {
349665e7602SGunnar Mills             "The storage controller has detected a failed volume condition.",
350665e7602SGunnar Mills             "The volume '%1' attached to the storage controller located in '%2' has failed.",
351665e7602SGunnar Mills             "Critical",
352665e7602SGunnar Mills             2,
353665e7602SGunnar Mills             {
354665e7602SGunnar Mills                 "string",
355665e7602SGunnar Mills                 "string",
356665e7602SGunnar Mills             },
357665e7602SGunnar Mills             "Ensure all cables are properly and securely connected.  Ensure all drives are fully seated and operational.",
358665e7602SGunnar Mills         }},
359665e7602SGunnar Mills     MessageEntry{
360665e7602SGunnar Mills         "VolumeOK",
361665e7602SGunnar Mills         {
362665e7602SGunnar Mills             "A volume health has changed to OK.",
363665e7602SGunnar Mills             "The health of volume '%1' that is attached to the storage controller located in '%2' has changed to OK.",
364665e7602SGunnar Mills             "OK",
365665e7602SGunnar Mills             2,
366665e7602SGunnar Mills             {
367665e7602SGunnar Mills                 "string",
368665e7602SGunnar Mills                 "string",
369665e7602SGunnar Mills             },
370665e7602SGunnar Mills             "None.",
371665e7602SGunnar Mills         }},
372665e7602SGunnar Mills     MessageEntry{
373665e7602SGunnar Mills         "VolumeOffine",
374665e7602SGunnar Mills         {
375665e7602SGunnar Mills             "The storage controller has detected an offline volume condition.",
376665e7602SGunnar Mills             "The volume '%1' attached to the storage controller located in '%2' is offline.",
377665e7602SGunnar Mills             "Critical",
378665e7602SGunnar Mills             2,
379665e7602SGunnar Mills             {
380665e7602SGunnar Mills                 "string",
381665e7602SGunnar Mills                 "string",
382665e7602SGunnar Mills             },
383665e7602SGunnar Mills             "Use storage software to enable, repair, or import the volume.  You may also delete or move volume back to the original controller.",
384665e7602SGunnar Mills         }},
385665e7602SGunnar Mills     MessageEntry{
386665e7602SGunnar Mills         "VolumeOffline",
387665e7602SGunnar Mills         {
388665e7602SGunnar Mills             "The storage controller has detected an offline volume condition.",
389665e7602SGunnar Mills             "The volume '%1' attached to the storage controller located in '%2' is offline.",
390665e7602SGunnar Mills             "Critical",
391665e7602SGunnar Mills             2,
392665e7602SGunnar Mills             {
393665e7602SGunnar Mills                 "string",
394665e7602SGunnar Mills                 "string",
395665e7602SGunnar Mills             },
396665e7602SGunnar Mills             "Use storage software to enable, repair, or import the volume.  You may also delete or move volume back to the original controller.",
397665e7602SGunnar Mills         }},
398665e7602SGunnar Mills     MessageEntry{
399665e7602SGunnar Mills         "VolumeOfflineCleared",
400665e7602SGunnar Mills         {
401665e7602SGunnar Mills             "The storage controller has detected an online volume condition.",
402665e7602SGunnar Mills             "The volume '%1' attached to the storage controller located in '%2' is online.",
403665e7602SGunnar Mills             "OK",
404665e7602SGunnar Mills             2,
405665e7602SGunnar Mills             {
406665e7602SGunnar Mills                 "string",
407665e7602SGunnar Mills                 "string",
408665e7602SGunnar Mills             },
409665e7602SGunnar Mills             "None.",
410665e7602SGunnar Mills         }},
411665e7602SGunnar Mills     MessageEntry{
412665e7602SGunnar Mills         "WriteCacheDataLoss",
413665e7602SGunnar Mills         {
414665e7602SGunnar Mills             "The write cache is reporting loss of data in posted-writes memory.",
415665e7602SGunnar Mills             "The write cache on the storage controller located in '%1' has data loss.",
416665e7602SGunnar Mills             "Critical",
417665e7602SGunnar Mills             1,
418665e7602SGunnar Mills             {
419665e7602SGunnar Mills                 "string",
420665e7602SGunnar Mills             },
421665e7602SGunnar Mills             "Check the controller resource properties to determine the cause of the write cache data loss.",
422665e7602SGunnar Mills         }},
423665e7602SGunnar Mills     MessageEntry{
424665e7602SGunnar Mills         "WriteCacheDegraded",
425665e7602SGunnar Mills         {
426665e7602SGunnar Mills             "The write cache state is degraded.",
427665e7602SGunnar Mills             "The write cache state on the storage controller located in '%1' is degraded.",
428665e7602SGunnar Mills             "Critical",
429665e7602SGunnar Mills             1,
430665e7602SGunnar Mills             {
431665e7602SGunnar Mills                 "string",
432665e7602SGunnar Mills             },
433665e7602SGunnar Mills             "Check the controller to determine the cause of write cache degraded state, such as a missing battery or hardware failure.",
434665e7602SGunnar Mills         }},
435665e7602SGunnar Mills     MessageEntry{
436665e7602SGunnar Mills         "WriteCacheProtected",
437665e7602SGunnar Mills         {
438665e7602SGunnar Mills             "A storage controller write cache state is in protected mode.",
439665e7602SGunnar Mills             "The write cache state on the storage controller located in '%1' is in protected mode.",
440665e7602SGunnar Mills             "OK",
441665e7602SGunnar Mills             1,
442665e7602SGunnar Mills             {
443665e7602SGunnar Mills                 "string",
444665e7602SGunnar Mills             },
445665e7602SGunnar Mills             "None.",
446665e7602SGunnar Mills         }},
447665e7602SGunnar Mills     MessageEntry{
448665e7602SGunnar Mills         "WriteCacheTemporarilyDegraded",
449665e7602SGunnar Mills         {
450665e7602SGunnar Mills             "The write cache state is temporarily degraded.",
451665e7602SGunnar Mills             "The write cache state on the storage controller located in '%1' is temporarily degraded.",
452665e7602SGunnar Mills             "Warning",
453665e7602SGunnar Mills             1,
454665e7602SGunnar Mills             {
455665e7602SGunnar Mills                 "string",
456665e7602SGunnar Mills             },
457665e7602SGunnar 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.",
458665e7602SGunnar Mills         }},
459665e7602SGunnar Mills 
460665e7602SGunnar Mills };
461665e7602SGunnar Mills 
462665e7602SGunnar Mills enum class Index
463665e7602SGunnar Mills {
464665e7602SGunnar Mills     batteryCharging = 0,
465665e7602SGunnar Mills     batteryFailure = 1,
466665e7602SGunnar Mills     batteryMissing = 2,
467665e7602SGunnar Mills     batteryOK = 3,
468665e7602SGunnar Mills     controllerDegraded = 4,
469665e7602SGunnar Mills     controllerFailure = 5,
470665e7602SGunnar Mills     controllerOK = 6,
471665e7602SGunnar Mills     controllerPasswordAccepted = 7,
472665e7602SGunnar Mills     controllerPasswordRequired = 8,
473665e7602SGunnar Mills     controllerPortDegraded = 9,
474665e7602SGunnar Mills     controllerPortFailure = 10,
475665e7602SGunnar Mills     controllerPortOK = 11,
476665e7602SGunnar Mills     controllerPreviousError = 12,
477665e7602SGunnar Mills     driveFailure = 13,
478665e7602SGunnar Mills     driveFailureCleared = 14,
479665e7602SGunnar Mills     driveInserted = 15,
480665e7602SGunnar Mills     driveMissing = 16,
481665e7602SGunnar Mills     driveMissingCleared = 17,
482665e7602SGunnar Mills     driveOK = 18,
483665e7602SGunnar Mills     driveOffline = 19,
484665e7602SGunnar Mills     driveOfflineCleared = 20,
485665e7602SGunnar Mills     drivePredictiveFailure = 21,
486665e7602SGunnar Mills     drivePredictiveFailureCleared = 22,
487665e7602SGunnar Mills     driveRemoved = 23,
488665e7602SGunnar Mills     volumeDegraded = 24,
489665e7602SGunnar Mills     volumeFailure = 25,
490665e7602SGunnar Mills     volumeOK = 26,
491665e7602SGunnar Mills     volumeOffine = 27,
492665e7602SGunnar Mills     volumeOffline = 28,
493665e7602SGunnar Mills     volumeOfflineCleared = 29,
494665e7602SGunnar Mills     writeCacheDataLoss = 30,
495665e7602SGunnar Mills     writeCacheDegraded = 31,
496665e7602SGunnar Mills     writeCacheProtected = 32,
497665e7602SGunnar Mills     writeCacheTemporarilyDegraded = 33,
498665e7602SGunnar Mills };
499*4a102cd4SPatrick Williams }; // struct storage_device
500*4a102cd4SPatrick Williams 
501*4a102cd4SPatrick Williams [[gnu::constructor]] inline void registerStorageDevice()
502*4a102cd4SPatrick Williams { registerRegistry<StorageDevice>(); }
503*4a102cd4SPatrick Williams 
504*4a102cd4SPatrick Williams } // namespace redfish::registries
505