xref: /openbmc/bmcweb/features/redfish/src/error_messages.cpp (revision f4c4dcf438a43f04fe91f1350f88eda618cdb3e4)
1*f4c4dcf4SKowalski, Kamil /*
2*f4c4dcf4SKowalski, Kamil // Copyright (c) 2018 Intel Corporation
3*f4c4dcf4SKowalski, Kamil //
4*f4c4dcf4SKowalski, Kamil // Licensed under the Apache License, Version 2.0 (the "License");
5*f4c4dcf4SKowalski, Kamil // you may not use this file except in compliance with the License.
6*f4c4dcf4SKowalski, Kamil // You may obtain a copy of the License at
7*f4c4dcf4SKowalski, Kamil //
8*f4c4dcf4SKowalski, Kamil //      http://www.apache.org/licenses/LICENSE-2.0
9*f4c4dcf4SKowalski, Kamil //
10*f4c4dcf4SKowalski, Kamil // Unless required by applicable law or agreed to in writing, software
11*f4c4dcf4SKowalski, Kamil // distributed under the License is distributed on an "AS IS" BASIS,
12*f4c4dcf4SKowalski, Kamil // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*f4c4dcf4SKowalski, Kamil // See the License for the specific language governing permissions and
14*f4c4dcf4SKowalski, Kamil // limitations under the License.
15*f4c4dcf4SKowalski, Kamil */
16*f4c4dcf4SKowalski, Kamil #include <error_messages.hpp>
17*f4c4dcf4SKowalski, Kamil #include <crow/logging.h>
18*f4c4dcf4SKowalski, Kamil 
19*f4c4dcf4SKowalski, Kamil namespace redfish {
20*f4c4dcf4SKowalski, Kamil 
21*f4c4dcf4SKowalski, Kamil namespace messages {
22*f4c4dcf4SKowalski, Kamil 
23*f4c4dcf4SKowalski, Kamil void addMessageToErrorJson(nlohmann::json& target,
24*f4c4dcf4SKowalski, Kamil                            const nlohmann::json& message) {
25*f4c4dcf4SKowalski, Kamil   auto& error = target["error"];
26*f4c4dcf4SKowalski, Kamil 
27*f4c4dcf4SKowalski, Kamil   // If this is the first error message, fill in the information from the first
28*f4c4dcf4SKowalski, Kamil   // error message to the top level struct
29*f4c4dcf4SKowalski, Kamil   if (!error.is_object()) {
30*f4c4dcf4SKowalski, Kamil     auto message_id_iterator = message.find("MessageId");
31*f4c4dcf4SKowalski, Kamil     if (message_id_iterator == message.end()) {
32*f4c4dcf4SKowalski, Kamil       CROW_LOG_CRITICAL << "Attempt to add error message without MessageId";
33*f4c4dcf4SKowalski, Kamil       return;
34*f4c4dcf4SKowalski, Kamil     }
35*f4c4dcf4SKowalski, Kamil 
36*f4c4dcf4SKowalski, Kamil     auto message_field_iterator = message.find("Message");
37*f4c4dcf4SKowalski, Kamil     if (message_field_iterator == message.end()) {
38*f4c4dcf4SKowalski, Kamil       CROW_LOG_CRITICAL << "Attempt to add error message without Message";
39*f4c4dcf4SKowalski, Kamil       return;
40*f4c4dcf4SKowalski, Kamil     }
41*f4c4dcf4SKowalski, Kamil     // clang-format off
42*f4c4dcf4SKowalski, Kamil     error = {
43*f4c4dcf4SKowalski, Kamil         {"code", *message_id_iterator},
44*f4c4dcf4SKowalski, Kamil         {"message", *message_field_iterator}
45*f4c4dcf4SKowalski, Kamil     };
46*f4c4dcf4SKowalski, Kamil     // clang-format on
47*f4c4dcf4SKowalski, Kamil   } else {
48*f4c4dcf4SKowalski, Kamil     // More than 1 error occurred, so the message has to be generic
49*f4c4dcf4SKowalski, Kamil     error["code"] = std::string(MESSAGE_VERSION_PREFIX) + "GeneralError";
50*f4c4dcf4SKowalski, Kamil     error["message"] =
51*f4c4dcf4SKowalski, Kamil         "A general error has occurred. See ExtendedInfo for more"
52*f4c4dcf4SKowalski, Kamil         "information.";
53*f4c4dcf4SKowalski, Kamil   }
54*f4c4dcf4SKowalski, Kamil 
55*f4c4dcf4SKowalski, Kamil   // This check could technically be done in in the default construction
56*f4c4dcf4SKowalski, Kamil   // branch above, but because we need the pointer to the extended info field
57*f4c4dcf4SKowalski, Kamil   // anyway, it's more efficient to do it here.
58*f4c4dcf4SKowalski, Kamil   auto& extended_info = error[messages::MESSAGE_ANNOTATION];
59*f4c4dcf4SKowalski, Kamil   if (!extended_info.is_array()) {
60*f4c4dcf4SKowalski, Kamil     extended_info = nlohmann::json::array();
61*f4c4dcf4SKowalski, Kamil   }
62*f4c4dcf4SKowalski, Kamil 
63*f4c4dcf4SKowalski, Kamil   extended_info.push_back(message);
64*f4c4dcf4SKowalski, Kamil }
65*f4c4dcf4SKowalski, Kamil 
66*f4c4dcf4SKowalski, Kamil void addMessageToJsonRoot(nlohmann::json& target,
67*f4c4dcf4SKowalski, Kamil                           const nlohmann::json& message) {
68*f4c4dcf4SKowalski, Kamil   if (!target[messages::MESSAGE_ANNOTATION].is_array()) {
69*f4c4dcf4SKowalski, Kamil     // Force object to be an array
70*f4c4dcf4SKowalski, Kamil     target[messages::MESSAGE_ANNOTATION] = nlohmann::json::array();
71*f4c4dcf4SKowalski, Kamil   }
72*f4c4dcf4SKowalski, Kamil 
73*f4c4dcf4SKowalski, Kamil   target[messages::MESSAGE_ANNOTATION].push_back(message);
74*f4c4dcf4SKowalski, Kamil }
75*f4c4dcf4SKowalski, Kamil 
76*f4c4dcf4SKowalski, Kamil void addMessageToJson(nlohmann::json& target, const nlohmann::json& message,
77*f4c4dcf4SKowalski, Kamil                       const std::string& fieldPath) {
78*f4c4dcf4SKowalski, Kamil   nlohmann::json_pointer extendedInfo(fieldPath + messages::MESSAGE_ANNOTATION);
79*f4c4dcf4SKowalski, Kamil 
80*f4c4dcf4SKowalski, Kamil   if (!target[extendedInfo].is_array()) {
81*f4c4dcf4SKowalski, Kamil     // Force object to be an array
82*f4c4dcf4SKowalski, Kamil     target[extendedInfo] = nlohmann::json::array();
83*f4c4dcf4SKowalski, Kamil   }
84*f4c4dcf4SKowalski, Kamil 
85*f4c4dcf4SKowalski, Kamil   // Object exists and it is an array so we can just push in the message
86*f4c4dcf4SKowalski, Kamil   target[extendedInfo].push_back(message);
87*f4c4dcf4SKowalski, Kamil }
88*f4c4dcf4SKowalski, Kamil 
89*f4c4dcf4SKowalski, Kamil /*********************************
90*f4c4dcf4SKowalski, Kamil  * AUTOGENERATED FUNCTIONS START *
91*f4c4dcf4SKowalski, Kamil  *********************************/
92*f4c4dcf4SKowalski, Kamil 
93*f4c4dcf4SKowalski, Kamil /**
94*f4c4dcf4SKowalski, Kamil  * @internal
95*f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceInUse message into JSON
96*f4c4dcf4SKowalski, Kamil  *
97*f4c4dcf4SKowalski, Kamil  * See header file for more information
98*f4c4dcf4SKowalski, Kamil  * @endinternal
99*f4c4dcf4SKowalski, Kamil  */
100*f4c4dcf4SKowalski, Kamil nlohmann::json resourceInUse() {
101*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
102*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
103*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ResourceInUse"},
104*f4c4dcf4SKowalski, Kamil       {"Message",
105*f4c4dcf4SKowalski, Kamil        "The change to the requested resource failed because the resource is in "
106*f4c4dcf4SKowalski, Kamil        "use or in transition."},
107*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
108*f4c4dcf4SKowalski, Kamil       {"Resolution",
109*f4c4dcf4SKowalski, Kamil        "Remove the condition and resubmit the request if the operation "
110*f4c4dcf4SKowalski, Kamil        "failed."}};
111*f4c4dcf4SKowalski, Kamil }
112*f4c4dcf4SKowalski, Kamil 
113*f4c4dcf4SKowalski, Kamil /**
114*f4c4dcf4SKowalski, Kamil  * @internal
115*f4c4dcf4SKowalski, Kamil  * @brief Formats MalformedJSON message into JSON
116*f4c4dcf4SKowalski, Kamil  *
117*f4c4dcf4SKowalski, Kamil  * See header file for more information
118*f4c4dcf4SKowalski, Kamil  * @endinternal
119*f4c4dcf4SKowalski, Kamil  */
120*f4c4dcf4SKowalski, Kamil nlohmann::json malformedJSON() {
121*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
122*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
123*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.MalformedJSON"},
124*f4c4dcf4SKowalski, Kamil       {"Message",
125*f4c4dcf4SKowalski, Kamil        "The request body submitted was malformed JSON and could not be parsed "
126*f4c4dcf4SKowalski, Kamil        "by the receiving service."},
127*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
128*f4c4dcf4SKowalski, Kamil       {"Resolution",
129*f4c4dcf4SKowalski, Kamil        "Ensure that the request body is valid JSON and resubmit the request."}};
130*f4c4dcf4SKowalski, Kamil }
131*f4c4dcf4SKowalski, Kamil 
132*f4c4dcf4SKowalski, Kamil /**
133*f4c4dcf4SKowalski, Kamil  * @internal
134*f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceMissingAtURI message into JSON
135*f4c4dcf4SKowalski, Kamil  *
136*f4c4dcf4SKowalski, Kamil  * See header file for more information
137*f4c4dcf4SKowalski, Kamil  * @endinternal
138*f4c4dcf4SKowalski, Kamil  */
139*f4c4dcf4SKowalski, Kamil nlohmann::json resourceMissingAtURI(const std::string& arg1) {
140*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
141*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
142*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ResourceMissingAtURI"},
143*f4c4dcf4SKowalski, Kamil       {"Message", "The resource at the URI " + arg1 + " was not found."},
144*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
145*f4c4dcf4SKowalski, Kamil       {"Resolution",
146*f4c4dcf4SKowalski, Kamil        "Place a valid resource at the URI or correct the URI and resubmit the "
147*f4c4dcf4SKowalski, Kamil        "request."}};
148*f4c4dcf4SKowalski, Kamil }
149*f4c4dcf4SKowalski, Kamil 
150*f4c4dcf4SKowalski, Kamil /**
151*f4c4dcf4SKowalski, Kamil  * @internal
152*f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterValueFormatError message into JSON
153*f4c4dcf4SKowalski, Kamil  *
154*f4c4dcf4SKowalski, Kamil  * See header file for more information
155*f4c4dcf4SKowalski, Kamil  * @endinternal
156*f4c4dcf4SKowalski, Kamil  */
157*f4c4dcf4SKowalski, Kamil nlohmann::json actionParameterValueFormatError(const std::string& arg1,
158*f4c4dcf4SKowalski, Kamil                                                const std::string& arg2,
159*f4c4dcf4SKowalski, Kamil                                                const std::string& arg3) {
160*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
161*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
162*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ActionParameterValueFormatError"},
163*f4c4dcf4SKowalski, Kamil       {"Message",
164*f4c4dcf4SKowalski, Kamil        "The value " + arg1 + " for the parameter " + arg2 + " in the action " +
165*f4c4dcf4SKowalski, Kamil            arg3 + " is of a different format than the parameter can accept."},
166*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
167*f4c4dcf4SKowalski, Kamil       {"Resolution",
168*f4c4dcf4SKowalski, Kamil        "Correct the value for the parameter in the request body and resubmit "
169*f4c4dcf4SKowalski, Kamil        "the request if the operation failed."}};
170*f4c4dcf4SKowalski, Kamil }
171*f4c4dcf4SKowalski, Kamil 
172*f4c4dcf4SKowalski, Kamil /**
173*f4c4dcf4SKowalski, Kamil  * @internal
174*f4c4dcf4SKowalski, Kamil  * @brief Formats InternalError message into JSON
175*f4c4dcf4SKowalski, Kamil  *
176*f4c4dcf4SKowalski, Kamil  * See header file for more information
177*f4c4dcf4SKowalski, Kamil  * @endinternal
178*f4c4dcf4SKowalski, Kamil  */
179*f4c4dcf4SKowalski, Kamil nlohmann::json internalError() {
180*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
181*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
182*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.InternalError"},
183*f4c4dcf4SKowalski, Kamil       {"Message",
184*f4c4dcf4SKowalski, Kamil        "The request failed due to an internal service error.  The service is "
185*f4c4dcf4SKowalski, Kamil        "still operational."},
186*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
187*f4c4dcf4SKowalski, Kamil       {"Resolution",
188*f4c4dcf4SKowalski, Kamil        "Resubmit the request.  If the problem persists, consider resetting the "
189*f4c4dcf4SKowalski, Kamil        "service."}};
190*f4c4dcf4SKowalski, Kamil }
191*f4c4dcf4SKowalski, Kamil 
192*f4c4dcf4SKowalski, Kamil /**
193*f4c4dcf4SKowalski, Kamil  * @internal
194*f4c4dcf4SKowalski, Kamil  * @brief Formats UnrecognizedRequestBody message into JSON
195*f4c4dcf4SKowalski, Kamil  *
196*f4c4dcf4SKowalski, Kamil  * See header file for more information
197*f4c4dcf4SKowalski, Kamil  * @endinternal
198*f4c4dcf4SKowalski, Kamil  */
199*f4c4dcf4SKowalski, Kamil nlohmann::json unrecognizedRequestBody() {
200*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
201*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
202*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.UnrecognizedRequestBody"},
203*f4c4dcf4SKowalski, Kamil       {"Message",
204*f4c4dcf4SKowalski, Kamil        "The service detected a malformed request body that it was unable to "
205*f4c4dcf4SKowalski, Kamil        "interpret."},
206*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
207*f4c4dcf4SKowalski, Kamil       {"Resolution",
208*f4c4dcf4SKowalski, Kamil        "Correct the request body and resubmit the request if it failed."}};
209*f4c4dcf4SKowalski, Kamil }
210*f4c4dcf4SKowalski, Kamil 
211*f4c4dcf4SKowalski, Kamil /**
212*f4c4dcf4SKowalski, Kamil  * @internal
213*f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceAtUriUnauthorized message into JSON
214*f4c4dcf4SKowalski, Kamil  *
215*f4c4dcf4SKowalski, Kamil  * See header file for more information
216*f4c4dcf4SKowalski, Kamil  * @endinternal
217*f4c4dcf4SKowalski, Kamil  */
218*f4c4dcf4SKowalski, Kamil nlohmann::json resourceAtUriUnauthorized(const std::string& arg1,
219*f4c4dcf4SKowalski, Kamil                                          const std::string& arg2) {
220*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
221*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
222*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ResourceAtUriUnauthorized"},
223*f4c4dcf4SKowalski, Kamil       {"Message", "While accessing the resource at " + arg1 +
224*f4c4dcf4SKowalski, Kamil                       ", the service received an authorization error " + arg2 +
225*f4c4dcf4SKowalski, Kamil                       "."},
226*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
227*f4c4dcf4SKowalski, Kamil       {"Resolution",
228*f4c4dcf4SKowalski, Kamil        "Ensure that the appropriate access is provided for the service in "
229*f4c4dcf4SKowalski, Kamil        "order for it to access the URI."}};
230*f4c4dcf4SKowalski, Kamil }
231*f4c4dcf4SKowalski, Kamil 
232*f4c4dcf4SKowalski, Kamil /**
233*f4c4dcf4SKowalski, Kamil  * @internal
234*f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterUnknown message into JSON
235*f4c4dcf4SKowalski, Kamil  *
236*f4c4dcf4SKowalski, Kamil  * See header file for more information
237*f4c4dcf4SKowalski, Kamil  * @endinternal
238*f4c4dcf4SKowalski, Kamil  */
239*f4c4dcf4SKowalski, Kamil nlohmann::json actionParameterUnknown(const std::string& arg1,
240*f4c4dcf4SKowalski, Kamil                                       const std::string& arg2) {
241*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
242*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
243*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ActionParameterUnknown"},
244*f4c4dcf4SKowalski, Kamil       {"Message", "The action " + arg1 +
245*f4c4dcf4SKowalski, Kamil                       " was submitted with the invalid parameter " + arg2 +
246*f4c4dcf4SKowalski, Kamil                       "."},
247*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
248*f4c4dcf4SKowalski, Kamil       {"Resolution",
249*f4c4dcf4SKowalski, Kamil        "Correct the invalid parameter and resubmit the request if the "
250*f4c4dcf4SKowalski, Kamil        "operation failed."}};
251*f4c4dcf4SKowalski, Kamil }
252*f4c4dcf4SKowalski, Kamil 
253*f4c4dcf4SKowalski, Kamil /**
254*f4c4dcf4SKowalski, Kamil  * @internal
255*f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceCannotBeDeleted message into JSON
256*f4c4dcf4SKowalski, Kamil  *
257*f4c4dcf4SKowalski, Kamil  * See header file for more information
258*f4c4dcf4SKowalski, Kamil  * @endinternal
259*f4c4dcf4SKowalski, Kamil  */
260*f4c4dcf4SKowalski, Kamil nlohmann::json resourceCannotBeDeleted() {
261*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
262*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
263*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ResourceCannotBeDeleted"},
264*f4c4dcf4SKowalski, Kamil       {"Message",
265*f4c4dcf4SKowalski, Kamil        "The delete request failed because the resource requested cannot be "
266*f4c4dcf4SKowalski, Kamil        "deleted."},
267*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
268*f4c4dcf4SKowalski, Kamil       {"Resolution", "Do not attempt to delete a non-deletable resource."}};
269*f4c4dcf4SKowalski, Kamil }
270*f4c4dcf4SKowalski, Kamil 
271*f4c4dcf4SKowalski, Kamil /**
272*f4c4dcf4SKowalski, Kamil  * @internal
273*f4c4dcf4SKowalski, Kamil  * @brief Formats PropertyDuplicate message into JSON
274*f4c4dcf4SKowalski, Kamil  *
275*f4c4dcf4SKowalski, Kamil  * See header file for more information
276*f4c4dcf4SKowalski, Kamil  * @endinternal
277*f4c4dcf4SKowalski, Kamil  */
278*f4c4dcf4SKowalski, Kamil nlohmann::json propertyDuplicate(const std::string& arg1) {
279*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
280*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
281*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.PropertyDuplicate"},
282*f4c4dcf4SKowalski, Kamil       {"Message", "The property " + arg1 + " was duplicated in the request."},
283*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
284*f4c4dcf4SKowalski, Kamil       {"Resolution",
285*f4c4dcf4SKowalski, Kamil        "Remove the duplicate property from the request body and resubmit the "
286*f4c4dcf4SKowalski, Kamil        "request if the operation failed."}};
287*f4c4dcf4SKowalski, Kamil }
288*f4c4dcf4SKowalski, Kamil 
289*f4c4dcf4SKowalski, Kamil /**
290*f4c4dcf4SKowalski, Kamil  * @internal
291*f4c4dcf4SKowalski, Kamil  * @brief Formats ServiceTemporarilyUnavailable message into JSON
292*f4c4dcf4SKowalski, Kamil  *
293*f4c4dcf4SKowalski, Kamil  * See header file for more information
294*f4c4dcf4SKowalski, Kamil  * @endinternal
295*f4c4dcf4SKowalski, Kamil  */
296*f4c4dcf4SKowalski, Kamil nlohmann::json serviceTemporarilyUnavailable(const std::string& arg1) {
297*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
298*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
299*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ServiceTemporarilyUnavailable"},
300*f4c4dcf4SKowalski, Kamil       {"Message", "The service is temporarily unavailable.  Retry in " + arg1 +
301*f4c4dcf4SKowalski, Kamil                       " seconds."},
302*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
303*f4c4dcf4SKowalski, Kamil       {"Resolution",
304*f4c4dcf4SKowalski, Kamil        "Wait for the indicated retry duration and retry the operation."}};
305*f4c4dcf4SKowalski, Kamil }
306*f4c4dcf4SKowalski, Kamil 
307*f4c4dcf4SKowalski, Kamil /**
308*f4c4dcf4SKowalski, Kamil  * @internal
309*f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceAlreadyExists message into JSON
310*f4c4dcf4SKowalski, Kamil  *
311*f4c4dcf4SKowalski, Kamil  * See header file for more information
312*f4c4dcf4SKowalski, Kamil  * @endinternal
313*f4c4dcf4SKowalski, Kamil  */
314*f4c4dcf4SKowalski, Kamil nlohmann::json resourceAlreadyExists(const std::string& arg1,
315*f4c4dcf4SKowalski, Kamil                                      const std::string& arg2,
316*f4c4dcf4SKowalski, Kamil                                      const std::string& arg3) {
317*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
318*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
319*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ResourceAlreadyExists"},
320*f4c4dcf4SKowalski, Kamil       {"Message", "The requested resource of type " + arg1 +
321*f4c4dcf4SKowalski, Kamil                       " with the property " + arg2 + " with the value " + arg3 +
322*f4c4dcf4SKowalski, Kamil                       " already exists."},
323*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
324*f4c4dcf4SKowalski, Kamil       {"Resolution",
325*f4c4dcf4SKowalski, Kamil        "Do not repeat the create operation as the resource has already been "
326*f4c4dcf4SKowalski, Kamil        "created."}};
327*f4c4dcf4SKowalski, Kamil }
328*f4c4dcf4SKowalski, Kamil 
329*f4c4dcf4SKowalski, Kamil /**
330*f4c4dcf4SKowalski, Kamil  * @internal
331*f4c4dcf4SKowalski, Kamil  * @brief Formats AccountForSessionNoLongerExists message into JSON
332*f4c4dcf4SKowalski, Kamil  *
333*f4c4dcf4SKowalski, Kamil  * See header file for more information
334*f4c4dcf4SKowalski, Kamil  * @endinternal
335*f4c4dcf4SKowalski, Kamil  */
336*f4c4dcf4SKowalski, Kamil nlohmann::json accountForSessionNoLongerExists() {
337*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
338*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
339*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.AccountForSessionNoLongerExists"},
340*f4c4dcf4SKowalski, Kamil       {"Message",
341*f4c4dcf4SKowalski, Kamil        "The account for the current session has been removed, thus the current "
342*f4c4dcf4SKowalski, Kamil        "session has been removed as well."},
343*f4c4dcf4SKowalski, Kamil       {"Severity", "OK"},
344*f4c4dcf4SKowalski, Kamil       {"Resolution", "Attempt to connect with a valid account."}};
345*f4c4dcf4SKowalski, Kamil }
346*f4c4dcf4SKowalski, Kamil 
347*f4c4dcf4SKowalski, Kamil /**
348*f4c4dcf4SKowalski, Kamil  * @internal
349*f4c4dcf4SKowalski, Kamil  * @brief Formats CreateFailedMissingReqProperties message into JSON
350*f4c4dcf4SKowalski, Kamil  *
351*f4c4dcf4SKowalski, Kamil  * See header file for more information
352*f4c4dcf4SKowalski, Kamil  * @endinternal
353*f4c4dcf4SKowalski, Kamil  */
354*f4c4dcf4SKowalski, Kamil nlohmann::json createFailedMissingReqProperties(const std::string& arg1) {
355*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
356*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
357*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.CreateFailedMissingReqProperties"},
358*f4c4dcf4SKowalski, Kamil       {"Message", "The create operation failed because the required property " +
359*f4c4dcf4SKowalski, Kamil                       arg1 + " was missing from the request."},
360*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
361*f4c4dcf4SKowalski, Kamil       {"Resolution",
362*f4c4dcf4SKowalski, Kamil        "Correct the body to include the required property with a valid value "
363*f4c4dcf4SKowalski, Kamil        "and resubmit the request if the operation failed."}};
364*f4c4dcf4SKowalski, Kamil }
365*f4c4dcf4SKowalski, Kamil 
366*f4c4dcf4SKowalski, Kamil /**
367*f4c4dcf4SKowalski, Kamil  * @internal
368*f4c4dcf4SKowalski, Kamil  * @brief Formats PropertyValueFormatError message into JSON
369*f4c4dcf4SKowalski, Kamil  *
370*f4c4dcf4SKowalski, Kamil  * See header file for more information
371*f4c4dcf4SKowalski, Kamil  * @endinternal
372*f4c4dcf4SKowalski, Kamil  */
373*f4c4dcf4SKowalski, Kamil nlohmann::json propertyValueFormatError(const std::string& arg1,
374*f4c4dcf4SKowalski, Kamil                                         const std::string& arg2) {
375*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
376*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
377*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.PropertyValueFormatError"},
378*f4c4dcf4SKowalski, Kamil       {"Message",
379*f4c4dcf4SKowalski, Kamil        "The value " + arg1 + " for the property " + arg2 +
380*f4c4dcf4SKowalski, Kamil            " is of a different format than the property can accept."},
381*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
382*f4c4dcf4SKowalski, Kamil       {"Resolution",
383*f4c4dcf4SKowalski, Kamil        "Correct the value for the property in the request body and resubmit "
384*f4c4dcf4SKowalski, Kamil        "the request if the operation failed."}};
385*f4c4dcf4SKowalski, Kamil }
386*f4c4dcf4SKowalski, Kamil 
387*f4c4dcf4SKowalski, Kamil /**
388*f4c4dcf4SKowalski, Kamil  * @internal
389*f4c4dcf4SKowalski, Kamil  * @brief Formats PropertyValueNotInList message into JSON
390*f4c4dcf4SKowalski, Kamil  *
391*f4c4dcf4SKowalski, Kamil  * See header file for more information
392*f4c4dcf4SKowalski, Kamil  * @endinternal
393*f4c4dcf4SKowalski, Kamil  */
394*f4c4dcf4SKowalski, Kamil nlohmann::json propertyValueNotInList(const std::string& arg1,
395*f4c4dcf4SKowalski, Kamil                                       const std::string& arg2) {
396*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
397*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
398*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.PropertyValueNotInList"},
399*f4c4dcf4SKowalski, Kamil       {"Message", "The value " + arg1 + " for the property " + arg2 +
400*f4c4dcf4SKowalski, Kamil                       " is not in the list of acceptable values."},
401*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
402*f4c4dcf4SKowalski, Kamil       {"Resolution",
403*f4c4dcf4SKowalski, Kamil        "Choose a value from the enumeration list that the implementation can "
404*f4c4dcf4SKowalski, Kamil        "support and resubmit the request if the operation failed."}};
405*f4c4dcf4SKowalski, Kamil }
406*f4c4dcf4SKowalski, Kamil 
407*f4c4dcf4SKowalski, Kamil /**
408*f4c4dcf4SKowalski, Kamil  * @internal
409*f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceAtUriInUnknownFormat message into JSON
410*f4c4dcf4SKowalski, Kamil  *
411*f4c4dcf4SKowalski, Kamil  * See header file for more information
412*f4c4dcf4SKowalski, Kamil  * @endinternal
413*f4c4dcf4SKowalski, Kamil  */
414*f4c4dcf4SKowalski, Kamil nlohmann::json resourceAtUriInUnknownFormat(const std::string& arg1) {
415*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
416*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
417*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ResourceAtUriInUnknownFormat"},
418*f4c4dcf4SKowalski, Kamil       {"Message", "The resource at " + arg1 +
419*f4c4dcf4SKowalski, Kamil                       " is in a format not recognized by the service."},
420*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
421*f4c4dcf4SKowalski, Kamil       {"Resolution",
422*f4c4dcf4SKowalski, Kamil        "Place an image or resource or file that is recognized by the service "
423*f4c4dcf4SKowalski, Kamil        "at the URI."}};
424*f4c4dcf4SKowalski, Kamil }
425*f4c4dcf4SKowalski, Kamil 
426*f4c4dcf4SKowalski, Kamil /**
427*f4c4dcf4SKowalski, Kamil  * @internal
428*f4c4dcf4SKowalski, Kamil  * @brief Formats ServiceInUnknownState message into JSON
429*f4c4dcf4SKowalski, Kamil  *
430*f4c4dcf4SKowalski, Kamil  * See header file for more information
431*f4c4dcf4SKowalski, Kamil  * @endinternal
432*f4c4dcf4SKowalski, Kamil  */
433*f4c4dcf4SKowalski, Kamil nlohmann::json serviceInUnknownState() {
434*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
435*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
436*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ServiceInUnknownState"},
437*f4c4dcf4SKowalski, Kamil       {"Message",
438*f4c4dcf4SKowalski, Kamil        "The operation failed because the service is in an unknown state and "
439*f4c4dcf4SKowalski, Kamil        "can no longer take incoming requests."},
440*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
441*f4c4dcf4SKowalski, Kamil       {"Resolution",
442*f4c4dcf4SKowalski, Kamil        "Restart the service and resubmit the request if the operation "
443*f4c4dcf4SKowalski, Kamil        "failed."}};
444*f4c4dcf4SKowalski, Kamil }
445*f4c4dcf4SKowalski, Kamil 
446*f4c4dcf4SKowalski, Kamil /**
447*f4c4dcf4SKowalski, Kamil  * @internal
448*f4c4dcf4SKowalski, Kamil  * @brief Formats EventSubscriptionLimitExceeded message into JSON
449*f4c4dcf4SKowalski, Kamil  *
450*f4c4dcf4SKowalski, Kamil  * See header file for more information
451*f4c4dcf4SKowalski, Kamil  * @endinternal
452*f4c4dcf4SKowalski, Kamil  */
453*f4c4dcf4SKowalski, Kamil nlohmann::json eventSubscriptionLimitExceeded() {
454*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
455*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
456*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.EventSubscriptionLimitExceeded"},
457*f4c4dcf4SKowalski, Kamil       {"Message",
458*f4c4dcf4SKowalski, Kamil        "The event subscription failed due to the number of simultaneous "
459*f4c4dcf4SKowalski, Kamil        "subscriptions exceeding the limit of the implementation."},
460*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
461*f4c4dcf4SKowalski, Kamil       {"Resolution",
462*f4c4dcf4SKowalski, Kamil        "Reduce the number of other subscriptions before trying to establish "
463*f4c4dcf4SKowalski, Kamil        "the event subscription or increase the limit of simultaneous "
464*f4c4dcf4SKowalski, Kamil        "subscriptions (if supported)."}};
465*f4c4dcf4SKowalski, Kamil }
466*f4c4dcf4SKowalski, Kamil 
467*f4c4dcf4SKowalski, Kamil /**
468*f4c4dcf4SKowalski, Kamil  * @internal
469*f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterMissing message into JSON
470*f4c4dcf4SKowalski, Kamil  *
471*f4c4dcf4SKowalski, Kamil  * See header file for more information
472*f4c4dcf4SKowalski, Kamil  * @endinternal
473*f4c4dcf4SKowalski, Kamil  */
474*f4c4dcf4SKowalski, Kamil nlohmann::json actionParameterMissing(const std::string& arg1,
475*f4c4dcf4SKowalski, Kamil                                       const std::string& arg2) {
476*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
477*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
478*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ActionParameterMissing"},
479*f4c4dcf4SKowalski, Kamil       {"Message", "The action " + arg1 + " requires the parameter " + arg2 +
480*f4c4dcf4SKowalski, Kamil                       " to be present in the request body."},
481*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
482*f4c4dcf4SKowalski, Kamil       {"Resolution",
483*f4c4dcf4SKowalski, Kamil        "Supply the action with the required parameter in the request body when "
484*f4c4dcf4SKowalski, Kamil        "the request is resubmitted."}};
485*f4c4dcf4SKowalski, Kamil }
486*f4c4dcf4SKowalski, Kamil 
487*f4c4dcf4SKowalski, Kamil /**
488*f4c4dcf4SKowalski, Kamil  * @internal
489*f4c4dcf4SKowalski, Kamil  * @brief Formats StringValueTooLong message into JSON
490*f4c4dcf4SKowalski, Kamil  *
491*f4c4dcf4SKowalski, Kamil  * See header file for more information
492*f4c4dcf4SKowalski, Kamil  * @endinternal
493*f4c4dcf4SKowalski, Kamil  */
494*f4c4dcf4SKowalski, Kamil nlohmann::json stringValueTooLong(const std::string& arg1, const int& arg2) {
495*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
496*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
497*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.StringValueTooLong"},
498*f4c4dcf4SKowalski, Kamil       {"Message", "The string " + arg1 + " exceeds the length limit " +
499*f4c4dcf4SKowalski, Kamil                       std::to_string(arg2) + "."},
500*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
501*f4c4dcf4SKowalski, Kamil       {"Resolution",
502*f4c4dcf4SKowalski, Kamil        "Resubmit the request with an appropriate string length."}};
503*f4c4dcf4SKowalski, Kamil }
504*f4c4dcf4SKowalski, Kamil 
505*f4c4dcf4SKowalski, Kamil /**
506*f4c4dcf4SKowalski, Kamil  * @internal
507*f4c4dcf4SKowalski, Kamil  * @brief Formats PropertyValueTypeError message into JSON
508*f4c4dcf4SKowalski, Kamil  *
509*f4c4dcf4SKowalski, Kamil  * See header file for more information
510*f4c4dcf4SKowalski, Kamil  * @endinternal
511*f4c4dcf4SKowalski, Kamil  */
512*f4c4dcf4SKowalski, Kamil nlohmann::json propertyValueTypeError(const std::string& arg1,
513*f4c4dcf4SKowalski, Kamil                                       const std::string& arg2) {
514*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
515*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
516*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.PropertyValueTypeError"},
517*f4c4dcf4SKowalski, Kamil       {"Message", "The value " + arg1 + " for the property " + arg2 +
518*f4c4dcf4SKowalski, Kamil                       " is of a different type than the property can accept."},
519*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
520*f4c4dcf4SKowalski, Kamil       {"Resolution",
521*f4c4dcf4SKowalski, Kamil        "Correct the value for the property in the request body and resubmit "
522*f4c4dcf4SKowalski, Kamil        "the request if the operation failed."}};
523*f4c4dcf4SKowalski, Kamil }
524*f4c4dcf4SKowalski, Kamil 
525*f4c4dcf4SKowalski, Kamil /**
526*f4c4dcf4SKowalski, Kamil  * @internal
527*f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceNotFound message into JSON
528*f4c4dcf4SKowalski, Kamil  *
529*f4c4dcf4SKowalski, Kamil  * See header file for more information
530*f4c4dcf4SKowalski, Kamil  * @endinternal
531*f4c4dcf4SKowalski, Kamil  */
532*f4c4dcf4SKowalski, Kamil nlohmann::json resourceNotFound(const std::string& arg1,
533*f4c4dcf4SKowalski, Kamil                                 const std::string& arg2) {
534*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
535*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
536*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ResourceNotFound"},
537*f4c4dcf4SKowalski, Kamil       {"Message", "The requested resource of type " + arg1 + " named " + arg2 +
538*f4c4dcf4SKowalski, Kamil                       " was not found."},
539*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
540*f4c4dcf4SKowalski, Kamil       {"Resolution",
541*f4c4dcf4SKowalski, Kamil        "Provide a valid resource identifier and resubmit the request."}};
542*f4c4dcf4SKowalski, Kamil }
543*f4c4dcf4SKowalski, Kamil 
544*f4c4dcf4SKowalski, Kamil /**
545*f4c4dcf4SKowalski, Kamil  * @internal
546*f4c4dcf4SKowalski, Kamil  * @brief Formats CouldNotEstablishConnection message into JSON
547*f4c4dcf4SKowalski, Kamil  *
548*f4c4dcf4SKowalski, Kamil  * See header file for more information
549*f4c4dcf4SKowalski, Kamil  * @endinternal
550*f4c4dcf4SKowalski, Kamil  */
551*f4c4dcf4SKowalski, Kamil nlohmann::json couldNotEstablishConnection(const std::string& arg1) {
552*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
553*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
554*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.CouldNotEstablishConnection"},
555*f4c4dcf4SKowalski, Kamil       {"Message", "The service failed to establish a connection with the URI " +
556*f4c4dcf4SKowalski, Kamil                       arg1 + "."},
557*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
558*f4c4dcf4SKowalski, Kamil       {"Resolution",
559*f4c4dcf4SKowalski, Kamil        "Ensure that the URI contains a valid and reachable node name, protocol "
560*f4c4dcf4SKowalski, Kamil        "information and other URI components."}};
561*f4c4dcf4SKowalski, Kamil }
562*f4c4dcf4SKowalski, Kamil 
563*f4c4dcf4SKowalski, Kamil /**
564*f4c4dcf4SKowalski, Kamil  * @internal
565*f4c4dcf4SKowalski, Kamil  * @brief Formats PropertyNotWritable message into JSON
566*f4c4dcf4SKowalski, Kamil  *
567*f4c4dcf4SKowalski, Kamil  * See header file for more information
568*f4c4dcf4SKowalski, Kamil  * @endinternal
569*f4c4dcf4SKowalski, Kamil  */
570*f4c4dcf4SKowalski, Kamil nlohmann::json propertyNotWritable(const std::string& arg1) {
571*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
572*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
573*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.PropertyNotWritable"},
574*f4c4dcf4SKowalski, Kamil       {"Message",
575*f4c4dcf4SKowalski, Kamil        "The property " + arg1 +
576*f4c4dcf4SKowalski, Kamil            " is a read only property and cannot be assigned a value."},
577*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
578*f4c4dcf4SKowalski, Kamil       {"Resolution",
579*f4c4dcf4SKowalski, Kamil        "Remove the property from the request body and resubmit the request if "
580*f4c4dcf4SKowalski, Kamil        "the operation failed."}};
581*f4c4dcf4SKowalski, Kamil }
582*f4c4dcf4SKowalski, Kamil 
583*f4c4dcf4SKowalski, Kamil /**
584*f4c4dcf4SKowalski, Kamil  * @internal
585*f4c4dcf4SKowalski, Kamil  * @brief Formats QueryParameterValueTypeError message into JSON
586*f4c4dcf4SKowalski, Kamil  *
587*f4c4dcf4SKowalski, Kamil  * See header file for more information
588*f4c4dcf4SKowalski, Kamil  * @endinternal
589*f4c4dcf4SKowalski, Kamil  */
590*f4c4dcf4SKowalski, Kamil nlohmann::json queryParameterValueTypeError(const std::string& arg1,
591*f4c4dcf4SKowalski, Kamil                                             const std::string& arg2) {
592*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
593*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
594*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.QueryParameterValueTypeError"},
595*f4c4dcf4SKowalski, Kamil       {"Message", "The value " + arg1 + " for the query parameter " + arg2 +
596*f4c4dcf4SKowalski, Kamil                       " is of a different type than the parameter can accept."},
597*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
598*f4c4dcf4SKowalski, Kamil       {"Resolution",
599*f4c4dcf4SKowalski, Kamil        "Correct the value for the query parameter in the request and resubmit "
600*f4c4dcf4SKowalski, Kamil        "the request if the operation failed."}};
601*f4c4dcf4SKowalski, Kamil }
602*f4c4dcf4SKowalski, Kamil 
603*f4c4dcf4SKowalski, Kamil /**
604*f4c4dcf4SKowalski, Kamil  * @internal
605*f4c4dcf4SKowalski, Kamil  * @brief Formats ServiceShuttingDown message into JSON
606*f4c4dcf4SKowalski, Kamil  *
607*f4c4dcf4SKowalski, Kamil  * See header file for more information
608*f4c4dcf4SKowalski, Kamil  * @endinternal
609*f4c4dcf4SKowalski, Kamil  */
610*f4c4dcf4SKowalski, Kamil nlohmann::json serviceShuttingDown() {
611*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
612*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
613*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ServiceShuttingDown"},
614*f4c4dcf4SKowalski, Kamil       {"Message",
615*f4c4dcf4SKowalski, Kamil        "The operation failed because the service is shutting down and can no "
616*f4c4dcf4SKowalski, Kamil        "longer take incoming requests."},
617*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
618*f4c4dcf4SKowalski, Kamil       {"Resolution",
619*f4c4dcf4SKowalski, Kamil        "When the service becomes available, resubmit the request if the "
620*f4c4dcf4SKowalski, Kamil        "operation failed."}};
621*f4c4dcf4SKowalski, Kamil }
622*f4c4dcf4SKowalski, Kamil 
623*f4c4dcf4SKowalski, Kamil /**
624*f4c4dcf4SKowalski, Kamil  * @internal
625*f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterDuplicate message into JSON
626*f4c4dcf4SKowalski, Kamil  *
627*f4c4dcf4SKowalski, Kamil  * See header file for more information
628*f4c4dcf4SKowalski, Kamil  * @endinternal
629*f4c4dcf4SKowalski, Kamil  */
630*f4c4dcf4SKowalski, Kamil nlohmann::json actionParameterDuplicate(const std::string& arg1,
631*f4c4dcf4SKowalski, Kamil                                         const std::string& arg2) {
632*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
633*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
634*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ActionParameterDuplicate"},
635*f4c4dcf4SKowalski, Kamil       {"Message",
636*f4c4dcf4SKowalski, Kamil        "The action " + arg1 +
637*f4c4dcf4SKowalski, Kamil            " was submitted with more than one value for the parameter " + arg2 +
638*f4c4dcf4SKowalski, Kamil            "."},
639*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
640*f4c4dcf4SKowalski, Kamil       {"Resolution",
641*f4c4dcf4SKowalski, Kamil        "Resubmit the action with only one instance of the parameter in the "
642*f4c4dcf4SKowalski, Kamil        "request body if the operation failed."}};
643*f4c4dcf4SKowalski, Kamil }
644*f4c4dcf4SKowalski, Kamil 
645*f4c4dcf4SKowalski, Kamil /**
646*f4c4dcf4SKowalski, Kamil  * @internal
647*f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterNotSupported message into JSON
648*f4c4dcf4SKowalski, Kamil  *
649*f4c4dcf4SKowalski, Kamil  * See header file for more information
650*f4c4dcf4SKowalski, Kamil  * @endinternal
651*f4c4dcf4SKowalski, Kamil  */
652*f4c4dcf4SKowalski, Kamil nlohmann::json actionParameterNotSupported(const std::string& arg1,
653*f4c4dcf4SKowalski, Kamil                                            const std::string& arg2) {
654*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
655*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
656*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ActionParameterNotSupported"},
657*f4c4dcf4SKowalski, Kamil       {"Message", "The parameter " + arg1 + " for the action " + arg2 +
658*f4c4dcf4SKowalski, Kamil                       " is not supported on the target resource."},
659*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
660*f4c4dcf4SKowalski, Kamil       {"Resolution",
661*f4c4dcf4SKowalski, Kamil        "Remove the parameter supplied and resubmit the request if the "
662*f4c4dcf4SKowalski, Kamil        "operation failed."}};
663*f4c4dcf4SKowalski, Kamil }
664*f4c4dcf4SKowalski, Kamil 
665*f4c4dcf4SKowalski, Kamil /**
666*f4c4dcf4SKowalski, Kamil  * @internal
667*f4c4dcf4SKowalski, Kamil  * @brief Formats SourceDoesNotSupportProtocol message into JSON
668*f4c4dcf4SKowalski, Kamil  *
669*f4c4dcf4SKowalski, Kamil  * See header file for more information
670*f4c4dcf4SKowalski, Kamil  * @endinternal
671*f4c4dcf4SKowalski, Kamil  */
672*f4c4dcf4SKowalski, Kamil nlohmann::json sourceDoesNotSupportProtocol(const std::string& arg1,
673*f4c4dcf4SKowalski, Kamil                                             const std::string& arg2) {
674*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
675*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
676*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.SourceDoesNotSupportProtocol"},
677*f4c4dcf4SKowalski, Kamil       {"Message", "The other end of the connection at " + arg1 +
678*f4c4dcf4SKowalski, Kamil                       " does not support the specified protocol " + arg2 + "."},
679*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
680*f4c4dcf4SKowalski, Kamil       {"Resolution", "Change protocols or URIs. "}};
681*f4c4dcf4SKowalski, Kamil }
682*f4c4dcf4SKowalski, Kamil 
683*f4c4dcf4SKowalski, Kamil /**
684*f4c4dcf4SKowalski, Kamil  * @internal
685*f4c4dcf4SKowalski, Kamil  * @brief Formats AccountRemoved message into JSON
686*f4c4dcf4SKowalski, Kamil  *
687*f4c4dcf4SKowalski, Kamil  * See header file for more information
688*f4c4dcf4SKowalski, Kamil  * @endinternal
689*f4c4dcf4SKowalski, Kamil  */
690*f4c4dcf4SKowalski, Kamil nlohmann::json accountRemoved() {
691*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
692*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
693*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.AccountRemoved"},
694*f4c4dcf4SKowalski, Kamil       {"Message", "The account was successfully removed."},
695*f4c4dcf4SKowalski, Kamil       {"Severity", "OK"},
696*f4c4dcf4SKowalski, Kamil       {"Resolution", "No resolution is required."}};
697*f4c4dcf4SKowalski, Kamil }
698*f4c4dcf4SKowalski, Kamil 
699*f4c4dcf4SKowalski, Kamil /**
700*f4c4dcf4SKowalski, Kamil  * @internal
701*f4c4dcf4SKowalski, Kamil  * @brief Formats AccessDenied message into JSON
702*f4c4dcf4SKowalski, Kamil  *
703*f4c4dcf4SKowalski, Kamil  * See header file for more information
704*f4c4dcf4SKowalski, Kamil  * @endinternal
705*f4c4dcf4SKowalski, Kamil  */
706*f4c4dcf4SKowalski, Kamil nlohmann::json accessDenied(const std::string& arg1) {
707*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
708*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
709*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.AccessDenied"},
710*f4c4dcf4SKowalski, Kamil       {"Message", "While attempting to establish a connection to " + arg1 +
711*f4c4dcf4SKowalski, Kamil                       ", the service denied access."},
712*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
713*f4c4dcf4SKowalski, Kamil       {"Resolution",
714*f4c4dcf4SKowalski, Kamil        "Attempt to ensure that the URI is correct and that the service has the "
715*f4c4dcf4SKowalski, Kamil        "appropriate credentials."}};
716*f4c4dcf4SKowalski, Kamil }
717*f4c4dcf4SKowalski, Kamil 
718*f4c4dcf4SKowalski, Kamil /**
719*f4c4dcf4SKowalski, Kamil  * @internal
720*f4c4dcf4SKowalski, Kamil  * @brief Formats QueryNotSupported message into JSON
721*f4c4dcf4SKowalski, Kamil  *
722*f4c4dcf4SKowalski, Kamil  * See header file for more information
723*f4c4dcf4SKowalski, Kamil  * @endinternal
724*f4c4dcf4SKowalski, Kamil  */
725*f4c4dcf4SKowalski, Kamil nlohmann::json queryNotSupported() {
726*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
727*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
728*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.QueryNotSupported"},
729*f4c4dcf4SKowalski, Kamil       {"Message", "Querying is not supported by the implementation."},
730*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
731*f4c4dcf4SKowalski, Kamil       {"Resolution",
732*f4c4dcf4SKowalski, Kamil        "Remove the query parameters and resubmit the request if the operation "
733*f4c4dcf4SKowalski, Kamil        "failed."}};
734*f4c4dcf4SKowalski, Kamil }
735*f4c4dcf4SKowalski, Kamil 
736*f4c4dcf4SKowalski, Kamil /**
737*f4c4dcf4SKowalski, Kamil  * @internal
738*f4c4dcf4SKowalski, Kamil  * @brief Formats CreateLimitReachedForResource message into JSON
739*f4c4dcf4SKowalski, Kamil  *
740*f4c4dcf4SKowalski, Kamil  * See header file for more information
741*f4c4dcf4SKowalski, Kamil  * @endinternal
742*f4c4dcf4SKowalski, Kamil  */
743*f4c4dcf4SKowalski, Kamil nlohmann::json createLimitReachedForResource() {
744*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
745*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
746*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.CreateLimitReachedForResource"},
747*f4c4dcf4SKowalski, Kamil       {"Message",
748*f4c4dcf4SKowalski, Kamil        "The create operation failed because the resource has reached the limit "
749*f4c4dcf4SKowalski, Kamil        "of possible resources."},
750*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
751*f4c4dcf4SKowalski, Kamil       {"Resolution",
752*f4c4dcf4SKowalski, Kamil        "Either delete resources and resubmit the request if the operation "
753*f4c4dcf4SKowalski, Kamil        "failed or do not resubmit the request."}};
754*f4c4dcf4SKowalski, Kamil }
755*f4c4dcf4SKowalski, Kamil 
756*f4c4dcf4SKowalski, Kamil /**
757*f4c4dcf4SKowalski, Kamil  * @internal
758*f4c4dcf4SKowalski, Kamil  * @brief Formats GeneralError message into JSON
759*f4c4dcf4SKowalski, Kamil  *
760*f4c4dcf4SKowalski, Kamil  * See header file for more information
761*f4c4dcf4SKowalski, Kamil  * @endinternal
762*f4c4dcf4SKowalski, Kamil  */
763*f4c4dcf4SKowalski, Kamil nlohmann::json generalError() {
764*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
765*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
766*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.GeneralError"},
767*f4c4dcf4SKowalski, Kamil       {"Message",
768*f4c4dcf4SKowalski, Kamil        "A general error has occurred. See ExtendedInfo for more information."},
769*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
770*f4c4dcf4SKowalski, Kamil       {"Resolution", "See ExtendedInfo for more information."}};
771*f4c4dcf4SKowalski, Kamil }
772*f4c4dcf4SKowalski, Kamil 
773*f4c4dcf4SKowalski, Kamil /**
774*f4c4dcf4SKowalski, Kamil  * @internal
775*f4c4dcf4SKowalski, Kamil  * @brief Formats Success message into JSON
776*f4c4dcf4SKowalski, Kamil  *
777*f4c4dcf4SKowalski, Kamil  * See header file for more information
778*f4c4dcf4SKowalski, Kamil  * @endinternal
779*f4c4dcf4SKowalski, Kamil  */
780*f4c4dcf4SKowalski, Kamil nlohmann::json success() {
781*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
782*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
783*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.Success"},
784*f4c4dcf4SKowalski, Kamil       {"Message", "Successfully Completed Request"},
785*f4c4dcf4SKowalski, Kamil       {"Severity", "OK"},
786*f4c4dcf4SKowalski, Kamil       {"Resolution", "None"}};
787*f4c4dcf4SKowalski, Kamil }
788*f4c4dcf4SKowalski, Kamil 
789*f4c4dcf4SKowalski, Kamil /**
790*f4c4dcf4SKowalski, Kamil  * @internal
791*f4c4dcf4SKowalski, Kamil  * @brief Formats Created message into JSON
792*f4c4dcf4SKowalski, Kamil  *
793*f4c4dcf4SKowalski, Kamil  * See header file for more information
794*f4c4dcf4SKowalski, Kamil  * @endinternal
795*f4c4dcf4SKowalski, Kamil  */
796*f4c4dcf4SKowalski, Kamil nlohmann::json created() {
797*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
798*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
799*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.Created"},
800*f4c4dcf4SKowalski, Kamil       {"Message", "The resource has been created successfully"},
801*f4c4dcf4SKowalski, Kamil       {"Severity", "OK"},
802*f4c4dcf4SKowalski, Kamil       {"Resolution", "None"}};
803*f4c4dcf4SKowalski, Kamil }
804*f4c4dcf4SKowalski, Kamil 
805*f4c4dcf4SKowalski, Kamil /**
806*f4c4dcf4SKowalski, Kamil  * @internal
807*f4c4dcf4SKowalski, Kamil  * @brief Formats PropertyUnknown message into JSON
808*f4c4dcf4SKowalski, Kamil  *
809*f4c4dcf4SKowalski, Kamil  * See header file for more information
810*f4c4dcf4SKowalski, Kamil  * @endinternal
811*f4c4dcf4SKowalski, Kamil  */
812*f4c4dcf4SKowalski, Kamil nlohmann::json propertyUnknown(const std::string& arg1) {
813*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
814*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
815*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.PropertyUnknown"},
816*f4c4dcf4SKowalski, Kamil       {"Message",
817*f4c4dcf4SKowalski, Kamil        "The property " + arg1 +
818*f4c4dcf4SKowalski, Kamil            " is not in the list of valid properties for the resource."},
819*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
820*f4c4dcf4SKowalski, Kamil       {"Resolution",
821*f4c4dcf4SKowalski, Kamil        "Remove the unknown property from the request body and resubmit the "
822*f4c4dcf4SKowalski, Kamil        "request if the operation failed."}};
823*f4c4dcf4SKowalski, Kamil }
824*f4c4dcf4SKowalski, Kamil 
825*f4c4dcf4SKowalski, Kamil /**
826*f4c4dcf4SKowalski, Kamil  * @internal
827*f4c4dcf4SKowalski, Kamil  * @brief Formats NoValidSession message into JSON
828*f4c4dcf4SKowalski, Kamil  *
829*f4c4dcf4SKowalski, Kamil  * See header file for more information
830*f4c4dcf4SKowalski, Kamil  * @endinternal
831*f4c4dcf4SKowalski, Kamil  */
832*f4c4dcf4SKowalski, Kamil nlohmann::json noValidSession() {
833*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
834*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
835*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.NoValidSession"},
836*f4c4dcf4SKowalski, Kamil       {"Message",
837*f4c4dcf4SKowalski, Kamil        "There is no valid session established with the implementation."},
838*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
839*f4c4dcf4SKowalski, Kamil       {"Resolution", "Establish as session before attempting any operations."}};
840*f4c4dcf4SKowalski, Kamil }
841*f4c4dcf4SKowalski, Kamil 
842*f4c4dcf4SKowalski, Kamil /**
843*f4c4dcf4SKowalski, Kamil  * @internal
844*f4c4dcf4SKowalski, Kamil  * @brief Formats InvalidObject message into JSON
845*f4c4dcf4SKowalski, Kamil  *
846*f4c4dcf4SKowalski, Kamil  * See header file for more information
847*f4c4dcf4SKowalski, Kamil  * @endinternal
848*f4c4dcf4SKowalski, Kamil  */
849*f4c4dcf4SKowalski, Kamil nlohmann::json invalidObject(const std::string& arg1) {
850*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
851*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
852*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.InvalidObject"},
853*f4c4dcf4SKowalski, Kamil       {"Message", "The object at " + arg1 + " is invalid."},
854*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
855*f4c4dcf4SKowalski, Kamil       {"Resolution",
856*f4c4dcf4SKowalski, Kamil        "Either the object is malformed or the URI is not correct.  Correct the "
857*f4c4dcf4SKowalski, Kamil        "condition and resubmit the request if it failed."}};
858*f4c4dcf4SKowalski, Kamil }
859*f4c4dcf4SKowalski, Kamil 
860*f4c4dcf4SKowalski, Kamil /**
861*f4c4dcf4SKowalski, Kamil  * @internal
862*f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceInStandby message into JSON
863*f4c4dcf4SKowalski, Kamil  *
864*f4c4dcf4SKowalski, Kamil  * See header file for more information
865*f4c4dcf4SKowalski, Kamil  * @endinternal
866*f4c4dcf4SKowalski, Kamil  */
867*f4c4dcf4SKowalski, Kamil nlohmann::json resourceInStandby() {
868*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
869*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
870*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ResourceInStandby"},
871*f4c4dcf4SKowalski, Kamil       {"Message",
872*f4c4dcf4SKowalski, Kamil        "The request could not be performed because the resource is in "
873*f4c4dcf4SKowalski, Kamil        "standby."},
874*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
875*f4c4dcf4SKowalski, Kamil       {"Resolution",
876*f4c4dcf4SKowalski, Kamil        "Ensure that the resource is in the correct power state and resubmit "
877*f4c4dcf4SKowalski, Kamil        "the request."}};
878*f4c4dcf4SKowalski, Kamil }
879*f4c4dcf4SKowalski, Kamil 
880*f4c4dcf4SKowalski, Kamil /**
881*f4c4dcf4SKowalski, Kamil  * @internal
882*f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterValueTypeError message into JSON
883*f4c4dcf4SKowalski, Kamil  *
884*f4c4dcf4SKowalski, Kamil  * See header file for more information
885*f4c4dcf4SKowalski, Kamil  * @endinternal
886*f4c4dcf4SKowalski, Kamil  */
887*f4c4dcf4SKowalski, Kamil nlohmann::json actionParameterValueTypeError(const std::string& arg1,
888*f4c4dcf4SKowalski, Kamil                                              const std::string& arg2,
889*f4c4dcf4SKowalski, Kamil                                              const std::string& arg3) {
890*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
891*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
892*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ActionParameterValueTypeError"},
893*f4c4dcf4SKowalski, Kamil       {"Message", "The value " + arg1 + " for the parameter " + arg2 +
894*f4c4dcf4SKowalski, Kamil                       " in the action " + arg3 +
895*f4c4dcf4SKowalski, Kamil                       " is of a different type than the parameter can accept."},
896*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
897*f4c4dcf4SKowalski, Kamil       {"Resolution",
898*f4c4dcf4SKowalski, Kamil        "Correct the value for the parameter in the request body and resubmit "
899*f4c4dcf4SKowalski, Kamil        "the request if the operation failed."}};
900*f4c4dcf4SKowalski, Kamil }
901*f4c4dcf4SKowalski, Kamil 
902*f4c4dcf4SKowalski, Kamil /**
903*f4c4dcf4SKowalski, Kamil  * @internal
904*f4c4dcf4SKowalski, Kamil  * @brief Formats SessionLimitExceeded message into JSON
905*f4c4dcf4SKowalski, Kamil  *
906*f4c4dcf4SKowalski, Kamil  * See header file for more information
907*f4c4dcf4SKowalski, Kamil  * @endinternal
908*f4c4dcf4SKowalski, Kamil  */
909*f4c4dcf4SKowalski, Kamil nlohmann::json sessionLimitExceeded() {
910*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
911*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
912*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.SessionLimitExceeded"},
913*f4c4dcf4SKowalski, Kamil       {"Message",
914*f4c4dcf4SKowalski, Kamil        "The session establishment failed due to the number of simultaneous "
915*f4c4dcf4SKowalski, Kamil        "sessions exceeding the limit of the implementation."},
916*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
917*f4c4dcf4SKowalski, Kamil       {"Resolution",
918*f4c4dcf4SKowalski, Kamil        "Reduce the number of other sessions before trying to establish the "
919*f4c4dcf4SKowalski, Kamil        "session or increase the limit of simultaneous sessions (if "
920*f4c4dcf4SKowalski, Kamil        "supported)."}};
921*f4c4dcf4SKowalski, Kamil }
922*f4c4dcf4SKowalski, Kamil 
923*f4c4dcf4SKowalski, Kamil /**
924*f4c4dcf4SKowalski, Kamil  * @internal
925*f4c4dcf4SKowalski, Kamil  * @brief Formats ActionNotSupported message into JSON
926*f4c4dcf4SKowalski, Kamil  *
927*f4c4dcf4SKowalski, Kamil  * See header file for more information
928*f4c4dcf4SKowalski, Kamil  * @endinternal
929*f4c4dcf4SKowalski, Kamil  */
930*f4c4dcf4SKowalski, Kamil nlohmann::json actionNotSupported(const std::string& arg1) {
931*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
932*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
933*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ActionNotSupported"},
934*f4c4dcf4SKowalski, Kamil       {"Message", "The action " + arg1 + " is not supported by the resource."},
935*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
936*f4c4dcf4SKowalski, Kamil       {"Resolution",
937*f4c4dcf4SKowalski, Kamil        "The action supplied cannot be resubmitted to the implementation.  "
938*f4c4dcf4SKowalski, Kamil        "Perhaps the action was invalid, the wrong resource was the target or "
939*f4c4dcf4SKowalski, Kamil        "the implementation documentation may be of assistance."}};
940*f4c4dcf4SKowalski, Kamil }
941*f4c4dcf4SKowalski, Kamil 
942*f4c4dcf4SKowalski, Kamil /**
943*f4c4dcf4SKowalski, Kamil  * @internal
944*f4c4dcf4SKowalski, Kamil  * @brief Formats InvalidIndex message into JSON
945*f4c4dcf4SKowalski, Kamil  *
946*f4c4dcf4SKowalski, Kamil  * See header file for more information
947*f4c4dcf4SKowalski, Kamil  * @endinternal
948*f4c4dcf4SKowalski, Kamil  */
949*f4c4dcf4SKowalski, Kamil nlohmann::json invalidIndex(const int& arg1) {
950*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
951*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
952*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.InvalidIndex"},
953*f4c4dcf4SKowalski, Kamil       {"Message", "The Index " + std::to_string(arg1) +
954*f4c4dcf4SKowalski, Kamil                       " is not a valid offset into the array."},
955*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
956*f4c4dcf4SKowalski, Kamil       {"Resolution",
957*f4c4dcf4SKowalski, Kamil        "Verify the index value provided is within the bounds of the array."}};
958*f4c4dcf4SKowalski, Kamil }
959*f4c4dcf4SKowalski, Kamil 
960*f4c4dcf4SKowalski, Kamil /**
961*f4c4dcf4SKowalski, Kamil  * @internal
962*f4c4dcf4SKowalski, Kamil  * @brief Formats EmptyJSON message into JSON
963*f4c4dcf4SKowalski, Kamil  *
964*f4c4dcf4SKowalski, Kamil  * See header file for more information
965*f4c4dcf4SKowalski, Kamil  * @endinternal
966*f4c4dcf4SKowalski, Kamil  */
967*f4c4dcf4SKowalski, Kamil nlohmann::json emptyJSON() {
968*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
969*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
970*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.EmptyJSON"},
971*f4c4dcf4SKowalski, Kamil       {"Message",
972*f4c4dcf4SKowalski, Kamil        "The request body submitted contained an empty JSON object and the "
973*f4c4dcf4SKowalski, Kamil        "service is unable to process it."},
974*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
975*f4c4dcf4SKowalski, Kamil       {"Resolution",
976*f4c4dcf4SKowalski, Kamil        "Add properties in the JSON object and resubmit the request."}};
977*f4c4dcf4SKowalski, Kamil }
978*f4c4dcf4SKowalski, Kamil 
979*f4c4dcf4SKowalski, Kamil /**
980*f4c4dcf4SKowalski, Kamil  * @internal
981*f4c4dcf4SKowalski, Kamil  * @brief Formats QueryNotSupportedOnResource message into JSON
982*f4c4dcf4SKowalski, Kamil  *
983*f4c4dcf4SKowalski, Kamil  * See header file for more information
984*f4c4dcf4SKowalski, Kamil  * @endinternal
985*f4c4dcf4SKowalski, Kamil  */
986*f4c4dcf4SKowalski, Kamil nlohmann::json queryNotSupportedOnResource() {
987*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
988*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
989*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.QueryNotSupportedOnResource"},
990*f4c4dcf4SKowalski, Kamil       {"Message", "Querying is not supported on the requested resource."},
991*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
992*f4c4dcf4SKowalski, Kamil       {"Resolution",
993*f4c4dcf4SKowalski, Kamil        "Remove the query parameters and resubmit the request if the operation "
994*f4c4dcf4SKowalski, Kamil        "failed."}};
995*f4c4dcf4SKowalski, Kamil }
996*f4c4dcf4SKowalski, Kamil 
997*f4c4dcf4SKowalski, Kamil /**
998*f4c4dcf4SKowalski, Kamil  * @internal
999*f4c4dcf4SKowalski, Kamil  * @brief Formats InsufficientPrivilege message into JSON
1000*f4c4dcf4SKowalski, Kamil  *
1001*f4c4dcf4SKowalski, Kamil  * See header file for more information
1002*f4c4dcf4SKowalski, Kamil  * @endinternal
1003*f4c4dcf4SKowalski, Kamil  */
1004*f4c4dcf4SKowalski, Kamil nlohmann::json insufficientPrivilege() {
1005*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
1006*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
1007*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.InsufficientPrivilege"},
1008*f4c4dcf4SKowalski, Kamil       {"Message",
1009*f4c4dcf4SKowalski, Kamil        "There are insufficient privileges for the account or credentials "
1010*f4c4dcf4SKowalski, Kamil        "associated with the current session to perform the requested "
1011*f4c4dcf4SKowalski, Kamil        "operation."},
1012*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
1013*f4c4dcf4SKowalski, Kamil       {"Resolution",
1014*f4c4dcf4SKowalski, Kamil        "Either abandon the operation or change the associated access rights "
1015*f4c4dcf4SKowalski, Kamil        "and resubmit the request if the operation failed."}};
1016*f4c4dcf4SKowalski, Kamil }
1017*f4c4dcf4SKowalski, Kamil 
1018*f4c4dcf4SKowalski, Kamil /**
1019*f4c4dcf4SKowalski, Kamil  * @internal
1020*f4c4dcf4SKowalski, Kamil  * @brief Formats PropertyValueModified message into JSON
1021*f4c4dcf4SKowalski, Kamil  *
1022*f4c4dcf4SKowalski, Kamil  * See header file for more information
1023*f4c4dcf4SKowalski, Kamil  * @endinternal
1024*f4c4dcf4SKowalski, Kamil  */
1025*f4c4dcf4SKowalski, Kamil nlohmann::json propertyValueModified(const std::string& arg1,
1026*f4c4dcf4SKowalski, Kamil                                      const std::string& arg2) {
1027*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
1028*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
1029*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.PropertyValueModified"},
1030*f4c4dcf4SKowalski, Kamil       {"Message", "The property " + arg1 + " was assigned the value " + arg2 +
1031*f4c4dcf4SKowalski, Kamil                       " due to modification by the service."},
1032*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
1033*f4c4dcf4SKowalski, Kamil       {"Resolution", "No resolution is required."}};
1034*f4c4dcf4SKowalski, Kamil }
1035*f4c4dcf4SKowalski, Kamil 
1036*f4c4dcf4SKowalski, Kamil /**
1037*f4c4dcf4SKowalski, Kamil  * @internal
1038*f4c4dcf4SKowalski, Kamil  * @brief Formats AccountNotModified message into JSON
1039*f4c4dcf4SKowalski, Kamil  *
1040*f4c4dcf4SKowalski, Kamil  * See header file for more information
1041*f4c4dcf4SKowalski, Kamil  * @endinternal
1042*f4c4dcf4SKowalski, Kamil  */
1043*f4c4dcf4SKowalski, Kamil nlohmann::json accountNotModified() {
1044*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
1045*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
1046*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.AccountNotModified"},
1047*f4c4dcf4SKowalski, Kamil       {"Message", "The account modification request failed."},
1048*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
1049*f4c4dcf4SKowalski, Kamil       {"Resolution",
1050*f4c4dcf4SKowalski, Kamil        "The modification may have failed due to permission issues or issues "
1051*f4c4dcf4SKowalski, Kamil        "with the request body."}};
1052*f4c4dcf4SKowalski, Kamil }
1053*f4c4dcf4SKowalski, Kamil 
1054*f4c4dcf4SKowalski, Kamil /**
1055*f4c4dcf4SKowalski, Kamil  * @internal
1056*f4c4dcf4SKowalski, Kamil  * @brief Formats QueryParameterValueFormatError message into JSON
1057*f4c4dcf4SKowalski, Kamil  *
1058*f4c4dcf4SKowalski, Kamil  * See header file for more information
1059*f4c4dcf4SKowalski, Kamil  * @endinternal
1060*f4c4dcf4SKowalski, Kamil  */
1061*f4c4dcf4SKowalski, Kamil nlohmann::json queryParameterValueFormatError(const std::string& arg1,
1062*f4c4dcf4SKowalski, Kamil                                               const std::string& arg2) {
1063*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
1064*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
1065*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.QueryParameterValueFormatError"},
1066*f4c4dcf4SKowalski, Kamil       {"Message",
1067*f4c4dcf4SKowalski, Kamil        "The value " + arg1 + " for the parameter " + arg2 +
1068*f4c4dcf4SKowalski, Kamil            " is of a different format than the parameter can accept."},
1069*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
1070*f4c4dcf4SKowalski, Kamil       {"Resolution",
1071*f4c4dcf4SKowalski, Kamil        "Correct the value for the query parameter in the request and resubmit "
1072*f4c4dcf4SKowalski, Kamil        "the request if the operation failed."}};
1073*f4c4dcf4SKowalski, Kamil }
1074*f4c4dcf4SKowalski, Kamil 
1075*f4c4dcf4SKowalski, Kamil /**
1076*f4c4dcf4SKowalski, Kamil  * @internal
1077*f4c4dcf4SKowalski, Kamil  * @brief Formats PropertyMissing message into JSON
1078*f4c4dcf4SKowalski, Kamil  *
1079*f4c4dcf4SKowalski, Kamil  * See header file for more information
1080*f4c4dcf4SKowalski, Kamil  * @endinternal
1081*f4c4dcf4SKowalski, Kamil  */
1082*f4c4dcf4SKowalski, Kamil nlohmann::json propertyMissing(const std::string& arg1) {
1083*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
1084*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
1085*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.PropertyMissing"},
1086*f4c4dcf4SKowalski, Kamil       {"Message",
1087*f4c4dcf4SKowalski, Kamil        "The property " + arg1 +
1088*f4c4dcf4SKowalski, Kamil            " is a required property and must be included in the request."},
1089*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
1090*f4c4dcf4SKowalski, Kamil       {"Resolution",
1091*f4c4dcf4SKowalski, Kamil        "Ensure that the property is in the request body and has a valid value "
1092*f4c4dcf4SKowalski, Kamil        "and resubmit the request if the operation failed."}};
1093*f4c4dcf4SKowalski, Kamil }
1094*f4c4dcf4SKowalski, Kamil 
1095*f4c4dcf4SKowalski, Kamil /**
1096*f4c4dcf4SKowalski, Kamil  * @internal
1097*f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceExhaustion message into JSON
1098*f4c4dcf4SKowalski, Kamil  *
1099*f4c4dcf4SKowalski, Kamil  * See header file for more information
1100*f4c4dcf4SKowalski, Kamil  * @endinternal
1101*f4c4dcf4SKowalski, Kamil  */
1102*f4c4dcf4SKowalski, Kamil nlohmann::json resourceExhaustion(const std::string& arg1) {
1103*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
1104*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
1105*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.ResourceExhaustion"},
1106*f4c4dcf4SKowalski, Kamil       {"Message", "The resource " + arg1 + " was unable to satisfy the request "
1107*f4c4dcf4SKowalski, Kamil                                            "due to unavailability of "
1108*f4c4dcf4SKowalski, Kamil                                            "resources."},
1109*f4c4dcf4SKowalski, Kamil       {"Severity", "Critical"},
1110*f4c4dcf4SKowalski, Kamil       {"Resolution",
1111*f4c4dcf4SKowalski, Kamil        "Ensure that the resources are available and resubmit the request."}};
1112*f4c4dcf4SKowalski, Kamil }
1113*f4c4dcf4SKowalski, Kamil 
1114*f4c4dcf4SKowalski, Kamil /**
1115*f4c4dcf4SKowalski, Kamil  * @internal
1116*f4c4dcf4SKowalski, Kamil  * @brief Formats AccountModified message into JSON
1117*f4c4dcf4SKowalski, Kamil  *
1118*f4c4dcf4SKowalski, Kamil  * See header file for more information
1119*f4c4dcf4SKowalski, Kamil  * @endinternal
1120*f4c4dcf4SKowalski, Kamil  */
1121*f4c4dcf4SKowalski, Kamil nlohmann::json accountModified() {
1122*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
1123*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
1124*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.AccountModified"},
1125*f4c4dcf4SKowalski, Kamil       {"Message", "The account was successfully modified."},
1126*f4c4dcf4SKowalski, Kamil       {"Severity", "OK"},
1127*f4c4dcf4SKowalski, Kamil       {"Resolution", "No resolution is required."}};
1128*f4c4dcf4SKowalski, Kamil }
1129*f4c4dcf4SKowalski, Kamil 
1130*f4c4dcf4SKowalski, Kamil /**
1131*f4c4dcf4SKowalski, Kamil  * @internal
1132*f4c4dcf4SKowalski, Kamil  * @brief Formats QueryParameterOutOfRange message into JSON
1133*f4c4dcf4SKowalski, Kamil  *
1134*f4c4dcf4SKowalski, Kamil  * See header file for more information
1135*f4c4dcf4SKowalski, Kamil  * @endinternal
1136*f4c4dcf4SKowalski, Kamil  */
1137*f4c4dcf4SKowalski, Kamil nlohmann::json queryParameterOutOfRange(const std::string& arg1,
1138*f4c4dcf4SKowalski, Kamil                                         const std::string& arg2,
1139*f4c4dcf4SKowalski, Kamil                                         const std::string& arg3) {
1140*f4c4dcf4SKowalski, Kamil   return nlohmann::json{
1141*f4c4dcf4SKowalski, Kamil       {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
1142*f4c4dcf4SKowalski, Kamil       {"MessageId", "Base.1.2.0.QueryParameterOutOfRange"},
1143*f4c4dcf4SKowalski, Kamil       {"Message", "The value " + arg1 + " for the query parameter " + arg2 +
1144*f4c4dcf4SKowalski, Kamil                       " is out of range " + arg3 + "."},
1145*f4c4dcf4SKowalski, Kamil       {"Severity", "Warning"},
1146*f4c4dcf4SKowalski, Kamil       {"Resolution",
1147*f4c4dcf4SKowalski, Kamil        "Reduce the value for the query parameter to a value that is within "
1148*f4c4dcf4SKowalski, Kamil        "range, such as a start or count value that is within bounds of the "
1149*f4c4dcf4SKowalski, Kamil        "number of resources in a collection or a page that is within the range "
1150*f4c4dcf4SKowalski, Kamil        "of valid pages."}};
1151*f4c4dcf4SKowalski, Kamil }
1152*f4c4dcf4SKowalski, Kamil 
1153*f4c4dcf4SKowalski, Kamil /*********************************
1154*f4c4dcf4SKowalski, Kamil  * AUTOGENERATED FUNCTIONS END *
1155*f4c4dcf4SKowalski, Kamil  *********************************/
1156*f4c4dcf4SKowalski, Kamil 
1157*f4c4dcf4SKowalski, Kamil }  // namespace messages
1158*f4c4dcf4SKowalski, Kamil 
1159*f4c4dcf4SKowalski, Kamil }  // namespace redifsh
1160