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