diff --git a/redfish-core/include/redfish.hpp b/redfish-core/include/redfish.hpp
index 835cc5d..1fd5df7 100644
--- a/redfish-core/include/redfish.hpp
+++ b/redfish-core/include/redfish.hpp
@@ -23,6 +23,7 @@
 #include "../lib/redfish_sessions.hpp"
 #include "../lib/roles.hpp"
 #include "../lib/service_root.hpp"
+#include "../lib/systems.hpp"
 #include "../lib/thermal.hpp"
 #include "../lib/update_service.hpp"
 #include "webserver_common.hpp"
@@ -57,6 +58,10 @@
     nodes.emplace_back(std::make_unique<UpdateService>(app));
     nodes.emplace_back(std::make_unique<SoftwareInventoryCollection>(app));
     nodes.emplace_back(std::make_unique<SoftwareInventory>(app));
+    nodes.emplace_back(std::make_unique<VlanNetworkInterfaceCollection>(app));
+    nodes.emplace_back(std::make_unique<SystemsCollection>(app));
+    nodes.emplace_back(std::make_unique<Systems>(app));
+
     for (auto& node : nodes) {
       node->getSubRoutes(nodes);
     }
diff --git a/redfish-core/lib/chassis.hpp b/redfish-core/lib/chassis.hpp
index 6047f3e..95f4634 100644
--- a/redfish-core/lib/chassis.hpp
+++ b/redfish-core/lib/chassis.hpp
@@ -27,7 +27,7 @@
 // Note, this is not a very useful variant, but because it isn't used to get
 // values, it should be as simple as possible
 // TODO(ed) invent a nullvariant type
-using VariantType = sdbusplus::message::variant<std::string>;
+using VariantType = sdbusplus::message::variant<bool, std::string>;
 using ManagedObjectsType = std::vector<std::pair<
     sdbusplus::message::object_path,
     std::vector<std::pair<std::string,
diff --git a/redfish-core/lib/systems.hpp b/redfish-core/lib/systems.hpp
new file mode 100644
index 0000000..7619f14
--- /dev/null
+++ b/redfish-core/lib/systems.hpp
@@ -0,0 +1,685 @@
+/*
+// Copyright (c) 2018 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 <error_messages.hpp>
+#include <utils/json_utils.hpp>
+#include "node.hpp"
+#include "boost/container/flat_map.hpp"
+
+namespace redfish {
+
+/**
+ * SystemAsyncResp
+ * Gathers data needed for response processing after async calls are done
+ */
+class SystemAsyncResp {
+ public:
+  SystemAsyncResp(crow::response &response) : res(response) {}
+
+  ~SystemAsyncResp() {
+    if (res.result() != (boost::beast::http::status::ok)) {
+      // Reset the json object to clear out any data that made it in before the
+      // error happened
+      // todo(ed) handle error condition with proper code
+      res.json_value = messages::internalError();
+    }
+    res.end();
+  }
+
+  void setErrorStatus() {
+    res.result(boost::beast::http::status::internal_server_error);
+  }
+
+  crow::response &res;
+};
+
+/**
+ * OnDemandSystemsProvider
+ * Board provider class that retrieves data directly from dbus, before seting
+ * it into JSON output. This does not cache any data.
+ *
+ * Class can be a good example on how to scale different data providing
+ * solutions to produce single schema output.
+ *
+ * TODO(Pawel)
+ * This perhaps shall be different file, which has to be chosen on compile time
+ * depending on OEM needs
+ */
+class OnDemandSystemsProvider {
+ public:
+  template <typename CallbackFunc>
+  void getBaseboardList(CallbackFunc &&callback) {
+    CROW_LOG_DEBUG << "Get list of available boards.";
+    crow::connections::system_bus->async_method_call(
+        [callback{std::move(callback)}](const boost::system::error_code ec,
+                                        const std::vector<std::string> &resp) {
+          // Callback requires vector<string> to retrieve all available board
+          // list.
+          std::vector<std::string> board_list;
+          if (ec) {
+            // Something wrong on DBus, the error_code is not important at this
+            // moment, just return success=false, and empty output. Since size
+            // of vector may vary depending on information from Entity Manager,
+            // and empty output could not be treated same way as error.
+            callback(false, board_list);
+            return;
+          }
+          CROW_LOG_DEBUG << "Got " << resp.size() << " boards.";
+          // Iterate over all retrieved ObjectPaths.
+          for (const std::string &objpath : resp) {
+            std::size_t last_pos = objpath.rfind("/");
+            if (last_pos != std::string::npos) {
+              board_list.emplace_back(objpath.substr(last_pos + 1));
+            }
+          }
+          // Finally make a callback with useful data
+          callback(true, board_list);
+        },
+        "xyz.openbmc_project.ObjectMapper",
+        "/xyz/openbmc_project/object_mapper",
+        "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths",
+        "/xyz/openbmc_project/inventory", int32_t(0),
+        std::array<const char *, 1>{
+            "xyz.openbmc_project.Inventory.Item.Board"});
+  };
+
+  /**
+   * @brief Retrieves computer system properties over dbus
+   *
+   * @param[in] aResp Shared pointer for completing asynchronous calls
+   * @param[in] name  Computer system name from request
+   *
+   * @return None.
+   */
+  void getComputerSystem(std::shared_ptr<SystemAsyncResp> aResp,
+                         const std::string &name) {
+    const std::array<const char *, 5> interfaces = {
+        "xyz.openbmc_project.Inventory.Decorator.Asset",
+        "xyz.openbmc_project.Inventory.Item.Cpu",
+        "xyz.openbmc_project.Inventory.Item.Dimm",
+        "xyz.openbmc_project.Inventory.Item.System",
+        "xyz.openbmc_project.Common.UUID",
+    };
+    CROW_LOG_DEBUG << "Get available system components.";
+    crow::connections::system_bus->async_method_call(
+        [ name, aResp{std::move(aResp)} ](
+            const boost::system::error_code ec,
+            const std::vector<std::pair<
+                std::string,
+                std::vector<std::pair<std::string, std::vector<std::string>>>>>
+                &subtree) {
+          if (ec) {
+            CROW_LOG_DEBUG << "DBUS response error";
+            aResp->setErrorStatus();
+            return;
+          }
+          bool foundName = false;
+          // Iterate over all retrieved ObjectPaths.
+          for (const std::pair<std::string,
+                               std::vector<std::pair<std::string,
+                                                     std::vector<std::string>>>>
+                   &object : subtree) {
+            const std::string &path = object.first;
+            CROW_LOG_DEBUG << "Got path: " << path;
+            const std::vector<std::pair<std::string, std::vector<std::string>>>
+                &connectionNames = object.second;
+            if (connectionNames.size() < 1) {
+              continue;
+            }
+            // Check if computer system exist
+            if (boost::ends_with(path, name)) {
+              foundName = true;
+              CROW_LOG_DEBUG << "Found name: " << name;
+              const std::string connectionName = connectionNames[0].first;
+              crow::connections::system_bus->async_method_call(
+                  [ aResp, name(std::string(name)) ](
+                      const boost::system::error_code ec,
+                      const std::vector<std::pair<std::string, VariantType>>
+                          &propertiesList) {
+                    if (ec) {
+                      CROW_LOG_ERROR << "DBUS response error: " << ec;
+                      aResp->setErrorStatus();
+                      return;
+                    }
+                    CROW_LOG_DEBUG << "Got " << propertiesList.size()
+                                   << "properties for system";
+                    for (const std::pair<std::string, VariantType> &property :
+                         propertiesList) {
+                      const std::string *value =
+                          mapbox::get_ptr<const std::string>(property.second);
+                      if (value != nullptr) {
+                        aResp->res.json_value[property.first] = *value;
+                      }
+                    }
+                    aResp->res.json_value["Name"] = name;
+                    aResp->res.json_value["Id"] =
+                        aResp->res.json_value["SerialNumber"];
+                  },
+                  connectionName, path, "org.freedesktop.DBus.Properties",
+                  "GetAll", "xyz.openbmc_project.Inventory.Decorator.Asset");
+            } else {
+              // This is not system, so check if it's cpu, dimm, UUID or BiosVer
+              for (auto const &s : connectionNames) {
+                for (auto const &i : s.second) {
+                  if (boost::ends_with(i, "Dimm")) {
+                    CROW_LOG_DEBUG << "Found Dimm, now get it properties.";
+                    crow::connections::system_bus->async_method_call(
+                        [&, aResp](const boost::system::error_code ec,
+                                   const std::vector<std::pair<
+                                       std::string, VariantType>> &properties) {
+                          if (ec) {
+                            CROW_LOG_ERROR << "DBUS response error " << ec;
+                            aResp->setErrorStatus();
+                            return;
+                          }
+                          CROW_LOG_DEBUG << "Got " << properties.size()
+                                         << "Dimm properties.";
+                          for (const auto &p : properties) {
+                            if (p.first == "MemorySize") {
+                              const std::string *value =
+                                  mapbox::get_ptr<const std::string>(p.second);
+                              if ((value != nullptr) && (*value != "NULL")) {
+                                // Remove units char
+                                int32_t unitCoeff;
+                                if (boost::ends_with(*value, "MB")) {
+                                  unitCoeff = 1000;
+                                } else if (boost::ends_with(*value, "KB")) {
+                                  unitCoeff = 1000000;
+                                } else {
+                                  CROW_LOG_ERROR << "Unsupported memory units";
+                                  aResp->setErrorStatus();
+                                  return;
+                                }
+
+                                auto memSize = boost::lexical_cast<int>(
+                                    value->substr(0, value->length() - 2));
+                                aResp->res.json_value["TotalSystemMemoryGiB"] +=
+                                    memSize * unitCoeff;
+                                aResp->res.json_value["MemorySummary"]["Status"]
+                                                     ["State"] = "Enabled";
+                              }
+                            }
+                          }
+                        },
+                        s.first, path, "org.freedesktop.DBus.Properties",
+                        "GetAll", "xyz.openbmc_project.Inventory.Item.Dimm");
+                  } else if (boost::ends_with(i, "Cpu")) {
+                    CROW_LOG_DEBUG << "Found Cpu, now get it properties.";
+                    crow::connections::system_bus->async_method_call(
+                        [&, aResp](const boost::system::error_code ec,
+                                   const std::vector<std::pair<
+                                       std::string, VariantType>> &properties) {
+                          if (ec) {
+                            CROW_LOG_ERROR << "DBUS response error " << ec;
+                            aResp->setErrorStatus();
+                            return;
+                          }
+                          CROW_LOG_DEBUG << "Got " << properties.size()
+                                         << "Cpu properties.";
+                          for (const auto &p : properties) {
+                            if (p.first == "ProcessorFamily") {
+                              const std::string *value =
+                                  mapbox::get_ptr<const std::string>(p.second);
+                              if (value != nullptr) {
+                                aResp->res
+                                    .json_value["ProcessorSummary"]["Count"] =
+                                    aResp->res
+                                        .json_value["ProcessorSummary"]["Count"]
+                                        .get<int>() +
+                                    1;
+                                aResp->res.json_value["ProcessorSummary"]
+                                                     ["Status"]["State"] =
+                                    "Enabled";
+                                aResp->res
+                                    .json_value["ProcessorSummary"]["Model"] =
+                                    *value;
+                              }
+                            }
+                          }
+                        },
+                        s.first, path, "org.freedesktop.DBus.Properties",
+                        "GetAll", "xyz.openbmc_project.Inventory.Item.Cpu");
+                  } else if (boost::ends_with(i, "UUID")) {
+                    CROW_LOG_DEBUG << "Found UUID, now get it properties.";
+                    crow::connections::system_bus->async_method_call(
+                        [aResp](const boost::system::error_code ec,
+                                const std::vector<std::pair<
+                                    std::string, VariantType>> &properties) {
+                          if (ec) {
+                            CROW_LOG_DEBUG << "DBUS response error " << ec;
+                            aResp->setErrorStatus();
+                            return;
+                          }
+                          CROW_LOG_DEBUG << "Got " << properties.size()
+                                         << "UUID properties.";
+                          for (const std::pair<std::string, VariantType> &p :
+                               properties) {
+                            if (p.first == "BIOSVer") {
+                              const std::string *value =
+                                  mapbox::get_ptr<const std::string>(p.second);
+                              if (value != nullptr) {
+                                aResp->res.json_value["BiosVersion"] = *value;
+                              }
+                            }
+                            if (p.first == "UUID") {
+                              const std::string *value =
+                                  mapbox::get_ptr<const std::string>(p.second);
+                              CROW_LOG_DEBUG << "UUID = " << *value
+                                             << " length " << value->length();
+                              if (value != nullptr) {
+                                // Workaround for to short return str in smbios
+                                // demo app, 32 bytes are described by spec
+                                if (value->length() > 0 &&
+                                    value->length() < 32) {
+                                  std::string correctedValue = *value;
+                                  correctedValue.append(32 - value->length(),
+                                                        '0');
+                                  value = &correctedValue;
+                                } else if (value->length() == 32) {
+                                  aResp->res.json_value["UUID"] =
+                                      value->substr(0, 8) + "-" +
+                                      value->substr(8, 4) + "-" +
+                                      value->substr(12, 4) + "-" +
+                                      value->substr(16, 4) + "-" +
+                                      value->substr(20, 12);
+                                }
+                              }
+                            }
+                          }
+                        },
+                        s.first, path, "org.freedesktop.DBus.Properties",
+                        "GetAll", "xyz.openbmc_project.Common.UUID");
+                  }
+                }
+              }
+            }
+          }
+          if (foundName == false) {
+            aResp->setErrorStatus();
+          }
+        },
+        "xyz.openbmc_project.ObjectMapper",
+        "/xyz/openbmc_project/object_mapper",
+        "xyz.openbmc_project.ObjectMapper", "GetSubTree",
+        "/xyz/openbmc_project/inventory", int32_t(0), interfaces);
+  }
+
+  /**
+   * @brief Retrieves identify led group properties over dbus
+   *
+   * @param[in] aResp     Shared pointer for completing asynchronous calls.
+   * @param[in] callback  Callback for process retrieved data.
+   *
+   * @return None.
+   */
+  template <typename CallbackFunc>
+  void getLedGroupIdentify(std::shared_ptr<SystemAsyncResp> aResp,
+                           CallbackFunc &&callback) {
+    CROW_LOG_DEBUG << "Get led groups";
+    crow::connections::system_bus->async_method_call(
+        [
+          aResp{std::move(aResp)}, &callback
+        ](const boost::system::error_code &ec, const ManagedObjectsType &resp) {
+          if (ec) {
+            CROW_LOG_DEBUG << "DBUS response error " << ec;
+            aResp->setErrorStatus();
+            return;
+          }
+          CROW_LOG_DEBUG << "Got " << resp.size() << "led group objects.";
+          for (const auto &objPath : resp) {
+            const std::string &path = objPath.first;
+            if (path.rfind("enclosure_identify") != std::string::npos) {
+              for (const auto &interface : objPath.second) {
+                if (interface.first == "xyz.openbmc_project.Led.Group") {
+                  for (const auto &property : interface.second) {
+                    if (property.first == "Asserted") {
+                      const bool *asserted =
+                          mapbox::get_ptr<const bool>(property.second);
+                      if (nullptr != asserted) {
+                        callback(*asserted, aResp);
+                      } else {
+                        callback(false, aResp);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        },
+        "xyz.openbmc_project.LED.GroupManager",
+        "/xyz/openbmc_project/led/groups", "org.freedesktop.DBus.ObjectManager",
+        "GetManagedObjects");
+  }
+
+  template <typename CallbackFunc>
+  void getLedIdentify(std::shared_ptr<SystemAsyncResp> aResp,
+                      CallbackFunc &&callback) {
+    CROW_LOG_DEBUG << "Get identify led properties";
+    crow::connections::system_bus->async_method_call(
+        [ aResp{std::move(aResp)}, &callback ](
+            const boost::system::error_code ec,
+            const PropertiesType &properties) {
+          if (ec) {
+            CROW_LOG_DEBUG << "DBUS response error " << ec;
+            aResp->setErrorStatus();
+            return;
+          }
+          CROW_LOG_DEBUG << "Got " << properties.size() << "led properties.";
+          std::string output;
+          for (const auto &property : properties) {
+            if (property.first == "State") {
+              const std::string *s =
+                  mapbox::get_ptr<std::string>(property.second);
+              if (nullptr != s) {
+                CROW_LOG_DEBUG << "Identify Led State: " << *s;
+                const auto pos = s->rfind('.');
+                if (pos != std::string::npos) {
+                  auto led = s->substr(pos + 1);
+                  for (const std::pair<const char *, const char *> &p :
+                       std::array<std::pair<const char *, const char *>, 3>{
+                           {{"On", "Lit"},
+                            {"Blink", "Blinking"},
+                            {"Off", "Off"}}}) {
+                    if (led == p.first) {
+                      output = p.second;
+                    }
+                  }
+                }
+              }
+            }
+          }
+          callback(output, aResp);
+        },
+        "xyz.openbmc_project.LED.Controller.identify",
+        "/xyz/openbmc_project/led/physical/identify",
+        "org.freedesktop.DBus.Properties", "GetAll",
+        "xyz.openbmc_project.Led.Physical");
+  }
+
+  /**
+   * @brief Retrieves host state properties over dbus
+   *
+   * @param[in] aResp     Shared pointer for completing asynchronous calls.
+   *
+   * @return None.
+   */
+  void getHostState(std::shared_ptr<SystemAsyncResp> aResp) {
+    CROW_LOG_DEBUG << "Get host information.";
+    crow::connections::system_bus->async_method_call(
+        [aResp{std::move(aResp)}](const boost::system::error_code ec,
+                                  const PropertiesType &properties) {
+          if (ec) {
+            CROW_LOG_DEBUG << "DBUS response error " << ec;
+            aResp->setErrorStatus();
+            return;
+          }
+          CROW_LOG_DEBUG << "Got " << properties.size() << "host properties.";
+          for (const auto &property : properties) {
+            if (property.first == "CurrentHostState") {
+              const std::string *s =
+                  mapbox::get_ptr<const std::string>(property.second);
+              CROW_LOG_DEBUG << "Host state: " << *s;
+              if (nullptr != s) {
+                const auto pos = s->rfind('.');
+                if (pos != std::string::npos) {
+                  // Verify Host State
+                  if (s->substr(pos + 1) == "Running") {
+                    aResp->res.json_value["PowerState"] = "On";
+                    aResp->res.json_value["Status"]["State"] = "Enabled";
+                  } else {
+                    aResp->res.json_value["PowerState"] = "Off";
+                    aResp->res.json_value["Status"]["State"] = "Disabled";
+                  }
+                }
+              }
+            }
+          }
+        },
+        "xyz.openbmc_project.State.Host", "/xyz/openbmc_project/state/host0",
+        "org.freedesktop.DBus.Properties", "GetAll",
+        "xyz.openbmc_project.State.Host");
+  }
+};
+
+/**
+ * SystemsCollection derived class for delivering ComputerSystems Collection
+ * Schema
+ */
+class SystemsCollection : public Node {
+ public:
+  SystemsCollection(CrowApp &app) : Node(app, "/redfish/v1/Systems/") {
+    Node::json["@odata.type"] =
+        "#ComputerSystemCollection.ComputerSystemCollection";
+    Node::json["@odata.id"] = "/redfish/v1/Systems";
+    Node::json["@odata.context"] =
+        "/redfish/v1/"
+        "$metadata#ComputerSystemCollection.ComputerSystemCollection";
+    Node::json["Name"] = "Computer System Collection";
+
+    entityPrivileges = {
+        {boost::beast::http::verb::get, {{"Login"}}},
+        {boost::beast::http::verb::head, {{"Login"}}},
+        {boost::beast::http::verb::patch, {{"ConfigureComponents"}}},
+        {boost::beast::http::verb::put, {{"ConfigureComponents"}}},
+        {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}},
+        {boost::beast::http::verb::post, {{"ConfigureComponents"}}}};
+  }
+
+ private:
+  /**
+   * Functions triggers appropriate requests on DBus
+   */
+  void doGet(crow::response &res, const crow::request &req,
+             const std::vector<std::string> &params) override {
+    // Get board list, and call the below callback for JSON preparation
+    provider.getBaseboardList(
+        [&](const bool &success, const std::vector<std::string> &output) {
+          if (success) {
+            // ... prepare json array with appropriate @odata.id links
+            nlohmann::json boardArray = nlohmann::json::array();
+            for (const std::string &board_item : output) {
+              boardArray.push_back(
+                  {{"@odata.id", "/redfish/v1/Systems/" + board_item}});
+            }
+            // Then attach members, count size and return,
+            Node::json["Members"] = boardArray;
+            Node::json["Members@odata.count"] = boardArray.size();
+            res.json_value = Node::json;
+          } else {
+            // ... otherwise, return INTERNALL ERROR
+            res.result(boost::beast::http::status::internal_server_error);
+          }
+          res.end();
+        });
+  }
+
+  OnDemandSystemsProvider provider;
+};
+
+/**
+ * Systems override class for delivering ComputerSystems Schema
+ */
+class Systems : public Node {
+ public:
+  /*
+   * Default Constructor
+   */
+  Systems(CrowApp &app)
+      : Node(app, "/redfish/v1/Systems/<str>/", std::string()) {
+    Node::json["@odata.type"] = "#ComputerSystem.v1_3_0.ComputerSystem";
+    Node::json["@odata.context"] =
+        "/redfish/v1/$metadata#ComputerSystem.ComputerSystem";
+    Node::json["SystemType"] = "Physical";
+    Node::json["Description"] = "Computer System";
+    Node::json["Boot"]["BootSourceOverrideEnabled"] =
+        "Disabled";  // TODO(Dawid), get real boot data
+    Node::json["Boot"]["BootSourceOverrideTarget"] =
+        "None";  // TODO(Dawid), get real boot data
+    Node::json["Boot"]["BootSourceOverrideMode"] =
+        "Legacy";  // TODO(Dawid), get real boot data
+    Node::json["Boot"]["BootSourceOverrideTarget@Redfish.AllowableValues"] = {
+        "None",      "Pxe",       "Hdd", "Cd",
+        "BiosSetup", "UefiShell", "Usb"};  // TODO(Dawid), get real boot data
+    Node::json["ProcessorSummary"]["Count"] = int(0);
+    Node::json["ProcessorSummary"]["Status"]["State"] = "Disabled";
+    Node::json["MemorySummary"]["TotalSystemMemoryGiB"] = int(0);
+    Node::json["MemorySummary"]["Status"]["State"] = "Disabled";
+
+    entityPrivileges = {
+        {boost::beast::http::verb::get, {{"Login"}}},
+        {boost::beast::http::verb::head, {{"Login"}}},
+        {boost::beast::http::verb::patch, {{"ConfigureComponents"}}},
+        {boost::beast::http::verb::put, {{"ConfigureComponents"}}},
+        {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}},
+        {boost::beast::http::verb::post, {{"ConfigureComponents"}}}};
+  }
+
+ private:
+  OnDemandSystemsProvider provider;
+
+  /**
+   * Functions triggers appropriate requests on DBus
+   */
+  void doGet(crow::response &res, const crow::request &req,
+             const std::vector<std::string> &params) override {
+    // Check if there is required param, truly entering this shall be
+    // impossible
+    if (params.size() != 1) {
+      res.result(boost::beast::http::status::internal_server_error);
+      res.end();
+      return;
+    }
+
+    const std::string &name = params[0];
+
+    res.json_value = Node::json;
+    res.json_value["@odata.id"] = "/redfish/v1/Systems/" + name;
+
+    auto asyncResp = std::make_shared<SystemAsyncResp>(res);
+
+    provider.getLedGroupIdentify(
+        asyncResp, [&](const bool &asserted,
+                       const std::shared_ptr<SystemAsyncResp> &aResp) {
+          if (asserted) {
+            // If led group is asserted, then another call is needed to
+            // get led status
+            provider.getLedIdentify(
+                aResp, [](const std::string &ledStatus,
+                          const std::shared_ptr<SystemAsyncResp> &aResp) {
+                  if (!ledStatus.empty()) {
+                    aResp->res.json_value["IndicatorLED"] = ledStatus;
+                  }
+                });
+          } else {
+            aResp->res.json_value["IndicatorLED"] = "Off";
+          }
+        });
+    provider.getComputerSystem(asyncResp, name);
+    provider.getHostState(asyncResp);
+  }
+
+  void doPatch(crow::response &res, const crow::request &req,
+               const std::vector<std::string> &params) override {
+    // Check if there is required param, truly entering this shall be
+    // impossible
+    if (params.size() != 1) {
+      res.result(boost::beast::http::status::internal_server_error);
+      res.end();
+      return;
+    }
+    // Parse JSON request body
+    nlohmann::json patch;
+    if (!json_util::processJsonFromRequest(res, req, patch)) {
+      return;
+    }
+    // Find key with new led value
+    const std::string &name = params[0];
+    const std::string *reqLedState = nullptr;
+    json_util::Result r = json_util::getString(
+        "IndicatorLED", patch, reqLedState,
+        static_cast<int>(json_util::MessageSetting::TYPE_ERROR) |
+            static_cast<int>(json_util::MessageSetting::MISSING),
+        res.json_value, std::string("/" + name + "/IndicatorLED"));
+    if ((r != json_util::Result::SUCCESS) || (reqLedState == nullptr)) {
+      res.result(boost::beast::http::status::bad_request);
+      res.end();
+      return;
+    }
+    // Verify key value
+    std::string dbusLedState;
+    for (const auto &p : boost::container::flat_map<const char *, const char *>{
+             {"On", "Lit"}, {"Blink", "Blinking"}, {"Off", "Off"}}) {
+      if (*reqLedState == p.second) {
+        dbusLedState = p.first;
+      }
+    }
+
+    // Update led status
+    auto asyncResp = std::make_shared<SystemAsyncResp>(res);
+    res.json_value = Node::json;
+    res.json_value["@odata.id"] = "/redfish/v1/Systems/" + name;
+
+    provider.getHostState(asyncResp);
+    provider.getComputerSystem(asyncResp, name);
+
+    if (dbusLedState.empty()) {
+      messages::addMessageToJsonRoot(
+          res.json_value,
+          messages::propertyValueNotInList(*reqLedState, "IndicatorLED"));
+    } else {
+      // Update led group
+      CROW_LOG_DEBUG << "Update led group.";
+      crow::connections::system_bus->async_method_call(
+          [&, asyncResp{std::move(asyncResp)} ](
+              const boost::system::error_code ec) {
+            if (ec) {
+              CROW_LOG_DEBUG << "DBUS response error " << ec;
+              asyncResp->setErrorStatus();
+              return;
+            }
+            CROW_LOG_DEBUG << "Led group update done.";
+          },
+          "xyz.openbmc_project.LED.GroupManager",
+          "/xyz/openbmc_project/led/groups/enclosure_identify",
+          "org.freedesktop.DBus.Properties", "Set",
+          "xyz.openbmc_project.Led.Group", "Asserted",
+          sdbusplus::message::variant<bool>(
+              (dbusLedState == "Off" ? false : true)));
+      // Update identify led status
+      CROW_LOG_DEBUG << "Update led SoftwareInventoryCollection.";
+      crow::connections::system_bus->async_method_call(
+          [&, asyncResp{std::move(asyncResp)} ](
+              const boost::system::error_code ec) {
+            if (ec) {
+              CROW_LOG_DEBUG << "DBUS response error " << ec;
+              asyncResp->setErrorStatus();
+              return;
+            }
+            CROW_LOG_DEBUG << "Led state update done.";
+            res.json_value["IndicatorLED"] = *reqLedState;
+          },
+          "xyz.openbmc_project.LED.Controller.identify",
+          "/xyz/openbmc_project/led/physical/identify",
+          "org.freedesktop.DBus.Properties", "Set",
+          "xyz.openbmc_project.Led.Physical", "State",
+          sdbusplus::message::variant<std::string>(
+              "xyz.openbmc_project.Led.Physical.Action." + dbusLedState));
+    }
+  }
+};
+}  // namespace redfish
diff --git a/static/redfish/v1/$metadata/index.xml b/static/redfish/v1/$metadata/index.xml
index 252d3af..9a3896b 100644
--- a/static/redfish/v1/$metadata/index.xml
+++ b/static/redfish/v1/$metadata/index.xml
@@ -99,6 +99,7 @@
     </edmx:Reference>
     <edmx:Reference Uri="/redfish/v1/schema/Session_v1.xml">
         <edmx:Include Namespace="Session"/>
+        <edmx:Include Namespace="Session.v1_0_2"/>
         <edmx:Include Namespace="Session.v1_0_3"/>
     </edmx:Reference>
     <edmx:Reference Uri="/redfish/v1/schema/SessionCollection_v1.xml">
@@ -106,6 +107,7 @@
     </edmx:Reference>
     <edmx:Reference Uri="/redfish/v1/schema/SessionService_v1.xml">
         <edmx:Include Namespace="SessionService"/>
+        <edmx:Include Namespace="SessionService.v1_0_2"/>
         <edmx:Include Namespace="SessionService.v1_0_3"/>
         <edmx:Include Namespace="SessionService.v1_1_1"/>
     </edmx:Reference>
@@ -188,12 +190,14 @@
     <edmx:Reference Uri="/redfish/v1/schema/SoftwareInventory_v1.xml">
         <edmx:Include Namespace="SoftwareInventory"/>
         <edmx:Include Namespace="SoftwareInventory.v1_0_1"/>
+        <edmx:Include Namespace="SoftwareInventory.v1_1_0"/>
         <edmx:Include Namespace="SoftwareInventory.v1_1_1"/>
     </edmx:Reference>
     <edmx:Reference Uri="/redfish/v1/schema/UpdateService_v1.xml">
         <edmx:Include Namespace="UpdateService"/>
         <edmx:Include Namespace="UpdateService.v1_0_1"/>
         <edmx:Include Namespace="UpdateService.v1_1_0"/>
+        <edmx:Include Namespace="UpdateService.v1_2_0"/>
     </edmx:Reference>
     <edmx:Reference Uri="/redfish/v1/schema/Message_v1.xml">
         <edmx:Include Namespace="Message"/>
@@ -242,4 +246,4 @@
             <EntityContainer Name="Service" Extends="ServiceRoot.v1_0_0.ServiceContainer"/>
         </Schema>
     </edmx:DataServices>
-</edmx:Edmx>
\ No newline at end of file
+</edmx:Edmx>
diff --git a/static/redfish/v1/schema/IPAddresses_v1.xml b/static/redfish/v1/schema/IPAddresses_v1.xml
index ad34203..61998e0 100755
--- a/static/redfish/v1/schema/IPAddresses_v1.xml
+++ b/static/redfish/v1/schema/IPAddresses_v1.xml
@@ -1,174 +1,204 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!---->
-<!--################################################################################       -->
-<!--# Redfish Schema:  IPAddresses  v1.0.4-->
-<!--#                                                                                      -->
-<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
-<!--# available at http://www.dmtf.org/standards/redfish                                   -->
-<!--# Copyright 2014-2016 Distributed Management Task Force, Inc. (DMTF).                  -->
-<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
-<!--################################################################################       -->
-<!---->
-<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
-
-  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
-    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
-  </edmx:Reference>
-  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
-    <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
-  </edmx:Reference>
-  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
-    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
-    <edmx:Include Namespace="Validation.v1_0_0" Alias="Validation"/>
-  </edmx:Reference>
-  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
-    <edmx:Include Namespace="Resource"/>
-    <edmx:Include Namespace="Resource.v1_0_0"/>
-  </edmx:Reference>
-
-  <edmx:DataServices>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="IPAddresses.v1_0_0">
-
-      <ComplexType Name="IPv4Address">
-        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
-        <Property Name="Oem" Type="Resource.Oem" Nullable="false"/>
-        <Property Name="Address" Type="Edm.String">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
-          <Annotation Term="OData.Description" String="This is the IPv4 Address."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be an IPv4 address assigned to this interface.  If DHCPv4 is enabled on the interface, this property becomes read-only."/>
-          <Annotation Term="Validation.Pattern" String="^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$"/>
-        </Property>
-        <Property Name="SubnetMask" Type="IPAddresses.v1_0_0.SubnetMask">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
-          <Annotation Term="OData.Description" String="This is the IPv4 Subnet mask."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be the IPv4 subnet mask for this address.  If DHCPv4 is enabled on the interface, this property becomes read-only."/>
-        </Property>
-        <Property Name="AddressOrigin" Type="IPAddresses.v1_0_0.IPv4AddressOrigin">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
-          <Annotation Term="OData.Description" String="This indicates how the address was determined."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be the IP address origin for this network interface."/>
-        </Property>
-        <Property Name="Gateway" Type="Edm.String">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
-          <Annotation Term="OData.Description" String="This is the IPv4 gateway for this address."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be the IPv4 default gateway address for this interface. If DHCPv4 is enabled on the interface and is configured to set the IPv4 default gateway address, this property becomes read-only."/>
-          <Annotation Term="Validation.Pattern" String="^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$"/>
-        </Property>
-      </ComplexType>
-
-      <ComplexType Name="IPv6Address">
-        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
-        <Property Name="Oem" Type="Resource.Oem" Nullable="false"/>
-        <Property Name="Address" Type="Edm.String">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
-          <Annotation Term="OData.Description" String="This is the IPv6 Address."/>
-          <Annotation Term="OData.LongDescription" String="This property lists an IPv6 address that is currently assigned on this interface."/>
-          <Annotation Term="Redfish.IPv6Format"/>
-        </Property>
-        <Property Name="PrefixLength" Type="IPAddresses.v1_0_0.PrefixLength">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
-          <Annotation Term="OData.Description" String="This is the IPv6 Address Prefix Length."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be the IPv6 address prefix length for this interface."/>
-        </Property>
-        <Property Name="AddressOrigin" Type="IPAddresses.v1_0_0.IPv6AddressOrigin">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
-          <Annotation Term="OData.Description" String="This indicates how the address was determined."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be the IPv6 address origin for this interface."/>
-        </Property>
-        <Property Name="AddressState" Type="IPAddresses.v1_0_0.AddressState">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
-          <Annotation Term="OData.Description" String="The current state of this address as defined in RFC 4862."/>
-          <Annotation Term="OData.LongDescription" String="Preferred and Deprecated states follow the definitions given RFC4862 Section 5.5.4. An address is in the Tentative state while undergoing Duplicate Address Detection (DAD) per RFC4862 Section 5.4.  The Failed state indicates a Static addresses which did not pass DAD.  A Static address in the Failed state is not in use on the network stack, and corrective action will be needed to remedy this condition."/>
-        </Property>
-      </ComplexType>
-
-      <EnumType Name="IPv4AddressOrigin">
-        <Member Name="Static">
-          <Annotation Term="OData.Description" String="A static address as configured by the user."/>
-        </Member>
-        <Member Name="DHCP">
-          <Annotation Term="OData.Description" String="Address is provided by a DHCPv4 service."/>
-        </Member>
-        <Member Name="BOOTP">
-          <Annotation Term="OData.Description" String="Address is provided by a BOOTP service."/>
-        </Member>
-        <Member Name="IPv4LinkLocal">
-          <Annotation Term="OData.Description" String="Address is valid only for this network segment (link)."/>
-        </Member>
-      </EnumType>
-
-      <EnumType Name="IPv6AddressOrigin">
-        <Member Name="Static">
-          <Annotation Term="OData.Description" String="A static address as configured by the user."/>
-        </Member>
-        <Member Name="DHCPv6">
-          <Annotation Term="OData.Description" String="Address is provided by a DHCPv6 service."/>
-        </Member>
-        <Member Name="LinkLocal">
-          <Annotation Term="OData.Description" String="Address is valid only for this network segment (link)."/>
-        </Member>
-        <Member Name="SLAAC">
-          <Annotation Term="OData.Description" String="Address is provided by a Stateless Address AutoConfiguration (SLAAC) service."/>
-        </Member>
-      </EnumType>
-
-      <TypeDefinition Name="SubnetMask" UnderlyingType="Edm.String">
-        <Annotation Term="Validation.Pattern" String="^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$"/>
-      </TypeDefinition>
-
-      <TypeDefinition Name="PrefixLength" UnderlyingType="Edm.Int64">
-        <Annotation Term="Validation.Minimum" Int="1"/>
-        <Annotation Term="Validation.Maximum" Int="128"/>
-      </TypeDefinition>
-
-      <EnumType Name="AddressState">
-        <Member Name="Preferred">
-          <Annotation Term="OData.Description" String="This address is currently within both it's valid and preferred lifetimes as defined in RFC 4862."/>
-        </Member>
-        <Member Name="Deprecated">
-          <Annotation Term="OData.Description" String="This address is currently within it's valid lifetime, but is now outside of it's preferred lifetime as defined in RFC 4862."/>
-        </Member>
-        <Member Name="Tentative">
-          <Annotation Term="OData.Description" String="This address is currently undergoing Duplicate Address Detection testing as defined in RFC 4862 section 5.4."/>
-        </Member>
-        <Member Name="Failed">
-          <Annotation Term="OData.Description" String="This address has failed Duplicate Address Detection testing as defined in RFC 4862 section 5.4 and is not currently in use."/>
-        </Member>
-      </EnumType>
-
-      <ComplexType Name="IPv6StaticAddress">
-        <Annotation Term="OData.Description" String="This object represents a single IPv6 static address to be assigned on a network interface."/>
-        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
-        <Property Name="Oem" Type="Resource.Oem" Nullable="false"/>
-        <Property Name="Address" Type="Edm.String">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
-          <Annotation Term="OData.Description" String="A valid IPv6 address."/>
-          <Annotation Term="OData.LongDescription" String="This property provides access to a static IPv6 address that is currently assigned on a network interface."/>
-          <Annotation Term="Redfish.Required"/>
-          <Annotation Term="Redfish.IPv6Format"/>
-        </Property>
-        <Property Name="PrefixLength" Type="IPAddresses.v1_0_0.PrefixLength">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
-          <Annotation Term="OData.Description" String="The Prefix Length of this IPv6 address."/>
-          <Annotation Term="OData.LongDescription" String="Provides the IPv6 network prefix length in bits for this address."/>
-          <Annotation Term="Redfish.Required"/>
-        </Property>
-      </ComplexType>
-
-    </Schema>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="IPAddresses.v1_0_2">
-      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
-    </Schema>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="IPAddresses.v1_0_3">
-      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
-    </Schema>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="IPAddresses.v1_0_4">
-      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
-    </Schema>
-
-  </edmx:DataServices>
-</edmx:Edmx>
+<?xml version="1.0" encoding="UTF-8"?>
+<!---->
+<!--################################################################################       -->
+<!--# Redfish Schema:  IPAddresses  v1.0.6-->
+<!--#                                                                                      -->
+<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
+<!--# available at http://www.dmtf.org/standards/redfish                                   -->
+<!--# Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF).                  -->
+<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
+<!--################################################################################       -->
+<!---->
+<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
+
+  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
+    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
+    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
+    <edmx:Include Namespace="Validation.v1_0_0" Alias="Validation"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
+    <edmx:Include Namespace="Resource"/>
+  </edmx:Reference>
+
+  <edmx:DataServices>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="IPAddresses">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+
+      <ComplexType Name="IPv4Address" Abstract="true">
+        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
+        <Annotation Term="OData.Description" String="This type describes an IPv4 Address."/>
+        <Annotation Term="OData.LongDescription" String="This type shall describe an IPv4 address assigned to an interface."/>
+      </ComplexType>
+
+      <ComplexType Name="IPv6Address" Abstract="true">
+        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
+        <Annotation Term="OData.Description" String="This type describes an IPv6 Address."/>
+        <Annotation Term="OData.LongDescription" String="This type shall describe an IPv6 address assigned to an interface."/>
+      </ComplexType>
+
+      <ComplexType Name="IPv6StaticAddress" Abstract="true">
+        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
+        <Annotation Term="OData.Description" String="This object represents a single IPv6 static address to be assigned on a network interface."/>
+        <Annotation Term="OData.LongDescription" String="This type shall represent a single IPv6 static address to be assigned on a network interface."/>
+      </ComplexType>
+
+    </Schema>
+
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="IPAddresses.v1_0_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+
+      <ComplexType Name="IPv4Address" BaseType="IPAddresses.IPv4Address">
+        <Property Name="Oem" Type="Resource.Oem" Nullable="false"/>
+        <Property Name="Address" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="This is the IPv4 Address."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be an IPv4 address assigned to this interface.  If DHCPv4 is enabled on the interface, this property becomes read-only."/>
+          <Annotation Term="Validation.Pattern" String="^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$"/>
+        </Property>
+        <Property Name="SubnetMask" Type="IPAddresses.v1_0_0.SubnetMask">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="This is the IPv4 Subnet mask."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be the IPv4 subnet mask for this address.  If DHCPv4 is enabled on the interface, this property becomes read-only."/>
+        </Property>
+        <Property Name="AddressOrigin" Type="IPAddresses.v1_0_0.IPv4AddressOrigin">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="This indicates how the address was determined."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be the IP address origin for this network interface."/>
+        </Property>
+        <Property Name="Gateway" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="This is the IPv4 gateway for this address."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be the IPv4 default gateway address for this interface. If DHCPv4 is enabled on the interface and is configured to set the IPv4 default gateway address, this property becomes read-only."/>
+          <Annotation Term="Validation.Pattern" String="^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$"/>
+        </Property>
+      </ComplexType>
+
+      <ComplexType Name="IPv6Address" BaseType="IPAddresses.IPv6Address">
+        <Property Name="Oem" Type="Resource.Oem" Nullable="false"/>
+        <Property Name="Address" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="This is the IPv6 Address."/>
+          <Annotation Term="OData.LongDescription" String="This property lists an IPv6 address that is currently assigned on this interface."/>
+          <Annotation Term="Redfish.IPv6Format"/>
+        </Property>
+        <Property Name="PrefixLength" Type="IPAddresses.v1_0_0.PrefixLength">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="This is the IPv6 Address Prefix Length."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be the IPv6 address prefix length for this interface."/>
+        </Property>
+        <Property Name="AddressOrigin" Type="IPAddresses.v1_0_0.IPv6AddressOrigin">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="This indicates how the address was determined."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be the IPv6 address origin for this interface."/>
+        </Property>
+        <Property Name="AddressState" Type="IPAddresses.v1_0_0.AddressState">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="The current state of this address as defined in RFC 4862."/>
+          <Annotation Term="OData.LongDescription" String="Preferred and Deprecated states follow the definitions given RFC4862 Section 5.5.4. An address is in the Tentative state while undergoing Duplicate Address Detection (DAD) per RFC4862 Section 5.4.  The Failed state indicates a Static addresses which did not pass DAD.  A Static address in the Failed state is not in use on the network stack, and corrective action will be needed to remedy this condition."/>
+        </Property>
+      </ComplexType>
+
+      <EnumType Name="IPv4AddressOrigin">
+        <Member Name="Static">
+          <Annotation Term="OData.Description" String="A static address as configured by the user."/>
+        </Member>
+        <Member Name="DHCP">
+          <Annotation Term="OData.Description" String="Address is provided by a DHCPv4 service."/>
+        </Member>
+        <Member Name="BOOTP">
+          <Annotation Term="OData.Description" String="Address is provided by a BOOTP service."/>
+        </Member>
+        <Member Name="IPv4LinkLocal">
+          <Annotation Term="OData.Description" String="Address is valid only for this network segment (link)."/>
+        </Member>
+      </EnumType>
+
+      <EnumType Name="IPv6AddressOrigin">
+        <Member Name="Static">
+          <Annotation Term="OData.Description" String="A static address as configured by the user."/>
+        </Member>
+        <Member Name="DHCPv6">
+          <Annotation Term="OData.Description" String="Address is provided by a DHCPv6 service."/>
+        </Member>
+        <Member Name="LinkLocal">
+          <Annotation Term="OData.Description" String="Address is valid only for this network segment (link)."/>
+        </Member>
+        <Member Name="SLAAC">
+          <Annotation Term="OData.Description" String="Address is provided by a Stateless Address AutoConfiguration (SLAAC) service."/>
+        </Member>
+      </EnumType>
+
+      <TypeDefinition Name="SubnetMask" UnderlyingType="Edm.String">
+        <Annotation Term="Validation.Pattern" String="^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$"/>
+      </TypeDefinition>
+
+      <TypeDefinition Name="PrefixLength" UnderlyingType="Edm.Int64">
+        <Annotation Term="Validation.Minimum" Int="1"/>
+        <Annotation Term="Validation.Maximum" Int="128"/>
+      </TypeDefinition>
+
+      <EnumType Name="AddressState">
+        <Member Name="Preferred">
+          <Annotation Term="OData.Description" String="This address is currently within both it's valid and preferred lifetimes as defined in RFC 4862."/>
+        </Member>
+        <Member Name="Deprecated">
+          <Annotation Term="OData.Description" String="This address is currently within it's valid lifetime, but is now outside of it's preferred lifetime as defined in RFC 4862."/>
+        </Member>
+        <Member Name="Tentative">
+          <Annotation Term="OData.Description" String="This address is currently undergoing Duplicate Address Detection testing as defined in RFC 4862 section 5.4."/>
+        </Member>
+        <Member Name="Failed">
+          <Annotation Term="OData.Description" String="This address has failed Duplicate Address Detection testing as defined in RFC 4862 section 5.4 and is not currently in use."/>
+        </Member>
+      </EnumType>
+
+      <ComplexType Name="IPv6StaticAddress" BaseType="IPAddresses.IPv6StaticAddress">
+        <Property Name="Oem" Type="Resource.Oem" Nullable="false"/>
+        <Property Name="Address" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="A valid IPv6 address."/>
+          <Annotation Term="OData.LongDescription" String="This property provides access to a static IPv6 address that is currently assigned on a network interface."/>
+          <Annotation Term="Redfish.Required"/>
+          <Annotation Term="Redfish.IPv6Format"/>
+        </Property>
+        <Property Name="PrefixLength" Type="IPAddresses.v1_0_0.PrefixLength">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="The Prefix Length of this IPv6 address."/>
+          <Annotation Term="OData.LongDescription" String="Provides the IPv6 network prefix length in bits for this address."/>
+          <Annotation Term="Redfish.Required"/>
+        </Property>
+      </ComplexType>
+
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="IPAddresses.v1_0_2">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="IPAddresses.v1_0_3">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="IPAddresses.v1_0_4">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="IPAddresses.v1_0_5">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="IPAddresses.v1_0_6">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to add an abstract base type for IPv4Address, IPv6Address, and IPv6StaticAddress.  It was also created to make PrefixLength in IPv6StaticAddress writable."/>
+    </Schema>
+
+  </edmx:DataServices>
+</edmx:Edmx>
diff --git a/static/redfish/v1/schema/PhysicalContext_v1.xml b/static/redfish/v1/schema/PhysicalContext_v1.xml
index 0392375..35f2201 100755
--- a/static/redfish/v1/schema/PhysicalContext_v1.xml
+++ b/static/redfish/v1/schema/PhysicalContext_v1.xml
@@ -1,96 +1,228 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!---->
-<!--################################################################################       -->
-<!--# Redfish Schema:  PhysicalContext  v1.0.3-->
-<!--#                                                                                      -->
-<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
-<!--# available at http://www.dmtf.org/standards/redfish                                   -->
-<!--# Copyright 2014-2016 Distributed Management Task Force, Inc. (DMTF).                  -->
-<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
-<!--################################################################################       -->
-<!---->
-<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
-
-  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
-    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
-  </edmx:Reference>
-
-  <edmx:DataServices>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PhysicalContext.v1_0_0">
-
-      <EnumType Name="PhysicalContext">
-        <Member Name="Room">
-          <Annotation Term="OData.Description" String="The room."/>
-        </Member>
-        <Member Name="Intake">
-          <Annotation Term="OData.Description" String="The intake point of the chassis."/>
-        </Member>
-        <Member Name="Exhaust">
-          <Annotation Term="OData.Description" String="The exhaust point of the chassis."/>
-        </Member>
-        <Member Name="Front">
-          <Annotation Term="OData.Description" String="The front of the chassis."/>
-        </Member>
-        <Member Name="Back">
-          <Annotation Term="OData.Description" String="The back of the chassis."/>
-        </Member>
-        <Member Name="Upper">
-          <Annotation Term="OData.Description" String="The upper portion of the chassis."/>
-        </Member>
-        <Member Name="Lower">
-          <Annotation Term="OData.Description" String="The lower portion of the chassis."/>
-        </Member>
-        <Member Name="CPU">
-          <Annotation Term="OData.Description" String="A Processor (CPU)."/>
-        </Member>
-        <Member Name="GPU">
-          <Annotation Term="OData.Description" String="A Graphics Processor (GPU)."/>
-        </Member>
-        <Member Name="Backplane">
-          <Annotation Term="OData.Description" String="A backplane within the chassis."/>
-        </Member>
-        <Member Name="SystemBoard">
-          <Annotation Term="OData.Description" String="The system board (PCB)."/>
-        </Member>
-        <Member Name="PowerSupply">
-          <Annotation Term="OData.Description" String="A power supply."/>
-        </Member>
-        <Member Name="VoltageRegulator">
-          <Annotation Term="OData.Description" String="A voltage regulator device."/>
-        </Member>
-        <Member Name="StorageDevice">
-          <Annotation Term="OData.Description" String="A storage device."/>
-        </Member>
-        <Member Name="NetworkingDevice">
-          <Annotation Term="OData.Description" String="A networking device."/>
-        </Member>
-        <Member Name="ComputeBay">
-          <Annotation Term="OData.Description" String="Within a compute bay."/>
-        </Member>
-        <Member Name="StorageBay">
-          <Annotation Term="OData.Description" String="Within a storage bay."/>
-        </Member>
-        <Member Name="NetworkBay">
-          <Annotation Term="OData.Description" String="Within a networking bay."/>
-        </Member>
-        <Member Name="ExpansionBay">
-          <Annotation Term="OData.Description" String="Within an expansion bay."/>
-        </Member>
-        <Member Name="PowerSupplyBay">
-          <Annotation Term="OData.Description" String="Within a power supply bay."/>
-        </Member>
-      </EnumType>
-
-    </Schema>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PhysicalContext.v1_0_2">
-      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
-    </Schema>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PhysicalContext.v1_0_3">
-      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
-    </Schema>
-
-  </edmx:DataServices>
-</edmx:Edmx>
+<?xml version="1.0" encoding="UTF-8"?>
+<!---->
+<!--################################################################################       -->
+<!--# Redfish Schema:  PhysicalContext  v1.3.0-->
+<!--#                                                                                      -->
+<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
+<!--# available at http://www.dmtf.org/standards/redfish                                   -->
+<!--# Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF).                  -->
+<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
+<!--################################################################################       -->
+<!---->
+<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
+
+  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
+    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
+    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
+  </edmx:Reference>
+
+  <edmx:DataServices>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PhysicalContext">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+
+      <EnumType Name="PhysicalContext">
+        <Member Name="Room">
+          <Annotation Term="OData.Description" String="The room."/>
+        </Member>
+        <Member Name="Intake">
+          <Annotation Term="OData.Description" String="The air intake point of the chassis."/>
+        </Member>
+        <Member Name="Exhaust">
+          <Annotation Term="OData.Description" String="The air exhaust point of the chassis."/>
+        </Member>
+        <Member Name="LiquidInlet">
+          <Annotation Term="OData.Description" String="The liquid inlet point of the chassis."/>
+        </Member>
+        <Member Name="LiquidOutlet">
+          <Annotation Term="OData.Description" String="The liquid outlet point of the chassis."/>
+        </Member>
+        <Member Name="Front">
+          <Annotation Term="OData.Description" String="The front of the chassis."/>
+        </Member>
+        <Member Name="Back">
+          <Annotation Term="OData.Description" String="The back of the chassis."/>
+        </Member>
+        <Member Name="Upper">
+          <Annotation Term="OData.Description" String="The upper portion of the chassis."/>
+        </Member>
+        <Member Name="Lower">
+          <Annotation Term="OData.Description" String="The lower portion of the chassis."/>
+        </Member>
+        <Member Name="CPU">
+          <Annotation Term="OData.Description" String="A Processor (CPU)."/>
+        </Member>
+        <Member Name="GPU">
+          <Annotation Term="OData.Description" String="A Graphics Processor (GPU)."/>
+        </Member>
+        <Member Name="ASIC">
+          <Annotation Term="OData.Description" String="An ASIC device, such as an FPGA or a GPGPU."/>
+        </Member>
+        <Member Name="Backplane">
+          <Annotation Term="OData.Description" String="A backplane within the chassis."/>
+        </Member>
+        <Member Name="SystemBoard">
+          <Annotation Term="OData.Description" String="The system board (PCB)."/>
+        </Member>
+        <Member Name="PowerSupply">
+          <Annotation Term="OData.Description" String="A power supply."/>
+        </Member>
+        <Member Name="VoltageRegulator">
+          <Annotation Term="OData.Description" String="A voltage regulator device."/>
+        </Member>
+        <Member Name="StorageDevice">
+          <Annotation Term="OData.Description" String="A storage device."/>
+        </Member>
+        <Member Name="NetworkingDevice">
+          <Annotation Term="OData.Description" String="A networking device."/>
+        </Member>
+        <Member Name="ComputeBay">
+          <Annotation Term="OData.Description" String="Within a compute bay."/>
+        </Member>
+        <Member Name="StorageBay">
+          <Annotation Term="OData.Description" String="Within a storage bay."/>
+        </Member>
+        <Member Name="NetworkBay">
+          <Annotation Term="OData.Description" String="Within a networking bay."/>
+        </Member>
+        <Member Name="ExpansionBay">
+          <Annotation Term="OData.Description" String="Within an expansion bay."/>
+        </Member>
+        <Member Name="PowerSupplyBay">
+          <Annotation Term="OData.Description" String="Within a power supply bay."/>
+        </Member>
+        <Member Name="Memory">
+          <Annotation Term="OData.Description" String="A memory device."/>
+        </Member>
+        <Member Name="Chassis">
+          <Annotation Term="OData.Description" String="The entire chassis."/>
+        </Member>
+        <Member Name="Fan">
+          <Annotation Term="OData.Description" String="A fan."/>
+        </Member>
+      </EnumType>
+
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PhysicalContext.v1_0_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+
+      <EnumType Name="PhysicalContext">
+        <Annotation Term="Redfish.Deprecated" String="This definition has been moved to the unversioned namespace so that external references can pick up changes over time."/>
+        <Member Name="Room">
+          <Annotation Term="OData.Description" String="The room."/>
+        </Member>
+        <Member Name="Intake">
+          <Annotation Term="OData.Description" String="The intake point of the chassis."/>
+        </Member>
+        <Member Name="Exhaust">
+          <Annotation Term="OData.Description" String="The exhaust point of the chassis."/>
+        </Member>
+        <Member Name="Front">
+          <Annotation Term="OData.Description" String="The front of the chassis."/>
+        </Member>
+        <Member Name="Back">
+          <Annotation Term="OData.Description" String="The back of the chassis."/>
+        </Member>
+        <Member Name="Upper">
+          <Annotation Term="OData.Description" String="The upper portion of the chassis."/>
+        </Member>
+        <Member Name="Lower">
+          <Annotation Term="OData.Description" String="The lower portion of the chassis."/>
+        </Member>
+        <Member Name="CPU">
+          <Annotation Term="OData.Description" String="A Processor (CPU)."/>
+        </Member>
+        <Member Name="GPU">
+          <Annotation Term="OData.Description" String="A Graphics Processor (GPU)."/>
+        </Member>
+        <Member Name="Backplane">
+          <Annotation Term="OData.Description" String="A backplane within the chassis."/>
+        </Member>
+        <Member Name="SystemBoard">
+          <Annotation Term="OData.Description" String="The system board (PCB)."/>
+        </Member>
+        <Member Name="PowerSupply">
+          <Annotation Term="OData.Description" String="A power supply."/>
+        </Member>
+        <Member Name="VoltageRegulator">
+          <Annotation Term="OData.Description" String="A voltage regulator device."/>
+        </Member>
+        <Member Name="StorageDevice">
+          <Annotation Term="OData.Description" String="A storage device."/>
+        </Member>
+        <Member Name="NetworkingDevice">
+          <Annotation Term="OData.Description" String="A networking device."/>
+        </Member>
+        <Member Name="ComputeBay">
+          <Annotation Term="OData.Description" String="Within a compute bay."/>
+        </Member>
+        <Member Name="StorageBay">
+          <Annotation Term="OData.Description" String="Within a storage bay."/>
+        </Member>
+        <Member Name="NetworkBay">
+          <Annotation Term="OData.Description" String="Within a networking bay."/>
+        </Member>
+        <Member Name="ExpansionBay">
+          <Annotation Term="OData.Description" String="Within an expansion bay."/>
+        </Member>
+        <Member Name="PowerSupplyBay">
+          <Annotation Term="OData.Description" String="Within a power supply bay."/>
+        </Member>
+        <Member Name="Memory">
+          <Annotation Term="OData.Description" String="A memory device."/>
+        </Member>
+        <Member Name="Chassis">
+          <Annotation Term="OData.Description" String="The entire chassis."/>
+        </Member>
+        <Member Name="Fan">
+          <Annotation Term="OData.Description" String="A fan."/>
+        </Member>
+      </EnumType>
+
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PhysicalContext.v1_0_2">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PhysicalContext.v1_0_3">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PhysicalContext.v1_0_4">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to deprecate the versioned definition of PhysicalContext to use an unversioned definition."/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PhysicalContext.v1_1_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show the PhysicalContext enumerated list was updated."/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PhysicalContext.v1_1_1">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to deprecate the versioned definition of PhysicalContext to use an unversioned definition."/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PhysicalContext.v1_2_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show the PhysicalContext enumerated list was updated."/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PhysicalContext.v1_2_1">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to deprecate the versioned definition of PhysicalContext to use an unversioned definition."/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PhysicalContext.v1_3_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show the PhysicalContext enumerated list was updated."/>
+    </Schema>
+
+  </edmx:DataServices>
+</edmx:Edmx>
diff --git a/static/redfish/v1/schema/Privileges_v1.xml b/static/redfish/v1/schema/Privileges_v1.xml
index cb31ac0..7fa0155 100755
--- a/static/redfish/v1/schema/Privileges_v1.xml
+++ b/static/redfish/v1/schema/Privileges_v1.xml
@@ -1,64 +1,99 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!---->
-<!--################################################################################       -->
-<!--# Redfish Schema:  Privileges  v1.0.3-->
-<!--#                                                                                      -->
-<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
-<!--# available at http://www.dmtf.org/standards/redfish                                   -->
-<!--# Copyright 2014-2016 Distributed Management Task Force, Inc. (DMTF).                  -->
-<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
-<!--################################################################################       -->
-<!---->
-<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
-
-  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
-    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
-  </edmx:Reference>
-
-  <edmx:DataServices>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Privileges.v1_0_0">
-
-      <EnumType Name="PrivilegeType">
-        <Member Name="Login">
-          <Annotation Term="OData.Description" String="Able to log into the service and read resources."/>
-        </Member>
-        <Member Name="ConfigureManager">
-          <Annotation Term="OData.Description" String="Able to configure Manager resources."/>
-        </Member>
-        <Member Name="ConfigureUsers">
-          <Annotation Term="OData.Description" String="Able to configure Users and their Accounts."/>
-        </Member>
-        <Member Name="ConfigureSelf">
-          <Annotation Term="OData.Description" String="Able to change the password for the current user Account."/>
-        </Member>
-        <Member Name="ConfigureComponents">
-          <Annotation Term="OData.Description" String="Able to configure components managed by this service."/>
-        </Member>
-      </EnumType>
-
-      <Term Name="OemGetPrivileges" Type="Collection(Edm.String)" Nullable="false">
-        <Annotation Term="OData.Description" String="OEM Get operations privileges may be defined on a Link element to provide read privileges for the referenced resources, or on individual elements to override the privileges for that element."/>
-      </Term>
-      <Term Name="OemPostPrivileges" Type="Collection(Edm.String)" Nullable="false">
-        <Annotation Term="OData.Description" String="OEM Post privileges may be defined on a Link element to provide create privileges for the referenced resources, or on individual elements to override the privileges for that element."/>
-      </Term>
-      <Term Name="OemPatchPutPrivileges" Type="Collection(Edm.String)" Nullable="false">
-        <Annotation Term="OData.Description" String="OEM PatchPut privileges may be defined on a Link element to provide update privileges for the referenced resources, or on individual elements to override the privileges for that element."/>
-      </Term>
-      <Term Name="OemDeletePrivileges" Type="Collection(Edm.String)" Nullable="false">
-        <Annotation Term="OData.Description" String="OEM Delete privileges may be defined on a Link element to provide update privileges for the referenced resources, or on individual elements to override the privileges for that element."/>
-      </Term>
-
-    </Schema>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Privileges.v1_0_2">
-      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
-    </Schema>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Privileges.v1_0_3">
-      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
-    </Schema>
-
-  </edmx:DataServices>
-</edmx:Edmx>
+<?xml version="1.0" encoding="UTF-8"?>
+<!---->
+<!--################################################################################       -->
+<!--# Redfish Schema:  Privileges  v1.0.4-->
+<!--#                                                                                      -->
+<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
+<!--# available at http://www.dmtf.org/standards/redfish                                   -->
+<!--# Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF).                  -->
+<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
+<!--################################################################################       -->
+<!---->
+<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
+
+  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
+    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
+    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
+  </edmx:Reference>
+
+  <edmx:DataServices>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Privileges">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+
+      <EnumType Name="PrivilegeType">
+        <Member Name="Login">
+          <Annotation Term="OData.Description" String="Able to log into the service and read resources."/>
+        </Member>
+        <Member Name="ConfigureManager">
+          <Annotation Term="OData.Description" String="Able to configure Manager resources."/>
+        </Member>
+        <Member Name="ConfigureUsers">
+          <Annotation Term="OData.Description" String="Able to configure Users and their Accounts."/>
+        </Member>
+        <Member Name="ConfigureSelf">
+          <Annotation Term="OData.Description" String="Able to change the password for the current user Account."/>
+        </Member>
+        <Member Name="ConfigureComponents">
+          <Annotation Term="OData.Description" String="Able to configure components managed by this service."/>
+        </Member>
+      </EnumType>
+
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Privileges.v1_0_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+
+      <EnumType Name="PrivilegeType">
+        <Annotation Term="Redfish.Deprecated" String="This definition has been moved to the unversioned namespace so that external references can pick up changes over time."/>
+        <Member Name="Login">
+          <Annotation Term="OData.Description" String="Able to log into the service and read resources."/>
+        </Member>
+        <Member Name="ConfigureManager">
+          <Annotation Term="OData.Description" String="Able to configure Manager resources."/>
+        </Member>
+        <Member Name="ConfigureUsers">
+          <Annotation Term="OData.Description" String="Able to configure Users and their Accounts."/>
+        </Member>
+        <Member Name="ConfigureSelf">
+          <Annotation Term="OData.Description" String="Able to change the password for the current user Account."/>
+        </Member>
+        <Member Name="ConfigureComponents">
+          <Annotation Term="OData.Description" String="Able to configure components managed by this service."/>
+        </Member>
+      </EnumType>
+
+      <Term Name="OemGetPrivileges" Type="Collection(Edm.String)" Nullable="false">
+        <Annotation Term="OData.Description" String="OEM Get operations privileges may be defined on a Link element to provide read privileges for the referenced resources, or on individual elements to override the privileges for that element."/>
+      </Term>
+      <Term Name="OemPostPrivileges" Type="Collection(Edm.String)" Nullable="false">
+        <Annotation Term="OData.Description" String="OEM Post privileges may be defined on a Link element to provide create privileges for the referenced resources, or on individual elements to override the privileges for that element."/>
+      </Term>
+      <Term Name="OemPatchPutPrivileges" Type="Collection(Edm.String)" Nullable="false">
+        <Annotation Term="OData.Description" String="OEM PatchPut privileges may be defined on a Link element to provide update privileges for the referenced resources, or on individual elements to override the privileges for that element."/>
+      </Term>
+      <Term Name="OemDeletePrivileges" Type="Collection(Edm.String)" Nullable="false">
+        <Annotation Term="OData.Description" String="OEM Delete privileges may be defined on a Link element to provide update privileges for the referenced resources, or on individual elements to override the privileges for that element."/>
+      </Term>
+
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Privileges.v1_0_2">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Privileges.v1_0_3">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Privileges.v1_0_4">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to deprecate the versioned definition of PrivilegeType to use an unversioned definition."/>
+    </Schema>
+
+  </edmx:DataServices>
+</edmx:Edmx>
diff --git a/static/redfish/v1/schema/SoftwareInventory_v1.xml b/static/redfish/v1/schema/SoftwareInventory_v1.xml
index 5808eac..5d1968a 100755
--- a/static/redfish/v1/schema/SoftwareInventory_v1.xml
+++ b/static/redfish/v1/schema/SoftwareInventory_v1.xml
@@ -1,102 +1,137 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!---->
-<!--################################################################################       -->
-<!--# Redfish Schema:  SoftwareInventory  v1.1.0-->
-<!--#                                                                                      -->
-<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
-<!--# available at http://www.dmtf.org/standards/redfish                                   -->
-<!--# Copyright 2014-2016 Distributed Management Task Force, Inc. (DMTF).                  -->
-<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
-<!--################################################################################       -->
-<!---->
-<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
-
-  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
-    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
-  </edmx:Reference>
-  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Measures.V1.xml">
-    <edmx:Include Namespace="Org.OData.Measures.V1" Alias="Measures"/>
-  </edmx:Reference>
-  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
-    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
-  </edmx:Reference>
-  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
-    <edmx:Include Namespace="Resource"/>
-    <edmx:Include Namespace="Resource.v1_0_0"/>
-    <edmx:Include Namespace="Resource.v1_1_0"/>
-  </edmx:Reference>
-
-  <edmx:DataServices>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="SoftwareInventory">
-      <EntityType Name="SoftwareInventory" BaseType="Resource.v1_0_0.Resource">
-        <Annotation Term="OData.Description" String="This schema defines an inventory of software components."/>
-        <Annotation Term="OData.LongDescription" String="This resource shall be used to represent a single software component managed by this Redfish Service."/>
-      </EntityType>
-    </Schema>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="SoftwareInventory.v1_0_0">
-
-      <EntityType Name="SoftwareInventory" BaseType="SoftwareInventory.SoftwareInventory">
-        <Annotation Term="OData.Description" String="This schema defines an inventory of software components."/>
-        <Annotation Term="OData.LongDescription" String="This resource shall be used to represent a single software component managed by this Redfish Service."/>
-        <Property Name="Status" Type="Resource.Status"/>
-        <Property Name="Version" Type="Edm.String">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
-          <Annotation Term="OData.Description" String="A string representing the version of this software."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be a string representing the version of this software."/>
-        </Property>
-        <Property Name="Updateable" Type="Edm.Boolean">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
-          <Annotation Term="OData.Description" String="Indicates whether this software can be updated by the update service."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be a boolean indicating whether this software can be updated by the update service. If false, this software is for reporting purpose only."/>
-        </Property>
-        <Property Name="Actions" Type="SoftwareInventory.v1_0_0.Actions" Nullable="false">
-          <Annotation Term="OData.Description" String="The Actions object contains the available custom actions on this resource."/>
-        </Property>
-      </EntityType>
-
-      <ComplexType Name="Actions">
-        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
-        <Property Name="Oem" Type="SoftwareInventory.v1_0_0.OemActions" Nullable="false"/>
-      </ComplexType>
-
-      <ComplexType Name="OemActions">
-        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
-      </ComplexType>
-
-    </Schema>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="SoftwareInventory.v1_0_1">
-      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
-      <EntityType Name="SoftwareInventory" BaseType="SoftwareInventory.v1_0_0.SoftwareInventory"/>
-    </Schema>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="SoftwareInventory.v1_1_0">
-      <EntityType Name="SoftwareInventory" BaseType="SoftwareInventory.v1_0_1.SoftwareInventory">
-        <Property Name="SoftwareId" Type="Edm.String" Nullable="false">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
-          <Annotation Term="OData.Description" String="A string representing the implementation-specific ID for identifying this software."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be a string representing an implementation-specific ID for identifying this software. This string is used for correlation to a component repository or database."/>
-        </Property>
-        <Property Name="LowestSupportedVersion" Type="Edm.String">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
-          <Annotation Term="OData.Description" String="A string representing the lowest supported version of this software."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be a string representing the lowest supported version of this software. This string is formatted using the same format used for the Version property."/>
-        </Property>
-        <Property Name="UefiDevicePaths" Type="Collection(Edm.String)">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
-          <Annotation Term="OData.Description" String="A list of strings representing the UEFI Device Path(s) of the component(s) associated with this software inventory item."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be a list of strings representing the UEFI Device Path(s) of the component(s) associated with this software inventory item. The UEFI Device Path string(s) shall be formatted as defined by the UEFI Specification."/>
-        </Property>
-        <NavigationProperty Name="RelatedItem" Type="Collection(Resource.Item)">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
-          <Annotation Term="OData.Description" String="The ID(s) of the resources associated with this software inventory item."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is associated with this software inventory item."/>
-          <Annotation Term="OData.AutoExpandReferences"/>
-        </NavigationProperty>
-      </EntityType>
-    </Schema>
-
-  </edmx:DataServices>
-</edmx:Edmx>
+<?xml version="1.0" encoding="UTF-8"?>
+<!---->
+<!--################################################################################       -->
+<!--# Redfish Schema:  SoftwareInventory  v1.2.0-->
+<!--#                                                                                      -->
+<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
+<!--# available at http://www.dmtf.org/standards/redfish                                   -->
+<!--# Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF).                  -->
+<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
+<!--################################################################################       -->
+<!---->
+<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
+
+  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
+    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
+    <edmx:Include Namespace="Resource"/>
+    <edmx:Include Namespace="Resource.v1_0_0"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
+    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
+  </edmx:Reference>
+
+  <edmx:DataServices>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="SoftwareInventory">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+
+      <EntityType Name="SoftwareInventory" BaseType="Resource.v1_0_0.Resource" Abstract="true">
+        <Annotation Term="OData.Description" String="This schema defines an inventory of software components."/>
+        <Annotation Term="OData.LongDescription" String="This resource shall be used to represent a single software component managed by this Redfish Service."/>
+      </EntityType>
+
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="SoftwareInventory.v1_0_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+
+      <EntityType Name="SoftwareInventory" BaseType="SoftwareInventory.SoftwareInventory">
+        <Annotation Term="OData.Description" String="This schema defines an inventory of software components."/>
+        <Annotation Term="OData.LongDescription" String="This resource shall be used to represent a single software component managed by this Redfish Service."/>
+        <Property Name="Status" Type="Resource.Status"/>
+        <Property Name="Version" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="A string representing the version of this software."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be a string representing the version of this software."/>
+        </Property>
+        <Property Name="Updateable" Type="Edm.Boolean">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="Indicates whether this software can be updated by the update service."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be a boolean indicating whether this software can be updated by the update service. If false, this software is for reporting purpose only."/>
+        </Property>
+        <Property Name="Actions" Type="SoftwareInventory.v1_0_0.Actions" Nullable="false">
+          <Annotation Term="OData.Description" String="The Actions object contains the available custom actions on this resource."/>
+        </Property>
+      </EntityType>
+
+      <ComplexType Name="Actions">
+        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
+        <Annotation Term="OData.Description" String="The available actions for this resource."/>
+        <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this resource."/>
+        <Property Name="Oem" Type="SoftwareInventory.v1_0_0.OemActions" Nullable="false"/>
+      </ComplexType>
+
+      <ComplexType Name="OemActions">
+        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
+        <Annotation Term="OData.Description" String="The available OEM specific actions for this resource."/>
+        <Annotation Term="OData.LongDescription" String="This type shall contain any additional OEM actions for this resource."/>
+      </ComplexType>
+
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="SoftwareInventory.v1_0_1">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+      <EntityType Name="SoftwareInventory" BaseType="SoftwareInventory.v1_0_0.SoftwareInventory"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="SoftwareInventory.v1_0_2">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+      <EntityType Name="SoftwareInventory" BaseType="SoftwareInventory.v1_0_1.SoftwareInventory"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="SoftwareInventory.v1_1_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <EntityType Name="SoftwareInventory" BaseType="SoftwareInventory.v1_0_1.SoftwareInventory">
+        <Property Name="SoftwareId" Type="Edm.String" Nullable="false">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="A string representing the implementation-specific ID for identifying this software."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be a string representing an implementation-specific ID for identifying this software. This string is used for correlation to a component repository or database."/>
+        </Property>
+        <Property Name="LowestSupportedVersion" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="A string representing the lowest supported version of this software."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be a string representing the lowest supported version of this software. This string is formatted using the same format used for the Version property."/>
+        </Property>
+        <Property Name="UefiDevicePaths" Type="Collection(Edm.String)">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="A list of strings representing the UEFI Device Path(s) of the component(s) associated with this software inventory item."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be a list of strings representing the UEFI Device Path(s) of the component(s) associated with this software inventory item. The UEFI Device Path string(s) shall be formatted as defined by the UEFI Specification."/>
+        </Property>
+        <NavigationProperty Name="RelatedItem" Type="Collection(Resource.Item)">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="The ID(s) of the resources associated with this software inventory item."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is associated with this software inventory item."/>
+          <Annotation Term="OData.AutoExpandReferences"/>
+        </NavigationProperty>
+      </EntityType>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="SoftwareInventory.v1_1_1">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+      <EntityType Name="SoftwareInventory" BaseType="SoftwareInventory.v1_1_0.SoftwareInventory"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="SoftwareInventory.v1_2_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to add Manufacturer and ReleaseDate properties."/>
+      <EntityType Name="SoftwareInventory" BaseType="SoftwareInventory.v1_1_1.SoftwareInventory">
+        <Property Name="Manufacturer" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="A string representing the manufacturer/producer of this software."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be a string representing the name of the manufacturer/producer of this software."/>
+        </Property>
+        <Property Name="ReleaseDate" Type="Edm.DateTimeOffset">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="Release date of this software."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be the date of release or production for this software."/>
+        </Property>
+      </EntityType>
+    </Schema>
+
+  </edmx:DataServices>
+</edmx:Edmx>
diff --git a/static/redfish/v1/schema/UpdateService_v1.xml b/static/redfish/v1/schema/UpdateService_v1.xml
index 8c75e76..7dfdb1a 100755
--- a/static/redfish/v1/schema/UpdateService_v1.xml
+++ b/static/redfish/v1/schema/UpdateService_v1.xml
@@ -1,160 +1,217 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!---->
-<!--################################################################################       -->
-<!--# Redfish Schema:  UpdateService  v1.1.0-->
-<!--#                                                                                      -->
-<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
-<!--# available at http://www.dmtf.org/standards/redfish                                   -->
-<!--# Copyright 2014-2016 Distributed Management Task Force, Inc. (DMTF).                  -->
-<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
-<!--################################################################################       -->
-<!---->
-<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
-
-  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
-    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
-  </edmx:Reference>
-  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Measures.V1.xml">
-    <edmx:Include Namespace="Org.OData.Measures.V1" Alias="Measures"/>
-  </edmx:Reference>
-  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
-    <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
-  </edmx:Reference>
-  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
-    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
-  </edmx:Reference>
-  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
-    <edmx:Include Namespace="Resource"/>
-    <edmx:Include Namespace="Resource.v1_0_0"/>
-    <edmx:Include Namespace="Resource.v1_1_0"/>
-  </edmx:Reference>
-  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/SoftwareInventoryCollection_v1.xml">
-    <edmx:Include Namespace="SoftwareInventoryCollection"/>
-  </edmx:Reference>
-
-  <edmx:DataServices>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="UpdateService">
-      <EntityType Name="UpdateService" BaseType="Resource.v1_0_0.Resource">
-        <Annotation Term="OData.Description" String="This is the schema definition for the Update Service. It represents the properties for the service itself and has links to collections of firmware and software inventory."/>
-        <Annotation Term="OData.LongDescription" String="This resource shall be used to represent an Update Service for a Redfish implementation. It represents the properties that affect the service itself."/>
-        <Annotation Term="Capabilities.InsertRestrictions">
-          <Record>
-            <PropertyValue Property="Insertable" Bool="false"/>
-          </Record>
-        </Annotation>
-        <Annotation Term="Capabilities.UpdateRestrictions">
-          <Record>
-            <PropertyValue Property="Updatable" Bool="true"/>
-            <Annotation Term="OData.Description" String="The Update Service can be updated to change properties such as ServiceEnabled."/>
-          </Record>
-        </Annotation>
-        <Annotation Term="Capabilities.DeleteRestrictions">
-          <Record>
-            <PropertyValue Property="Deletable" Bool="false"/>
-          </Record>
-        </Annotation>
-      </EntityType>
-
-      <Action Name="SimpleUpdate" IsBound="true">
-        <Annotation Term="OData.Description" String="This action is used to update software components."/>
-        <Annotation Term="OData.LongDescription" String="This action shall perform an update of installed software component(s) as contained within a software image file located at a URI referenced by the ImageURI parameter."/>
-        <Parameter Name="UpdateService" Type="UpdateService.v1_0_0.Actions"/>
-        <Parameter Name="ImageURI" Type="Edm.String" Nullable="false">
-          <Annotation Term="OData.Description" String="The URI of the software image to be installed."/>
-          <Annotation Term="OData.LongDescription" String="This parameter shall contain a URI referencing a software image to be retreived by the UpdateService for the purpose of installing software contained within the image."/>
-        </Parameter>
-        <Parameter Name="TransferProtocol" Type="UpdateService.v1_0_0.TransferProtocolType">
-          <Annotation Term="OData.Description" String="The network protocol used by the Update Service to retrieve the software image file located at the URI provided in ImageURI, if the URI does not contain a scheme."/>
-          <Annotation Term="OData.LongDescription" String="This parameter shall contain the network protocol that the Update Service shall use to retreive the software image located at the ImageURI.  If this parameter is not provided (or supported), and a transfer protocol is not specified by a scheme contained within ImageURI, the Update Service shall use HTTP to retrieve the image."/>
-        </Parameter>
-      </Action>
-    </Schema>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="UpdateService.v1_0_0">
-
-      <EntityType Name="UpdateService" BaseType="UpdateService.UpdateService">
-        <Annotation Term="OData.Description" String="This is the schema definition for the Update Service. It represents the properties for the service itself and has links to collections of firmware and software inventory."/>
-        <Annotation Term="OData.LongDescription" String="This resource shall be used to represent an Update Service for a Redfish implementation. It represents the properties that affect the service itself."/>
-        <Property Name="Status" Type="Resource.Status"/>
-        <Property Name="ServiceEnabled" Type="Edm.Boolean">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
-          <Annotation Term="OData.Description" String="This indicates whether this service is enabled."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be a boolean indicating whether this service is enabled."/>
-        </Property>
-        <NavigationProperty Name="FirmwareInventory" Type="SoftwareInventoryCollection.SoftwareInventoryCollection">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
-          <Annotation Term="OData.Description" String="An inventory of firmware."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be a link to a resource of type SoftwareInventoryCollection."/>
-          <Annotation Term="OData.AutoExpandReferences"/>
-        </NavigationProperty>
-        <NavigationProperty Name="SoftwareInventory" Type="SoftwareInventoryCollection.SoftwareInventoryCollection">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
-          <Annotation Term="OData.Description" String="An inventory of software."/>
-          <Annotation Term="OData.LongDescription" String="The value of this property shall be a link to a resource of type SoftwareInventoryCollection."/>
-          <Annotation Term="OData.AutoExpandReferences"/>
-        </NavigationProperty>
-        <Property Name="Actions" Type="UpdateService.v1_0_0.Actions" Nullable="false">
-          <Annotation Term="OData.Description" String="The Actions object contains the available custom actions on this resource."/>
-        </Property>
-      </EntityType>
-
-      <ComplexType Name="Actions">
-        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
-        <Property Name="Oem" Type="UpdateService.v1_0_0.OemActions" Nullable="false"/>
-      </ComplexType>
-
-      <ComplexType Name="OemActions">
-        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
-      </ComplexType>
-
-      <EnumType Name="TransferProtocolType">
-        <Member Name="CIFS">
-          <Annotation Term="OData.Description" String="Common Internet File System protocol."/>
-        </Member>
-        <Member Name="FTP">
-          <Annotation Term="OData.Description" String="File Transfer Protocol."/>
-        </Member>
-        <Member Name="SFTP">
-          <Annotation Term="OData.Description" String="Secure File Transfer Protocol."/>
-        </Member>
-        <Member Name="HTTP">
-          <Annotation Term="OData.Description" String="Hypertext Transfer Protocol."/>
-        </Member>
-        <Member Name="HTTPS">
-          <Annotation Term="OData.Description" String="HTTP Secure protocol."/>
-        </Member>
-        <Member Name="NSF">
-          <Annotation Term="OData.Description" String="Network File System protocol."/>
-        </Member>
-        <Member Name="SCP">
-          <Annotation Term="OData.Description" String="Secure File Copy protocol."/>
-        </Member>
-        <Member Name="TFTP">
-          <Annotation Term="OData.Description" String="Trivial File Transfer Protocol."/>
-        </Member>
-        <Member Name="OEM">
-          <Annotation Term="OData.Description" String="A protocol defined by the manufacturer."/>
-        </Member>
-      </EnumType>
-
-    </Schema>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="UpdateService.v1_0_1">
-      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
-      <EntityType Name="UpdateService" BaseType="UpdateService.v1_0_0.UpdateService"/>
-    </Schema>
-
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="UpdateService.v1_1_0">
-      <EntityType Name="UpdateService" BaseType="UpdateService.v1_0_1.UpdateService">
-        <Property Name="HttpPushUri" Type="Edm.String" Nullable="false">
-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
-          <Annotation Term="OData.Description" String="The URI used to perform an HTTP or HTTPS push update to the Update Service."/>
-          <Annotation Term="OData.LongDescription" String="This property shall contain a URI at which the UpdateService supports an HTTP or HTTPS POST of a software image for the purpose of installing software contained within the image."/>
-          <Annotation Term="OData.IsURL"/>
-        </Property>
-      </EntityType>
-
-    </Schema>
-  </edmx:DataServices>
-</edmx:Edmx>
+<?xml version="1.0" encoding="UTF-8"?>
+<!---->
+<!--################################################################################       -->
+<!--# Redfish Schema:  UpdateService  v1.2.1-->
+<!--#                                                                                      -->
+<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
+<!--# available at http://www.dmtf.org/standards/redfish                                   -->
+<!--# Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF).                  -->
+<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
+<!--################################################################################       -->
+<!---->
+<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
+
+  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
+    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
+    <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
+    <edmx:Include Namespace="Resource"/>
+    <edmx:Include Namespace="Resource.v1_0_0"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
+    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/SoftwareInventoryCollection_v1.xml">
+    <edmx:Include Namespace="SoftwareInventoryCollection"/>
+  </edmx:Reference>
+
+  <edmx:DataServices>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="UpdateService">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+
+      <EntityType Name="UpdateService" BaseType="Resource.v1_0_0.Resource" Abstract="true">
+        <Annotation Term="OData.Description" String="This is the schema definition for the Update Service. It represents the properties for the service itself and has links to collections of firmware and software inventory."/>
+        <Annotation Term="OData.LongDescription" String="This resource shall be used to represent an Update Service for a Redfish implementation. It represents the properties that affect the service itself."/>
+        <Annotation Term="Capabilities.InsertRestrictions">
+          <Record>
+            <PropertyValue Property="Insertable" Bool="false"/>
+          </Record>
+        </Annotation>
+        <Annotation Term="Capabilities.UpdateRestrictions">
+          <Record>
+            <PropertyValue Property="Updatable" Bool="true"/>
+            <Annotation Term="OData.Description" String="The Update Service can be updated to change properties such as ServiceEnabled."/>
+          </Record>
+        </Annotation>
+        <Annotation Term="Capabilities.DeleteRestrictions">
+          <Record>
+            <PropertyValue Property="Deletable" Bool="false"/>
+          </Record>
+        </Annotation>
+      </EntityType>
+
+      <Action Name="SimpleUpdate" IsBound="true">
+        <Annotation Term="OData.Description" String="This action is used to update software components."/>
+        <Annotation Term="OData.LongDescription" String="This action shall perform an update of installed software component(s) as contained within a software image file located at a URI referenced by the ImageURI parameter."/>
+        <Parameter Name="UpdateService" Type="UpdateService.v1_0_0.Actions"/>
+        <Parameter Name="ImageURI" Type="Edm.String" Nullable="false">
+          <Annotation Term="OData.Description" String="The URI of the software image to be installed."/>
+          <Annotation Term="OData.LongDescription" String="This parameter shall contain a URI referencing a software image to be retreived by the UpdateService for the purpose of installing software contained within the image."/>
+        </Parameter>
+        <Parameter Name="TransferProtocol" Type="UpdateService.v1_0_0.TransferProtocolType">
+          <Annotation Term="OData.Description" String="The network protocol used by the Update Service to retrieve the software image file located at the URI provided in ImageURI, if the URI does not contain a scheme."/>
+          <Annotation Term="OData.LongDescription" String="This parameter shall contain the network protocol that the Update Service shall use to retreive the software image located at the ImageURI.  If this parameter is not provided (or supported), and a transfer protocol is not specified by a scheme contained within ImageURI, the Update Service shall use HTTP to retrieve the image."/>
+        </Parameter>
+        <Parameter Name="Targets" Type="Collection(Edm.String)">
+          <Annotation Term="OData.Description" String="The array of URIs indicating where the update image is to be applied."/>
+          <Annotation Term="OData.LongDescription" String="This array property shall contain zero or more URIs indicating where the update image is to be applied."/>
+          <Annotation Term="OData.IsURL"/>
+        </Parameter>
+      </Action>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="UpdateService.v1_0_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+
+      <EntityType Name="UpdateService" BaseType="UpdateService.UpdateService">
+        <Annotation Term="OData.Description" String="This is the schema definition for the Update Service. It represents the properties for the service itself and has links to collections of firmware and software inventory."/>
+        <Annotation Term="OData.LongDescription" String="This resource shall be used to represent an Update Service for a Redfish implementation. It represents the properties that affect the service itself."/>
+        <Property Name="Status" Type="Resource.Status"/>
+        <Property Name="ServiceEnabled" Type="Edm.Boolean">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="This indicates whether this service is enabled."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be a boolean indicating whether this service is enabled."/>
+        </Property>
+        <NavigationProperty Name="FirmwareInventory" Type="SoftwareInventoryCollection.SoftwareInventoryCollection" ContainsTarget="true">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="An inventory of firmware."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be a link to a resource of type SoftwareInventoryCollection."/>
+          <Annotation Term="OData.AutoExpandReferences"/>
+        </NavigationProperty>
+        <NavigationProperty Name="SoftwareInventory" Type="SoftwareInventoryCollection.SoftwareInventoryCollection" ContainsTarget="true">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="An inventory of software."/>
+          <Annotation Term="OData.LongDescription" String="The value of this property shall be a link to a resource of type SoftwareInventoryCollection."/>
+          <Annotation Term="OData.AutoExpandReferences"/>
+        </NavigationProperty>
+        <Property Name="Actions" Type="UpdateService.v1_0_0.Actions" Nullable="false">
+          <Annotation Term="OData.Description" String="The Actions object contains the available custom actions on this resource."/>
+        </Property>
+      </EntityType>
+
+      <ComplexType Name="Actions">
+        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
+        <Annotation Term="OData.Description" String="The available actions for this resource."/>
+        <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this resource."/>
+        <Property Name="Oem" Type="UpdateService.v1_0_0.OemActions" Nullable="false"/>
+      </ComplexType>
+
+      <ComplexType Name="OemActions">
+        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
+        <Annotation Term="OData.Description" String="The available OEM specific actions for this resource."/>
+        <Annotation Term="OData.LongDescription" String="This type shall contain any additional OEM actions for this resource."/>
+      </ComplexType>
+
+      <EnumType Name="TransferProtocolType">
+        <Member Name="CIFS">
+          <Annotation Term="OData.Description" String="Common Internet File System protocol."/>
+        </Member>
+        <Member Name="FTP">
+          <Annotation Term="OData.Description" String="File Transfer Protocol."/>
+        </Member>
+        <Member Name="SFTP">
+          <Annotation Term="OData.Description" String="Secure File Transfer Protocol."/>
+        </Member>
+        <Member Name="HTTP">
+          <Annotation Term="OData.Description" String="Hypertext Transfer Protocol."/>
+        </Member>
+        <Member Name="HTTPS">
+          <Annotation Term="OData.Description" String="HTTP Secure protocol."/>
+        </Member>
+        <Member Name="NSF">
+          <Annotation Term="OData.Description" String="Network File System protocol."/>
+        </Member>
+        <Member Name="SCP">
+          <Annotation Term="OData.Description" String="Secure File Copy protocol."/>
+        </Member>
+        <Member Name="TFTP">
+          <Annotation Term="OData.Description" String="Trivial File Transfer Protocol."/>
+        </Member>
+        <Member Name="OEM">
+          <Annotation Term="OData.Description" String="A protocol defined by the manufacturer."/>
+        </Member>
+      </EnumType>
+
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="UpdateService.v1_0_1">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+      <EntityType Name="UpdateService" BaseType="UpdateService.v1_0_0.UpdateService"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="UpdateService.v1_0_2">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+      <EntityType Name="UpdateService" BaseType="UpdateService.v1_0_1.UpdateService"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="UpdateService.v1_0_3">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to regenerate the JSON schema so that the action parameters are included."/>
+      <EntityType Name="UpdateService" BaseType="UpdateService.v1_0_2.UpdateService"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="UpdateService.v1_1_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <EntityType Name="UpdateService" BaseType="UpdateService.v1_0_1.UpdateService">
+        <Property Name="HttpPushUri" Type="Edm.String" Nullable="false">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="The URI used to perform an HTTP or HTTPS push update to the Update Service."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain a URI at which the UpdateService supports an HTTP or HTTPS POST of a software image for the purpose of installing software contained within the image."/>
+          <Annotation Term="OData.IsURL"/>
+        </Property>
+      </EntityType>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="UpdateService.v1_1_1">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+      <EntityType Name="UpdateService" BaseType="UpdateService.v1_1_0.UpdateService"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="UpdateService.v1_1_2">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to regenerate the JSON schema so that the action parameters are included."/>
+      <EntityType Name="UpdateService" BaseType="UpdateService.v1_1_1.UpdateService"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="UpdateService.v1_2_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <EntityType Name="UpdateService" BaseType="UpdateService.v1_1_1.UpdateService">
+        <Property Name="HttpPushUriTargets" Type="Collection(Edm.String)">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="The array of URIs indicating the target for applying the update image."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain zero or more URIs indicating the targets for applying the update image when using HttpPushUri to push a software image.  If this property is not present, the Service shall determine where to apply the software image."/>
+          <Annotation Term="OData.IsURL"/>
+        </Property>
+        <Property Name="HttpPushUriTargetsBusy" Type="Edm.Boolean">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="This represents if the HttpPushUriTargets property is reserved by any client."/>
+          <Annotation Term="OData.LongDescription" String="This property shall be a boolean that is set by client when the HttpPushUriTargets property is being used by a client for firmware updates.  It shall provide multiple clients a way to negotiate its ownership.  This will help clients to know if a firmware update using HttpPushUriTargets is used by another client."/>
+        </Property>
+      </EntityType>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="UpdateService.v1_2_1">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to regenerate the JSON schema so that the action parameters are included."/>
+      <EntityType Name="UpdateService" BaseType="UpdateService.v1_2_0.UpdateService"/>
+    </Schema>
+
+  </edmx:DataServices>
+</edmx:Edmx>
