diff --git a/redfish-core/include/error_messages.hpp b/redfish-core/include/error_messages.hpp
index 32e7505..f404de3 100644
--- a/redfish-core/include/error_messages.hpp
+++ b/redfish-core/include/error_messages.hpp
@@ -294,6 +294,26 @@
                         const int& arg2);
 
 /**
+ * @brief Formats SessionTerminated message into JSON
+ * Message body: "The session was successfully terminated."
+ *
+ *
+ * @returns Message SessionTerminated formatted to JSON */
+void sessionTerminated(crow::Response& res);
+
+/**
+ * @brief Formats ResourceTypeIncompatible message into JSON
+ * Message body: "The @odata.type of the request body <arg1> is incompatible
+ * with the @odata.type of the resource which is <arg2>."
+ *
+ * @param[in] arg1 Parameter of message that will replace %1 in its body.
+ * @param[in] arg2 Parameter of message that will replace %2 in its body.
+ *
+ * @returns Message ResourceTypeIncompatible formatted to JSON */
+void resourceTypeIncompatible(crow::Response& res, const std::string& arg1,
+                              const std::string& arg2);
+
+/**
  * @brief Formats PropertyValueTypeError message into JSON
  * Message body: "The value <arg1> for the property <arg2> is of a different
  * type than the property can accept."
@@ -489,6 +509,15 @@
 void created(crow::Response& res);
 
 /**
+ * @brief Formats NoOperation message into JSON
+ * Message body: "The request body submitted contain no data to act upon and
+ * no changes to the resource took place."
+ *
+ *
+ * @returns Message NoOperation formatted to JSON */
+void noOperation(crow::Response& res);
+
+/**
  * @brief Formats PropertyUnknown message into JSON
  * Message body: "The property <arg1> is not in the list of valid properties for
  * the resource."
diff --git a/redfish-core/src/error_messages.cpp b/redfish-core/src/error_messages.cpp
index a102b74..e38c8d4 100644
--- a/redfish-core/src/error_messages.cpp
+++ b/redfish-core/src/error_messages.cpp
@@ -58,8 +58,8 @@
     {
         // More than 1 error occurred, so the message has to be generic
         error["code"] = std::string(messageVersionPrefix) + "GeneralError";
-        error["message"] = "A general error has occurred. See ExtendedInfo for "
-                           "more information.";
+        error["message"] = "A general error has occurred. See Resolution for "
+                           "information on how to resolve the error.";
     }
 
     // This check could technically be done in in the default construction
@@ -117,7 +117,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ResourceInUse"},
+            {"MessageId", "Base.1.4.0.ResourceInUse"},
             {"Message", "The change to the requested resource failed because "
                         "the resource is in use or in transition."},
             {"Severity", "Warning"},
@@ -139,7 +139,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.MalformedJSON"},
+            {"MessageId", "Base.1.4.0.MalformedJSON"},
             {"Message", "The request body submitted was malformed JSON and "
                         "could not be parsed by the receiving service."},
             {"Severity", "Critical"},
@@ -161,7 +161,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ResourceMissingAtURI"},
+            {"MessageId", "Base.1.4.0.ResourceMissingAtURI"},
             {"Message", "The resource at the URI " + arg1 + " was not found."},
             {"Severity", "Critical"},
             {"Resolution", "Place a valid resource at the URI or correct the "
@@ -185,7 +185,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ActionParameterValueFormatError"},
+            {"MessageId", "Base.1.4.0.ActionParameterValueFormatError"},
             {"Message",
              "The value " + arg1 + " for the parameter " + arg2 +
                  " in the action " + arg3 +
@@ -210,7 +210,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.InternalError"},
+            {"MessageId", "Base.1.4.0.InternalError"},
             {"Message", "The request failed due to an internal service error.  "
                         "The service is still operational."},
             {"Severity", "Critical"},
@@ -232,7 +232,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.InternalError"},
+            {"MessageId", "Base.1.4.0.InternalError"},
             {"Message", "The request failed due to an internal service error.  "
                         "The service is still operational."},
             {"Severity", "Critical"},
@@ -255,7 +255,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.UnrecognizedRequestBody"},
+            {"MessageId", "Base.1.4.0.UnrecognizedRequestBody"},
             {"Message", "The service detected a malformed request body that it "
                         "was unable to interpret."},
             {"Severity", "Warning"},
@@ -278,7 +278,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ResourceAtUriUnauthorized"},
+            {"MessageId", "Base.1.4.0.ResourceAtUriUnauthorized"},
             {"Message", "While accessing the resource at " + arg1 +
                             ", the service received an authorization error " +
                             arg2 + "."},
@@ -302,7 +302,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ActionParameterUnknown"},
+            {"MessageId", "Base.1.4.0.ActionParameterUnknown"},
             {"Message", "The action " + arg1 +
                             " was submitted with the invalid parameter " +
                             arg2 + "."},
@@ -325,7 +325,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ResourceCannotBeDeleted"},
+            {"MessageId", "Base.1.4.0.ResourceCannotBeDeleted"},
             {"Message", "The delete request failed because the resource "
                         "requested cannot be deleted."},
             {"Severity", "Critical"},
@@ -347,7 +347,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.PropertyDuplicate"},
+            {"MessageId", "Base.1.4.0.PropertyDuplicate"},
             {"Message",
              "The property " + arg1 + " was duplicated in the request."},
             {"Severity", "Warning"},
@@ -370,7 +370,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ServiceTemporarilyUnavailable"},
+            {"MessageId", "Base.1.4.0.ServiceTemporarilyUnavailable"},
             {"Message", "The service is temporarily unavailable.  Retry in " +
                             arg1 + " seconds."},
             {"Severity", "Critical"},
@@ -393,7 +393,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ResourceAlreadyExists"},
+            {"MessageId", "Base.1.4.0.ResourceAlreadyExists"},
             {"Message", "The requested resource of type " + arg1 +
                             " with the property " + arg2 + " with the value " +
                             arg3 + " already exists."},
@@ -417,7 +417,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.AccountForSessionNoLongerExists"},
+            {"MessageId", "Base.1.4.0.AccountForSessionNoLongerExists"},
             {"Message", "The account for the current session has been removed, "
                         "thus the current session has been removed as well."},
             {"Severity", "OK"},
@@ -440,7 +440,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.CreateFailedMissingReqProperties"},
+            {"MessageId", "Base.1.4.0.CreateFailedMissingReqProperties"},
             {"Message",
              "The create operation failed because the required property " +
                  arg1 + " was missing from the request."},
@@ -465,7 +465,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.PropertyValueFormatError"},
+            {"MessageId", "Base.1.4.0.PropertyValueFormatError"},
             {"Message",
              "The value " + arg1 + " for the property " + arg2 +
                  " is of a different format than the property can accept."},
@@ -492,7 +492,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.PropertyValueFormatError"},
+            {"MessageId", "Base.1.4.0.PropertyValueFormatError"},
             {"Message",
              "The value " + arg1 + " for the property " + arg2 +
                  " is of a different format than the property can accept."},
@@ -518,7 +518,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.PropertyValueNotInList"},
+            {"MessageId", "Base.1.4.0.PropertyValueNotInList"},
             {"Message", "The value " + arg1 + " for the property " + arg2 +
                             " is not in the list of acceptable values."},
             {"Severity", "Warning"},
@@ -543,7 +543,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.PropertyValueNotInList"},
+            {"MessageId", "Base.1.4.0.PropertyValueNotInList"},
             {"Message", "The value " + arg1 + " for the property " + arg2 +
                             " is not in the list of acceptable values."},
             {"Severity", "Warning"},
@@ -567,7 +567,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ResourceAtUriInUnknownFormat"},
+            {"MessageId", "Base.1.4.0.ResourceAtUriInUnknownFormat"},
             {"Message", "The resource at " + arg1 +
                             " is in a format not recognized by the service."},
             {"Severity", "Critical"},
@@ -589,7 +589,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ServiceInUnknownState"},
+            {"MessageId", "Base.1.4.0.ServiceInUnknownState"},
             {"Message",
              "The operation failed because the service is in an unknown state "
              "and can no longer take incoming requests."},
@@ -612,7 +612,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.EventSubscriptionLimitExceeded"},
+            {"MessageId", "Base.1.4.0.EventSubscriptionLimitExceeded"},
             {"Message",
              "The event subscription failed due to the number of simultaneous "
              "subscriptions exceeding the limit of the implementation."},
@@ -638,7 +638,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ActionParameterMissing"},
+            {"MessageId", "Base.1.4.0.ActionParameterMissing"},
             {"Message", "The action " + arg1 + " requires the parameter " +
                             arg2 + " to be present in the request body."},
             {"Severity", "Critical"},
@@ -662,7 +662,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.StringValueTooLong"},
+            {"MessageId", "Base.1.4.0.StringValueTooLong"},
             {"Message", "The string " + arg1 + " exceeds the length limit " +
                             std::to_string(arg2) + "."},
             {"Severity", "Warning"},
@@ -672,6 +672,51 @@
 
 /**
  * @internal
+ * @brief Formats SessionTerminated message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+void sessionTerminated(crow::Response& res)
+{
+    res.result(boost::beast::http::status::ok);
+    addMessageToJsonRoot(
+        res.jsonValue,
+        nlohmann::json{
+            {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
+            {"MessageId", "Base.1.4.0.SessionTerminated"},
+            {"Message", "The session was successfully terminated."},
+            {"Severity", "OK"},
+            {"Resolution", "No resolution is required."}});
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceTypeIncompatible message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+void resourceTypeIncompatible(crow::Response& res, const std::string& arg1,
+                              const std::string& arg2)
+{
+    res.result(boost::beast::http::status::bad_request);
+    addMessageToErrorJson(
+        res.jsonValue,
+        nlohmann::json{
+            {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
+            {"MessageId", "Base.1.4.0.ResourceTypeIncompatible"},
+            {"Message", "The @odata.type of the request body " + arg1 +
+                            " is incompatible with the @odata.type of the "
+                            "resource which is " +
+                            arg2 + "."},
+            {"Severity", "Critical"},
+            {"Resolution", "Resubmit the request with a payload compatible "
+                           "with the resource's schema."}});
+}
+
+/**
+ * @internal
  * @brief Formats PropertyValueTypeError message into JSON
  *
  * See header file for more information
@@ -685,7 +730,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.PropertyValueTypeError"},
+            {"MessageId", "Base.1.4.0.PropertyValueTypeError"},
             {"Message",
              "The value " + arg1 + " for the property " + arg2 +
                  " is of a different type than the property can accept."},
@@ -712,7 +757,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.PropertyValueTypeError"},
+            {"MessageId", "Base.1.4.0.PropertyValueTypeError"},
             {"Message",
              "The value " + arg1 + " for the property " + arg2 +
                  " is of a different type than the property can accept."},
@@ -738,7 +783,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ResourceNotFound"},
+            {"MessageId", "Base.1.4.0.ResourceNotFound"},
             {"Message", "The requested resource of type " + arg1 + " named " +
                             arg2 + " was not found."},
             {"Severity", "Critical"},
@@ -760,7 +805,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.CouldNotEstablishConnection"},
+            {"MessageId", "Base.1.4.0.CouldNotEstablishConnection"},
             {"Message",
              "The service failed to establish a Connection with the URI " +
                  arg1 + "."},
@@ -784,7 +829,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.PropertyNotWritable"},
+            {"MessageId", "Base.1.4.0.PropertyNotWritable"},
             {"Message",
              "The property " + arg1 +
                  " is a read only property and cannot be assigned a value."},
@@ -809,7 +854,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.PropertyNotWritable"},
+            {"MessageId", "Base.1.4.0.PropertyNotWritable"},
             {"Message",
              "The property " + arg1 +
                  " is a read only property and cannot be assigned a value."},
@@ -834,7 +879,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.QueryParameterValueTypeError"},
+            {"MessageId", "Base.1.4.0.QueryParameterValueTypeError"},
             {"Message",
              "The value " + arg1 + " for the query parameter " + arg2 +
                  " is of a different type than the parameter can accept."},
@@ -858,7 +903,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ServiceShuttingDown"},
+            {"MessageId", "Base.1.4.0.ServiceShuttingDown"},
             {"Message", "The operation failed because the service is shutting "
                         "down and can no longer take incoming requests."},
             {"Severity", "Critical"},
@@ -881,7 +926,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ActionParameterDuplicate"},
+            {"MessageId", "Base.1.4.0.ActionParameterDuplicate"},
             {"Message",
              "The action " + arg1 +
                  " was submitted with more than one value for the parameter " +
@@ -907,7 +952,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ActionParameterNotSupported"},
+            {"MessageId", "Base.1.4.0.ActionParameterNotSupported"},
             {"Message", "The parameter " + arg1 + " for the action " + arg2 +
                             " is not supported on the target resource."},
             {"Severity", "Warning"},
@@ -930,7 +975,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.SourceDoesNotSupportProtocol"},
+            {"MessageId", "Base.1.4.0.SourceDoesNotSupportProtocol"},
             {"Message", "The other end of the Connection at " + arg1 +
                             " does not support the specified protocol " + arg2 +
                             "."},
@@ -952,7 +997,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.AccountRemoved"},
+            {"MessageId", "Base.1.4.0.AccountRemoved"},
             {"Message", "The account was successfully removed."},
             {"Severity", "OK"},
             {"Resolution", "No resolution is required."}});
@@ -972,7 +1017,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.AccessDenied"},
+            {"MessageId", "Base.1.4.0.AccessDenied"},
             {"Message", "While attempting to establish a Connection to " +
                             arg1 + ", the service denied access."},
             {"Severity", "Critical"},
@@ -994,7 +1039,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.QueryNotSupported"},
+            {"MessageId", "Base.1.4.0.QueryNotSupported"},
             {"Message", "Querying is not supported by the implementation."},
             {"Severity", "Warning"},
             {"Resolution", "Remove the query parameters and resubmit the "
@@ -1015,7 +1060,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.CreateLimitReachedForResource"},
+            {"MessageId", "Base.1.4.0.CreateLimitReachedForResource"},
             {"Message", "The create operation failed because the resource has "
                         "reached the limit of possible resources."},
             {"Severity", "Critical"},
@@ -1038,11 +1083,11 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.GeneralError"},
-            {"Message", "A general error has occurred. See ExtendedInfo for "
-                        "more information."},
+            {"MessageId", "Base.1.4.0.GeneralError"},
+            {"Message", "A general error has occurred. See Resolution for "
+                        "information on how to resolve the error."},
             {"Severity", "Critical"},
-            {"Resolution", "See ExtendedInfo for more information."}});
+            {"Resolution", "None."}});
 }
 
 /**
@@ -1059,7 +1104,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.Success"},
+            {"MessageId", "Base.1.4.0.Success"},
             {"Message", "Successfully Completed Request"},
             {"Severity", "OK"},
             {"Resolution", "None"}});
@@ -1079,7 +1124,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.Success"},
+            {"MessageId", "Base.1.4.0.Success"},
             {"Message", "Successfully Completed Request"},
             {"Severity", "OK"},
             {"Resolution", "None"}},
@@ -1100,7 +1145,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.Created"},
+            {"MessageId", "Base.1.4.0.Created"},
             {"Message", "The resource has been created successfully"},
             {"Severity", "OK"},
             {"Resolution", "None"}});
@@ -1108,6 +1153,28 @@
 
 /**
  * @internal
+ * @brief Formats NoOperation message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+void noOperation(crow::Response& res)
+{
+    res.result(boost::beast::http::status::bad_request);
+    addMessageToErrorJson(
+        res.jsonValue,
+        nlohmann::json{
+            {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
+            {"MessageId", "Base.1.4.0.NoOperation"},
+            {"Message", "The request body submitted contain no data to act "
+                        "upon and no changes to the resource took place."},
+            {"Severity", "Warning"},
+            {"Resolution",
+             "Add properties in the JSON object and resubmit the request."}});
+}
+
+/**
+ * @internal
  * @brief Formats PropertyUnknown message into JSON
  *
  * See header file for more information
@@ -1120,7 +1187,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.PropertyUnknown"},
+            {"MessageId", "Base.1.4.0.PropertyUnknown"},
             {"Message",
              "The property " + arg1 +
                  " is not in the list of valid properties for the resource."},
@@ -1145,7 +1212,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.PropertyUnknown"},
+            {"MessageId", "Base.1.4.0.PropertyUnknown"},
             {"Message",
              "The property " + arg1 +
                  " is not in the list of valid properties for the resource."},
@@ -1170,7 +1237,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.NoValidSession"},
+            {"MessageId", "Base.1.4.0.NoValidSession"},
             {"Message",
              "There is no valid session established with the implementation."},
             {"Severity", "Critical"},
@@ -1192,7 +1259,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.InvalidObject"},
+            {"MessageId", "Base.1.4.0.InvalidObject"},
             {"Message", "The object at " + arg1 + " is invalid."},
             {"Severity", "Critical"},
             {"Resolution",
@@ -1214,7 +1281,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ResourceInStandby"},
+            {"MessageId", "Base.1.4.0.ResourceInStandby"},
             {"Message", "The request could not be performed because the "
                         "resource is in standby."},
             {"Severity", "Critical"},
@@ -1238,7 +1305,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ActionParameterValueTypeError"},
+            {"MessageId", "Base.1.4.0.ActionParameterValueTypeError"},
             {"Message",
              "The value " + arg1 + " for the parameter " + arg2 +
                  " in the action " + arg3 +
@@ -1263,7 +1330,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.SessionLimitExceeded"},
+            {"MessageId", "Base.1.4.0.SessionLimitExceeded"},
             {"Message", "The session establishment failed due to the number of "
                         "simultaneous sessions exceeding the limit of the "
                         "implementation."},
@@ -1287,7 +1354,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ActionNotSupported"},
+            {"MessageId", "Base.1.4.0.ActionNotSupported"},
             {"Message",
              "The action " + arg1 + " is not supported by the resource."},
             {"Severity", "Critical"},
@@ -1312,7 +1379,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.InvalidIndex"},
+            {"MessageId", "Base.1.4.0.InvalidIndex"},
             {"Message", "The index " + std::to_string(arg1) +
                             " is not a valid offset into the array."},
             {"Severity", "Warning"},
@@ -1334,7 +1401,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.EmptyJSON"},
+            {"MessageId", "Base.1.4.0.EmptyJSON"},
             {"Message", "The request body submitted contained an empty JSON "
                         "object and the service is unable to process it."},
             {"Severity", "Warning"},
@@ -1356,7 +1423,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.QueryNotSupportedOnResource"},
+            {"MessageId", "Base.1.4.0.QueryNotSupportedOnResource"},
             {"Message", "Querying is not supported on the requested resource."},
             {"Severity", "Warning"},
             {"Resolution", "Remove the query parameters and resubmit the "
@@ -1377,7 +1444,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.InsufficientPrivilege"},
+            {"MessageId", "Base.1.4.0.InsufficientPrivilege"},
             {"Message", "There are insufficient privileges for the account or "
                         "credentials associated with the current session to "
                         "perform the requested operation."},
@@ -1403,7 +1470,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.PropertyValueModified"},
+            {"MessageId", "Base.1.4.0.PropertyValueModified"},
             {"Message", "The property " + arg1 + " was assigned the value " +
                             arg2 + " due to modification by the service."},
             {"Severity", "Warning"},
@@ -1425,7 +1492,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.AccountNotModified"},
+            {"MessageId", "Base.1.4.0.AccountNotModified"},
             {"Message", "The account modification request failed."},
             {"Severity", "Warning"},
             {"Resolution", "The modification may have failed due to permission "
@@ -1448,7 +1515,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.QueryParameterValueFormatError"},
+            {"MessageId", "Base.1.4.0.QueryParameterValueFormatError"},
             {"Message",
              "The value " + arg1 + " for the parameter " + arg2 +
                  " is of a different format than the parameter can accept."},
@@ -1472,7 +1539,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.PropertyMissing"},
+            {"MessageId", "Base.1.4.0.PropertyMissing"},
             {"Message", "The property " + arg1 +
                             " is a required property and must be included in "
                             "the request."},
@@ -1497,7 +1564,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.PropertyMissing"},
+            {"MessageId", "Base.1.4.0.PropertyMissing"},
             {"Message", "The property " + arg1 +
                             " is a required property and must be included in "
                             "the request."},
@@ -1522,7 +1589,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.ResourceExhaustion"},
+            {"MessageId", "Base.1.4.0.ResourceExhaustion"},
             {"Message", "The resource " + arg1 +
                             " was unable to satisfy the request due to "
                             "unavailability of resources."},
@@ -1545,7 +1612,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.AccountModified"},
+            {"MessageId", "Base.1.4.0.AccountModified"},
             {"Message", "The account was successfully modified."},
             {"Severity", "OK"},
             {"Resolution", "No resolution is required."}},
@@ -1567,7 +1634,7 @@
         res.jsonValue,
         nlohmann::json{
             {"@odata.type", "/redfish/v1/$metadata#Message.v1_0_0.Message"},
-            {"MessageId", "Base.1.2.0.QueryParameterOutOfRange"},
+            {"MessageId", "Base.1.4.0.QueryParameterOutOfRange"},
             {"Message", "The value " + arg1 + " for the query parameter " +
                             arg2 + " is out of range " + arg3 + "."},
             {"Severity", "Warning"},
