diff --git a/redfish-core/include/redfish.hpp b/redfish-core/include/redfish.hpp
index 866eaed..a741a76 100644
--- a/redfish-core/include/redfish.hpp
+++ b/redfish-core/include/redfish.hpp
@@ -1,5 +1,5 @@
 /*
-// Copyright (c) 2018 Intel Corporation
+// Copyright (c) 2018-2019 Intel Corporation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
 #include "../lib/ethernet.hpp"
 #include "../lib/log_services.hpp"
 #include "../lib/managers.hpp"
+#include "../lib/message_registries.hpp"
 #include "../lib/network_protocol.hpp"
 #include "../lib/power.hpp"
 #include "../lib/redfish_sessions.hpp"
@@ -107,6 +108,11 @@
         nodes.emplace_back(std::make_unique<DBusLogServiceActionsClear>(app));
 #endif
 
+        nodes.emplace_back(
+            std::make_unique<MessageRegistryFileCollection>(app));
+        nodes.emplace_back(std::make_unique<BaseMessageRegistryFile>(app));
+        nodes.emplace_back(std::make_unique<BaseMessageRegistry>(app));
+
         for (const auto& node : nodes)
         {
             node->initPrivileges();
diff --git a/redfish-core/include/registries.hpp b/redfish-core/include/registries.hpp
new file mode 100644
index 0000000..7ee5232
--- /dev/null
+++ b/redfish-core/include/registries.hpp
@@ -0,0 +1,30 @@
+/*
+// Copyright (c) 2019 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+*/
+#pragma once
+namespace redfish::message_registries
+{
+
+struct Message
+{
+    const char* description;
+    const char* message;
+    const char* severity;
+    const int numberOfArgs;
+    std::array<const char*, 5> paramTypes;
+    const char* resolution;
+};
+using MessageEntry = std::pair<const char*, const Message>;
+} // namespace redfish::message_registries
diff --git a/redfish-core/include/registries/base_message_registry.hpp b/redfish-core/include/registries/base_message_registry.hpp
new file mode 100644
index 0000000..1d54fdd
--- /dev/null
+++ b/redfish-core/include/registries/base_message_registry.hpp
@@ -0,0 +1,957 @@
+/*
+// Copyright (c) 2019 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+*/
+/****************************************************************
+ * This is an auto-generated header which contains definitions
+ * for Redfish DMTF defined messages.
+ ***************************************************************/
+#pragma once
+#include <registries.hpp>
+
+namespace redfish::message_registries::base
+{
+
+const std::array registry = {
+    MessageEntry{
+        "AccessDenied",
+        {
+            .description =
+                "Indicates that while attempting to access, connect to or "
+                "transfer to/from another resource, the service denied access.",
+            .message = "While attempting to establish a connection to %1, the "
+                       "service denied access.",
+            .severity = "Critical",
+            .numberOfArgs = 1,
+            .paramTypes =
+                {
+                    "string",
+                },
+            .resolution = "Attempt to ensure that the URI is correct and that "
+                          "the service has the appropriate credentials.",
+        }},
+    MessageEntry{
+        "AccountForSessionNoLongerExists",
+        {
+            .description =
+                "Indicates that the account for the session has been removed, "
+                "thus the session has been removed as well.",
+            .message = "The account for the current session has been removed, "
+                       "thus the current session has been removed as well.",
+            .severity = "OK",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "Attempt to connect with a valid account.",
+        }},
+    MessageEntry{
+        "AccountModified",
+        {
+            .description =
+                "Indicates that the account was successfully modified.",
+            .message = "The account was successfully modified.",
+            .severity = "OK",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "No resolution is required.",
+        }},
+    MessageEntry{
+        "AccountNotModified",
+        {
+            .description = "Indicates that the modification requested for the "
+                           "account was not successful.",
+            .message = "The account modification request failed.",
+            .severity = "Warning",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "The modification may have failed due to permission "
+                          "issues or issues with the request body.",
+        }},
+    MessageEntry{"AccountRemoved",
+                 {
+                     .description =
+                         "Indicates that the account was successfully removed.",
+                     .message = "The account was successfully removed.",
+                     .severity = "OK",
+                     .numberOfArgs = 0,
+                     .paramTypes = {},
+                     .resolution = "No resolution is required.",
+                 }},
+    MessageEntry{
+        "ActionNotSupported",
+        {
+            .description = "Indicates that the action supplied with the POST "
+                           "operation is not supported by the resource.",
+            .message = "The action %1 is not supported by the resource.",
+            .severity = "Critical",
+            .numberOfArgs = 1,
+            .paramTypes =
+                {
+                    "string",
+                },
+            .resolution = "The action supplied cannot be resubmitted to the "
+                          "implementation.  Perhaps the action was invalid, "
+                          "the wrong resource was the target or the "
+                          "implementation documentation may be of assistance.",
+        }},
+    MessageEntry{
+        "ActionParameterDuplicate",
+        {
+            .description = "Indicates that the action was supplied with a "
+                           "duplicated parameter in the request body.",
+            .message = "The action %1 was submitted with more than one value "
+                       "for the parameter %2.",
+            .severity = "Warning",
+            .numberOfArgs = 2,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                },
+            .resolution =
+                "Resubmit the action with only one instance of the parameter "
+                "in the request body if the operation failed.",
+        }},
+    MessageEntry{
+        "ActionParameterMissing",
+        {
+            .description = "Indicates that the action requested was missing a "
+                           "parameter that is required to process the action.",
+            .message = "The action %1 requires the parameter %2 to be present "
+                       "in the request body.",
+            .severity = "Critical",
+            .numberOfArgs = 2,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                },
+            .resolution = "Supply the action with the required parameter in "
+                          "the request body when the request is resubmitted.",
+        }},
+    MessageEntry{
+        "ActionParameterNotSupported",
+        {
+            .description = "Indicates that the parameter supplied for the "
+                           "action is not supported on the resource.",
+            .message = "The parameter %1 for the action %2 is not supported on "
+                       "the target resource.",
+            .severity = "Warning",
+            .numberOfArgs = 2,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                },
+            .resolution = "Remove the parameter supplied and resubmit the "
+                          "request if the operation failed.",
+        }},
+    MessageEntry{
+        "ActionParameterUnknown",
+        {
+            .description =
+                "Indicates that an action was submitted but a parameter "
+                "supplied did not match any of the known parameters.",
+            .message =
+                "The action %1 was submitted with the invalid parameter %2.",
+            .severity = "Warning",
+            .numberOfArgs = 2,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                },
+            .resolution = "Correct the invalid parameter and resubmit the "
+                          "request if the operation failed.",
+        }},
+    MessageEntry{
+        "ActionParameterValueFormatError",
+        {
+            .description =
+                "Indicates that a parameter was given the correct value type "
+                "but the value of that parameter was not supported.  This "
+                "includes value size/length exceeded.",
+            .message = "The value %1 for the parameter %2 in the action %3 is "
+                       "of a different format than the parameter can accept.",
+            .severity = "Warning",
+            .numberOfArgs = 3,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                    "string",
+                },
+            .resolution =
+                "Correct the value for the parameter in the request body and "
+                "resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "ActionParameterValueTypeError",
+        {
+            .description = "Indicates that a parameter was given the wrong "
+                           "value type, such as when a number is supplied for "
+                           "a parameter that requires a string.",
+            .message = "The value %1 for the parameter %2 in the action %3 is "
+                       "of a different type than the parameter can accept.",
+            .severity = "Warning",
+            .numberOfArgs = 3,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                    "string",
+                },
+            .resolution =
+                "Correct the value for the parameter in the request body and "
+                "resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "CouldNotEstablishConnection",
+        {
+            .description = "Indicates that the attempt to access the "
+                           "resource/file/image at the URI was unsuccessful "
+                           "because a session could not be established.",
+            .message =
+                "The service failed to establish a connection with the URI %1.",
+            .severity = "Critical",
+            .numberOfArgs = 1,
+            .paramTypes =
+                {
+                    "string",
+                },
+            .resolution =
+                "Ensure that the URI contains a valid and reachable node name, "
+                "protocol information and other URI components.",
+        }},
+    MessageEntry{
+        "CreateFailedMissingReqProperties",
+        {
+            .description =
+                "Indicates that a create was attempted on a resource but that "
+                "properties that are required for the create operation were "
+                "missing from the request.",
+            .message = "The create operation failed because the required "
+                       "property %1 was missing from the request.",
+            .severity = "Critical",
+            .numberOfArgs = 1,
+            .paramTypes =
+                {
+                    "string",
+                },
+            .resolution =
+                "Correct the body to include the required property with a "
+                "valid value and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "CreateLimitReachedForResource",
+        {
+            .description = "Indicates that no more resources can be created on "
+                           "the resource as it has reached its create limit.",
+            .message = "The create operation failed because the resource has "
+                       "reached the limit of possible resources.",
+            .severity = "Critical",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution =
+                "Either delete resources and resubmit the request if the "
+                "operation failed or do not resubmit the request.",
+        }},
+    MessageEntry{"Created",
+                 {
+                     .description =
+                         "Indicates that all conditions of a successful "
+                         "creation operation have been met.",
+                     .message = "The resource has been created successfully",
+                     .severity = "OK",
+                     .numberOfArgs = 0,
+                     .paramTypes = {},
+                     .resolution = "None",
+                 }},
+    MessageEntry{
+        "EmptyJSON",
+        {
+            .description =
+                "Indicates that the request body contained an empty JSON "
+                "object when one or more properties are expected in the body.",
+            .message = "The request body submitted contained an empty JSON "
+                       "object and the service is unable to process it.",
+            .severity = "Warning",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution =
+                "Add properties in the JSON object and resubmit the request.",
+        }},
+    MessageEntry{
+        "EventSubscriptionLimitExceeded",
+        {
+            .description = "Indicates that a event subscription establishment "
+                           "has been requested but the operation failed due to "
+                           "the number of simultaneous connection exceeding "
+                           "the limit of the implementation.",
+            .message = "The event subscription failed due to the number of "
+                       "simultaneous subscriptions exceeding the limit of the "
+                       "implementation.",
+            .severity = "Critical",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution =
+                "Reduce the number of other subscriptions before trying to "
+                "establish the event subscription or increase the limit of "
+                "simultaneous subscriptions (if supported).",
+        }},
+    MessageEntry{
+        "GeneralError",
+        {
+            .description =
+                "Indicates that a general error has occurred.  Use in "
+                "ExtendedInfo is discouraged.  When used in ExtendedInfo, "
+                "implementations are expected to include a Resolution property "
+                "with this error to indicate how to resolve the problem.",
+            .message = "A general error has occurred. See Resolution for "
+                       "information on how to resolve the error.",
+            .severity = "Critical",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "None.",
+        }},
+    MessageEntry{
+        "InsufficientPrivilege",
+        {
+            .description = "Indicates that the credentials associated with the "
+                           "established session do not have sufficient "
+                           "privileges for the requested operation",
+            .message = "There are insufficient privileges for the account or "
+                       "credentials associated with the current session to "
+                       "perform the requested operation.",
+            .severity = "Critical",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution =
+                "Either abandon the operation or change the associated access "
+                "rights and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "InternalError",
+        {
+            .description =
+                "Indicates that the request failed for an unknown internal "
+                "error but that the service is still operational.",
+            .message = "The request failed due to an internal service error.  "
+                       "The service is still operational.",
+            .severity = "Critical",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "Resubmit the request.  If the problem persists, "
+                          "consider resetting the service.",
+        }},
+    MessageEntry{
+        "InvalidIndex",
+        {
+            .description = "The Index is not valid.",
+            .message = "The Index %1 is not a valid offset into the array.",
+            .severity = "Warning",
+            .numberOfArgs = 1,
+            .paramTypes =
+                {
+                    "number",
+                },
+            .resolution = "Verify the index value provided is within the "
+                          "bounds of the array.",
+        }},
+    MessageEntry{
+        "InvalidObject",
+        {
+            .description = "Indicates that the object in question is invalid "
+                           "according to the implementation.  Examples include "
+                           "a firmware update malformed URI.",
+            .message = "The object at %1 is invalid.",
+            .severity = "Critical",
+            .numberOfArgs = 1,
+            .paramTypes =
+                {
+                    "string",
+                },
+            .resolution =
+                "Either the object is malformed or the URI is not correct.  "
+                "Correct the condition and resubmit the request if it failed.",
+        }},
+    MessageEntry{
+        "MalformedJSON",
+        {
+            .description = "Indicates that the request body was malformed "
+                           "JSON.  Could be duplicate, syntax error,etc.",
+            .message = "The request body submitted was malformed JSON and "
+                       "could not be parsed by the receiving service.",
+            .severity = "Critical",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "Ensure that the request body is valid JSON and "
+                          "resubmit the request.",
+        }},
+    MessageEntry{
+        "NoOperation",
+        {
+            .description = "Indicates that the requested operation will not "
+                           "perform any changes on the service.",
+            .message = "The request body submitted contain no data to act upon "
+                       "and no changes to the resource took place.",
+            .severity = "Warning",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution =
+                "Add properties in the JSON object and resubmit the request.",
+        }},
+    MessageEntry{
+        "NoValidSession",
+        {
+            .description =
+                "Indicates that the operation failed because a valid session "
+                "is required in order to access any resources.",
+            .message = "There is no valid session established with the "
+                       "implementation.",
+            .severity = "Critical",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution =
+                "Establish as session before attempting any operations.",
+        }},
+    MessageEntry{
+        "PropertyDuplicate",
+        {
+            .description = "Indicates that a duplicate property was included "
+                           "in the request body.",
+            .message = "The property %1 was duplicated in the request.",
+            .severity = "Warning",
+            .numberOfArgs = 1,
+            .paramTypes =
+                {
+                    "string",
+                },
+            .resolution = "Remove the duplicate property from the request body "
+                          "and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "PropertyMissing",
+        {
+            .description = "Indicates that a required property was not "
+                           "supplied as part of the request.",
+            .message = "The property %1 is a required property and must be "
+                       "included in the request.",
+            .severity = "Warning",
+            .numberOfArgs = 1,
+            .paramTypes =
+                {
+                    "string",
+                },
+            .resolution =
+                "Ensure that the property is in the request body and has a "
+                "valid value and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "PropertyNotWritable",
+        {
+            .description =
+                "Indicates that a property was given a value in the request "
+                "body, but the property is a readonly property.",
+            .message = "The property %1 is a read only property and cannot be "
+                       "assigned a value.",
+            .severity = "Warning",
+            .numberOfArgs = 1,
+            .paramTypes =
+                {
+                    "string",
+                },
+            .resolution = "Remove the property from the request body and "
+                          "resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "PropertyUnknown",
+        {
+            .description = "Indicates that an unknown property was included in "
+                           "the request body.",
+            .message = "The property %1 is not in the list of valid properties "
+                       "for the resource.",
+            .severity = "Warning",
+            .numberOfArgs = 1,
+            .paramTypes =
+                {
+                    "string",
+                },
+            .resolution = "Remove the unknown property from the request body "
+                          "and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "PropertyValueFormatError",
+        {
+            .description =
+                "Indicates that a property was given the correct value type "
+                "but the value of that property was not supported.",
+            .message = "The value %1 for the property %2 is of a different "
+                       "format than the property can accept.",
+            .severity = "Warning",
+            .numberOfArgs = 2,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                },
+            .resolution =
+                "Correct the value for the property in the request body and "
+                "resubmit the request if the operation failed.",
+        }},
+    MessageEntry{"PropertyValueModified",
+                 {
+                     .description =
+                         "Indicates that a property was given the correct "
+                         "value type but the value of that property was "
+                         "modified.  Examples are truncated or rounded values.",
+                     .message = "The property %1 was assigned the value %2 due "
+                                "to modification by the service.",
+                     .severity = "Warning",
+                     .numberOfArgs = 2,
+                     .paramTypes =
+                         {
+                             "string",
+                             "string",
+                         },
+                     .resolution = "No resolution is required.",
+                 }},
+    MessageEntry{
+        "PropertyValueNotInList",
+        {
+            .description = "Indicates that a property was given the correct "
+                           "value type but the value of that property was not "
+                           "supported.  This values not in an enumeration",
+            .message = "The value %1 for the property %2 is not in the list of "
+                       "acceptable values.",
+            .severity = "Warning",
+            .numberOfArgs = 2,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                },
+            .resolution = "Choose a value from the enumeration list that the "
+                          "implementation can support and resubmit the request "
+                          "if the operation failed.",
+        }},
+    MessageEntry{
+        "PropertyValueTypeError",
+        {
+            .description = "Indicates that a property was given the wrong "
+                           "value type, such as when a number is supplied for "
+                           "a property that requires a string.",
+            .message = "The value %1 for the property %2 is of a different "
+                       "type than the property can accept.",
+            .severity = "Warning",
+            .numberOfArgs = 2,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                },
+            .resolution =
+                "Correct the value for the property in the request body and "
+                "resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "QueryNotSupported",
+        {
+            .description =
+                "Indicates that query is not supported on the implementation.",
+            .message = "Querying is not supported by the implementation.",
+            .severity = "Warning",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "Remove the query parameters and resubmit the "
+                          "request if the operation failed.",
+        }},
+    MessageEntry{
+        "QueryNotSupportedOnResource",
+        {
+            .description = "Indicates that query is not supported on the given "
+                           "resource, such as when a start/count query is "
+                           "attempted on a resource that is not a collection.",
+            .message = "Querying is not supported on the requested resource.",
+            .severity = "Warning",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "Remove the query parameters and resubmit the "
+                          "request if the operation failed.",
+        }},
+    MessageEntry{
+        "QueryParameterOutOfRange",
+        {
+            .description = "Indicates that a query parameter was supplied that "
+                           "is out of range for the given resource.  This can "
+                           "happen with values that are too low or beyond that "
+                           "possible for the supplied resource, such as when a "
+                           "page is requested that is beyond the last page.",
+            .message =
+                "The value %1 for the query parameter %2 is out of range %3.",
+            .severity = "Warning",
+            .numberOfArgs = 3,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                    "string",
+                },
+            .resolution =
+                "Reduce the value for the query parameter to a value that is "
+                "within range, such as a start or count value that is within "
+                "bounds of the number of resources in a collection or a page "
+                "that is within the range of valid pages.",
+        }},
+    MessageEntry{
+        "QueryParameterValueFormatError",
+        {
+            .description =
+                "Indicates that a query parameter was given the correct value "
+                "type but the value of that parameter was not supported.  This "
+                "includes value size/length exceeded.",
+            .message = "The value %1 for the parameter %2 is of a different "
+                       "format than the parameter can accept.",
+            .severity = "Warning",
+            .numberOfArgs = 2,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                },
+            .resolution =
+                "Correct the value for the query parameter in the request and "
+                "resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "QueryParameterValueTypeError",
+        {
+            .description =
+                "Indicates that a query parameter was given the wrong value "
+                "type, such as when a number is supplied for a query parameter "
+                "that requires a string.",
+            .message = "The value %1 for the query parameter %2 is of a "
+                       "different type than the parameter can accept.",
+            .severity = "Warning",
+            .numberOfArgs = 2,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                },
+            .resolution =
+                "Correct the value for the query parameter in the request and "
+                "resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "ResourceAlreadyExists",
+        {
+            .description = "Indicates that a resource change or creation was "
+                           "attempted but that the operation cannot proceed "
+                           "because the resource already exists.",
+            .message = "The requested resource of type %1 with the property %2 "
+                       "with the value %3 already exists.",
+            .severity = "Critical",
+            .numberOfArgs = 3,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                    "string",
+                },
+            .resolution = "Do not repeat the create operation as the resource "
+                          "has already been created.",
+        }},
+    MessageEntry{
+        "ResourceAtUriInUnknownFormat",
+        {
+            .description =
+                "Indicates that the URI was valid but the resource or image at "
+                "that URI was in a format not supported by the service.",
+            .message = "The resource at %1 is in a format not recognized by "
+                       "the service.",
+            .severity = "Critical",
+            .numberOfArgs = 1,
+            .paramTypes =
+                {
+                    "string",
+                },
+            .resolution = "Place an image or resource or file that is "
+                          "recognized by the service at the URI.",
+        }},
+    MessageEntry{
+        "ResourceAtUriUnauthorized",
+        {
+            .description = "Indicates that the attempt to access the "
+                           "resource/file/image at the URI was unauthorized.",
+            .message = "While accessing the resource at %1, the service "
+                       "received an authorization error %2.",
+            .severity = "Critical",
+            .numberOfArgs = 2,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                },
+            .resolution = "Ensure that the appropriate access is provided for "
+                          "the service in order for it to access the URI.",
+        }},
+    MessageEntry{
+        "ResourceCannotBeDeleted",
+        {
+            .description = "Indicates that a delete operation was attempted on "
+                           "a resource that cannot be deleted.",
+            .message = "The delete request failed because the resource "
+                       "requested cannot be deleted.",
+            .severity = "Critical",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "Do not attempt to delete a non-deletable resource.",
+        }},
+    MessageEntry{
+        "ResourceExhaustion",
+        {
+            .description =
+                "Indicates that a resource could not satisfy the request due "
+                "to some unavailability of resources.  An example is that "
+                "available capacity has been allocated.",
+            .message = "The resource %1 was unable to satisfy the request due "
+                       "to unavailability of resources.",
+            .severity = "Critical",
+            .numberOfArgs = 1,
+            .paramTypes =
+                {
+                    "string",
+                },
+            .resolution = "Ensure that the resources are available and "
+                          "resubmit the request.",
+        }},
+    MessageEntry{
+        "ResourceInStandby",
+        {
+            .description = "Indicates that the request could not be performed "
+                           "because the resource is in standby.",
+            .message = "The request could not be performed because the "
+                       "resource is in standby.",
+            .severity = "Critical",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "Ensure that the resource is in the correct power "
+                          "state and resubmit the request.",
+        }},
+    MessageEntry{
+        "ResourceInUse",
+        {
+            .description = "Indicates that a change was requested to a "
+                           "resource but the change was rejected due to the "
+                           "resource being in use or transition.",
+            .message = "The change to the requested resource failed because "
+                       "the resource is in use or in transition.",
+            .severity = "Warning",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "Remove the condition and resubmit the request if "
+                          "the operation failed.",
+        }},
+    MessageEntry{
+        "ResourceMissingAtURI",
+        {
+            .description =
+                "Indicates that the operation expected an image or other "
+                "resource at the provided URI but none was found.  Examples of "
+                "this are in requests that require URIs like Firmware Update.",
+            .message = "The resource at the URI %1 was not found.",
+            .severity = "Critical",
+            .numberOfArgs = 1,
+            .paramTypes =
+                {
+                    "string",
+                },
+            .resolution = "Place a valid resource at the URI or correct the "
+                          "URI and resubmit the request.",
+        }},
+    MessageEntry{
+        "ResourceNotFound",
+        {
+            .description = "Indicates that the operation expected a resource "
+                           "identifier that corresponds to an existing "
+                           "resource but one was not found.",
+            .message =
+                "The requested resource of type %1 named %2 was not found.",
+            .severity = "Critical",
+            .numberOfArgs = 2,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                },
+            .resolution =
+                "Provide a valid resource identifier and resubmit the request.",
+        }},
+    MessageEntry{
+        "ResourceTypeIncompatible",
+        {
+            .description =
+                "Indicates that the resource type of the operation does not "
+                "match that for the operation destination.  Examples of when "
+                "this can happen include during a POST to a collection using "
+                "the wrong resource type, an update where the @odata.types do "
+                "not match or on a major version incompatability.",
+            .message = "The @odata.type of the request body %1 is incompatible "
+                       "with the @odata.type of the resource which is %2.",
+            .severity = "Critical",
+            .numberOfArgs = 2,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                },
+            .resolution = "Resubmit the request with a payload compatible with "
+                          "the resource's schema.",
+        }},
+    MessageEntry{
+        "ServiceInUnknownState",
+        {
+            .description =
+                "Indicates that the operation failed because the service is in "
+                "an unknown state and cannot accept additional requests.",
+            .message =
+                "The operation failed because the service is in an unknown "
+                "state and can no longer take incoming requests.",
+            .severity = "Critical",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "Restart the service and resubmit the request if the "
+                          "operation failed.",
+        }},
+    MessageEntry{
+        "ServiceShuttingDown",
+        {
+            .description =
+                "Indicates that the operation failed as the service is "
+                "shutting down, such as when the service reboots.",
+            .message = "The operation failed because the service is shutting "
+                       "down and can no longer take incoming requests.",
+            .severity = "Critical",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "When the service becomes available, resubmit the "
+                          "request if the operation failed.",
+        }},
+    MessageEntry{
+        "ServiceTemporarilyUnavailable",
+        {
+            .description = "Indicates the service is temporarily unavailable.",
+            .message =
+                "The service is temporarily unavailable.  Retry in %1 seconds.",
+            .severity = "Critical",
+            .numberOfArgs = 1,
+            .paramTypes =
+                {
+                    "string",
+                },
+            .resolution = "Wait for the indicated retry duration and retry the "
+                          "operation.",
+        }},
+    MessageEntry{
+        "SessionLimitExceeded",
+        {
+            .description =
+                "Indicates that a session establishment has been requested but "
+                "the operation failed due to the number of simultaneous "
+                "sessions exceeding the limit of the implementation.",
+            .message = "The session establishment failed due to the number of "
+                       "simultaneous sessions exceeding the limit of the "
+                       "implementation.",
+            .severity = "Critical",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "Reduce the number of other sessions before trying "
+                          "to establish the session or increase the limit of "
+                          "simultaneous sessions (if supported).",
+        }},
+    MessageEntry{
+        "SessionTerminated",
+        {
+            .description =
+                "Indicates that the DELETE operation on the Session resource "
+                "resulted in the successful termination of the session.",
+            .message = "The session was successfully terminated.",
+            .severity = "OK",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "No resolution is required.",
+        }},
+    MessageEntry{
+        "SourceDoesNotSupportProtocol",
+        {
+            .description =
+                "Indicates that while attempting to access, connect to or "
+                "transfer a resource/file/image from another location that the "
+                "other end of the connection did not support the protocol",
+            .message = "The other end of the connection at %1 does not support "
+                       "the specified protocol %2.",
+            .severity = "Critical",
+            .numberOfArgs = 2,
+            .paramTypes =
+                {
+                    "string",
+                    "string",
+                },
+            .resolution = "Change protocols or URIs. ",
+        }},
+    MessageEntry{
+        "StringValueTooLong",
+        {
+            .description =
+                "Indicates that a string value passed to the given resource "
+                "exceeded its length limit. An example is when a shorter limit "
+                "is imposed by an implementation than that allowed by the "
+                "specification.",
+            .message = "The string %1 exceeds the length limit %2.",
+            .severity = "Warning",
+            .numberOfArgs = 2,
+            .paramTypes =
+                {
+                    "string",
+                    "number",
+                },
+            .resolution =
+                "Resubmit the request with an appropriate string length.",
+        }},
+    MessageEntry{"Success",
+                 {
+                     .description = "Indicates that all conditions of a "
+                                    "successful operation have been met.",
+                     .message = "Successfully Completed Request",
+                     .severity = "OK",
+                     .numberOfArgs = 0,
+                     .paramTypes = {},
+                     .resolution = "None",
+                 }},
+    MessageEntry{
+        "UnrecognizedRequestBody",
+        {
+            .description = "Indicates that the service encountered an "
+                           "unrecognizable request body that could not even be "
+                           "interpreted as malformed JSON.",
+            .message = "The service detected a malformed request body that it "
+                       "was unable to interpret.",
+            .severity = "Warning",
+            .numberOfArgs = 0,
+            .paramTypes = {},
+            .resolution = "Correct the request body and resubmit the request "
+                          "if it failed.",
+        }},
+};
+} // namespace redfish::message_registries::base
diff --git a/redfish-core/lib/message_registries.hpp b/redfish-core/lib/message_registries.hpp
new file mode 100644
index 0000000..f01caf9
--- /dev/null
+++ b/redfish-core/lib/message_registries.hpp
@@ -0,0 +1,189 @@
+/*
+// Copyright (c) 2019 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+*/
+#pragma once
+
+#include "node.hpp"
+#include "registries.hpp"
+#include "registries/base_message_registry.hpp"
+
+namespace redfish
+{
+
+class MessageRegistryFileCollection : public Node
+{
+  public:
+    template <typename CrowApp>
+    MessageRegistryFileCollection(CrowApp &app) :
+        Node(app, "/redfish/v1/Registries/")
+    {
+        entityPrivileges = {
+            {boost::beast::http::verb::get, {{"Login"}}},
+            {boost::beast::http::verb::head, {{"Login"}}},
+            {boost::beast::http::verb::patch, {{"ConfigureManager"}}},
+            {boost::beast::http::verb::put, {{"ConfigureManager"}}},
+            {boost::beast::http::verb::delete_, {{"ConfigureManager"}}},
+            {boost::beast::http::verb::post, {{"ConfigureManager"}}}};
+    }
+
+  private:
+    /**
+     * Functions triggers appropriate requests on DBus
+     */
+    void doGet(crow::Response &res, const crow::Request &req,
+               const std::vector<std::string> &params) override
+    {
+        std::shared_ptr<AsyncResp> asyncResp = std::make_shared<AsyncResp>(res);
+        // Collections don't include the static data added by SubRoute because
+        // it has a duplicate entry for members
+        asyncResp->res.jsonValue["@odata.type"] =
+            "#MessageRegistryFileCollection.MessageRegistryFileCollection";
+        asyncResp->res.jsonValue["@odata.context"] =
+            "/redfish/v1/"
+            "$metadata#MessageRegistryFileCollection."
+            "MessageRegistryFileCollection";
+        asyncResp->res.jsonValue["@odata.id"] = "/redfish/v1/Registries";
+        asyncResp->res.jsonValue["Name"] = "MessageRegistryFile Collection";
+        asyncResp->res.jsonValue["Description"] =
+            "Collection of MessageRegistryFiles";
+        nlohmann::json &messageRegistryFileArray =
+            asyncResp->res.jsonValue["Members"];
+        messageRegistryFileArray = nlohmann::json::array();
+        messageRegistryFileArray.push_back(
+            {{"@odata.id", "/redfish/v1/Registries/Base"}});
+        messageRegistryFileArray.push_back(
+            {{"@odata.id", "/redfish/v1/Registries/OpenBMC"}});
+        asyncResp->res.jsonValue["Members@odata.count"] =
+            messageRegistryFileArray.size();
+    }
+};
+
+class BaseMessageRegistryFile : public Node
+{
+  public:
+    template <typename CrowApp>
+    BaseMessageRegistryFile(CrowApp &app) :
+        Node(app, "/redfish/v1/Registries/Base/")
+    {
+        entityPrivileges = {
+            {boost::beast::http::verb::get, {{"Login"}}},
+            {boost::beast::http::verb::head, {{"Login"}}},
+            {boost::beast::http::verb::patch, {{"ConfigureManager"}}},
+            {boost::beast::http::verb::put, {{"ConfigureManager"}}},
+            {boost::beast::http::verb::delete_, {{"ConfigureManager"}}},
+            {boost::beast::http::verb::post, {{"ConfigureManager"}}}};
+    }
+
+  private:
+    void doGet(crow::Response &res, const crow::Request &req,
+               const std::vector<std::string> &params) override
+    {
+        std::shared_ptr<AsyncResp> asyncResp = std::make_shared<AsyncResp>(res);
+
+        asyncResp->res.jsonValue["@odata.id"] = "/redfish/v1/Registries/Base";
+        asyncResp->res.jsonValue["@odata.type"] =
+            "#MessageRegistryFile.v1_1_0.MessageRegistryFile";
+        asyncResp->res.jsonValue["@odata.context"] =
+            "/redfish/v1/$metadata#MessageRegistryFile.MessageRegistryFile";
+        asyncResp->res.jsonValue["Name"] = "Base Message Registry File";
+        asyncResp->res.jsonValue["Description"] =
+            "DMTF Base Message Registry File Location";
+        asyncResp->res.jsonValue["Id"] = "Base";
+        asyncResp->res.jsonValue["Registry"] = "Base.1.4";
+        nlohmann::json &messageRegistryLanguageArray =
+            asyncResp->res.jsonValue["Languages"];
+        messageRegistryLanguageArray = nlohmann::json::array();
+        messageRegistryLanguageArray.push_back({"en"});
+        asyncResp->res.jsonValue["Languages@odata.count"] =
+            messageRegistryLanguageArray.size();
+        nlohmann::json &messageRegistryLocationArray =
+            asyncResp->res.jsonValue["Location"];
+        messageRegistryLocationArray = nlohmann::json::array();
+        messageRegistryLocationArray.push_back(
+            {{"Language", "en"},
+             {"PublicationUri",
+              "https://redfish.dmtf.org/registries/Base.1.4.0.json"},
+             {"Uri", "/redfish/v1/Registries/Base/Base"}});
+        asyncResp->res.jsonValue["Location@odata.count"] =
+            messageRegistryLocationArray.size();
+    }
+};
+
+class BaseMessageRegistry : public Node
+{
+  public:
+    template <typename CrowApp>
+    BaseMessageRegistry(CrowApp &app) :
+        Node(app, "/redfish/v1/Registries/Base/Base/")
+    {
+        entityPrivileges = {
+            {boost::beast::http::verb::get, {{"Login"}}},
+            {boost::beast::http::verb::head, {{"Login"}}},
+            {boost::beast::http::verb::patch, {{"ConfigureManager"}}},
+            {boost::beast::http::verb::put, {{"ConfigureManager"}}},
+            {boost::beast::http::verb::delete_, {{"ConfigureManager"}}},
+            {boost::beast::http::verb::post, {{"ConfigureManager"}}}};
+    }
+
+  private:
+    void doGet(crow::Response &res, const crow::Request &req,
+               const std::vector<std::string> &params) override
+    {
+        std::shared_ptr<AsyncResp> asyncResp = std::make_shared<AsyncResp>(res);
+
+        asyncResp->res.jsonValue["@Redfish.Copyright"] =
+            "Copyright 2014-2018 DMTF. All rights reserved.";
+        asyncResp->res.jsonValue["@odata.type"] =
+            "#MessageRegistry.v1_0_0.MessageRegistry";
+        asyncResp->res.jsonValue["Id"] = "Base.1.4.0";
+        asyncResp->res.jsonValue["Name"] = "Base Message Registry";
+        asyncResp->res.jsonValue["Language"] = "en";
+        asyncResp->res.jsonValue["Description"] =
+            "This registry defines the base messages for Redfish";
+        asyncResp->res.jsonValue["RegistryPrefix"] = "Base";
+        asyncResp->res.jsonValue["RegistryVersion"] = "1.4.0";
+        asyncResp->res.jsonValue["OwningEntity"] = "DMTF";
+        nlohmann::json &messageArray = asyncResp->res.jsonValue["Messages"];
+        messageArray = nlohmann::json::array();
+
+        // Go through the Message Registry and populate each Message
+        for (const message_registries::MessageEntry &message :
+             message_registries::base::registry)
+        {
+            messageArray.push_back(
+                {{message.first,
+                  {{"Description", message.second.description},
+                   {"Message", message.second.message},
+                   {"Severity", message.second.severity},
+                   {"NumberOfArgs", message.second.numberOfArgs},
+                   {"Resolution", message.second.resolution}}}});
+            if (message.second.numberOfArgs > 0)
+            {
+                nlohmann::json &messageParamArray =
+                    messageArray.back()[message.first]["ParamTypes"];
+                for (const char *str : message.second.paramTypes)
+                {
+                    if (str == nullptr)
+                    {
+                        break;
+                    }
+                    messageParamArray.push_back(str);
+                }
+            }
+        }
+    }
+};
+
+} // namespace redfish
diff --git a/scripts/parse_registries.py b/scripts/parse_registries.py
new file mode 100644
index 0000000..d9d6cf3
--- /dev/null
+++ b/scripts/parse_registries.py
@@ -0,0 +1,85 @@
+#!/usr/bin/python3
+import requests
+import zipfile
+from io import BytesIO
+import os
+from collections import defaultdict
+from collections import OrderedDict
+from distutils.version import StrictVersion
+import shutil
+import json
+import glob
+import subprocess
+
+import xml.etree.ElementTree as ET
+
+REGISTRY_HEADER = '''/*
+// Copyright (c) 2019 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+*/
+/****************************************************************
+ * This is an auto-generated header which contains definitions
+ * for Redfish DMTF defined messages.
+ ***************************************************************/
+#pragma once
+#include <registries.hpp>
+
+namespace redfish::message_registries::{}
+{{
+
+const std::array registry = {{
+'''
+
+SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
+
+include_path = os.path.realpath(os.path.join(SCRIPT_DIR, "..", "redfish-core", "include"))
+
+proxies = {
+    'https': os.environ.get("https_proxy", None)
+}
+
+base_file = requests.get('https://redfish.dmtf.org/registries/Base.1.4.0.json', proxies=proxies)
+base_file.raise_for_status()
+base_json = json.loads(base_file.text)
+base_path = os.path.join(include_path, "base_message_registry.hpp")
+
+files = [(base_path, base_json, "base")]
+
+# Remove the old files
+for file, json, namespace in files:
+    try:
+        os.remove(file)
+    except:
+        print("{} not found".format(file))
+
+    with open(file, 'w') as registry:
+        registry.write(REGISTRY_HEADER.format(namespace))
+        for messageId, message in sorted(json["Messages"].items()):
+            registry.write("MessageEntry{")
+            registry.write("\"{}\",".format(messageId))
+            registry.write("{")
+            registry.write(".description = \"{}\",".format(message["Description"]))
+            registry.write(".message = \"{}\",".format(message["Message"]))
+            registry.write(".severity = \"{}\",".format(message["Severity"]))
+            registry.write(".numberOfArgs = {},".format(message["NumberOfArgs"]))
+            registry.write(".paramTypes = {")
+            paramTypes = message.get("ParamTypes")
+            if paramTypes:
+                for paramType in paramTypes:
+                    registry.write("\"{}\",".format(paramType))
+            registry.write("},")
+            registry.write(".resolution = \"{}\",".format(message["Resolution"]))
+            registry.write("}},")
+        registry.write("};}\n")
+    subprocess.check_call(["clang-format", "-i", file])
diff --git a/static/redfish/v1/Registries/Base/Base.1.4.0.json b/static/redfish/v1/Registries/Base/Base.1.4.0.json
deleted file mode 100644
index a4013d7..0000000
--- a/static/redfish/v1/Registries/Base/Base.1.4.0.json
+++ /dev/null
@@ -1,541 +0,0 @@
-{
-    "@Redfish.Copyright": "Copyright 2014-2018 DMTF. All rights reserved.",
-    "@odata.type": "#MessageRegistry.v1_0_0.MessageRegistry",
-    "Id": "Base.1.4.0",
-    "Name": "Base Message Registry",
-    "Language": "en",
-    "Description": "This registry defines the base messages for Redfish",
-    "RegistryPrefix": "Base",
-    "RegistryVersion": "1.4.0",
-    "OwningEntity": "DMTF",
-    "Messages": {
-        "Success": {
-            "Description": "Indicates that all conditions of a successful operation have been met.",
-            "Message": "Successfully Completed Request",
-            "Severity": "OK",
-            "NumberOfArgs": 0,
-            "Resolution": "None"
-        },
-        "GeneralError": {
-            "Description": "Indicates that a general error has occurred.  Use in ExtendedInfo is discouraged.  When used in ExtendedInfo, implementations are expected to include a Resolution property with this error to indicate how to resolve the problem.",
-            "Message": "A general error has occurred. See Resolution for information on how to resolve the error.",
-            "Severity": "Critical",
-            "NumberOfArgs": 0,
-            "Resolution": "None."
-        },
-        "Created": {
-            "Description": "Indicates that all conditions of a successful creation operation have been met.",
-            "Message": "The resource has been created successfully",
-            "Severity": "OK",
-            "NumberOfArgs": 0,
-            "Resolution": "None"
-        },
-        "NoOperation": {
-            "Description": "Indicates that the requested operation will not perform any changes on the service.",
-            "Message": "The request body submitted contain no data to act upon and no changes to the resource took place.",
-            "Severity": "Warning",
-            "NumberOfArgs": 0,
-            "Resolution": "Add properties in the JSON object and resubmit the request."
-        },
-        "PropertyDuplicate": {
-            "Description": "Indicates that a duplicate property was included in the request body.",
-            "Message": "The property %1 was duplicated in the request.",
-            "Severity": "Warning",
-            "NumberOfArgs": 1,
-            "ParamTypes": [
-                "string"
-            ],
-            "Resolution": "Remove the duplicate property from the request body and resubmit the request if the operation failed."
-        },
-        "PropertyUnknown": {
-            "Description": "Indicates that an unknown property was included in the request body.",
-            "Message": "The property %1 is not in the list of valid properties for the resource.",
-            "Severity": "Warning",
-            "NumberOfArgs": 1,
-            "ParamTypes": [
-                "string"
-            ],
-            "Resolution": "Remove the unknown property from the request body and resubmit the request if the operation failed."
-        },
-        "PropertyValueTypeError": {
-            "Description": "Indicates that a property was given the wrong value type, such as when a number is supplied for a property that requires a string.",
-            "Message": "The value %1 for the property %2 is of a different type than the property can accept.",
-            "Severity": "Warning",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "string"
-            ],
-            "Resolution": "Correct the value for the property in the request body and resubmit the request if the operation failed."
-        },
-        "PropertyValueFormatError": {
-            "Description": "Indicates that a property was given the correct value type but the value of that property was not supported.",
-            "Message": "The value %1 for the property %2 is of a different format than the property can accept.",
-            "Severity": "Warning",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "string"
-            ],
-            "Resolution": "Correct the value for the property in the request body and resubmit the request if the operation failed."
-        },
-        "PropertyValueNotInList": {
-            "Description": "Indicates that a property was given the correct value type but the value of that property was not supported.  This values not in an enumeration",
-            "Message": "The value %1 for the property %2 is not in the list of acceptable values.",
-            "Severity": "Warning",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "string"
-            ],
-            "Resolution": "Choose a value from the enumeration list that the implementation can support and resubmit the request if the operation failed."
-        },
-        "PropertyNotWritable": {
-            "Description": "Indicates that a property was given a value in the request body, but the property is a readonly property.",
-            "Message": "The property %1 is a read only property and cannot be assigned a value.",
-            "Severity": "Warning",
-            "NumberOfArgs": 1,
-            "ParamTypes": [
-                "string"
-            ],
-            "Resolution": "Remove the property from the request body and resubmit the request if the operation failed."
-        },
-        "PropertyMissing": {
-            "Description": "Indicates that a required property was not supplied as part of the request.",
-            "Message": "The property %1 is a required property and must be included in the request.",
-            "Severity": "Warning",
-            "NumberOfArgs": 1,
-            "ParamTypes": [
-                "string"
-            ],
-            "Resolution": "Ensure that the property is in the request body and has a valid value and resubmit the request if the operation failed."
-        },
-        "MalformedJSON": {
-            "Description": "Indicates that the request body was malformed JSON.  Could be duplicate, syntax error,etc.",
-            "Message": "The request body submitted was malformed JSON and could not be parsed by the receiving service.",
-            "Severity": "Critical",
-            "NumberOfArgs": 0,
-            "Resolution": "Ensure that the request body is valid JSON and resubmit the request."
-        },
-        "EmptyJSON": {
-            "Description": "Indicates that the request body contained an empty JSON object when one or more properties are expected in the body.",
-            "Message": "The request body submitted contained an empty JSON object and the service is unable to process it.",
-            "Severity": "Warning",
-            "NumberOfArgs": 0,
-            "Resolution": "Add properties in the JSON object and resubmit the request."
-        },
-        "ActionNotSupported": {
-            "Description": "Indicates that the action supplied with the POST operation is not supported by the resource.",
-            "Message": "The action %1 is not supported by the resource.",
-            "Severity": "Critical",
-            "NumberOfArgs": 1,
-            "ParamTypes": [
-                "string"
-            ],
-            "Resolution": "The action supplied cannot be resubmitted to the implementation.  Perhaps the action was invalid, the wrong resource was the target or the implementation documentation may be of assistance."
-        },
-        "ActionParameterMissing": {
-            "Description": "Indicates that the action requested was missing a parameter that is required to process the action.",
-            "Message": "The action %1 requires the parameter %2 to be present in the request body.",
-            "Severity": "Critical",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "string"
-            ],
-            "Resolution": "Supply the action with the required parameter in the request body when the request is resubmitted."
-        },
-        "ActionParameterDuplicate": {
-            "Description": "Indicates that the action was supplied with a duplicated parameter in the request body.",
-            "Message": "The action %1 was submitted with more than one value for the parameter %2.",
-            "Severity": "Warning",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "string"
-            ],
-            "Resolution": "Resubmit the action with only one instance of the parameter in the request body if the operation failed."
-        },
-        "ActionParameterUnknown": {
-            "Description": "Indicates that an action was submitted but a parameter supplied did not match any of the known parameters.",
-            "Message": "The action %1 was submitted with the invalid parameter %2.",
-            "Severity": "Warning",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "string"
-            ],
-            "Resolution": "Correct the invalid parameter and resubmit the request if the operation failed."
-        },
-        "ActionParameterValueTypeError": {
-            "Description": "Indicates that a parameter was given the wrong value type, such as when a number is supplied for a parameter that requires a string.",
-            "Message": "The value %1 for the parameter %2 in the action %3 is of a different type than the parameter can accept.",
-            "Severity": "Warning",
-            "NumberOfArgs": 3,
-            "ParamTypes": [
-                "string",
-                "string",
-                "string"
-            ],
-            "Resolution": "Correct the value for the parameter in the request body and resubmit the request if the operation failed."
-        },
-        "ActionParameterValueFormatError": {
-            "Description": "Indicates that a parameter was given the correct value type but the value of that parameter was not supported.  This includes value size/length exceeded.",
-            "Message": "The value %1 for the parameter %2 in the action %3 is of a different format than the parameter can accept.",
-            "Severity": "Warning",
-            "NumberOfArgs": 3,
-            "ParamTypes": [
-                "string",
-                "string",
-                "string"
-            ],
-            "Resolution": "Correct the value for the parameter in the request body and resubmit the request if the operation failed."
-        },
-        "ActionParameterNotSupported": {
-            "Description": "Indicates that the parameter supplied for the action is not supported on the resource.",
-            "Message": "The parameter %1 for the action %2 is not supported on the target resource.",
-            "Severity": "Warning",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "string"
-            ],
-            "Resolution": "Remove the parameter supplied and resubmit the request if the operation failed."
-        },
-        "QueryParameterValueTypeError": {
-            "Description": "Indicates that a query parameter was given the wrong value type, such as when a number is supplied for a query parameter that requires a string.",
-            "Message": "The value %1 for the query parameter %2 is of a different type than the parameter can accept.",
-            "Severity": "Warning",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "string"
-            ],
-            "Resolution": "Correct the value for the query parameter in the request and resubmit the request if the operation failed."
-        },
-        "QueryParameterValueFormatError": {
-            "Description": "Indicates that a query parameter was given the correct value type but the value of that parameter was not supported.  This includes value size/length exceeded.",
-            "Message": "The value %1 for the parameter %2 is of a different format than the parameter can accept.",
-            "Severity": "Warning",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "string"
-            ],
-            "Resolution": "Correct the value for the query parameter in the request and resubmit the request if the operation failed."
-        },
-        "QueryParameterOutOfRange": {
-            "Description": "Indicates that a query parameter was supplied that is out of range for the given resource.  This can happen with values that are too low or beyond that possible for the supplied resource, such as when a page is requested that is beyond the last page.",
-            "Message": "The value %1 for the query parameter %2 is out of range %3.",
-            "Severity": "Warning",
-            "NumberOfArgs": 3,
-            "ParamTypes": [
-                "string",
-                "string",
-                "string"
-            ],
-            "Resolution": "Reduce the value for the query parameter to a value that is within range, such as a start or count value that is within bounds of the number of resources in a collection or a page that is within the range of valid pages."
-        },
-        "QueryNotSupportedOnResource": {
-            "Description": "Indicates that query is not supported on the given resource, such as when a start/count query is attempted on a resource that is not a collection.",
-            "Message": "Querying is not supported on the requested resource.",
-            "Severity": "Warning",
-            "NumberOfArgs": 0,
-            "Resolution": "Remove the query parameters and resubmit the request if the operation failed."
-        },
-        "QueryNotSupported": {
-            "Description": "Indicates that query is not supported on the implementation.",
-            "Message": "Querying is not supported by the implementation.",
-            "Severity": "Warning",
-            "NumberOfArgs": 0,
-            "Resolution": "Remove the query parameters and resubmit the request if the operation failed."
-        },
-        "SessionLimitExceeded": {
-            "Description": "Indicates that a session establishment has been requested but the operation failed due to the number of simultaneous sessions exceeding the limit of the implementation.",
-            "Message": "The session establishment failed due to the number of simultaneous sessions exceeding the limit of the implementation.",
-            "Severity": "Critical",
-            "NumberOfArgs": 0,
-            "Resolution": "Reduce the number of other sessions before trying to establish the session or increase the limit of simultaneous sessions (if supported)."
-        },
-        "EventSubscriptionLimitExceeded": {
-            "Description": "Indicates that a event subscription establishment has been requested but the operation failed due to the number of simultaneous connection exceeding the limit of the implementation.",
-            "Message": "The event subscription failed due to the number of simultaneous subscriptions exceeding the limit of the implementation.",
-            "Severity": "Critical",
-            "NumberOfArgs": 0,
-            "Resolution": "Reduce the number of other subscriptions before trying to establish the event subscription or increase the limit of simultaneous subscriptions (if supported)."
-        },
-        "ResourceCannotBeDeleted": {
-            "Description": "Indicates that a delete operation was attempted on a resource that cannot be deleted.",
-            "Message": "The delete request failed because the resource requested cannot be deleted.",
-            "Severity": "Critical",
-            "NumberOfArgs": 0,
-            "Resolution": "Do not attempt to delete a non-deletable resource."
-        },
-        "ResourceInUse": {
-            "Description": "Indicates that a change was requested to a resource but the change was rejected due to the resource being in use or transition.",
-            "Message": "The change to the requested resource failed because the resource is in use or in transition.",
-            "Severity": "Warning",
-            "NumberOfArgs": 0,
-            "Resolution": "Remove the condition and resubmit the request if the operation failed."
-        },
-        "ResourceAlreadyExists": {
-            "Description": "Indicates that a resource change or creation was attempted but that the operation cannot proceed because the resource already exists.",
-            "Message": "The requested resource of type %1 with the property %2 with the value %3 already exists.",
-            "Severity": "Critical",
-            "NumberOfArgs": 3,
-            "ParamTypes": [
-                "string",
-                "string",
-                "string"
-            ],
-            "Resolution": "Do not repeat the create operation as the resource has already been created."
-        },
-        "ResourceNotFound": {
-            "Description": "Indicates that the operation expected a resource identifier that corresponds to an existing resource but one was not found.",
-            "Message": "The requested resource of type %1 named %2 was not found.",
-            "Severity": "Critical",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "string"
-            ],
-            "Resolution": "Provide a valid resource identifier and resubmit the request."
-        },
-        "CreateFailedMissingReqProperties": {
-            "Description": "Indicates that a create was attempted on a resource but that properties that are required for the create operation were missing from the request.",
-            "Message": "The create operation failed because the required property %1 was missing from the request.",
-            "Severity": "Critical",
-            "NumberOfArgs": 1,
-            "ParamTypes": [
-                "string"
-            ],
-            "Resolution": "Correct the body to include the required property with a valid value and resubmit the request if the operation failed."
-        },
-        "CreateLimitReachedForResource": {
-            "Description": "Indicates that no more resources can be created on the resource as it has reached its create limit.",
-            "Message": "The create operation failed because the resource has reached the limit of possible resources.",
-            "Severity": "Critical",
-            "NumberOfArgs": 0,
-            "Resolution": "Either delete resources and resubmit the request if the operation failed or do not resubmit the request."
-        },
-        "ServiceShuttingDown": {
-            "Description": "Indicates that the operation failed as the service is shutting down, such as when the service reboots.",
-            "Message": "The operation failed because the service is shutting down and can no longer take incoming requests.",
-            "Severity": "Critical",
-            "NumberOfArgs": 0,
-            "Resolution": "When the service becomes available, resubmit the request if the operation failed."
-        },
-        "ServiceInUnknownState": {
-            "Description": "Indicates that the operation failed because the service is in an unknown state and cannot accept additional requests.",
-            "Message": "The operation failed because the service is in an unknown state and can no longer take incoming requests.",
-            "Severity": "Critical",
-            "NumberOfArgs": 0,
-            "Resolution": "Restart the service and resubmit the request if the operation failed."
-        },
-        "NoValidSession": {
-            "Description": "Indicates that the operation failed because a valid session is required in order to access any resources.",
-            "Message": "There is no valid session established with the implementation.",
-            "Severity": "Critical",
-            "NumberOfArgs": 0,
-            "Resolution": "Establish as session before attempting any operations."
-        },
-        "InsufficientPrivilege": {
-            "Description": "Indicates that the credentials associated with the established session do not have sufficient privileges for the requested operation",
-            "Message": "There are insufficient privileges for the account or credentials associated with the current session to perform the requested operation.",
-            "Severity": "Critical",
-            "NumberOfArgs": 0,
-            "Resolution": "Either abandon the operation or change the associated access rights and resubmit the request if the operation failed."
-        },
-        "AccountModified": {
-            "Description": "Indicates that the account was successfully modified.",
-            "Message": "The account was successfully modified.",
-            "Severity": "OK",
-            "NumberOfArgs": 0,
-            "Resolution": "No resolution is required."
-        },
-        "AccountNotModified": {
-            "Description": "Indicates that the modification requested for the account was not successful.",
-            "Message": "The account modification request failed.",
-            "Severity": "Warning",
-            "NumberOfArgs": 0,
-            "Resolution": "The modification may have failed due to permission issues or issues with the request body."
-        },
-        "AccountRemoved": {
-            "Description": "Indicates that the account was successfully removed.",
-            "Message": "The account was successfully removed.",
-            "Severity": "OK",
-            "NumberOfArgs": 0,
-            "Resolution": "No resolution is required."
-        },
-        "AccountForSessionNoLongerExists": {
-            "Description": "Indicates that the account for the session has been removed, thus the session has been removed as well.",
-            "Message": "The account for the current session has been removed, thus the current session has been removed as well.",
-            "Severity": "OK",
-            "NumberOfArgs": 0,
-            "Resolution": "Attempt to connect with a valid account."
-        },
-        "InvalidObject": {
-            "Description": "Indicates that the object in question is invalid according to the implementation.  Examples include a firmware update malformed URI.",
-            "Message": "The object at %1 is invalid.",
-            "Severity": "Critical",
-            "NumberOfArgs": 1,
-            "ParamTypes": [
-                "string"
-            ],
-            "Resolution": "Either the object is malformed or the URI is not correct.  Correct the condition and resubmit the request if it failed."
-        },
-        "InternalError": {
-            "Description": "Indicates that the request failed for an unknown internal error but that the service is still operational.",
-            "Message": "The request failed due to an internal service error.  The service is still operational.",
-            "Severity": "Critical",
-            "NumberOfArgs": 0,
-            "Resolution": "Resubmit the request.  If the problem persists, consider resetting the service."
-        },
-        "UnrecognizedRequestBody": {
-            "Description": "Indicates that the service encountered an unrecognizable request body that could not even be interpreted as malformed JSON.",
-            "Message": "The service detected a malformed request body that it was unable to interpret.",
-            "Severity": "Warning",
-            "NumberOfArgs": 0,
-            "Resolution": "Correct the request body and resubmit the request if it failed."
-        },
-        "ResourceMissingAtURI": {
-            "Description": "Indicates that the operation expected an image or other resource at the provided URI but none was found.  Examples of this are in requests that require URIs like Firmware Update.",
-            "Message": "The resource at the URI %1 was not found.",
-            "Severity": "Critical",
-            "NumberOfArgs": 1,
-            "ParamTypes": [
-                "string"
-            ],
-            "Resolution": "Place a valid resource at the URI or correct the URI and resubmit the request."
-        },
-        "ResourceAtUriInUnknownFormat": {
-            "Description": "Indicates that the URI was valid but the resource or image at that URI was in a format not supported by the service.",
-            "Message": "The resource at %1 is in a format not recognized by the service.",
-            "Severity": "Critical",
-            "NumberOfArgs": 1,
-            "ParamTypes": [
-                "string"
-            ],
-            "Resolution": "Place an image or resource or file that is recognized by the service at the URI."
-        },
-        "ResourceAtUriUnauthorized": {
-            "Description": "Indicates that the attempt to access the resource/file/image at the URI was unauthorized.",
-            "Message": "While accessing the resource at %1, the service received an authorization error %2.",
-            "Severity": "Critical",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "string"
-            ],
-            "Resolution": "Ensure that the appropriate access is provided for the service in order for it to access the URI."
-        },
-        "CouldNotEstablishConnection": {
-            "Description": "Indicates that the attempt to access the resource/file/image at the URI was unsuccessful because a session could not be established.",
-            "Message": "The service failed to establish a connection with the URI %1.",
-            "Severity": "Critical",
-            "NumberOfArgs": 1,
-            "ParamTypes": [
-                "string"
-            ],
-            "Resolution": "Ensure that the URI contains a valid and reachable node name, protocol information and other URI components."
-        },
-        "SourceDoesNotSupportProtocol": {
-            "Description": "Indicates that while attempting to access, connect to or transfer a resource/file/image from another location that the other end of the connection did not support the protocol",
-            "Message": "The other end of the connection at %1 does not support the specified protocol %2.",
-            "Severity": "Critical",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "string"
-            ],
-            "Resolution": "Change protocols or URIs. "
-        },
-        "AccessDenied": {
-            "Description": "Indicates that while attempting to access, connect to or transfer to/from another resource, the service denied access.",
-            "Message": "While attempting to establish a connection to %1, the service denied access.",
-            "Severity": "Critical",
-            "NumberOfArgs": 1,
-            "ParamTypes": [
-                "string"
-            ],
-            "Resolution": "Attempt to ensure that the URI is correct and that the service has the appropriate credentials."
-        },
-        "ServiceTemporarilyUnavailable": {
-            "Description": "Indicates the service is temporarily unavailable.",
-            "Message": "The service is temporarily unavailable.  Retry in %1 seconds.",
-            "Severity": "Critical",
-            "NumberOfArgs": 1,
-            "ParamTypes": [
-                "string"
-            ],
-            "Resolution": "Wait for the indicated retry duration and retry the operation."
-        },
-        "InvalidIndex": {
-            "Description": "The Index is not valid.",
-            "Message": "The Index %1 is not a valid offset into the array.",
-            "Severity": "Warning",
-            "NumberOfArgs": 1,
-            "ParamTypes": [
-                "number"
-            ],
-            "Resolution": "Verify the index value provided is within the bounds of the array."
-        },
-        "PropertyValueModified": {
-            "Description": "Indicates that a property was given the correct value type but the value of that property was modified.  Examples are truncated or rounded values.",
-            "Message": "The property %1 was assigned the value %2 due to modification by the service.",
-            "Severity": "Warning",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "string"
-            ],
-            "Resolution": "No resolution is required."
-        },
-        "ResourceInStandby": {
-            "Description": "Indicates that the request could not be performed because the resource is in standby.",
-            "Message": "The request could not be performed because the resource is in standby.",
-            "Severity": "Critical",
-            "NumberOfArgs": 0,
-            "Resolution": "Ensure that the resource is in the correct power state and resubmit the request."
-        },
-        "ResourceExhaustion": {
-            "Description": "Indicates that a resource could not satisfy the request due to some unavailability of resources.  An example is that available capacity has been allocated.",
-            "Message": "The resource %1 was unable to satisfy the request due to unavailability of resources.",
-            "Severity": "Critical",
-            "NumberOfArgs": 1,
-            "ParamTypes": [
-                "string"
-            ],
-            "Resolution": "Ensure that the resources are available and resubmit the request."
-        },
-        "StringValueTooLong": {
-            "Description": "Indicates that a string value passed to the given resource exceeded its length limit. An example is when a shorter limit is imposed by an implementation than that allowed by the specification.",
-            "Message": "The string %1 exceeds the length limit %2.",
-            "Severity": "Warning",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "number"
-            ],
-            "Resolution": "Resubmit the request with an appropriate string length."
-        },
-        "SessionTerminated": {
-            "Description": "Indicates that the DELETE operation on the Session resource resulted in the successful termination of the session.",
-            "Message": "The session was successfully terminated.",
-            "Severity": "OK",
-            "NumberOfArgs": 0,
-            "Resolution": "No resolution is required."
-        },
-        "ResourceTypeIncompatible": {
-            "Description": "Indicates that the resource type of the operation does not match that for the operation destination.  Examples of when this can happen include during a POST to a collection using the wrong resource type, an update where the @odata.types do not match or on a major version incompatability.",
-            "Message": "The @odata.type of the request body %1 is incompatible with the @odata.type of the resource which is %2.",
-            "Severity": "Critical",
-            "NumberOfArgs": 2,
-            "ParamTypes": [
-                "string",
-                "string"
-            ],
-            "Resolution": "Resubmit the request with a payload compatible with the resource's schema."
-        }
-    }
-}
\ No newline at end of file
diff --git a/static/redfish/v1/Registries/Base/index.json b/static/redfish/v1/Registries/Base/index.json
deleted file mode 100644
index bf5ebda..0000000
--- a/static/redfish/v1/Registries/Base/index.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-    "@odata.context": "/redfish/v1/$metadata#MessageRegistryFile.MessageRegistryFile",
-    "@odata.id": "/redfish/v1/Registries/Base",
-    "@odata.type": "#MessageRegistryFile.v1_1_0.MessageRegistryFile",
-    "Name": "Base MessageRegistry File",
-    "Description": "DMTF Base MessageRegistry File Location",
-    "Id": "Base",
-    "Registry": "Base.1.4",
-    "Languages": [
-        "en"
-    ],
-    "Languages@odata.count": 1,
-    "Location": [
-        {
-            "Language": "en",
-            "PublicationUri": "https://redfish.dmtf.org/registries/Base.1.4.0.json",
-            "Uri": "/redfish/v1/Registries/Base/Base.1.4.0.json"
-        }
-    ],
-    "Location@odata.count": 1
-}
\ No newline at end of file
diff --git a/static/redfish/v1/Registries/index.json b/static/redfish/v1/Registries/index.json
deleted file mode 100644
index 674cd04..0000000
--- a/static/redfish/v1/Registries/index.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "@odata.id": "/redfish/v1/Registries",
-  "@odata.context": "/redfish/v1/$metadata#MessageRegistryFileCollection.MessageRegistryFileCollection",
-  "@odata.type": "#MessageRegistryFileCollection.MessageRegistryFileCollection",
-  "Name": "MessageRegistryFile Collection",
-  "Description": "Collection of MessageRegistryFiles",
-  "Members@odata.count": 2,
-  "Members": [
-    {
-      "@odata.id": "/redfish/v1/Registries/Base"
-    },
-    {
-      "@odata.id": "/redfish/v1/Registries/OpenBMC"
-    }
-  ]
-}
\ No newline at end of file
