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